@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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtdHJlZS5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvZXh0ZW5kZWQtdHJlZS5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRCxPQUFPLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQXFCaEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRXJCLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFBaEQ7O1FBQ1MsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFbEIsY0FBUyxHQUFHLENBQ3BCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFDaUMsRUFDOUIsRUFBRTtZQUNwQixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQzdCLE1BQU0sRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLEVBQ0osVUFBVSxFQUNWLFFBQVEsR0FDVCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUNsQixJQUFJLENBQUMsWUFBWTttQkFDZCxDQUFDLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO1lBQ0YsU0FBUztZQUNULE1BQU0sTUFBTSxHQUFtQjtnQkFDN0IsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsR0FBRyxLQUFLLDJDQUEyQyxVQUFVLFVBQVU7cUJBQzlFO29CQUNELFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsUUFBUSxNQUFNLENBQUMsS0FBSyxHQUFHO3FCQUM5QjtpQkFDRjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFO3dCQUNOLFdBQVcsRUFBRSwrQkFBK0I7d0JBQzVDLE9BQU8sRUFBRSxjQUFjO3dCQUN2QixNQUFNLEVBQUU7NEJBQ04sSUFBSSxFQUFFLEVBQUU7NEJBQ1IsT0FBTyxFQUFFLGVBQWU7eUJBQ3pCO3FCQUNGO2lCQUNGO2dCQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUNwRCxDQUFDO1lBQ0YsUUFBUTtZQUNSLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQy9DLElBQUksRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7Z0JBQzlDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2lCQUM5RDthQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ0osYUFBYTtZQUNiLE1BQU0sVUFBVSxHQUFtQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0UsYUFBYTtZQUNiLE1BQU0sU0FBUyxHQUFrQjtnQkFDL0IsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLElBQUksRUFBRSxRQUFRO2dCQUNkLGVBQWU7Z0JBQ2YsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFlBQVksRUFBRSxtQkFBbUI7Z0JBQ2pDLFlBQVksRUFBRSxrQkFBa0I7YUFDakMsQ0FBQztZQUNGLHVCQUF1QjtZQUN2QixNQUFNLFdBQVcsR0FBb0I7Z0JBQ25DLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDbkMsS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFFO29CQUNoQixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsSUFBSSxLQUFLLEtBQUs7aUJBQ3pCLENBQUMsQ0FBQztnQkFDSCxPQUFPLEVBQUUsY0FBYzthQUN4QixDQUFDO1lBQ0YsT0FBTztnQkFDTCxNQUFNO2dCQUNOLEtBQUs7Z0JBQ0wsVUFBVTtnQkFDVixTQUFTO2dCQUNULFdBQVc7Z0JBQ1gsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNqQyxPQUFPLEVBQUUsS0FBSzthQUNmLENBQUM7UUFDSixDQUFDLENBQUM7SUFzRkosQ0FBQztJQXBGUSxVQUFVLENBQUMsT0FBZ0I7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXZDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUU1RCxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLE9BQU8sR0FBcUIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO2dCQUMvRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLO1FBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7WUFDM0MsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQztpQkFDWDtnQkFDRCxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO2FBQ3pDO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTyxFQUFFLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUN6QztZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUU7b0JBQ04sT0FBTyxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7aUJBQzNDO2dCQUNELE9BQU8sRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDN0M7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxLQUFLO2lCQUNmO2dCQUNELE9BQU8sRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLO1FBQ3BDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVqQixJQUFJLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLFNBQVMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQztRQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxRQUFRO2lCQUNsQjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ1dHRvbiwgSW5uZXJUaXRsZURhdGEsIElucHV0U2VsZWN0RGF0YSwgSW5wdXRUZXh0RGF0YSwgUGFnaW5hdGlvbkRhdGFcbn0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IEV4dGVuZGVkVHJlZURhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL2V4dGVuZGVkLXRyZWUvZXh0ZW5kZWQtdHJlZSc7XG5pbXBvcnQgbm9kZUhlbHBlciBmcm9tICcuLi9oZWxwZXJzL25vZGUuaGVscGVyJztcblxudHlwZSBQYXJlbnRSZXNwb25zZSA9IHtcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTm9kZXNSZXNwb25zZSA9IHtcbiAgaXRlbXM6IHtcbiAgICBpbWc/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1hdXRvY29tcGxldGUuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2hvbWUtYXV0b2NvbXBsZXRlLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQ3hDLFNBQVMsQ0FBQyxJQUFJO1FBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2xFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLE1BQU0sQ0FBQztZQUVuQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsV0FBVyxDQUFDO2dCQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUc7b0JBQ2hCLEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUk7b0JBQ0osT0FBTyxFQUFFLFNBQVMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFO29CQUM3QyxLQUFLLEVBQUUsRUFBRTtvQkFDVCxJQUFJLEVBQUUsT0FBTztpQkFDZCxDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdkIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO3dCQUM1QyxJQUFJLFlBQVksSUFBSSxHQUFHLEtBQUssWUFBWSxFQUFFLENBQUM7NEJBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3dCQUM3RSxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3pCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztvQkFDeEIsUUFBUTtvQkFDUixNQUFNLEVBQUU7d0JBQ04sSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtxQkFDdkg7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEQsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSztnQkFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJO2dCQUN0QixPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU87YUFDN0I7WUFDRCxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUs7U0FDekIsQ0FBQyxDQUFDLENBQUM7UUFFSixPQUFPO1lBQ0wsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsUUFBUSxFQUFFO29CQUNSLElBQUksRUFBRSxzQkFBc0IsVUFBVSxZQUFZO29CQUNsRCxNQUFNLEVBQUU7d0JBQ04sSUFBSSxFQUFFLEtBQUssQ0FBQyxjQUFjO3dCQUMxQixXQUFXLEVBQUU7NEJBQ1gsS0FBSzt5QkFDTjtxQkFDRjtpQkFDRjthQUNGLENBQUMsQ0FBQyxDQUFDO2dCQUNGLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsd0JBQXdCO29CQUM5QixNQUFNLEVBQUU7d0JBQ04sSUFBSSxFQUFFLEtBQUssQ0FBQyxjQUFjO3dCQUMxQixXQUFXLEVBQUU7NEJBQ1gsS0FBSyxFQUFFLGVBQWU7NEJBQ3RCLFdBQVcsRUFBRSxDQUFDLEVBQUUsd0NBQXdDO3lCQUN6RDtxQkFDRjtpQkFDRjthQUNGO1lBQ0QsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVE7U0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQXdIb21lQXV0b2NvbXBsZXRlRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgY29uc3QgeyByZXNwb25zZSwgcXVlcnkgfSA9IGRhdGE7XG4gICAgY29uc3QgeyByZXN1bHRzLCB0b3RhbENvdW50IH0gPSByZXNwb25zZTtcbiAgICBjb25zdCB7IGtleXMsIGNvbmZpZywgcGF0aHMgfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLm9wdGlvbnMubGFiZWxzIHx8IHt9O1xuICAgIGNvbnN0IGl0ZW1JZHMgPSBbXTtcbiAgICBjb25zdCBncm91cHMgPSB7fTtcblxuICAgIHJlc3VsdHMuZm9yRWFjaCgoeyBpdGVtLCBlbnRpdHkgfSkgPT4ge1xuICAgICAgY29uc3QgZ3JvdXBJZCA9IGVudGl0eSA/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
|