@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.
- package/esm2022/lib/components/aw-facets-wrapper/aw-facets-wrapper.mjs +29 -0
- package/{esm2020 → esm2022}/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/chart-tippy/chart-tippy.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/extended-tree/extended-tree.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/gallery-breadcrumbs-tooltip/gallery-breadcrumbs-tooltip.mjs +4 -4
- package/esm2022/lib/components/pdf-viewer/pdf-viewer.mjs +31 -0
- package/esm2022/lib/components/scheda-dropdown/scheda-dropdown.mjs +26 -0
- package/{esm2020 → esm2022}/lib/components/scheda-image-navigator/scheda-image-navigator.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/scheda-search/scheda-search.mjs +4 -4
- package/esm2022/lib/components/smart-breadcrumbs/smart-breadcrumbs.mjs +82 -0
- package/esm2022/lib/config/apollo.config.mjs +738 -0
- package/esm2022/lib/data-sources/autocomplete-wrapper.ds.mjs +48 -0
- package/esm2022/lib/data-sources/aw-facets-wrapper.ds.mjs +162 -0
- package/esm2022/lib/data-sources/bubble-chart.ds.mjs +95 -0
- package/esm2022/lib/data-sources/carousel.ds.mjs +74 -0
- package/esm2022/lib/data-sources/entita-nav.ds.mjs +74 -0
- package/esm2022/lib/data-sources/extended-tree.ds.mjs +157 -0
- package/esm2022/lib/data-sources/gallery-results.ds.mjs +103 -0
- package/esm2022/lib/data-sources/home-autocomplete.ds.mjs +80 -0
- package/esm2022/lib/data-sources/home-facets-wrapper.ds.mjs +190 -0
- package/esm2022/lib/data-sources/linked-objects.ds.mjs +219 -0
- package/{esm2020 → esm2022}/lib/data-sources/map.ds.mjs +1 -1
- package/{esm2020 → esm2022}/lib/data-sources/related-entities.ds.mjs +2 -2
- package/{esm2020 → esm2022}/lib/data-sources/scheda-breadcrumbs.ds.mjs +1 -1
- package/{esm2020 → esm2022}/lib/data-sources/scheda-dropdown.ds.mjs +1 -1
- package/esm2022/lib/data-sources/scheda-image-navigator.ds.mjs +82 -0
- package/{esm2020 → esm2022}/lib/data-sources/scheda-image.ds.mjs +1 -1
- package/esm2022/lib/data-sources/scheda-pdf.ds.mjs +54 -0
- package/esm2022/lib/data-sources/scheda-search.ds.mjs +141 -0
- package/{esm2020 → esm2022}/lib/data-sources/sidebar-header.ds.mjs +1 -1
- package/esm2022/lib/data-sources/timeline.ds.mjs +106 -0
- package/esm2022/lib/data-sources/tree.ds.mjs +154 -0
- package/esm2022/lib/event-handlers/autocomplete-wrapper.eh.mjs +18 -0
- package/esm2022/lib/event-handlers/aw-facets-wrapper.eh.mjs +88 -0
- package/esm2022/lib/event-handlers/bubble-chart.eh.mjs +98 -0
- package/esm2022/lib/event-handlers/chart-tippy.eh.mjs +64 -0
- package/{esm2020 → esm2022}/lib/event-handlers/entita-nav.eh.mjs +1 -1
- package/esm2022/lib/event-handlers/extended-tree.eh.mjs +23 -0
- package/esm2022/lib/event-handlers/gallery-results.eh.mjs +38 -0
- package/esm2022/lib/event-handlers/hero.eh.mjs +25 -0
- package/{esm2020 → esm2022}/lib/event-handlers/home-autocomplete.eh.mjs +1 -1
- package/esm2022/lib/event-handlers/home-facets-wrapper.eh.mjs +125 -0
- package/{esm2020 → esm2022}/lib/event-handlers/home-item-tags-wrapper.eh.mjs +1 -1
- package/esm2022/lib/event-handlers/linked-objects.eh.mjs +60 -0
- package/esm2022/lib/event-handlers/map.eh.mjs +23 -0
- package/{esm2020 → esm2022}/lib/event-handlers/scheda-breadcrumbs.eh.mjs +1 -1
- package/esm2022/lib/event-handlers/scheda-dropdown.eh.mjs +17 -0
- package/esm2022/lib/event-handlers/scheda-image-navigator.eh.mjs +18 -0
- package/esm2022/lib/event-handlers/scheda-pdf.eh.mjs +14 -0
- package/{esm2020 → esm2022}/lib/event-handlers/scheda-search.eh.mjs +1 -1
- package/{esm2020 → esm2022}/lib/event-handlers/sidebar-header.eh.mjs +1 -1
- package/esm2022/lib/event-handlers/timeline.eh.mjs +46 -0
- package/esm2022/lib/event-handlers/tree.eh.mjs +119 -0
- package/esm2022/lib/helpers/metadata.helper.mjs +89 -0
- package/esm2022/lib/helpers/node.helper.mjs +14 -0
- package/esm2022/lib/helpers/title.helper.mjs +12 -0
- package/esm2022/lib/layouts/collection-layout/collection-layout.ds.mjs +185 -0
- package/esm2022/lib/layouts/collection-layout/collection-layout.eh.mjs +27 -0
- package/{esm2020 → esm2022}/lib/layouts/collection-layout/collection-layout.mjs +5 -5
- package/esm2022/lib/layouts/entita-layout/entita-layout.ds.mjs +320 -0
- package/esm2022/lib/layouts/entita-layout/entita-layout.eh.mjs +119 -0
- package/{esm2020 → esm2022}/lib/layouts/entita-layout/entita-layout.mjs +5 -5
- package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-facets.config.mjs +3 -3
- package/esm2022/lib/layouts/gallery-layout/gallery-layout.ds.mjs +48 -0
- package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-layout.mjs +5 -5
- package/esm2022/lib/layouts/home-layout/home-layout.ds.mjs +298 -0
- package/esm2022/lib/layouts/home-layout/home-layout.eh.mjs +245 -0
- package/{esm2020 → esm2022}/lib/layouts/home-layout/home-layout.mjs +5 -5
- package/esm2022/lib/layouts/map-layout/map-layout.ds.mjs +122 -0
- package/esm2022/lib/layouts/map-layout/map-layout.eh.mjs +44 -0
- package/{esm2020 → esm2022}/lib/layouts/map-layout/map-layout.mjs +5 -5
- package/esm2022/lib/layouts/scheda-layout/scheda-layout.ds.mjs +472 -0
- package/esm2022/lib/layouts/scheda-layout/scheda-layout.eh.mjs +347 -0
- package/{esm2020 → esm2022}/lib/layouts/scheda-layout/scheda-layout.mjs +5 -5
- package/{esm2020 → esm2022}/lib/layouts/search-layout/search-facets.config.mjs +3 -3
- package/esm2022/lib/layouts/search-layout/search-layout.ds.mjs +306 -0
- package/esm2022/lib/layouts/search-layout/search-layout.eh.mjs +175 -0
- package/{esm2020 → esm2022}/lib/layouts/search-layout/search-layout.mjs +5 -5
- package/esm2022/lib/layouts/timeline-layout/timeline-layout.ds.mjs +143 -0
- package/esm2022/lib/layouts/timeline-layout/timeline-layout.eh.mjs +41 -0
- package/{esm2020 → esm2022}/lib/layouts/timeline-layout/timeline-layout.mjs +5 -5
- package/{esm2020 → esm2022}/lib/n7-boilerplate-arianna.module.mjs +48 -48
- package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/aw-facet-input-checkbox.mjs +1 -1
- package/esm2022/lib/search/aw-facet-inputs/aw-facet-input-link.mjs +89 -0
- package/esm2022/lib/search/aw-facet-inputs/aw-facet-input.mjs +30 -0
- package/esm2022/lib/search/aw-search.model.mjs +331 -0
- package/esm2022/lib/search/aw-search.service.mjs +42 -0
- package/esm2022/lib/search/entity-links.helper.mjs +126 -0
- package/{fesm2020 → fesm2022}/net7-boilerplate-arianna.mjs +170 -159
- package/fesm2022/net7-boilerplate-arianna.mjs.map +1 -0
- package/lib/components/aw-facets-wrapper/aw-facets-wrapper.d.ts +1 -1
- package/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.d.ts +1 -1
- package/lib/components/chart-tippy/chart-tippy.d.ts +1 -1
- package/lib/components/extended-tree/extended-tree.d.ts +2 -2
- package/lib/components/gallery-breadcrumbs-tooltip/gallery-breadcrumbs-tooltip.d.ts +2 -2
- package/lib/components/pdf-viewer/pdf-viewer.d.ts +3 -3
- package/lib/components/scheda-dropdown/scheda-dropdown.d.ts +2 -2
- package/lib/components/scheda-image-navigator/scheda-image-navigator.d.ts +2 -2
- package/lib/components/scheda-search/scheda-search.d.ts +2 -2
- package/lib/components/smart-breadcrumbs/smart-breadcrumbs.d.ts +1 -1
- package/lib/config-types/arianna/app.d.ts +4 -4
- package/lib/config-types/arianna/layouts.d.ts +1 -1
- package/lib/data-sources/carousel.ds.d.ts +2 -2
- package/lib/data-sources/extended-tree.ds.d.ts +2 -2
- package/lib/layouts/collection-layout/collection-layout.d.ts +1 -1
- package/lib/layouts/collection-layout/collection-layout.types.d.ts +2 -2
- package/lib/layouts/entita-layout/entita-layout.d.ts +1 -1
- package/lib/layouts/entita-layout/entita-layout.types.d.ts +2 -2
- package/lib/layouts/gallery-layout/gallery-layout.d.ts +1 -1
- package/lib/layouts/home-layout/home-layout.d.ts +1 -1
- package/lib/layouts/map-layout/map-layout.d.ts +1 -1
- package/lib/layouts/map-layout/map-layout.ds.d.ts +1 -1
- package/lib/layouts/scheda-layout/scheda-layout.d.ts +1 -1
- package/lib/layouts/search-layout/search-layout.d.ts +1 -1
- package/lib/layouts/search-layout/search-layout.ds.d.ts +1 -1
- package/lib/layouts/timeline-layout/timeline-layout.d.ts +1 -1
- package/lib/layouts/timeline-layout/timeline-layout.ds.d.ts +1 -1
- package/lib/search/aw-search.model.d.ts +3 -3
- package/package.json +5 -11
- package/esm2020/lib/components/aw-facets-wrapper/aw-facets-wrapper.mjs +0 -29
- package/esm2020/lib/components/pdf-viewer/pdf-viewer.mjs +0 -31
- package/esm2020/lib/components/scheda-dropdown/scheda-dropdown.mjs +0 -26
- package/esm2020/lib/components/smart-breadcrumbs/smart-breadcrumbs.mjs +0 -82
- package/esm2020/lib/config/apollo.config.mjs +0 -738
- package/esm2020/lib/data-sources/autocomplete-wrapper.ds.mjs +0 -48
- package/esm2020/lib/data-sources/aw-facets-wrapper.ds.mjs +0 -162
- package/esm2020/lib/data-sources/bubble-chart.ds.mjs +0 -95
- package/esm2020/lib/data-sources/carousel.ds.mjs +0 -74
- package/esm2020/lib/data-sources/entita-nav.ds.mjs +0 -74
- package/esm2020/lib/data-sources/extended-tree.ds.mjs +0 -157
- package/esm2020/lib/data-sources/gallery-results.ds.mjs +0 -103
- package/esm2020/lib/data-sources/home-autocomplete.ds.mjs +0 -80
- package/esm2020/lib/data-sources/home-facets-wrapper.ds.mjs +0 -190
- package/esm2020/lib/data-sources/linked-objects.ds.mjs +0 -219
- package/esm2020/lib/data-sources/scheda-image-navigator.ds.mjs +0 -82
- package/esm2020/lib/data-sources/scheda-pdf.ds.mjs +0 -54
- package/esm2020/lib/data-sources/scheda-search.ds.mjs +0 -141
- package/esm2020/lib/data-sources/timeline.ds.mjs +0 -106
- package/esm2020/lib/data-sources/tree.ds.mjs +0 -154
- package/esm2020/lib/event-handlers/autocomplete-wrapper.eh.mjs +0 -18
- package/esm2020/lib/event-handlers/aw-facets-wrapper.eh.mjs +0 -88
- package/esm2020/lib/event-handlers/bubble-chart.eh.mjs +0 -98
- package/esm2020/lib/event-handlers/chart-tippy.eh.mjs +0 -64
- package/esm2020/lib/event-handlers/extended-tree.eh.mjs +0 -23
- package/esm2020/lib/event-handlers/gallery-results.eh.mjs +0 -38
- package/esm2020/lib/event-handlers/hero.eh.mjs +0 -25
- package/esm2020/lib/event-handlers/home-facets-wrapper.eh.mjs +0 -125
- package/esm2020/lib/event-handlers/linked-objects.eh.mjs +0 -60
- package/esm2020/lib/event-handlers/map.eh.mjs +0 -23
- package/esm2020/lib/event-handlers/scheda-dropdown.eh.mjs +0 -17
- package/esm2020/lib/event-handlers/scheda-image-navigator.eh.mjs +0 -18
- package/esm2020/lib/event-handlers/scheda-pdf.eh.mjs +0 -14
- package/esm2020/lib/event-handlers/timeline.eh.mjs +0 -46
- package/esm2020/lib/event-handlers/tree.eh.mjs +0 -119
- package/esm2020/lib/helpers/metadata.helper.mjs +0 -89
- package/esm2020/lib/helpers/node.helper.mjs +0 -14
- package/esm2020/lib/helpers/title.helper.mjs +0 -12
- package/esm2020/lib/layouts/collection-layout/collection-layout.ds.mjs +0 -185
- package/esm2020/lib/layouts/collection-layout/collection-layout.eh.mjs +0 -27
- package/esm2020/lib/layouts/entita-layout/entita-layout.ds.mjs +0 -320
- package/esm2020/lib/layouts/entita-layout/entita-layout.eh.mjs +0 -119
- package/esm2020/lib/layouts/gallery-layout/gallery-layout.ds.mjs +0 -48
- package/esm2020/lib/layouts/home-layout/home-layout.ds.mjs +0 -298
- package/esm2020/lib/layouts/home-layout/home-layout.eh.mjs +0 -245
- package/esm2020/lib/layouts/map-layout/map-layout.ds.mjs +0 -122
- package/esm2020/lib/layouts/map-layout/map-layout.eh.mjs +0 -44
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +0 -472
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.eh.mjs +0 -347
- package/esm2020/lib/layouts/search-layout/search-layout.ds.mjs +0 -306
- package/esm2020/lib/layouts/search-layout/search-layout.eh.mjs +0 -175
- package/esm2020/lib/layouts/timeline-layout/timeline-layout.ds.mjs +0 -143
- package/esm2020/lib/layouts/timeline-layout/timeline-layout.eh.mjs +0 -41
- package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-link.mjs +0 -89
- package/esm2020/lib/search/aw-facet-inputs/aw-facet-input.mjs +0 -30
- package/esm2020/lib/search/aw-search.model.mjs +0 -331
- package/esm2020/lib/search/aw-search.service.mjs +0 -42
- package/esm2020/lib/search/entity-links.helper.mjs +0 -126
- package/fesm2015/net7-boilerplate-arianna.mjs +0 -8551
- package/fesm2015/net7-boilerplate-arianna.mjs.map +0 -1
- package/fesm2020/net7-boilerplate-arianna.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/config-types/arianna/app.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/config-types/arianna/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/config-types/arianna/layouts.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/config-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/chart-tippy.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/entita-metadata-viewer.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/hero.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/home-hero-patrimonio.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/home-item-tags-wrapper.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/scheda-inner-title.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/scheda-metadata.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/search-layout-tabs.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/table.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/event-handlers/home-hero-patrimonio.eh.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/event-handlers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/event-handlers/search-layout-tabs.eh.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/event-handlers/table.eh.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/collection-layout/collection-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/collection-layout/collection-layout.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/entita-layout/entita-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/entita-layout/entita-layout.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-layout.eh.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/home-layout/home-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/map-layout/map-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/scheda-layout/scheda-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/search-layout/search-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/timeline-layout/timeline-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/aw-facet-input-select.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/aw-facet-input-text.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/net7-boilerplate-arianna.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
export class AwAutocompleteWrapperDS extends DataSource {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
/**
|
|
6
|
+
* Given a string, it trims it to the specified length.
|
|
7
|
+
*
|
|
8
|
+
* @param string an input string
|
|
9
|
+
* @param limit character limit
|
|
10
|
+
* @returns the resulting trimmed string
|
|
11
|
+
*/
|
|
12
|
+
this.stringTrim = (string, limit) => {
|
|
13
|
+
if (string.length > limit) {
|
|
14
|
+
return `${string.slice(0, limit)}…`;
|
|
15
|
+
}
|
|
16
|
+
return string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
transform(data) {
|
|
20
|
+
const { response } = data;
|
|
21
|
+
if (!response) {
|
|
22
|
+
return { suggestion: [], loading: true };
|
|
23
|
+
}
|
|
24
|
+
const suggestion = [];
|
|
25
|
+
const { config } = this.options;
|
|
26
|
+
const maxLength = (config.get('home-layout')['max-item-length'] || 20);
|
|
27
|
+
const fResults = response.results.filter((el) => typeof el.entity === 'object');
|
|
28
|
+
// eslint-disable-next-line consistent-return
|
|
29
|
+
fResults.forEach((el) => {
|
|
30
|
+
if (el.entity.id === 'fallback') { // build and return fallback data
|
|
31
|
+
suggestion.push({
|
|
32
|
+
text: el.entity.label,
|
|
33
|
+
payload: 'fallback-simple-autocomplete',
|
|
34
|
+
});
|
|
35
|
+
return { suggestion };
|
|
36
|
+
}
|
|
37
|
+
const text = this.stringTrim(el.entity.label, maxLength);
|
|
38
|
+
suggestion.push({
|
|
39
|
+
text,
|
|
40
|
+
anchor: {
|
|
41
|
+
payload: el.entity.id,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
return { suggestion };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2F1dG9jb21wbGV0ZS13cmFwcGVyLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFVBQVU7SUFBdkQ7O1FBaUNFOzs7Ozs7V0FNRztRQUNLLGVBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNyQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3RDLENBQUM7WUFBQyxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUE7SUFDSCxDQUFDO0lBNUNXLFNBQVMsQ0FBQyxJQUFJO1FBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQztRQUVoRiw2Q0FBNkM7UUFDN0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssVUFBVSxFQUFFLENBQUMsQ0FBQyxpQ0FBaUM7Z0JBQ2xFLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSztvQkFDckIsT0FBTyxFQUFFLDhCQUE4QjtpQkFDeEMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUN4QixDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RCxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNkLElBQUk7Z0JBQ0osTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQ3RCO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQWNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQXdBdXRvY29tcGxldGVXcmFwcGVyRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgY29uc3QgeyByZXNwb25zZSB9ID0gZGF0YTtcblxuICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB7IHN1Z2dlc3Rpb246IFtdLCBsb2FkaW5nOiB0cnVlIH07XG4gICAgfVxuXG4gICAgY29uc3Qgc3VnZ2VzdGlvbiA9IFtdO1xuICAgIGNvbnN0IHsgY29uZmlnIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgbWF4TGVuZ3RoID0gKGNvbmZpZy5nZXQoJ2hvbWUtbGF5b3V0JylbJ21heC1pdGVtLWxlbmd0aCddIHx8IDIwKTtcbiAgICBjb25zdCBmUmVzdWx0cyA9IHJlc3BvbnNlLnJlc3VsdHMuZmlsdGVyKChlbCkgPT4gdHlwZW9mIGVsLmVudGl0eSA9PT0gJ29iamVjdCcpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gICAgZlJlc3VsdHMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgIGlmIChlbC5lbnRpdHkuaWQgPT09ICdmYWxsYmFjaycpIHsgLy8gYnVpbGQgYW5kIHJldHVybiBmYWxsYmFjayBkYXRhXG4gICAgICAgIHN1Z2dlc3Rpb24ucHVzaCh7XG4gICAgICAgICAgdGV4dDogZWwuZW50aXR5LmxhYmVsLFxuICAgICAgICAgIHBheWxvYWQ6ICdmYWxsYmFjay1zaW1wbGUtYXV0b2NvbXBsZXRlJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IHN1Z2dlc3Rpb24gfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnN0cmluZ1RyaW0oZWwuZW50aXR5LmxhYmVsLCBtYXhMZW5ndGgpO1xuICAgICAgc3VnZ2VzdGlvbi5wdXNoKHtcbiAgICAgICAgdGV4dCxcbiAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgcGF5bG9hZDogZWwuZW50aXR5LmlkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgc3VnZ2VzdGlvbiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgc3RyaW5nLCBpdCB0cmltcyBpdCB0byB0aGUgc3BlY2lmaWVkIGxlbmd0aC5cbiAgICpcbiAgICogQHBhcmFtIHN0cmluZyBhbiBpbnB1dCBzdHJpbmdcbiAgICogQHBhcmFtIGxpbWl0IGNoYXJhY3RlciBsaW1pdFxuICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0aW5nIHRyaW1tZWQgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIHN0cmluZ1RyaW0gPSAoc3RyaW5nLCBsaW1pdCkgPT4ge1xuICAgIGlmIChzdHJpbmcubGVuZ3RoID4gbGltaXQpIHtcbiAgICAgIHJldHVybiBgJHtzdHJpbmcuc2xpY2UoMCwgbGltaXQpfeKApmA7XG4gICAgfSByZXR1cm4gc3RyaW5nO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
import entityLinksHelper from '../search/entity-links.helper';
|
|
3
|
+
const HEADER_ICON_OPEN = 'n7-icon-angle-down';
|
|
4
|
+
const HEADER_ICON_CLOSE = 'n7-icon-angle-right';
|
|
5
|
+
export class AwFacetsWrapperDS extends DataSource {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.getRequestParams = () => this.searchModel.getRequestParams();
|
|
9
|
+
this.filtersAsQueryParams = (filters) => this.searchModel.filtersAsQueryParams(filters);
|
|
10
|
+
this.updateFiltersFromQueryParams = (queryParams) => {
|
|
11
|
+
this.searchModel.updateFiltersFromQueryParams(queryParams);
|
|
12
|
+
};
|
|
13
|
+
this.getInputByFacetId = (facetId) => this.searchModel.getInputByFacetId(facetId);
|
|
14
|
+
this.filterTarget = (target) => {
|
|
15
|
+
this.searchModel.filterTarget(target);
|
|
16
|
+
};
|
|
17
|
+
this.updateInputsFromFilters = () => {
|
|
18
|
+
this.searchModel.updateInputsFromFilters();
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
transform(data) {
|
|
22
|
+
if (!this.searchModel) {
|
|
23
|
+
this.searchModel = data.searchModel;
|
|
24
|
+
entityLinksHelper.initPagination(this.searchModel);
|
|
25
|
+
}
|
|
26
|
+
const id = this.searchModel.getId();
|
|
27
|
+
const fields = this.searchModel.getFields();
|
|
28
|
+
const groups = [];
|
|
29
|
+
fields.forEach((fieldConfig, fieldIndex) => {
|
|
30
|
+
const groupId = `group-${id}-${fieldIndex}`;
|
|
31
|
+
// header config
|
|
32
|
+
const header = this._headerConfig(fieldConfig.header, groupId);
|
|
33
|
+
// inputs config
|
|
34
|
+
const sections = [];
|
|
35
|
+
this.searchModel.getInputs()
|
|
36
|
+
.filter((input) => input.getSectionIndex() === fieldIndex)
|
|
37
|
+
.map((input) => {
|
|
38
|
+
input.update();
|
|
39
|
+
return {
|
|
40
|
+
facetId: input.getFacetId(),
|
|
41
|
+
type: input.getType(),
|
|
42
|
+
output: input.getOutput(),
|
|
43
|
+
};
|
|
44
|
+
})
|
|
45
|
+
.forEach(({ type, output, facetId }) => {
|
|
46
|
+
sections.push({
|
|
47
|
+
classes: this._getSectionClasses(type),
|
|
48
|
+
inputs: Array.isArray(output) ? output : [output],
|
|
49
|
+
_meta: {
|
|
50
|
+
facetId,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
groups.push({
|
|
55
|
+
header,
|
|
56
|
+
facet: { sections },
|
|
57
|
+
classes: `n7-facets-wrapper__${groupId}`,
|
|
58
|
+
isOpen: true,
|
|
59
|
+
_meta: {
|
|
60
|
+
groupId,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
return {
|
|
65
|
+
groups,
|
|
66
|
+
classes: `n7-facets-wrapper__${this.searchModel.getId()}`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
toggleGroup({ eventPayload }) {
|
|
70
|
+
this.output.groups.forEach((group) => {
|
|
71
|
+
if (group._meta.groupId === eventPayload.groupId) {
|
|
72
|
+
group.isOpen = !group.isOpen;
|
|
73
|
+
group.header.iconRight = group.isOpen ? HEADER_ICON_OPEN : HEADER_ICON_CLOSE;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
onFacetChange({ eventPayload }) {
|
|
78
|
+
const { facetId, source, trigger } = eventPayload.inputPayload;
|
|
79
|
+
const filter = this.searchModel.getFiltersByFacetId(facetId)[0] || { value: null };
|
|
80
|
+
const filterValue = filter.value;
|
|
81
|
+
let remove = false;
|
|
82
|
+
let value = eventPayload.inputPayload.value || eventPayload.value;
|
|
83
|
+
// normalize
|
|
84
|
+
value = `${value}`;
|
|
85
|
+
// remove control
|
|
86
|
+
if (Array.isArray(filterValue)) {
|
|
87
|
+
remove = filterValue.indexOf(value) !== -1;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
remove = filterValue === value;
|
|
91
|
+
}
|
|
92
|
+
// input text control
|
|
93
|
+
// TODO: gestire i casi enter / icon click nel input text
|
|
94
|
+
if (source === 'input-text' && ['enter', 'icon'].indexOf(trigger) !== -1)
|
|
95
|
+
return;
|
|
96
|
+
this.searchModel.updateFilter(facetId, value, remove);
|
|
97
|
+
this.searchModel.updateInputsFromFilters();
|
|
98
|
+
}
|
|
99
|
+
updateFilteredTarget(target) {
|
|
100
|
+
if (!this.searchModel) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const input = this.searchModel.getInputByFacetId(target);
|
|
104
|
+
this.output.groups
|
|
105
|
+
.map((group) => group.facet)
|
|
106
|
+
.map((facet) => facet.sections)
|
|
107
|
+
.forEach((sections) => {
|
|
108
|
+
sections.forEach((section) => {
|
|
109
|
+
if (section._meta.facetId === target) {
|
|
110
|
+
const inputOutput = input.getOutput();
|
|
111
|
+
section.inputs = Array.isArray(inputOutput) ? inputOutput : [inputOutput];
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
updateInputLinks() {
|
|
117
|
+
if (!this.searchModel) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const linksFacetIds = this.searchModel.getInputs()
|
|
121
|
+
.filter((input) => input.getType() === 'link')
|
|
122
|
+
.map((input) => input.getFacetId());
|
|
123
|
+
this.output.groups
|
|
124
|
+
.map((group) => group.facet)
|
|
125
|
+
.map((facet) => facet.sections)
|
|
126
|
+
.forEach((sections) => {
|
|
127
|
+
sections.forEach((section) => {
|
|
128
|
+
if (linksFacetIds.indexOf(section._meta.facetId) !== -1) {
|
|
129
|
+
const input = this.searchModel.getInputByFacetId(section._meta.facetId);
|
|
130
|
+
input.update();
|
|
131
|
+
const inputOutput = input.getOutput();
|
|
132
|
+
section.inputs = Array.isArray(inputOutput) ? inputOutput : [inputOutput];
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
_getSectionClasses(type) {
|
|
138
|
+
const classesMap = {
|
|
139
|
+
text: 'text',
|
|
140
|
+
checkbox: 'checkboxes',
|
|
141
|
+
link: 'links',
|
|
142
|
+
select: 'select',
|
|
143
|
+
};
|
|
144
|
+
return `n7-facet__section-input-${classesMap[type]}`;
|
|
145
|
+
}
|
|
146
|
+
_headerConfig(header, groupId) {
|
|
147
|
+
return header ? {
|
|
148
|
+
text: header.label,
|
|
149
|
+
iconRight: HEADER_ICON_OPEN,
|
|
150
|
+
classes: header.classes,
|
|
151
|
+
payload: {
|
|
152
|
+
source: 'group-header',
|
|
153
|
+
id: `${groupId}-header`,
|
|
154
|
+
groupId,
|
|
155
|
+
},
|
|
156
|
+
_meta: {
|
|
157
|
+
id: `${groupId}-header`,
|
|
158
|
+
},
|
|
159
|
+
} : null;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXRzLXdyYXBwZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2F3LWZhY2V0cy13cmFwcGVyLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxpQkFBaUIsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDO0FBQzlDLE1BQU0saUJBQWlCLEdBQUcscUJBQXFCLENBQUM7QUFFaEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFVBQVU7SUFBakQ7O1FBdUlTLHFCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUU3RCx5QkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRixpQ0FBNEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDO1FBRUssc0JBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0UsaUJBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUVLLDRCQUF1QixHQUFHLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFF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Q0FBQztJQUN2RCxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPO1FBQ25DLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNkLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSztZQUNsQixTQUFTLEVBQUUsZ0JBQWdCO1lBQzNCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLEVBQUUsRUFBRSxHQUFHLE9BQU8sU0FBUztnQkFDdkIsT0FBTzthQUNSO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLEVBQUUsRUFBRSxHQUFHLE9BQU8sU0FBUzthQUN4QjtTQUNGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IEF3U2VhcmNoTW9kZWwgfSBmcm9tICcuLi9zZWFyY2gvYXctc2VhcmNoLm1vZGVsJztcbmltcG9ydCBlbnRpdHlMaW5rc0hlbHBlciBmcm9tICcuLi9zZWFyY2gvZW50aXR5LWxpbmtzLmhlbHBlcic7XG5cbmNvbnN0IEhFQURFUl9JQ09OX09QRU4gPSAnbjctaWNvbi1hbmdsZS1kb3duJztcbmNvbnN0IEhFQURFUl9JQ09OX0NMT1NFID0gJ243LWljb24tYW5nbGUtcmlnaHQnO1xuXG5leHBvcnQgY2xhc3MgQXdGYWNldHNXcmFwcGVyRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHVibGljIHNlYXJjaE1vZGVsOiBBd1NlYXJjaE1vZGVsO1xuXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oZGF0YSkge1xuICAgIGlmICghdGhpcy5zZWFyY2hNb2RlbCkge1xuICAgICAgdGhpcy5zZWFyY2hNb2RlbCA9IGRhdGEuc2VhcmNoTW9kZWw7XG4gICAgICBlbnRpdHlMaW5rc0hlbHBlci5pbml0UGFnaW5hdGlvbih0aGlzLnNlYXJjaE1vZGVsKTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHRoaXMuc2VhcmNoTW9kZWwuZ2V0SWQoKTtcbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLnNlYXJjaE1vZGVsLmdldEZpZWxkcygpO1xuXG4gICAgY29uc3QgZ3JvdXBzID0gW107XG5cbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWcsIGZpZWxkSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwSWQgPSBgZ3JvdXAtJHtpZH0tJHtmaWVsZEluZGV4fWA7XG5cbiAgICAgIC8vIGhlYWRlciBjb25maWdcbiAgICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuX2hlYWRlckNvbmZpZyhmaWVsZENvbmZpZy5oZWFkZXIsIGdyb3VwSWQpO1xuXG4gICAgICAvLyBpbnB1dHMgY29uZmlnXG4gICAgICBjb25zdCBzZWN0aW9ucyA9IFtdO1xuICAgICAgdGhpcy5zZWFyY2hNb2RlbC5nZXRJbnB1dHMoKVxuICAgICAgICAuZmlsdGVyKChpbnB1dCkgPT4gaW5wdXQuZ2V0U2VjdGlvbkluZGV4KCkgPT09IGZpZWxkSW5kZXgpXG4gICAgICAgIC5tYXAoKGlucHV0KSA9PiB7XG4gICAgICAgICAgaW5wdXQudXBkYXRlKCk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZhY2V0SWQ6IGlucHV0LmdldEZhY2V0SWQoKSxcbiAgICAgICAgICAgIHR5cGU6IGlucHV0LmdldFR5cGUoKSxcbiAgICAgICAgICAgIG91dHB1dDogaW5wdXQuZ2V0T3V0cHV0KCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goKHsgdHlwZSwgb3V0cHV0LCBmYWNldElkIH0pID0+IHtcbiAgICAgICAgICBzZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIGNsYXNzZXM6IHRoaXMuX2dldFNlY3Rpb25DbGFzc2VzKHR5cGUpLFxuICAgICAgICAgICAgaW5wdXRzOiBBcnJheS5pc0FycmF5KG91dHB1dCkgPyBvdXRwdXQgOiBbb3V0cHV0XSxcbiAgICAgICAgICAgIF9tZXRhOiB7XG4gICAgICAgICAgICAgIGZhY2V0SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgZ3JvdXBzLnB1c2goe1xuICAgICAgICBoZWFkZXIsXG4gICAgICAgIGZhY2V0OiB7IHNlY3Rpb25zIH0sXG4gICAgICAgIGNsYXNzZXM6IGBuNy1mYWNldHMtd3JhcHBlcl9fJHtncm91cElkfWAsXG4gICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgX21ldGE6IHtcbiAgICAgICAgICBncm91cElkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ3JvdXBzLFxuICAgICAgY2xhc3NlczogYG43LWZhY2V0cy13cmFwcGVyX18ke3RoaXMuc2VhcmNoTW9kZWwuZ2V0SWQoKX1gLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlR3JvdXAoeyBldmVudFBheWxvYWQgfSkge1xuICAgIHRoaXMub3V0cHV0Lmdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgaWYgKGdyb3VwLl9tZXRhLmdyb3VwSWQgPT09IGV2ZW50UGF5bG9hZC5ncm91cElkKSB7XG4gICAgICAgIGdyb3VwLmlzT3BlbiA9ICFncm91cC5pc09wZW47XG4gICAgICAgIGdyb3VwLmhlYWRlci5pY29uUmlnaHQgPSBncm91cC5pc09wZW4gPyBIRUFERVJfSUNPTl9PUEVOIDogSEVBREVSX0lDT05fQ0xPU0U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25GYWNldENoYW5nZSh7IGV2ZW50UGF5bG9hZCB9KSB7XG4gICAgY29uc3QgeyBmYWNldElkLCBzb3VyY2UsIHRyaWdnZXIgfSA9IGV2ZW50UGF5bG9hZC5pbnB1dFBheWxvYWQ7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5zZWFyY2hNb2RlbC5nZXRGaWx0ZXJzQnlGYWNldElkKGZhY2V0SWQpWzBdIHx8IHsgdmFsdWU6IG51bGwgfTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGZpbHRlci52YWx1ZTtcblxuICAgIGxldCByZW1vdmUgPSBmYWxzZTtcbiAgICBsZXQgdmFsdWU6IGFueSA9IGV2ZW50UGF5bG9hZC5pbnB1dFBheWxvYWQudmFsdWUgfHwgZXZlbnRQYXlsb2FkLnZhbHVlO1xuXG4gICAgLy8gbm9ybWFsaXplXG4gICAgdmFsdWUgPSBgJHt2YWx1ZX1gO1xuXG4gICAgLy8gcmVtb3ZlIGNvbnRyb2xcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgIHJlbW92ZSA9IGZpbHRlclZhbHVlLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVtb3ZlID0gZmlsdGVyVmFsdWUgPT09IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIGlucHV0IHRleHQgY29udHJvbFxuICAgIC8vIFRPRE86IGdlc3RpcmUgaSBjYXNpIGVudGVyIC8gaWNvbiBjbGljayBuZWwgaW5wdXQgdGV4dFxuICAgIGlmIChzb3VyY2UgPT09ICdpbnB1dC10ZXh0JyAmJiBbJ2VudGVyJywgJ2ljb24nXS5pbmRleE9mKHRyaWdnZXIpICE9PSAtMSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZWFyY2hNb2RlbC51cGRhdGVGaWx0ZXIoZmFjZXRJZCwgdmFsdWUsIHJlbW92ZSk7XG4gICAgdGhpcy5zZWFyY2hNb2RlbC51cGRhdGVJbnB1dHNGcm9tRmlsdGVycygpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpbHRlcmVkVGFyZ2V0KHRhcmdldCkge1xuICAgIGlmICghdGhpcy5zZWFyY2hNb2RlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuc2VhcmNoTW9kZWwuZ2V0SW5wdXRCeUZhY2V0SWQodGFyZ2V0KTtcbiAgICB0aGlzLm91dHB1dC5ncm91cHNcbiAgICAgIC5tYXAoKGdyb3VwKSA9PiBncm91cC5mYWNldClcbiAgICAgIC5tYXAoKGZhY2V0KSA9PiBmYWNldC5zZWN0aW9ucylcbiAgICAgIC5mb3JFYWNoKChzZWN0aW9ucykgPT4ge1xuICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKHNlY3Rpb24uX21ldGEuZmFjZXRJZCA9PT0gdGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dE91dHB1dCA9IGlucHV0LmdldE91dHB1dCgpO1xuICAgICAgICAgICAgc2VjdGlvbi5pbnB1dHMgPSBBcnJheS5pc0FycmF5KGlucHV0T3V0cHV0KSA/IGlucHV0T3V0cHV0IDogW2lucHV0T3V0cHV0XTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSW5wdXRMaW5rcygpIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoTW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbGlua3NGYWNldElkcyA9IHRoaXMuc2VhcmNoTW9kZWwuZ2V0SW5wdXRzKClcbiAgICAgIC5maWx0ZXIoKGlucHV0KSA9PiBpbnB1dC5nZXRUeXBlKCkgPT09ICdsaW5rJylcbiAgICAgIC5tYXAoKGlucHV0KSA9PiBpbnB1dC5nZXRGYWNldElkKCkpO1xuXG4gICAgdGhpcy5vdXRwdXQuZ3JvdXBzXG4gICAgICAubWFwKChncm91cCkgPT4gZ3JvdXAuZmFjZXQpXG4gICAgICAubWFwKChmYWNldCkgPT4gZmFjZXQuc2VjdGlvbnMpXG4gICAgICAuZm9yRWFjaCgoc2VjdGlvbnMpID0+IHtcbiAgICAgICAgc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChsaW5rc0ZhY2V0SWRzLmluZGV4T2Yoc2VjdGlvbi5fbWV0YS5mYWNldElkKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5zZWFyY2hNb2RlbC5nZXRJbnB1dEJ5RmFjZXRJZChzZWN0aW9uLl9tZXRhLmZhY2V0SWQpO1xuICAgICAgICAgICAgaW5wdXQudXBkYXRlKCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dE91dHB1dCA9IGlucHV0LmdldE91dHB1dCgpO1xuICAgICAgICAgICAgc2VjdGlvbi5pbnB1dHMgPSBBcnJheS5pc0FycmF5KGlucHV0T3V0cHV0KSA/IGlucHV0T3V0cHV0IDogW2lucHV0T3V0cHV0XTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVxdWVzdFBhcmFtcyA9ICgpID0+IHRoaXMuc2VhcmNoTW9kZWwuZ2V0UmVxdWVzdFBhcmFtcygpO1xuXG4gIHB1YmxpYyBmaWx0ZXJzQXNRdWVyeVBhcmFtcyA9IChmaWx0ZXJzKSA9PiB0aGlzLnNlYXJjaE1vZGVsLmZpbHRlcnNBc1F1ZXJ5UGFyYW1zKGZpbHRlcnMpO1xuXG4gIHB1YmxpYyB1cGRhdGVGaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1zID0gKHF1ZXJ5UGFyYW1zKSA9PiB7XG4gICAgdGhpcy5zZWFyY2hNb2RlbC51cGRhdGVGaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0SW5wdXRCeUZhY2V0SWQgPSAoZmFjZXRJZCkgPT4gdGhpcy5zZWFyY2hNb2RlbC5nZXRJbnB1dEJ5RmFjZXRJZChmYWNldElkKTtcblxuICBwdWJsaWMgZmlsdGVyVGFyZ2V0ID0gKHRhcmdldCkgPT4ge1xuICAgIHRoaXMuc2VhcmNoTW9kZWwuZmlsdGVyVGFyZ2V0KHRhcmdldCk7XG4gIH07XG5cbiAgcHVibGljIHVwZGF0ZUlucHV0c0Zyb21GaWx0ZXJzID0gKCkgPT4ge1xuICAgIHRoaXMuc2VhcmNoTW9kZWwudXBkYXRlSW5wdXRzRnJvbUZpbHRlcnMoKTtcbiAgfTtcblxuICBwcml2YXRlIF9nZXRTZWN0aW9uQ2xhc3Nlcyh0eXBlKSB7XG4gICAgY29uc3QgY2xhc3Nlc01hcCA9IHtcbiAgICAgIHRleHQ6ICd0ZXh0JyxcbiAgICAgIGNoZWNrYm94OiAnY2hlY2tib3hlcycsXG4gICAgICBsaW5rOiAnbGlua3MnLFxuICAgICAgc2VsZWN0OiAnc2VsZWN0JyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGBuNy1mYWNldF9fc2VjdGlvbi1pbnB1dC0ke2NsYXNzZXNNYXBbdHlwZV19YDtcbiAgfVxuXG4gIHByaXZhdGUgX2hlYWRlckNvbmZpZyhoZWFkZXIsIGdyb3VwSWQpIHtcbiAgICByZXR1cm4gaGVhZGVyID8ge1xuICAgICAgdGV4dDogaGVhZGVyLmxhYmVsLFxuICAgICAgaWNvblJpZ2h0OiBIRUFERVJfSUNPTl9PUEVOLFxuICAgICAgY2xhc3NlczogaGVhZGVyLmNsYXNzZXMsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHNvdXJjZTogJ2dyb3VwLWhlYWRlcicsXG4gICAgICAgIGlkOiBgJHtncm91cElkfS1oZWFkZXJgLFxuICAgICAgICBncm91cElkLFxuICAgICAgfSxcbiAgICAgIF9tZXRhOiB7XG4gICAgICAgIGlkOiBgJHtncm91cElkfS1oZWFkZXJgLFxuICAgICAgfSxcbiAgICB9IDogbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
export class AwBubbleChartDS extends DataSource {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.chartData = []; // data rendered into the graph
|
|
6
|
+
this.draw = null; // exposed component draw function to update the view
|
|
7
|
+
this.selected = []; // list of selected bubbles
|
|
8
|
+
this.filters = []; // list of active filters to show only some TypeOfEntity(s)
|
|
9
|
+
this.closedEyes = []; // array of the activated eye filters
|
|
10
|
+
this.tippyList = []; // list of tippy instances
|
|
11
|
+
this.updateChart = (res) => {
|
|
12
|
+
/*
|
|
13
|
+
Redraws the graph with the incoming data.
|
|
14
|
+
"res" should be Apollo's "response.entitiesData".
|
|
15
|
+
When res is passed as null, the chart is rendered with the previous data.
|
|
16
|
+
*/
|
|
17
|
+
let response = res;
|
|
18
|
+
if (res === null) {
|
|
19
|
+
response = this.chartData;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.chartData = res;
|
|
23
|
+
}
|
|
24
|
+
if (this.filters.length > 0) { // apply filters to the response
|
|
25
|
+
response = this.chartData.filter((el) => !this.filters.includes(el.entity.typeOfEntity.replace(/ /g, '-')));
|
|
26
|
+
}
|
|
27
|
+
if (!this.draw) {
|
|
28
|
+
this.update(this.smartSlice(response)); // component self-update
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.output.selected = this.selected;
|
|
32
|
+
this.output.data = this.smartSlice(response);
|
|
33
|
+
this.output.smallView.data = this.smartSlice(response, this.options.smallChartSize);
|
|
34
|
+
this.draw();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
this.smartSlice = (d, length) => {
|
|
38
|
+
const l = length || this.options.limit;
|
|
39
|
+
if (l && l < d.length) {
|
|
40
|
+
return d.slice(0, l);
|
|
41
|
+
}
|
|
42
|
+
return d;
|
|
43
|
+
};
|
|
44
|
+
this.handleBubbleClick = (payload) => {
|
|
45
|
+
/*
|
|
46
|
+
Toggles the selection of the clicked bubble.
|
|
47
|
+
*/
|
|
48
|
+
const id = payload;
|
|
49
|
+
if (this.selected.includes(id)) {
|
|
50
|
+
this.selected.splice(this.selected.indexOf(id), 1); // remove selection
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.selected.push(id); // add selection
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
transform(data) {
|
|
58
|
+
const { config, smallChartSize } = this.options;
|
|
59
|
+
const { fontRendering, transition, shuffle } = config.get('bubble-chart');
|
|
60
|
+
const domain = [];
|
|
61
|
+
const range = [];
|
|
62
|
+
const colorConfig = config.get('config-keys');
|
|
63
|
+
Object.keys(colorConfig).forEach((k) => {
|
|
64
|
+
domain.push(k.replace(/-/g, ' '));
|
|
65
|
+
range.push(((colorConfig[k] || {}).color || {}).hex);
|
|
66
|
+
});
|
|
67
|
+
const commonParams = {
|
|
68
|
+
containerId: 'bubbleChartContainer',
|
|
69
|
+
setDraw: (draw) => { this.draw = draw; },
|
|
70
|
+
colorMatch: { domain, range },
|
|
71
|
+
selected: this.selected,
|
|
72
|
+
sizeRange: [0.5, 500],
|
|
73
|
+
fontRendering,
|
|
74
|
+
height: 400,
|
|
75
|
+
width: 500,
|
|
76
|
+
transition,
|
|
77
|
+
shuffle,
|
|
78
|
+
};
|
|
79
|
+
/*
|
|
80
|
+
Two data streams are ouputted.
|
|
81
|
+
The default stream is for the normal visualization,
|
|
82
|
+
"smallView" is used for a compressed view of the same data.
|
|
83
|
+
*/
|
|
84
|
+
return {
|
|
85
|
+
...commonParams,
|
|
86
|
+
anchorData: { href: '/placeholder/' },
|
|
87
|
+
data: this.smartSlice(data),
|
|
88
|
+
smallView: {
|
|
89
|
+
...commonParams,
|
|
90
|
+
data: this.smartSlice(data, smallChartSize),
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlLWNoYXJ0LmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL2RhdGEtc291cmNlcy9idWJibGUtY2hhcnQuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVO0lBQS9DOztRQUNTLGNBQVMsR0FBUSxFQUFFLENBQUMsQ0FBQywrQkFBK0I7UUFFcEQsU0FBSSxHQUFRLElBQUksQ0FBQyxDQUFDLHFEQUFxRDtRQUV2RSxhQUFRLEdBQWEsRUFBRSxDQUFDLENBQUMsMkJBQTJCO1FBRXBELFlBQU8sR0FBVSxFQUFFLENBQUMsQ0FBQywyREFBMkQ7UUFFaEYsZUFBVSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztRQUU3RCxjQUFTLEdBQVUsRUFBRSxDQUFDLENBQUMsMEJBQTBCO1FBMEN4RCxnQkFBVyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEI7Ozs7Y0FJRTtZQUNGLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNuQixJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDNUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsZ0NBQWdDO2dCQUM3RCxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0s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LENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUNyQixhQUFhO1lBQ2IsTUFBTSxFQUFFLEdBQUc7WUFDWCxLQUFLLEVBQUUsR0FBRztZQUNWLFVBQVU7WUFDVixPQUFPO1NBQ1IsQ0FBQztRQUNGOzs7O1VBSUU7UUFDRixPQUFPO1lBQ0wsR0FBRyxZQUFZO1lBQ2YsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDM0IsU0FBUyxFQUFFO2dCQUNULEdBQUcsWUFBWTtnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDO2FBQzVDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0E4Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBd0J1YmJsZUNoYXJ0RFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHVibGljIGNoYXJ0RGF0YTogYW55ID0gW107IC8vIGRhdGEgcmVuZGVyZWQgaW50byB0aGUgZ3JhcGhcblxuICBwdWJsaWMgZHJhdzogYW55ID0gbnVsbDsgLy8gZXhwb3NlZCBjb21wb25lbnQgZHJhdyBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIHZpZXdcblxuICBwdWJsaWMgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gW107IC8vIGxpc3Qgb2Ygc2VsZWN0ZWQgYnViYmxlc1xuXG4gIHB1YmxpYyBmaWx0ZXJzOiBhbnlbXSA9IFtdOyAvLyBsaXN0IG9mIGFjdGl2ZSBmaWx0ZXJzIHRvIHNob3cgb25seSBzb21lIFR5cGVPZkVudGl0eShzKVxuXG4gIHB1YmxpYyBjbG9zZWRFeWVzOiBhbnlbXSA9IFtdOyAvLyBhcnJheSBvZiB0aGUgYWN0aXZhdGVkIGV5ZSBmaWx0ZXJzXG5cbiAgcHVibGljIHRpcHB5TGlzdDogYW55W10gPSBbXTsgLy8gbGlzdCBvZiB0aXBweSBpbnN0YW5jZXNcblxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKGRhdGEpIHtcbiAgICBjb25zdCB7IGNvbmZpZywgc21hbGxDaGFydFNpemUgfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCB7IGZvbnRSZW5kZXJpbmcsIHRyYW5zaXRpb24sIHNodWZmbGUgfSA9IGNvbmZpZy5nZXQoJ2J1YmJsZS1jaGFydCcpO1xuICAgIGNvbnN0IGRvbWFpbiA9IFtdOyBjb25zdFxuICAgICAgcmFuZ2UgPSBbXTtcbiAgICBjb25zdCBjb2xvckNvbmZpZyA9IGNvbmZpZy5nZXQoJ2NvbmZpZy1rZXlzJyk7XG5cbiAgICBPYmplY3Qua2V5cyhjb2xvckNvbmZpZykuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgZG9tYWluLnB1c2goay5yZXBsYWNlKC8tL2csICcgJykpO1xuICAgICAgcmFuZ2UucHVzaCgoKGNvbG9yQ29uZmlnW2tdIHx8IHt9KS5jb2xvciB8fCB7fSkuaGV4KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICAgIGNvbnRhaW5lcklkOiAnYnViYmxlQ2hhcnRDb250YWluZXInLFxuICAgICAgc2V0RHJhdzogKGRyYXcpID0+IHsgdGhpcy5kcmF3ID0gZHJhdzsgfSxcbiAgICAgIGNvbG9yTWF0Y2g6IHsgZG9tYWluLCByYW5nZSB9LFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBzaXplUmFuZ2U6IFswLjUsIDUwMF0sXG4gICAgICBmb250UmVuZGVyaW5nLFxuICAgICAgaGVpZ2h0OiA0MDAsXG4gICAgICB3aWR0aDogNTAwLFxuICAgICAgdHJhbnNpdGlvbixcbiAgICAgIHNodWZmbGUsXG4gICAgfTtcbiAgICAvKlxuICAgIFR3byBkYXRhIHN0cmVhbXMgYXJlIG91cHV0dGVkLlxuICAgIFRoZSBkZWZhdWx0IHN0cmVhbSBpcyBmb3IgdGhlIG5vcm1hbCB2aXN1YWxpemF0aW9uLFxuICAgIFwic21hbGxWaWV3XCIgaXMgdXNlZCBmb3IgYSBjb21wcmVzc2VkIHZpZXcgb2YgdGhlIHNhbWUgZGF0YS5cbiAgICAqL1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgICBhbmNob3JEYXRhOiB7IGhyZWY6ICcvcGxhY2Vob2xkZXIvJyB9LFxuICAgICAgZGF0YTogdGhpcy5zbWFydFNsaWNlKGRhdGEpLFxuICAgICAgc21hbGxWaWV3OiB7XG4gICAgICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICAgICAgZGF0YTogdGhpcy5zbWFydFNsaWNlKGRhdGEsIHNtYWxsQ2hhcnRTaXplKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZUNoYXJ0ID0gKHJlcykgPT4ge1xuICAgIC8qXG4gICAgICBSZWRyYXdzIHRoZSBncmFwaCB3aXRoIHRoZSBpbmNvbWluZyBkYXRhLlxuICAgICAgXCJyZXNcIiBzaG91bGQgYmUgQXBvbGxvJ3MgXCJyZXNwb25zZS5lbnRpdGllc0RhdGFcIi5cbiAgICAgIFdoZW4gcmVzIGlzIHBhc3NlZCBhcyBudWxsLCB0aGUgY2hhcnQgaXMgcmVuZGVyZWQgd2l0aCB0aGUgcHJldmlvdXMgZGF0YS5cbiAgICAqL1xuICAgIGxldCByZXNwb25zZSA9IHJlcztcbiAgICBpZiAocmVzID09PSBudWxsKSB7XG4gICAgICByZXNwb25zZSA9IHRoaXMuY2hhcnREYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcztcbiAgICB9XG4gICAgaWYgKHRoaXMuZmlsdGVycy5sZW5ndGggPiAwKSB7IC8vIGFwcGx5IGZpbHRlcnMgdG8gdGhlIHJlc3BvbnNlXG4gICAgICByZXNwb25zZSA9IHRoaXMuY2hhcnREYXRhLmZpbHRlcigoZWwpID0+ICF0aGlzLmZpbHRlcnMuaW5jbHVkZXMoZWwuZW50aXR5LnR5cGVPZkVudGl0eS5yZXBsYWNlKC8gL2csICctJykpKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmRyYXcpIHtcbiAgICAgIHRoaXMudXBkYXRlKHRoaXMuc21hcnRTbGljZShyZXNwb25zZSkpOyAvLyBjb21wb25lbnQgc2VsZi11cGRhdGVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdXRwdXQuc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkO1xuICAgICAgdGhpcy5vdXRwdXQuZGF0YSA9IHRoaXMuc21hcnRTbGljZShyZXNwb25zZSk7XG4gICAgICB0aGlzLm91dHB1dC5zbWFsbFZpZXcuZGF0YSA9IHRoaXMuc21hcnRTbGljZShyZXNwb25zZSwgdGhpcy5vcHRpb25zLnNtYWxsQ2hhcnRTaXplKTtcbiAgICAgIHRoaXMuZHJhdygpO1xuICAgIH1cbiAgfTtcblxuICBzbWFydFNsaWNlID0gKGQsIGxlbmd0aD8pID0+IHtcbiAgICBjb25zdCBsID0gbGVuZ3RoIHx8IHRoaXMub3B0aW9ucy5saW1pdDtcbiAgICBpZiAobCAmJiBsIDwgZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBkLnNsaWNlKDAsIGwpO1xuICAgIH1cbiAgICByZXR1cm4gZDtcbiAgfTtcblxuICBoYW5kbGVCdWJibGVDbGljayA9IChwYXlsb2FkKSA9PiB7XG4gICAgLypcbiAgICAgIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBvZiB0aGUgY2xpY2tlZCBidWJibGUuXG4gICAgKi9cbiAgICBjb25zdCBpZCA9IHBheWxvYWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQuaW5jbHVkZXMoaWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSh0aGlzLnNlbGVjdGVkLmluZGV4T2YoaWQpLCAxKTsgLy8gcmVtb3ZlIHNlbGVjdGlvblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnB1c2goaWQpOyAvLyBhZGQgc2VsZWN0aW9uXG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
export class AwCarouselDS extends DataSource {
|
|
3
|
+
transform(data) {
|
|
4
|
+
const res = {
|
|
5
|
+
containerId: 'carousel-root',
|
|
6
|
+
classes: 'aw-home__carousel-root',
|
|
7
|
+
libOptions: {
|
|
8
|
+
count: 1,
|
|
9
|
+
move: 1,
|
|
10
|
+
// touch: true,
|
|
11
|
+
// mode: 'align',
|
|
12
|
+
buttons: true,
|
|
13
|
+
dots: true,
|
|
14
|
+
rewind: true,
|
|
15
|
+
autoplay: 4000,
|
|
16
|
+
animation: 500,
|
|
17
|
+
// responsive: {
|
|
18
|
+
// 0: { count: 1.5, buttons: false },
|
|
19
|
+
// 480: { count: 2.5, buttons: false },
|
|
20
|
+
// 768: { count: 3, touch: false },
|
|
21
|
+
// 1440: { count: 4, touch: false },
|
|
22
|
+
// },
|
|
23
|
+
},
|
|
24
|
+
slides: data.map((slide) => {
|
|
25
|
+
const items = [];
|
|
26
|
+
let action;
|
|
27
|
+
let background;
|
|
28
|
+
if (slide.title)
|
|
29
|
+
items.push({ title: slide.title });
|
|
30
|
+
if (slide.text)
|
|
31
|
+
items.push({ text: slide.text });
|
|
32
|
+
if (slide.ctaLabel && slide.ctaPayload) {
|
|
33
|
+
action = {
|
|
34
|
+
text: slide.ctaLabel,
|
|
35
|
+
anchor: {
|
|
36
|
+
href: slide.ctaPayload,
|
|
37
|
+
target: '_blank'
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (slide.background && slide.background.value) {
|
|
42
|
+
if (slide.background.type === 'color') {
|
|
43
|
+
background = {
|
|
44
|
+
color: slide.background.value
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
else if (slide.background.type === 'image') {
|
|
48
|
+
background = {
|
|
49
|
+
image: slide.background.value
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else if (slide.background.type === 'video') {
|
|
53
|
+
background = {
|
|
54
|
+
video: slide.background.value
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// The background is missing!
|
|
60
|
+
background = {
|
|
61
|
+
color: 'rgba(0, 0, 0, 0)'
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return ({
|
|
65
|
+
items,
|
|
66
|
+
action,
|
|
67
|
+
background
|
|
68
|
+
});
|
|
69
|
+
})
|
|
70
|
+
};
|
|
71
|
+
return res;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhcm91c2VsLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFheEMsTUFBTSxPQUFPLFlBQWEsU0FBUSxVQUFVO0lBQ2hDLFNBQVMsQ0FBQyxJQUF1QjtRQUN6QyxNQUFNLEdBQUcsR0FBaUI7WUFDeEIsV0FBVyxFQUFFLGVBQWU7WUFDNUIsT0FBTyxFQUFFLHdCQUF3QjtZQUNqQyxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsZUFBZTtnQkFDZixpQkFBaUI7Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxJQUFJO2dCQUNWLE1BQU0sRUFBRSxJQUFJO2dCQUNaLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFNBQVMsRUFBRSxHQUFHO2dCQUNkLGdCQUFnQjtnQkFDaEIsdUNBQXVDO2dCQUN2Qyx5Q0FBeUM7Z0JBQ3pDLHFDQUFxQztnQkFDckMsc0NBQXNDO2dCQUN0QyxLQUFLO2FBQ047WUFDRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN6QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksTUFBTSxDQUFDO2dCQUNYLElBQUksVUFBVSxDQUFDO2dCQUNmLElBQUksS0FBSyxDQUFDLEtBQUs7b0JBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxLQUFLLENBQUMsSUFBSTtvQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUN2QyxNQUFNLEdBQUc7d0JBQ1AsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRO3dCQUNwQixNQUFNLEVBQUU7NEJBQ04sSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVOzRCQUN0QixNQUFNLEVBQUUsUUFBUTt5QkFDakI7cUJBQ0YsQ0FBQztnQkFDSixDQUFDO2dCQUNELElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMvQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUN0QyxVQUFVLEdBQUc7NEJBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSzt5QkFDOUIsQ0FBQztvQkFDSixDQUFDO3lCQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7d0JBQzdDLFVBQVUsR0FBRzs0QkFDWCxLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLO3lCQUM5QixDQUFDO29CQUNKLENBQUM7eUJBQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQzt3QkFDN0MsVUFBVSxHQUFHOzRCQUNYLEtBQUssRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUs7eUJBQzlCLENBQUM7b0JBQ0osQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sNkJBQTZCO29CQUM3QixVQUFVLEdBQUc7d0JBQ1gsS0FBSyxFQUFFLGtCQUFrQjtxQkFDMUIsQ0FBQztnQkFDSixDQUFDO2dCQUNELE9BQU8sQ0FBQztvQkFDTixLQUFLO29CQUNMLE1BQU07b0JBQ04sVUFBVTtpQkFDWCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7U0FDSCxDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXJvdXNlbERhdGEgfSBmcm9tICdAbmV0Ny9jb21wb25lbnRzJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAbmV0Ny9jb3JlJztcblxudHlwZSBHZXRTbGlkZXJSZXNwb25zZSA9IFNsaWRlRGF0YVtdO1xudHlwZSBTbGlkZURhdGEgPSB7XG4gIGJhY2tncm91bmQ6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIHwgbnVsbCB9O1xuICBjdGFMYWJlbDogc3RyaW5nO1xuICBjdGFQYXlsb2FkOiBzdHJpbmc7XG4gIG1ldGFkYXRhOiB7a2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmd9W10gfCBudWxsO1xuICBwcmV0ZXh0OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEF3Q2Fyb3VzZWxEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKGRhdGE6IEdldFNsaWRlclJlc3BvbnNlKTogQ2Fyb3VzZWxEYXRhIHtcbiAgICBjb25zdCByZXM6IENhcm91c2VsRGF0YSA9IHtcbiAgICAgIGNvbnRhaW5lcklkOiAnY2Fyb3VzZWwtcm9vdCcsXG4gICAgICBjbGFzc2VzOiAnYXctaG9tZV9fY2Fyb3VzZWwtcm9vdCcsXG4gICAgICBsaWJPcHRpb25zOiB7XG4gICAgICAgIGNvdW50OiAxLFxuICAgICAgICBtb3ZlOiAxLFxuICAgICAgICAvLyB0b3VjaDogdHJ1ZSxcbiAgICAgICAgLy8gbW9kZTogJ2FsaWduJyxcbiAgICAgICAgYnV0dG9uczogdHJ1ZSxcbiAgICAgICAgZG90czogdHJ1ZSxcbiAgICAgICAgcmV3aW5kOiB0cnVlLFxuICAgICAgICBhdXRvcGxheTogNDAwMCxcbiAgICAgICAgYW5pbWF0aW9uOiA1MDAsXG4gICAgICAgIC8vIHJlc3BvbnNpdmU6IHtcbiAgICAgICAgLy8gICAwOiB7IGNvdW50OiAxLjUsIGJ1dHRvbnM6IGZhbHNlIH0sXG4gICAgICAgIC8vICAgNDgwOiB7IGNvdW50OiAyLjUsIGJ1dHRvbnM6IGZhbHNlIH0sXG4gICAgICAgIC8vICAgNzY4OiB7IGNvdW50OiAzLCB0b3VjaDogZmFsc2UgfSxcbiAgICAgICAgLy8gICAxNDQwOiB7IGNvdW50OiA0LCB0b3VjaDogZmFsc2UgfSxcbiAgICAgICAgLy8gfSxcbiAgICAgIH0sXG4gICAgICBzbGlkZXM6IGRhdGEubWFwKChzbGlkZSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IFtdO1xuICAgICAgICBsZXQgYWN0aW9uO1xuICAgICAgICBsZXQgYmFja2dyb3VuZDtcbiAgICAgICAgaWYgKHNsaWRlLnRpdGxlKSBpdGVtcy5wdXNoKHsgdGl0bGU6IHNsaWRlLnRpdGxlIH0pO1xuICAgICAgICBpZiAoc2xpZGUudGV4dCkgaXRlbXMucHVzaCh7IHRleHQ6IHNsaWRlLnRleHQgfSk7XG4gICAgICAgIGlmIChzbGlkZS5jdGFMYWJlbCAmJiBzbGlkZS5jdGFQYXlsb2FkKSB7XG4gICAgICAgICAgYWN0aW9uID0ge1xuICAgICAgICAgICAgdGV4dDogc2xpZGUuY3RhTGFiZWwsXG4gICAgICAgICAgICBhbmNob3I6IHtcbiAgICAgICAgICAgICAgaHJlZjogc2xpZGUuY3RhUGF5bG9hZCxcbiAgICAgICAgICAgICAgdGFyZ2V0OiAnX2JsYW5rJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNsaWRlLmJhY2tncm91bmQgJiYgc2xpZGUuYmFja2dyb3VuZC52YWx1ZSkge1xuICAgICAgICAgIGlmIChzbGlkZS5iYWNrZ3JvdW5kLnR5cGUgPT09ICdjb2xvcicpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQgPSB7XG4gICAgICAgICAgICAgIGNvbG9yOiBzbGlkZS5iYWNrZ3JvdW5kLnZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSBpZiAoc2xpZGUuYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kID0ge1xuICAgICAgICAgICAgICBpbWFnZTogc2xpZGUuYmFja2dyb3VuZC52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHNsaWRlLmJhY2tncm91bmQudHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZCA9IHtcbiAgICAgICAgICAgICAgdmlkZW86IHNsaWRlLmJhY2tncm91bmQudmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZSBiYWNrZ3JvdW5kIGlzIG1pc3NpbmchXG4gICAgICAgICAgYmFja2dyb3VuZCA9IHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwKSdcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoe1xuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICBiYWNrZ3JvdW5kXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiByZXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
export class AwEntitaNavDS extends DataSource {
|
|
3
|
+
transform(param) {
|
|
4
|
+
if (!param) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
const { data, selected } = param;
|
|
8
|
+
const navigation = { items: [], payload: 'entita-nav' };
|
|
9
|
+
const { hasMetadataFields, labels } = this.options;
|
|
10
|
+
/* navigation.items.push({
|
|
11
|
+
text: 'OVERVIEW',
|
|
12
|
+
anchor: { href: `${param.basePath}/overview` },
|
|
13
|
+
classes: selected === 'overview' ? 'is-selected overview-tab' : 'overview-tab',
|
|
14
|
+
});
|
|
15
|
+
if (hasMetadataFields) {
|
|
16
|
+
navigation.items.push({
|
|
17
|
+
text: 'INFORMAZIONI',
|
|
18
|
+
anchor: { href: `${param.basePath}/informazioni` },
|
|
19
|
+
classes: selected === 'informazioni' ? 'is-selected' : '',
|
|
20
|
+
});
|
|
21
|
+
} */
|
|
22
|
+
navigation.items.push({
|
|
23
|
+
text: 'INFORMAZIONI',
|
|
24
|
+
anchor: { href: `${param.basePath}/informazioni` },
|
|
25
|
+
classes: selected === 'informazioni' ? 'is-selected' : '',
|
|
26
|
+
});
|
|
27
|
+
if (data.relatedLa) {
|
|
28
|
+
navigation.items.push({
|
|
29
|
+
text: labels['aggregazioni-logiche-collegate'],
|
|
30
|
+
anchor: { href: `${param.basePath}/fondi-collegati` },
|
|
31
|
+
classes: selected === 'fondi-collegati' ? 'is-selected' : '',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (data.relatedItems) {
|
|
35
|
+
navigation.items.push({
|
|
36
|
+
text: 'OGGETTI COLLEGATI',
|
|
37
|
+
anchor: {
|
|
38
|
+
href: `${param.basePath}/oggetti-collegati`,
|
|
39
|
+
queryParams: {
|
|
40
|
+
page: 1,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
classes: selected === 'oggetti-collegati' ? 'is-selected' : '',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (data.relatedEntities) {
|
|
47
|
+
navigation.items.push({
|
|
48
|
+
text: 'ENTITÀ COLLEGATE',
|
|
49
|
+
anchor: { href: `${param.basePath}/entita-collegate` },
|
|
50
|
+
classes: selected === 'entita-collegate' ? 'is-selected' : '',
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
if (data.extraTab) {
|
|
54
|
+
navigation.items.push({
|
|
55
|
+
text: 'MAXXI',
|
|
56
|
+
anchor: { href: `${param.basePath}/maxxi` },
|
|
57
|
+
classes: selected === 'maxxi' ? 'is-selected' : '',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (data.wikiTab) {
|
|
61
|
+
navigation.items.push({
|
|
62
|
+
text: 'WIKIPEDIA',
|
|
63
|
+
anchor: { href: `${param.basePath}/wiki` },
|
|
64
|
+
classes: selected === 'wiki' ? 'is-selected' : '',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// one tab control
|
|
68
|
+
if (navigation.items.length === 2 && !hasMetadataFields) {
|
|
69
|
+
navigation.items.shift();
|
|
70
|
+
}
|
|
71
|
+
return navigation;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRhLW5hdi5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvZW50aXRhLW5hdi5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXhDLE1BQU0sT0FBTyxhQUFjLFNBQVEsVUFBVTtJQUNqQyxTQUFTLENBQUMsS0FBSztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNqQyxNQUFNLFVBQVUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO1FBQ3hELE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5EOzs7Ozs7Ozs7OztZQVdJO1FBQ0osVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBSSxFQUFFLGNBQWM7WUFDcEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsZUFBZSxFQUFFO1lBQ2xELE9BQU8sRUFBRSxRQUFRLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxNQUFNLENBQUMsZ0NBQWdDLENBQUM7Z0JBQzlDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLGtCQUFrQixFQUFFO2dCQUNyRCxPQUFPLEVBQUUsUUFBUSxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDN0QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsb0JBQW9CO29CQUMzQyxXQUFXLEVBQUU7d0JBQ1gsSUFBSSxFQUFFLENBQUM7cUJBQ1I7aUJBQ0Y7Z0JBQ0QsT0FBTyxFQUFFLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO2FBQy9ELENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsbUJBQW1CLEVBQUU7Z0JBQ3RELE9BQU8sRUFBRSxRQUFRLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUM5RCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLFFBQVEsRUFBRTtnQkFDM0MsT0FBTyxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUNuRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxXQUFXO2dCQUNqQixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxPQUFPLEVBQUU7Z0JBQzFDLE9BQU8sRUFBRSxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDbEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELGtCQUFrQjtRQUNsQixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDeEQsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQXdFbnRpdGFOYXZEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKHBhcmFtKTogYW55IHtcbiAgICBpZiAoIXBhcmFtKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBkYXRhLCBzZWxlY3RlZCB9ID0gcGFyYW07XG4gICAgY29uc3QgbmF2aWdhdGlvbiA9IHsgaXRlbXM6IFtdLCBwYXlsb2FkOiAnZW50aXRhLW5hdicgfTtcbiAgICBjb25zdCB7IGhhc01ldGFkYXRhRmllbGRzLCBsYWJlbHMgfSA9IHRoaXMub3B0aW9ucztcblxuICAgIC8qIG5hdmlnYXRpb24uaXRlbXMucHVzaCh7XG4gICAgICB0ZXh0OiAnT1ZFUlZJRVcnLFxuICAgICAgYW5jaG9yOiB7IGhyZWY6IGAke3BhcmFtLmJhc2VQYXRofS9vdmVydmlld2AgfSxcbiAgICAgIGNsYXNzZXM6IHNlbGVjdGVkID09PSAnb3ZlcnZpZXcnID8gJ2lzLXNlbGVjdGVkIG92ZXJ2aWV3LXRhYicgOiAnb3ZlcnZpZXctdGFiJyxcbiAgICB9KTtcbiAgICBpZiAoaGFzTWV0YWRhdGFGaWVsZHMpIHtcbiAgICAgIG5hdmlnYXRpb24uaXRlbXMucHVzaCh7XG4gICAgICAgIHRleHQ6ICdJTkZPUk1BWklPTkknLFxuICAgICAgICBhbmNob3I6IHsgaHJlZjogYCR7cGFyYW0uYmFzZVBhdGh9L2luZm9ybWF6aW9uaWAgfSxcbiAgICAgICAgY2xhc3Nlczogc2VsZWN0ZWQgPT09ICdpbmZvcm1hemlvbmknID8gJ2lzLXNlbGVjdGVkJyA6ICcnLFxuICAgICAgfSk7XG4gICAgfSAqL1xuICAgIG5hdmlnYXRpb24uaXRlbXMucHVzaCh7XG4gICAgICB0ZXh0OiAnSU5GT1JNQVpJT05JJyxcbiAgICAgIGFuY2hvcjogeyBocmVmOiBgJHtwYXJhbS5iYXNlUGF0aH0vaW5mb3JtYXppb25pYCB9LFxuICAgICAgY2xhc3Nlczogc2VsZWN0ZWQgPT09ICdpbmZvcm1hemlvbmknID8gJ2lzLXNlbGVjdGVkJyA6ICcnLFxuICAgIH0pO1xuICAgIGlmIChkYXRhLnJlbGF0ZWRMYSkge1xuICAgICAgbmF2aWdhdGlvbi5pdGVtcy5wdXNoKHtcbiAgICAgICAgdGV4dDogbGFiZWxzWydhZ2dyZWdhemlvbmktbG9naWNoZS1jb2xsZWdhdGUnXSxcbiAgICAgICAgYW5jaG9yOiB7IGhyZWY6IGAke3BhcmFtLmJhc2VQYXRofS9mb25kaS1jb2xsZWdhdGlgIH0sXG4gICAgICAgIGNsYXNzZXM6IHNlbGVjdGVkID09PSAnZm9uZGktY29sbGVnYXRpJyA/ICdpcy1zZWxlY3RlZCcgOiAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZGF0YS5yZWxhdGVkSXRlbXMpIHtcbiAgICAgIG5hdmlnYXRpb24uaXRlbXMucHVzaCh7XG4gICAgICAgIHRleHQ6ICdPR0dFVFRJIENPTExFR0FUSScsXG4gICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgIGhyZWY6IGAke3BhcmFtLmJhc2VQYXRofS9vZ2dldHRpLWNvbGxlZ2F0aWAsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgIHBhZ2U6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3Nlczogc2VsZWN0ZWQgPT09ICdvZ2dldHRpLWNvbGxlZ2F0aScgPyAnaXMtc2VsZWN0ZWQnIDogJycsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGRhdGEucmVsYXRlZEVudGl0aWVzKSB7XG4gICAgICBuYXZpZ2F0aW9uLml0ZW1zLnB1c2goe1xuICAgICAgICB0ZXh0OiAnRU5USVTDgCBDT0xMRUdBVEUnLFxuICAgICAgICBhbmNob3I6IHsgaHJlZjogYCR7cGFyYW0uYmFzZVBhdGh9L2VudGl0YS1jb2xsZWdhdGVgIH0sXG4gICAgICAgIGNsYXNzZXM6IHNlbGVjdGVkID09PSAnZW50aXRhLWNvbGxlZ2F0ZScgPyAnaXMtc2VsZWN0ZWQnIDogJycsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGRhdGEuZXh0cmFUYWIpIHtcbiAgICAgIG5hdmlnYXRpb24uaXRlbXMucHVzaCh7XG4gICAgICAgIHRleHQ6ICdNQVhYSScsXG4gICAgICAgIGFuY2hvcjogeyBocmVmOiBgJHtwYXJhbS5iYXNlUGF0aH0vbWF4eGlgIH0sXG4gICAgICAgIGNsYXNzZXM6IHNlbGVjdGVkID09PSAnbWF4eGknID8gJ2lzLXNlbGVjdGVkJyA6ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChkYXRhLndpa2lUYWIpIHtcbiAgICAgIG5hdmlnYXRpb24uaXRlbXMucHVzaCh7XG4gICAgICAgIHRleHQ6ICdXSUtJUEVESUEnLFxuICAgICAgICBhbmNob3I6IHsgaHJlZjogYCR7cGFyYW0uYmFzZVBhdGh9L3dpa2lgIH0sXG4gICAgICAgIGNsYXNzZXM6IHNlbGVjdGVkID09PSAnd2lraScgPyAnaXMtc2VsZWN0ZWQnIDogJycsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBvbmUgdGFiIGNvbnRyb2xcbiAgICBpZiAobmF2aWdhdGlvbi5pdGVtcy5sZW5ndGggPT09IDIgJiYgIWhhc01ldGFkYXRhRmllbGRzKSB7XG4gICAgICBuYXZpZ2F0aW9uLml0ZW1zLnNoaWZ0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hdmlnYXRpb247XG4gIH1cbn1cbiJdfQ==
|