@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,141 @@
|
|
|
1
|
+
import { helpers } from '@net7/boilerplate-common';
|
|
2
|
+
import { DataSource } from '@net7/core';
|
|
3
|
+
import nodeHelper from '../helpers/node.helper';
|
|
4
|
+
const PAGE_LIMIT = 5;
|
|
5
|
+
export class AwSchedaSearchDS extends DataSource {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.transform = (nodes) => {
|
|
9
|
+
const { search, title, params, basePath, lite, configKeys, fallback, } = this.options || {};
|
|
10
|
+
const { totalCount } = nodes || {};
|
|
11
|
+
const page = params.page ? +params.page : 1;
|
|
12
|
+
const limit = params.limit ? +params.limit : 10;
|
|
13
|
+
// header
|
|
14
|
+
const header = {
|
|
15
|
+
title: {
|
|
16
|
+
main: {
|
|
17
|
+
text: title || 'Cerca nelle Aggregazioni Logiche',
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
// input
|
|
22
|
+
const input = {
|
|
23
|
+
id: 'scheda-search-input',
|
|
24
|
+
placeholder: search?.placeholder || 'Cerca...',
|
|
25
|
+
icon: 'n7-icon-search',
|
|
26
|
+
enterPayload: 'input-enter',
|
|
27
|
+
inputPayload: 'input-change'
|
|
28
|
+
};
|
|
29
|
+
// items
|
|
30
|
+
const items = (nodes?.items || []).map((item) => {
|
|
31
|
+
// breadcrumbs
|
|
32
|
+
const breadcrumbs = {
|
|
33
|
+
items: []
|
|
34
|
+
};
|
|
35
|
+
if (item.breadcrumbs) {
|
|
36
|
+
breadcrumbs.items = item.breadcrumbs.map(({ label, link: href }) => ({
|
|
37
|
+
label,
|
|
38
|
+
anchor: { href },
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
icon: nodeHelper.getNodeIcon(configKeys, item),
|
|
43
|
+
thumbnail: lite ? null : item.img,
|
|
44
|
+
label: item.label,
|
|
45
|
+
anchor: {
|
|
46
|
+
href: `${basePath}/${item.id}/${helpers.slugify(item.label)}`
|
|
47
|
+
},
|
|
48
|
+
breadcrumbs
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
// pagination
|
|
52
|
+
const pagination = nodes?.items?.length
|
|
53
|
+
? this.getPagination(page, totalCount, limit)
|
|
54
|
+
: null;
|
|
55
|
+
// results limit select
|
|
56
|
+
const limitSelect = {
|
|
57
|
+
id: 'limit-select',
|
|
58
|
+
label: 'Numero di risultati',
|
|
59
|
+
options: [10, 25, 50].map((size) => ({
|
|
60
|
+
label: `${size}`,
|
|
61
|
+
value: size,
|
|
62
|
+
selected: size === limit
|
|
63
|
+
})),
|
|
64
|
+
payload: 'limit-select',
|
|
65
|
+
};
|
|
66
|
+
return {
|
|
67
|
+
header,
|
|
68
|
+
input,
|
|
69
|
+
items,
|
|
70
|
+
pagination,
|
|
71
|
+
limitSelect,
|
|
72
|
+
fallback: nodes ? fallback : null,
|
|
73
|
+
loading: false,
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
setLoading(loading) {
|
|
78
|
+
this.output.loading = loading;
|
|
79
|
+
}
|
|
80
|
+
getPagination(page, totalCount, limit) {
|
|
81
|
+
const pages = Math.ceil(totalCount / limit);
|
|
82
|
+
return {
|
|
83
|
+
links: this.getPaginationLinks(page, pages),
|
|
84
|
+
first: {
|
|
85
|
+
anchor: {
|
|
86
|
+
payload: 1,
|
|
87
|
+
},
|
|
88
|
+
classes: page === 1 ? 'is-disabled' : '',
|
|
89
|
+
},
|
|
90
|
+
prev: {
|
|
91
|
+
anchor: {
|
|
92
|
+
payload: page === 1 ? 1 : page - 1,
|
|
93
|
+
},
|
|
94
|
+
classes: page === 1 ? 'is-disabled' : ''
|
|
95
|
+
},
|
|
96
|
+
next: {
|
|
97
|
+
anchor: {
|
|
98
|
+
payload: page === pages ? pages : page + 1,
|
|
99
|
+
},
|
|
100
|
+
classes: page === pages ? 'is-disabled' : '',
|
|
101
|
+
},
|
|
102
|
+
last: {
|
|
103
|
+
anchor: {
|
|
104
|
+
payload: pages,
|
|
105
|
+
},
|
|
106
|
+
classes: page === pages ? 'is-disabled' : '',
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
getPaginationLinks(page, pages) {
|
|
111
|
+
let firstItem = 1;
|
|
112
|
+
const links = [];
|
|
113
|
+
const limit = PAGE_LIMIT;
|
|
114
|
+
let last = limit;
|
|
115
|
+
if (pages > limit) {
|
|
116
|
+
const steps = Math.floor(limit / 2);
|
|
117
|
+
if (page > steps) {
|
|
118
|
+
firstItem = page - steps;
|
|
119
|
+
}
|
|
120
|
+
if ((page + steps) > pages) {
|
|
121
|
+
firstItem = (pages - limit) + 1;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
last = pages;
|
|
126
|
+
}
|
|
127
|
+
let i;
|
|
128
|
+
for (i = 0; i < last; i += 1) {
|
|
129
|
+
const itemPage = firstItem + i;
|
|
130
|
+
links.push({
|
|
131
|
+
text: itemPage,
|
|
132
|
+
classes: itemPage === page ? 'is-disabled' : '',
|
|
133
|
+
anchor: {
|
|
134
|
+
payload: itemPage,
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return links;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLXNlYXJjaC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvc2NoZWRhLXNlYXJjaC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxPQUFPLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUdoRCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFFckIsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFBaEQ7O1FBQ1ksY0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBb0IsRUFBRTtZQUMvRCxNQUFNLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksRUFDSixVQUFVLEVBQ1YsUUFBUSxHQUNULEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFaEQsU0FBUztZQUNULE1BQU0sTUFBTSxHQUFtQjtnQkFDN0IsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsS0FBSyxJQUFJLGtDQUFrQztxQkFDbEQ7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsUUFB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S0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLFNBQVMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQztRQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxRQUFRO2lCQUNsQjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHtcbiAgQnV0dG9uLCBJbm5lclRpdGxlRGF0YSwgSW5wdXRTZWxlY3REYXRhLCBJbnB1dFRleHREYXRhLCBQYWdpbmF0aW9uRGF0YVxufSBmcm9tICdAbmV0Ny9jb21wb25lbnRzJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IFNjaGVkYVNlYXJjaERhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL3NjaGVkYS1zZWFyY2gvc2NoZWRhLXNlYXJjaCc7XG5pbXBvcnQgbm9kZUhlbHBlciBmcm9tICcuLi9oZWxwZXJzL25vZGUuaGVscGVyJztcbmltcG9ydCB7IE5vZGVzUmVzcG9uc2UgfSBmcm9tICcuL2V4dGVuZGVkLXRyZWUuZHMnO1xuXG5jb25zdCBQQUdFX0xJTUlUID0gNTtcblxuZXhwb3J0IGNsYXNzIEF3U2NoZWRhU2VhcmNoRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybSA9IChub2RlczogTm9kZXNSZXNwb25zZSk6IFNjaGVkYVNlYXJjaERhdGEgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNlYXJjaCxcbiAgICAgIHRpdGxlLFxuICAgICAgcGFyYW1zLFxuICAgICAgYmFzZVBhdGgsXG4gICAgICBsaXRlLFxuICAgICAgY29uZmlnS2V5cyxcbiAgICAgIGZhbGxiYWNrLFxuICAgIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgY29uc3QgeyB0b3RhbENvdW50IH0gPSBub2RlcyB8fCB7fTtcbiAgICBjb25zdCBwYWdlID0gcGFyYW1zLnBhZ2UgPyArcGFyYW1zLnBhZ2UgOiAxO1xuICAgIGNvbnN0IGxpbWl0ID0gcGFyYW1zLmxpbWl0ID8gK3BhcmFtcy5saW1pdCA6IDEwO1xuXG4gICAgLy8gaGVhZGVyXG4gICAgY29uc3QgaGVhZGVyOiBJbm5lclRpdGxlRGF0YSA9IHtcbiAgICAgIHRpdGxlOiB7XG4gICAgICAgIG1haW46IHtcbiAgICAgICAgICB0ZXh0OiB0aXRsZSB8fCAnQ2VyY2EgbmVsbGUgQWdncmVnYXppb25pIExvZ2ljaGUnLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIGlucHV0XG4gICAgY29uc3QgaW5wdXQ6IElucHV0VGV4dERhdGEgPSB7XG4gICAgICBpZDogJ3NjaGVkYS1zZWFyY2gtaW5wdXQnLFxuICAgICAgcGxhY2Vob2xkZXI6IHNlYXJjaD8ucGxhY2Vob2xkZXIgfHwgJ0NlcmNhLi4uJyxcbiAgICAgIGljb246ICduNy1pY29uLXNlYXJjaCcsXG4gICAgICBlbnRlclBheWxvYWQ6ICdpbnB1dC1lbnRlcicsXG4gICAgICBpbnB1dFBheWxvYWQ6ICdpbnB1dC1jaGFuZ2UnXG4gICAgfTtcblxuICAgIC8vIGl0ZW1zXG4gICAgY29uc3QgaXRlbXMgPSAobm9kZXM/Lml0ZW1zIHx8IFtdKS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIC8vIGJyZWFkY3J1bWJzXG4gICAgICBjb25zdCBicmVhZGNydW1icyA9IHtcbiAgICAgICAgaXRlbXM6IFtdXG4gICAgICB9O1xuICAgICAgaWYgKGl0ZW0uYnJlYWRjcnVtYnMpIHtcbiAgICAgICAgYnJlYWRjcnVtYnMuaXRlbXMgPSBpdGVtLmJyZWFkY3J1bWJzLm1hcCgoeyBsYWJlbCwgbGluazogaHJlZiB9KSA9PiAoe1xuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIGFuY2hvcjogeyBocmVmIH0sXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb246IG5vZGVIZWxwZXIuZ2V0Tm9kZUljb24oY29uZmlnS2V5cywgaXRlbSksXG4gICAgICAgIHRodW1ibmFpbDogbGl0ZSA/IG51bGwgOiBpdGVtLmltZyxcbiAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgIGhyZWY6IGAke2Jhc2VQYXRofS8ke2l0ZW0uaWR9LyR7aGVscGVycy5zbHVnaWZ5KGl0ZW0ubGFiZWwpfWBcbiAgICAgICAgfSxcbiAgICAgICAgYnJlYWRjcnVtYnNcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBwYWdpbmF0aW9uXG4gICAgY29uc3QgcGFnaW5hdGlvbjogUGFnaW5hdGlvbkRhdGEgPSBub2Rlcz8uaXRlbXM/Lmxlbmd0aFxuICAgICAgPyB0aGlzLmdldFBhZ2luYXRpb24ocGFnZSwgdG90YWxDb3VudCwgbGltaXQpXG4gICAgICA6IG51bGw7XG5cbiAgICAvLyByZXN1bHRzIGxpbWl0IHNlbGVjdFxuICAgIGNvbnN0IGxpbWl0U2VsZWN0OiBJbnB1dFNlbGVjdERhdGEgPSB7XG4gICAgICBpZDogJ2xpbWl0LXNlbGVjdCcsXG4gICAgICBsYWJlbDogJ051bWVybyBkaSByaXN1bHRhdGknLFxuICAgICAgb3B0aW9uczogWzEwLCAyNSwgNTBdLm1hcCgoc2l6ZSkgPT4gKHtcbiAgICAgICAgbGFiZWw6IGAke3NpemV9YCxcbiAgICAgICAgdmFsdWU6IHNpemUsXG4gICAgICAgIHNlbGVjdGVkOiBzaXplID09PSBsaW1pdFxuICAgICAgfSkpLFxuICAgICAgcGF5bG9hZDogJ2xpbWl0LXNlbGVjdCcsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVyLFxuICAgICAgaW5wdXQsXG4gICAgICBpdGVtcyxcbiAgICAgIHBhZ2luYXRpb24sXG4gICAgICBsaW1pdFNlbGVjdCxcbiAgICAgIGZhbGxiYWNrOiBub2RlcyA/IGZhbGxiYWNrIDogbnVsbCxcbiAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIH07XG4gIH07XG5cbiAgcHVibGljIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xuICAgIHRoaXMub3V0cHV0LmxvYWRpbmcgPSBsb2FkaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWdpbmF0aW9uKHBhZ2UsIHRvdGFsQ291bnQsIGxpbWl0KTogUGFnaW5hdGlvbkRhdGEge1xuICAgIGNvbnN0IHBhZ2VzID0gTWF0aC5jZWlsKHRvdGFsQ291bnQgLyBsaW1pdCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGlua3M6IHRoaXMuZ2V0UGFnaW5hdGlvbkxpbmtzKHBhZ2UsIHBhZ2VzKSxcbiAgICAgIGZpcnN0OiB7XG4gICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgIHBheWxvYWQ6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6IHBhZ2UgPT09IDEgPyAnaXMtZGlzYWJsZWQnIDogJycsXG4gICAgICB9LFxuICAgICAgcHJldjoge1xuICAgICAgICBhbmNob3I6IHtcbiAgICAgICAgICBwYXlsb2FkOiBwYWdlID09PSAxID8gMSA6IHBhZ2UgLSAxLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc2VzOiBwYWdlID09PSAxID8gJ2lzLWRpc2FibGVkJyA6ICcnXG4gICAgICB9LFxuICAgICAgbmV4dDoge1xuICAgICAgICBhbmNob3I6IHtcbiAgICAgICAgICBwYXlsb2FkOiBwYWdlID09PSBwYWdlcyA/IHBhZ2VzIDogcGFnZSArIDEsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6IHBhZ2UgPT09IHBhZ2VzID8gJ2lzLWRpc2FibGVkJyA6ICcnLFxuICAgICAgfSxcbiAgICAgIGxhc3Q6IHtcbiAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgcGF5bG9hZDogcGFnZXMsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6IHBhZ2UgPT09IHBhZ2VzID8gJ2lzLWRpc2FibGVkJyA6ICcnLFxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFBhZ2luYXRpb25MaW5rcyhwYWdlLCBwYWdlcyk6IEJ1dHRvbltdIHtcbiAgICBsZXQgZmlyc3RJdGVtID0gMTtcbiAgICBjb25zdCBsaW5rczogQnV0dG9uW10gPSBbXTtcbiAgICBjb25zdCBsaW1pdCA9IFBBR0VfTElNSVQ7XG4gICAgbGV0IGxhc3QgPSBsaW1pdDtcblxuICAgIGlmIChwYWdlcyA+IGxpbWl0KSB7XG4gICAgICBjb25zdCBzdGVwcyA9IE1hdGguZmxvb3IobGltaXQgLyAyKTtcbiAgICAgIGlmIChwYWdlID4gc3RlcHMpIHtcbiAgICAgICAgZmlyc3RJdGVtID0gcGFnZSAtIHN0ZXBzO1xuICAgICAgfVxuXG4gICAgICBpZiAoKHBhZ2UgKyBzdGVwcykgPiBwYWdlcykge1xuICAgICAgICBmaXJzdEl0ZW0gPSAocGFnZXMgLSBsaW1pdCkgKyAxO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0ID0gcGFnZXM7XG4gICAgfVxuXG4gICAgbGV0IGk7XG4gICAgZm9yIChpID0gMDsgaSA8IGxhc3Q7IGkgKz0gMSkge1xuICAgICAgY29uc3QgaXRlbVBhZ2UgPSBmaXJzdEl0ZW0gKyBpO1xuICAgICAgbGlua3MucHVzaCh7XG4gICAgICAgIHRleHQ6IGl0ZW1QYWdlLFxuICAgICAgICBjbGFzc2VzOiBpdGVtUGFnZSA9PT0gcGFnZSA/ICdpcy1kaXNhYmxlZCcgOiAnJyxcbiAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgcGF5bG9hZDogaXRlbVBhZ2UsXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaW5rcztcbiAgfVxufVxuIl19
|
|
@@ -21,4 +21,4 @@ export class AwSidebarHeaderDS extends DataSource {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1oZWFkZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL3NpZGViYXItaGVhZGVyLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFVBQVU7SUFDckMsU0FBUyxDQUFDLElBQUk7UUFDdEIsT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtZQUN6RSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjO1lBQ3pELE9BQU8sRUFBRSxRQUFRO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQzFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLFdBQVcsQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQztZQUNwQyxXQUFXLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBd1NpZGViYXJIZWFkZXJEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKGRhdGEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbkxlZnQ6ICduNy1pY29uLXRyZWUtaWNvbicsXG4gICAgICB0ZXh0OiBkYXRhLnRleHQgfHwgJycsXG4gICAgICBpY29uUmlnaHQ6IGRhdGEuaXNFeHBhbmRlZCA/ICduNy1pY29uLWFuZ2xlLWxlZnQnIDogJ243LWljb24tYW5nbGUtcmlnaHQnLFxuICAgICAgY2xhc3NlczogZGF0YS5pc0V4cGFuZGVkID8gJ2lzLWV4cGFuZGVkJyA6ICdpcy1jb2xsYXBzZWQnLFxuICAgICAgcGF5bG9hZDogJ2hlYWRlcicsXG4gICAgfTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGViYXIoKSB7XG4gICAgY29uc3Qgc2lkZWJhckRhdGEgPSB0aGlzLm91dHB1dDtcbiAgICBpZiAoc2lkZWJhckRhdGEuY2xhc3NlcyA9PT0gJ2lzLWV4cGFuZGVkJykge1xuICAgICAgc2lkZWJhckRhdGEuY2xhc3NlcyA9ICdpcy1jb2xsYXBzZWQnO1xuICAgICAgc2lkZWJhckRhdGEuaWNvblJpZ2h0ID0gJ243LWljb24tYW5nbGUtcmlnaHQnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaWRlYmFyRGF0YS5jbGFzc2VzID0gJ2lzLWV4cGFuZGVkJztcbiAgICAgIHNpZGViYXJEYXRhLmljb25SaWdodCA9ICduNy1pY29uLWFuZ2xlLWxlZnQnO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
import dayjs from 'dayjs'; // in arianna pkg "import * as dayjs" does not work
|
|
3
|
+
import { max as _max, min as _min } from 'lodash';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
const ONE_YEAR = 31557600000;
|
|
6
|
+
const YEARS_MARGIN = 30;
|
|
7
|
+
export class AwTimelineDS extends DataSource {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.timelineLoaded$ = new Subject();
|
|
11
|
+
this.timelineControlsVisible = false;
|
|
12
|
+
this.transform = (data) => {
|
|
13
|
+
const { disableEndDates } = this.options.configuration;
|
|
14
|
+
this.dataSet = data.map(({ id, start, end, item, label }) => ({
|
|
15
|
+
id,
|
|
16
|
+
item,
|
|
17
|
+
start: start ? dayjs(start).format('YYYY-MM-DD') : null,
|
|
18
|
+
end: (end && end !== start && !disableEndDates)
|
|
19
|
+
? dayjs(end).format('YYYY-MM-DD') // show end date
|
|
20
|
+
: null, // hide end date
|
|
21
|
+
content: this.getItemTemplate(label, item.label),
|
|
22
|
+
_meta: {
|
|
23
|
+
dateText: label
|
|
24
|
+
}
|
|
25
|
+
}));
|
|
26
|
+
const max = this.getMax();
|
|
27
|
+
const min = this.getMin();
|
|
28
|
+
return {
|
|
29
|
+
containerID: 'timeline-component',
|
|
30
|
+
libOptions: {
|
|
31
|
+
max,
|
|
32
|
+
min,
|
|
33
|
+
start: min,
|
|
34
|
+
end: max,
|
|
35
|
+
align: 'left',
|
|
36
|
+
minHeight: '100px',
|
|
37
|
+
// height: '100px',
|
|
38
|
+
locale: 'it_IT',
|
|
39
|
+
// cluster: {
|
|
40
|
+
// fitOnDoubleClick: true,
|
|
41
|
+
// clusterCriteria: (f, s) => f.content.charAt(0) === s.content.charAt(0),
|
|
42
|
+
// titleTemplate: '{count} eventi',
|
|
43
|
+
// },
|
|
44
|
+
showCurrentTime: false,
|
|
45
|
+
showTooltips: false,
|
|
46
|
+
tooltip: {
|
|
47
|
+
followMouse: false,
|
|
48
|
+
template: (d, element) => `<div class="tooltip">${element.title}</div>`
|
|
49
|
+
},
|
|
50
|
+
width: '100%',
|
|
51
|
+
// minHeight: '350px',
|
|
52
|
+
// maxHeight: '800px',
|
|
53
|
+
zoomMax: ONE_YEAR * 2000, // 2000 years
|
|
54
|
+
zoomMin: ONE_YEAR / 12, // a month
|
|
55
|
+
// zoomFriction: 8
|
|
56
|
+
},
|
|
57
|
+
dataSet: this.dataSet,
|
|
58
|
+
_setInstance: (timeline) => {
|
|
59
|
+
this.timeline = timeline;
|
|
60
|
+
this.timelineLoaded$.next();
|
|
61
|
+
// fix cluster visualization
|
|
62
|
+
// setTimeout(() => {
|
|
63
|
+
// this.timeline.fit();
|
|
64
|
+
// });
|
|
65
|
+
// timeout for zoom controls
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
this.timelineControlsVisible = true;
|
|
68
|
+
}, 1000);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
getItemTemplate(datesLabel, label) {
|
|
74
|
+
return (`
|
|
75
|
+
<div class="dates">
|
|
76
|
+
<em>${datesLabel}</em>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="content">${label}</div>
|
|
79
|
+
`);
|
|
80
|
+
}
|
|
81
|
+
getMax() {
|
|
82
|
+
const maxDate = new Date(_max(this.getAllDates()));
|
|
83
|
+
const year = maxDate.getFullYear();
|
|
84
|
+
const month = maxDate.getMonth();
|
|
85
|
+
const day = maxDate.getDate();
|
|
86
|
+
return new Date(year + YEARS_MARGIN, month, day);
|
|
87
|
+
}
|
|
88
|
+
getMin() {
|
|
89
|
+
const minDate = new Date(_min(this.getAllDates()));
|
|
90
|
+
const year = minDate.getFullYear();
|
|
91
|
+
const month = minDate.getMonth();
|
|
92
|
+
const day = minDate.getDate();
|
|
93
|
+
return new Date(year - YEARS_MARGIN, month, day);
|
|
94
|
+
}
|
|
95
|
+
getAllDates() {
|
|
96
|
+
return [
|
|
97
|
+
...this.dataSet
|
|
98
|
+
.filter(({ start }) => start)
|
|
99
|
+
.map(({ start }) => start),
|
|
100
|
+
...this.dataSet
|
|
101
|
+
.filter(({ end }) => end)
|
|
102
|
+
.map(({ end }) => end)
|
|
103
|
+
];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL3RpbWVsaW5lLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDLENBQUMsbURBQW1EO0FBQzlFLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUM7QUFDN0IsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRXhCLE1BQU0sT0FBTyxZQUFhLFNBQVEsVUFBVTtJQUE1Qzs7UUFHUyxvQkFBZSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSS9DLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUU3QixjQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3QixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDdkIsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFDNUIsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDTCxFQUFFO2dCQUNGLElBQUk7Z0JBQ0osS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDdkQsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUM7b0JBQzdDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLGdCQUFnQjtvQkFDbEQsQ0FBQyxDQUFDLElBQUksRUFBRSxnQkFBZ0I7Z0JBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNoRCxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0YsQ0FBQyxDQUFDLENBQUM7WUFFSixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTFCLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLG9CQUFvQjtnQkFDakMsVUFBVSxFQUFFO29CQUNWLEdBQUc7b0JBQ0gsR0FBRztvQkFDSCxLQUFLLEVBQUUsR0FBRztvQkFDVixHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsTUFBTTtvQkFDYixTQUFTLEVBQUUsT0FBTztvQkFDbEIsbUJBQW1CO29CQUNuQixNQUFNLEVBQUUsT0FBTztvQkFDZixhQUFhO29CQUNiLDBCQUEwQjtvQkFDMUIsMEVBQTBFO29CQUMxRSxxQ0FBcUM7b0JBQ3JDLEtBQUs7b0JBQ0wsZUFBZSxFQUFFLEtBQUs7b0JBQ3RCLFlBQVksRUFBRSxLQUFLO29CQUNuQixPQUFPLEVBQUU7d0JBQ1AsV0FBVyxFQUFFLEtBQUs7d0JBQ2xCLFFBQVEsRUFBRSxDQUFDLENBQU0sRUFBRSxPQUEwQixFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsT0FBTyxDQUFDLEtBQUssUUFBUTtxQkFDaEc7b0JBQ0QsS0FBSyxFQUFFLE1BQU07b0JBQ2Isc0JBQXNCO29CQUN0QixzQkFBc0I7b0JBQ3RCLE9BQU8sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLGFBQWE7b0JBQ3ZDLE9BQU8sRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLFVBQVU7b0JBQ2xDLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBRTVCLDRCQUE0QjtvQkFDNUIscUJBQXFCO29CQUNyQix5QkFBeUI7b0JBQ3pCLE1BQU07b0JBRU4sNEJBQTRCO29CQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7b0JBQ3RDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDWCxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztJQXVDSixDQUFDO0lBckNDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsS0FBSztRQUMvQixPQUFPLENBQUM7O2NBRUUsVUFBVTs7NkJBRUssS0FBSztLQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVuRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLE9BQU87aUJBQ1osTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO2lCQUM1QixHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDNUIsR0FBRyxJQUFJLENBQUMsT0FBTztpQkFDWixNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUJBQ3hCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUN6QixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJzsgLy8gaW4gYXJpYW5uYSBwa2cgXCJpbXBvcnQgKiBhcyBkYXlqc1wiIGRvZXMgbm90IHdvcmtcbmltcG9ydCB7IG1heCBhcyBfbWF4LCBtaW4gYXMgX21pbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IE9ORV9ZRUFSID0gMzE1NTc2MDAwMDA7XG5jb25zdCBZRUFSU19NQVJHSU4gPSAzMDtcblxuZXhwb3J0IGNsYXNzIEF3VGltZWxpbmVEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwdWJsaWMgdGltZWxpbmU7XG5cbiAgcHVibGljIHRpbWVsaW5lTG9hZGVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGRhdGFTZXQ7XG5cbiAgcHVibGljIHRpbWVsaW5lQ29udHJvbHNWaXNpYmxlID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybSA9IChkYXRhKSA9PiB7XG4gICAgY29uc3QgeyBkaXNhYmxlRW5kRGF0ZXMgfSA9IHRoaXMub3B0aW9ucy5jb25maWd1cmF0aW9uO1xuICAgIHRoaXMuZGF0YVNldCA9IGRhdGEubWFwKCh7XG4gICAgICBpZCwgc3RhcnQsIGVuZCwgaXRlbSwgbGFiZWxcbiAgICB9KSA9PiAoe1xuICAgICAgaWQsXG4gICAgICBpdGVtLFxuICAgICAgc3RhcnQ6IHN0YXJ0ID8gZGF5anMoc3RhcnQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpIDogbnVsbCxcbiAgICAgIGVuZDogKGVuZCAmJiBlbmQgIT09IHN0YXJ0ICYmICFkaXNhYmxlRW5kRGF0ZXMpXG4gICAgICAgID8gZGF5anMoZW5kKS5mb3JtYXQoJ1lZWVktTU0tREQnKSAvLyBzaG93IGVuZCBkYXRlXG4gICAgICAgIDogbnVsbCwgLy8gaGlkZSBlbmQgZGF0ZVxuICAgICAgY29udGVudDogdGhpcy5nZXRJdGVtVGVtcGxhdGUobGFiZWwsIGl0ZW0ubGFiZWwpLFxuICAgICAgX21ldGE6IHtcbiAgICAgICAgZGF0ZVRleHQ6IGxhYmVsXG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgY29uc3QgbWF4ID0gdGhpcy5nZXRNYXgoKTtcbiAgICBjb25zdCBtaW4gPSB0aGlzLmdldE1pbigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRhaW5lcklEOiAndGltZWxpbmUtY29tcG9uZW50JyxcbiAgICAgIGxpYk9wdGlvbnM6IHtcbiAgICAgICAgbWF4LFxuICAgICAgICBtaW4sXG4gICAgICAgIHN0YXJ0OiBtaW4sXG4gICAgICAgIGVuZDogbWF4LFxuICAgICAgICBhbGlnbjogJ2xlZnQnLFxuICAgICAgICBtaW5IZWlnaHQ6ICcxMDBweCcsXG4gICAgICAgIC8vIGhlaWdodDogJzEwMHB4JyxcbiAgICAgICAgbG9jYWxlOiAnaXRfSVQnLFxuICAgICAgICAvLyBjbHVzdGVyOiB7XG4gICAgICAgIC8vIGZpdE9uRG91YmxlQ2xpY2s6IHRydWUsXG4gICAgICAgIC8vIGNsdXN0ZXJDcml0ZXJpYTogKGYsIHMpID0+IGYuY29udGVudC5jaGFyQXQoMCkgPT09IHMuY29udGVudC5jaGFyQXQoMCksXG4gICAgICAgIC8vICAgdGl0bGVUZW1wbGF0ZTogJ3tjb3VudH0gZXZlbnRpJyxcbiAgICAgICAgLy8gfSxcbiAgICAgICAgc2hvd0N1cnJlbnRUaW1lOiBmYWxzZSxcbiAgICAgICAgc2hvd1Rvb2x0aXBzOiBmYWxzZSxcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgIGZvbGxvd01vdXNlOiBmYWxzZSxcbiAgICAgICAgICB0ZW1wbGF0ZTogKGQ6IGFueSwgZWxlbWVudDogeyB0aXRsZTogc3RyaW5nIH0pID0+IGA8ZGl2IGNsYXNzPVwidG9vbHRpcFwiPiR7ZWxlbWVudC50aXRsZX08L2Rpdj5gXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIC8vIG1pbkhlaWdodDogJzM1MHB4JyxcbiAgICAgICAgLy8gbWF4SGVpZ2h0OiAnODAwcHgnLFxuICAgICAgICB6b29tTWF4OiBPTkVfWUVBUiAqIDIwMDAsIC8vIDIwMDAgeWVhcnNcbiAgICAgICAgem9vbU1pbjogT05FX1lFQVIgLyAxMiwgLy8gYSBtb250aFxuICAgICAgICAvLyB6b29tRnJpY3Rpb246IDhcbiAgICAgIH0sXG4gICAgICBkYXRhU2V0OiB0aGlzLmRhdGFTZXQsXG4gICAgICBfc2V0SW5zdGFuY2U6ICh0aW1lbGluZSkgPT4ge1xuICAgICAgICB0aGlzLnRpbWVsaW5lID0gdGltZWxpbmU7XG4gICAgICAgIHRoaXMudGltZWxpbmVMb2FkZWQkLm5leHQoKTtcblxuICAgICAgICAvLyBmaXggY2x1c3RlciB2aXN1YWxpemF0aW9uXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAvLyAgIHRoaXMudGltZWxpbmUuZml0KCk7XG4gICAgICAgIC8vIH0pO1xuXG4gICAgICAgIC8vIHRpbWVvdXQgZm9yIHpvb20gY29udHJvbHNcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy50aW1lbGluZUNvbnRyb2xzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0sIDEwMDApO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgZ2V0SXRlbVRlbXBsYXRlKGRhdGVzTGFiZWwsIGxhYmVsKSB7XG4gICAgcmV0dXJuIChgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXNcIj5cbiAgICAgICAgPGVtPiR7ZGF0ZXNMYWJlbH08L2VtPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPiR7bGFiZWx9PC9kaXY+XG4gICAgYCk7XG4gIH1cblxuICBnZXRNYXgoKSB7XG4gICAgY29uc3QgbWF4RGF0ZSA9IG5ldyBEYXRlKF9tYXgodGhpcy5nZXRBbGxEYXRlcygpKSk7XG5cbiAgICBjb25zdCB5ZWFyID0gbWF4RGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gbWF4RGF0ZS5nZXRNb250aCgpO1xuICAgIGNvbnN0IGRheSA9IG1heERhdGUuZ2V0RGF0ZSgpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyICsgWUVBUlNfTUFSR0lOLCBtb250aCwgZGF5KTtcbiAgfVxuXG4gIGdldE1pbigpIHtcbiAgICBjb25zdCBtaW5EYXRlID0gbmV3IERhdGUoX21pbih0aGlzLmdldEFsbERhdGVzKCkpKTtcblxuICAgIGNvbnN0IHllYXIgPSBtaW5EYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSBtaW5EYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZGF5ID0gbWluRGF0ZS5nZXREYXRlKCk7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIgLSBZRUFSU19NQVJHSU4sIG1vbnRoLCBkYXkpO1xuICB9XG5cbiAgZ2V0QWxsRGF0ZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuZGF0YVNldFxuICAgICAgICAuZmlsdGVyKCh7IHN0YXJ0IH0pID0+IHN0YXJ0KVxuICAgICAgICAubWFwKCh7IHN0YXJ0IH0pID0+IHN0YXJ0KSxcbiAgICAgIC4uLnRoaXMuZGF0YVNldFxuICAgICAgICAuZmlsdGVyKCh7IGVuZCB9KSA9PiBlbmQpXG4gICAgICAgIC5tYXAoKHsgZW5kIH0pID0+IGVuZClcbiAgICBdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { DataSource } from '@net7/core';
|
|
2
|
+
import { helpers } from '@net7/boilerplate-common';
|
|
3
|
+
export class AwTreeDS extends DataSource {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.transform = (data) => data;
|
|
7
|
+
this._getCachedData = () => AwTreeDS.dataCache[this.rootId];
|
|
8
|
+
this._normalize = ({ id, label, icon, img, branches, document_type: type, document_classification: classification }) => {
|
|
9
|
+
const hasBranches = !!(Array.isArray(branches) && branches.length);
|
|
10
|
+
this._getCachedData().flatData[id] = {
|
|
11
|
+
id, label, icon, img, hasBranches, type, classification
|
|
12
|
+
};
|
|
13
|
+
if (hasBranches) {
|
|
14
|
+
branches.forEach((data) => {
|
|
15
|
+
this._getCachedData().flatIds.push([id, data.id]);
|
|
16
|
+
this._normalize(data);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
this._getParent = (id) => this._getCachedData().flatIds
|
|
21
|
+
.filter(([, childId]) => childId === id)
|
|
22
|
+
.map(([parentId]) => parentId)[0] || null;
|
|
23
|
+
this._getTreePath = (id) => {
|
|
24
|
+
const ids = [id];
|
|
25
|
+
let currentId = id;
|
|
26
|
+
while (currentId) {
|
|
27
|
+
const parentId = this._getParent(currentId);
|
|
28
|
+
if (parentId) {
|
|
29
|
+
ids.push(parentId);
|
|
30
|
+
}
|
|
31
|
+
currentId = parentId;
|
|
32
|
+
}
|
|
33
|
+
return ids.reverse();
|
|
34
|
+
};
|
|
35
|
+
this._getTree = (path) => {
|
|
36
|
+
const tree = {};
|
|
37
|
+
let counter = 0;
|
|
38
|
+
const loadItems = (id, source) => {
|
|
39
|
+
counter += 1;
|
|
40
|
+
const nextParent = path[counter];
|
|
41
|
+
source.items = [];
|
|
42
|
+
this._getCachedData().flatIds
|
|
43
|
+
.filter(([parentId]) => parentId === id)
|
|
44
|
+
.forEach(([, childId], index) => {
|
|
45
|
+
const inPath = childId === nextParent;
|
|
46
|
+
const item = this._getTreeItem(childId, inPath);
|
|
47
|
+
source.items.push(item);
|
|
48
|
+
if (inPath) {
|
|
49
|
+
loadItems(childId, source.items[index]);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
// init
|
|
54
|
+
loadItems(path[0], tree);
|
|
55
|
+
return tree;
|
|
56
|
+
};
|
|
57
|
+
this._getTreeItem = (id, inPath) => {
|
|
58
|
+
const { label, img, hasBranches, type, classification } = this._getCachedData().flatData[id];
|
|
59
|
+
const defaultIcon = (this.options.config[type] || { icon: null }).icon;
|
|
60
|
+
let specificIcon = '';
|
|
61
|
+
const lastSegment = /.*\.(\w+)$/;
|
|
62
|
+
if (classification && lastSegment.test(classification)) {
|
|
63
|
+
const classID = classification
|
|
64
|
+
.match(lastSegment)[1] // get classification characters
|
|
65
|
+
.toUpperCase(); // normalize
|
|
66
|
+
specificIcon = this.options.config[type].classifications[classID].icon;
|
|
67
|
+
}
|
|
68
|
+
const arrowIcons = inPath ? 'n7-icon-angle-down' : 'n7-icon-angle-right';
|
|
69
|
+
const classes = [];
|
|
70
|
+
if (inPath) {
|
|
71
|
+
classes.push('is-expanded');
|
|
72
|
+
}
|
|
73
|
+
if (this.activeId === id) {
|
|
74
|
+
classes.push('is-active');
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
classes: classes.join(' '),
|
|
78
|
+
text: label || null,
|
|
79
|
+
img: img || null,
|
|
80
|
+
icon: (specificIcon || defaultIcon),
|
|
81
|
+
toggle: hasBranches ? {
|
|
82
|
+
icon: arrowIcons,
|
|
83
|
+
payload: {
|
|
84
|
+
source: 'toggle',
|
|
85
|
+
id,
|
|
86
|
+
},
|
|
87
|
+
} : null,
|
|
88
|
+
meta: id,
|
|
89
|
+
anchor: {
|
|
90
|
+
href: `${this.basePath}/${id}/${helpers.slugify(label)}`,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
static { this.dataCache = {}; }
|
|
96
|
+
load(data) {
|
|
97
|
+
const { tree, basePath } = data;
|
|
98
|
+
this.rootId = tree.id;
|
|
99
|
+
this.basePath = basePath;
|
|
100
|
+
// save in cache
|
|
101
|
+
if (!AwTreeDS.dataCache[this.rootId]) {
|
|
102
|
+
AwTreeDS.dataCache[this.rootId] = { flatIds: [], flatData: {} };
|
|
103
|
+
this._normalize(tree);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
build(id) {
|
|
107
|
+
const path = this._getTreePath(id);
|
|
108
|
+
const oldPath = this._getTreePath(this.currentId);
|
|
109
|
+
const oldPathIndex = oldPath.indexOf(id);
|
|
110
|
+
if (oldPathIndex > 0) {
|
|
111
|
+
path.splice(oldPathIndex);
|
|
112
|
+
this.currentId = null;
|
|
113
|
+
}
|
|
114
|
+
else if (this.currentId === id) {
|
|
115
|
+
const idIndex = path.indexOf(this.currentId);
|
|
116
|
+
path.splice(idIndex);
|
|
117
|
+
this.currentId = null;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.currentId = id;
|
|
121
|
+
}
|
|
122
|
+
const tree = this._getTree(path);
|
|
123
|
+
this.update(tree);
|
|
124
|
+
}
|
|
125
|
+
setActive(id) {
|
|
126
|
+
this.activeId = id;
|
|
127
|
+
}
|
|
128
|
+
highlightActive() {
|
|
129
|
+
const control = (items) => {
|
|
130
|
+
items.forEach((item) => {
|
|
131
|
+
const founded = item.meta === this.activeId;
|
|
132
|
+
const hasActive = item.classes.indexOf('is-active') !== -1;
|
|
133
|
+
// clear is-active
|
|
134
|
+
if (hasActive && !founded) {
|
|
135
|
+
const currentClasses = item.classes.split(' ');
|
|
136
|
+
currentClasses.splice(currentClasses.indexOf('is-active'), 1);
|
|
137
|
+
item.classes = currentClasses.join(' ');
|
|
138
|
+
}
|
|
139
|
+
if (founded) {
|
|
140
|
+
const currentClasses = item.classes.split(' ');
|
|
141
|
+
if (currentClasses.indexOf('is-active') === -1) {
|
|
142
|
+
currentClasses.push('is-active');
|
|
143
|
+
}
|
|
144
|
+
item.classes = currentClasses.join(' ');
|
|
145
|
+
}
|
|
146
|
+
if (Array.isArray(item.items) && item.items.length) {
|
|
147
|
+
control(item.items);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
control(this.output.items);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvdHJlZS5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVU7SUFBeEM7O1FBV1ksY0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFrRTdCLG1CQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkQsZUFBVSxHQUFHLENBQUMsRUFDcEIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFDN0YsRUFBRSxFQUFFO1lBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRztnQkFDbkMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsY0FBYzthQUN4RCxDQUFDO1lBQ0YsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FB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QUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO2dCQUVELElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQy9DLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUMvQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNuQyxDQUFDO29CQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztnQkFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIEF3VHJlZURTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHN0YXRpYyBkYXRhQ2FjaGU6IGFueSA9IHt9O1xuXG4gIHByaXZhdGUgYmFzZVBhdGg6IHN0cmluZztcblxuICBwcml2YXRlIHJvb3RJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgY3VycmVudElkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhY3RpdmVJZDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0gPSAoZGF0YSkgPT4gZGF0YTtcblxuICBwdWJsaWMgbG9hZChkYXRhKSB7XG4gICAgY29uc3QgeyB0cmVlLCBiYXNlUGF0aCB9ID0gZGF0YTtcbiAgICB0aGlzLnJvb3RJZCA9IHRyZWUuaWQ7XG4gICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgIC8vIHNhdmUgaW4gY2FjaGVcbiAgICBpZiAoIUF3VHJlZURTLmRhdGFDYWNoZVt0aGlzLnJvb3RJZF0pIHtcbiAgICAgIEF3VHJlZURTLmRhdGFDYWNoZVt0aGlzLnJvb3RJZF0gPSB7IGZsYXRJZHM6IFtdLCBmbGF0RGF0YToge30gfTtcbiAgICAgIHRoaXMuX25vcm1hbGl6ZSh0cmVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGQoaWQpIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5fZ2V0VHJlZVBhdGgoaWQpO1xuICAgIGNvbnN0IG9sZFBhdGggPSB0aGlzLl9nZXRUcmVlUGF0aCh0aGlzLmN1cnJlbnRJZCk7XG4gICAgY29uc3Qgb2xkUGF0aEluZGV4ID0gb2xkUGF0aC5pbmRleE9mKGlkKTtcblxuICAgIGlmIChvbGRQYXRoSW5kZXggPiAwKSB7XG4gICAgICBwYXRoLnNwbGljZShvbGRQYXRoSW5kZXgpO1xuICAgICAgdGhpcy5jdXJyZW50SWQgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50SWQgPT09IGlkKSB7XG4gICAgICBjb25zdCBpZEluZGV4ID0gcGF0aC5pbmRleE9mKHRoaXMuY3VycmVudElkKTtcbiAgICAgIHBhdGguc3BsaWNlKGlkSW5kZXgpO1xuICAgICAgdGhpcy5jdXJyZW50SWQgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRJZCA9IGlkO1xuICAgIH1cblxuICAgIGNvbnN0IHRyZWU6IGFueSA9IHRoaXMuX2dldFRyZWUocGF0aCk7XG4gICAgdGhpcy51cGRhdGUodHJlZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlKGlkKSB7XG4gICAgdGhpcy5hY3RpdmVJZCA9IGlkO1xuICB9XG5cbiAgcHVibGljIGhpZ2hsaWdodEFjdGl2ZSgpIHtcbiAgICBjb25zdCBjb250cm9sID0gKGl0ZW1zKSA9PiB7XG4gICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvdW5kZWQgPSBpdGVtLm1ldGEgPT09IHRoaXMuYWN0aXZlSWQ7XG4gICAgICAgIGNvbnN0IGhhc0FjdGl2ZSA9IGl0ZW0uY2xhc3Nlcy5pbmRleE9mKCdpcy1hY3RpdmUnKSAhPT0gLTE7XG5cbiAgICAgICAgLy8gY2xlYXIgaXMtYWN0aXZlXG4gICAgICAgIGlmIChoYXNBY3RpdmUgJiYgIWZvdW5kZWQpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50Q2xhc3NlcyA9IGl0ZW0uY2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgICAgICAgIGN1cnJlbnRDbGFzc2VzLnNwbGljZShjdXJyZW50Q2xhc3Nlcy5pbmRleE9mKCdpcy1hY3RpdmUnKSwgMSk7XG4gICAgICAgICAgaXRlbS5jbGFzc2VzID0gY3VycmVudENsYXNzZXMuam9pbignICcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvdW5kZWQpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50Q2xhc3NlcyA9IGl0ZW0uY2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgICAgICAgIGlmIChjdXJyZW50Q2xhc3Nlcy5pbmRleE9mKCdpcy1hY3RpdmUnKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGN1cnJlbnRDbGFzc2VzLnB1c2goJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpdGVtLmNsYXNzZXMgPSBjdXJyZW50Q2xhc3Nlcy5qb2luKCcgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLml0ZW1zKSAmJiBpdGVtLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnRyb2woaXRlbS5pdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgY29udHJvbCh0aGlzLm91dHB1dC5pdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDYWNoZWREYXRhID0gKCkgPT4gQXdUcmVlRFMuZGF0YUNhY2hlW3RoaXMucm9vdElkXTtcblxuICBwcml2YXRlIF9ub3JtYWxpemUgPSAoe1xuICAgIGlkLCBsYWJlbCwgaWNvbiwgaW1nLCBicmFuY2hlcywgZG9jdW1lbnRfdHlwZTogdHlwZSwgZG9jdW1lbnRfY2xhc3NpZmljYXRpb246IGNsYXNzaWZpY2F0aW9uXG4gIH0pID0+IHtcbiAgICBjb25zdCBoYXNCcmFuY2hlcyA9ICEhKEFycmF5LmlzQXJyYXkoYnJhbmNoZXMpICYmIGJyYW5jaGVzLmxlbmd0aCk7XG4gICAgdGhpcy5fZ2V0Q2FjaGVkRGF0YSgpLmZsYXREYXRhW2lkXSA9IHtcbiAgICAgIGlkLCBsYWJlbCwgaWNvbiwgaW1nLCBoYXNCcmFuY2hlcywgdHlwZSwgY2xhc3NpZmljYXRpb25cbiAgICB9O1xuICAgIGlmIChoYXNCcmFuY2hlcykge1xuICAgICAgYnJhbmNoZXMuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLl9nZXRDYWNoZWREYXRhKCkuZmxhdElkcy5wdXNoKFtpZCwgZGF0YS5pZF0pO1xuICAgICAgICB0aGlzLl9ub3JtYWxpemUoZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZ2V0UGFyZW50ID0gKGlkKSA9PiB0aGlzLl9nZXRDYWNoZWREYXRhKCkuZmxhdElkc1xuICAgIC5maWx0ZXIoKFssIGNoaWxkSWRdKSA9PiBjaGlsZElkID09PSBpZClcbiAgICAubWFwKChbcGFyZW50SWRdKSA9PiBwYXJlbnRJZClbMF0gfHwgbnVsbDtcblxuICBwcml2YXRlIF9nZXRUcmVlUGF0aCA9IChpZCkgPT4ge1xuICAgIGNvbnN0IGlkcyA9IFtpZF07XG4gICAgbGV0IGN1cnJlbnRJZCA9IGlkO1xuICAgIHdoaWxlIChjdXJyZW50SWQpIHtcbiAgICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5fZ2V0UGFyZW50KGN1cnJlbnRJZCk7XG4gICAgICBpZiAocGFyZW50SWQpIHtcbiAgICAgICAgaWRzLnB1c2gocGFyZW50SWQpO1xuICAgICAgfVxuICAgICAgY3VycmVudElkID0gcGFyZW50SWQ7XG4gICAgfVxuICAgIHJldHVybiBpZHMucmV2ZXJzZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgX2dldFRyZWUgPSAocGF0aCkgPT4ge1xuICAgIGNvbnN0IHRyZWUgPSB7fTtcbiAgICBsZXQgY291bnRlciA9IDA7XG5cbiAgICBjb25zdCBsb2FkSXRlbXMgPSAoaWQsIHNvdXJjZSkgPT4ge1xuICAgICAgY291bnRlciArPSAxO1xuICAgICAgY29uc3QgbmV4dFBhcmVudCA9IHBhdGhbY291bnRlcl07XG4gICAgICBzb3VyY2UuaXRlbXMgPSBbXTtcblxuICAgICAgdGhpcy5fZ2V0Q2FjaGVkRGF0YSgpLmZsYXRJZHNcbiAgICAgICAgLmZpbHRlcigoW3BhcmVudElkXSkgPT4gcGFyZW50SWQgPT09IGlkKVxuICAgICAgICAuZm9yRWFjaCgoWywgY2hpbGRJZF0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5QYXRoID0gY2hpbGRJZCA9PT0gbmV4dFBhcmVudDtcbiAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5fZ2V0VHJlZUl0ZW0oY2hpbGRJZCwgaW5QYXRoKTtcbiAgICAgICAgICBzb3VyY2UuaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICBpZiAoaW5QYXRoKSB7XG4gICAgICAgICAgICBsb2FkSXRlbXMoY2hpbGRJZCwgc291cmNlLml0ZW1zW2luZGV4XSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gaW5pdFxuICAgIGxvYWRJdGVtcyhwYXRoWzBdLCB0cmVlKTtcbiAgICByZXR1cm4gdHJlZTtcbiAgfTtcblxuICBwcml2YXRlIF9nZXRUcmVlSXRlbSA9IChpZCwgaW5QYXRoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgbGFiZWwsIGltZywgaGFzQnJhbmNoZXMsIHR5cGUsIGNsYXNzaWZpY2F0aW9uXG4gICAgfSA9IHRoaXMuX2dldENhY2hlZERhdGEoKS5mbGF0RGF0YVtpZF07XG4gICAgY29uc3QgZGVmYXVsdEljb24gPSAodGhpcy5vcHRpb25zLmNvbmZpZ1t0eXBlXSB8fCB7IGljb246IG51bGwgfSkuaWNvbjtcbiAgICBsZXQgc3BlY2lmaWNJY29uID0gJyc7XG4gICAgY29uc3QgbGFzdFNlZ21lbnQgPSAvLipcXC4oXFx3KykkLztcbiAgICBpZiAoY2xhc3NpZmljYXRpb24gJiYgbGFzdFNlZ21lbnQudGVzdChjbGFzc2lmaWNhdGlvbikpIHtcbiAgICAgIGNvbnN0IGNsYXNzSUQgPSBjbGFzc2lmaWNhdGlvblxuICAgICAgICAubWF0Y2gobGFzdFNlZ21lbnQpWzFdIC8vIGdldCBjbGFzc2lmaWNhdGlvbiBjaGFyYWN0ZXJzXG4gICAgICAgIC50b1VwcGVyQ2FzZSgpOyAvLyBub3JtYWxpemVcbiAgICAgIHNwZWNpZmljSWNvbiA9IHRoaXMub3B0aW9ucy5jb25maWdbdHlwZV0uY2xhc3NpZmljYXRpb25zW2NsYXNzSURdLmljb247XG4gICAgfVxuICAgIGNvbnN0IGFycm93SWNvbnMgPSBpblBhdGggPyAnbjctaWNvbi1hbmdsZS1kb3duJyA6ICduNy1pY29uLWFuZ2xlLXJpZ2h0JztcbiAgICBjb25zdCBjbGFzc2VzID0gW107XG4gICAgaWYgKGluUGF0aCkge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdpcy1leHBhbmRlZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5hY3RpdmVJZCA9PT0gaWQpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaXMtYWN0aXZlJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjbGFzc2VzOiBjbGFzc2VzLmpvaW4oJyAnKSxcbiAgICAgIHRleHQ6IGxhYmVsIHx8IG51bGwsXG4gICAgICBpbWc6IGltZyB8fCBudWxsLFxuICAgICAgaWNvbjogKHNwZWNpZmljSWNvbiB8fCBkZWZhdWx0SWNvbiksXG4gICAgICB0b2dnbGU6IGhhc0JyYW5jaGVzID8ge1xuICAgICAgICBpY29uOiBhcnJvd0ljb25zLFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgc291cmNlOiAndG9nZ2xlJyxcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0gOiBudWxsLFxuICAgICAgbWV0YTogaWQsXG4gICAgICBhbmNob3I6IHtcbiAgICAgICAgaHJlZjogYCR7dGhpcy5iYXNlUGF0aH0vJHtpZH0vJHtoZWxwZXJzLnNsdWdpZnkobGFiZWwpfWAsXG4gICAgICB9LFxuICAgIH07XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventHandler } from '@net7/core';
|
|
2
|
+
export class AwAutocompleteWrapperEH extends EventHandler {
|
|
3
|
+
listen() {
|
|
4
|
+
this.innerEvents$.subscribe(({ type, payload }) => {
|
|
5
|
+
switch (type) {
|
|
6
|
+
case 'aw-autocomplete-wrapper.click':
|
|
7
|
+
if (payload !== 'fallback-simple-autocomplete') { // if this is the fallback item, kill the event.
|
|
8
|
+
this.emitOuter('clickresult', payload);
|
|
9
|
+
}
|
|
10
|
+
break;
|
|
11
|
+
default:
|
|
12
|
+
console.warn('unhandled event of type:', type);
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIuZWguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZXZlbnQtaGFuZGxlcnMvYXV0b2NvbXBsZXRlLXdyYXBwZXIuZWgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsWUFBWTtJQUNoRCxNQUFNO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ2hELFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsS0FBSywrQkFBK0I7b0JBQ2xDLElBQUksT0FBTyxLQUFLLDhCQUE4QixFQUFFLENBQUMsQ0FBQyxnREFBZ0Q7d0JBQ2hHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUN6QyxDQUFDO29CQUNELE1BQU07Z0JBQ1I7b0JBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDL0MsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50SGFuZGxlciB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQXdBdXRvY29tcGxldGVXcmFwcGVyRUggZXh0ZW5kcyBFdmVudEhhbmRsZXIge1xuICBwdWJsaWMgbGlzdGVuKCkge1xuICAgIHRoaXMuaW5uZXJFdmVudHMkLnN1YnNjcmliZSgoeyB0eXBlLCBwYXlsb2FkIH0pID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdhdy1hdXRvY29tcGxldGUtd3JhcHBlci5jbGljayc6XG4gICAgICAgICAgaWYgKHBheWxvYWQgIT09ICdmYWxsYmFjay1zaW1wbGUtYXV0b2NvbXBsZXRlJykgeyAvLyBpZiB0aGlzIGlzIHRoZSBmYWxsYmFjayBpdGVtLCBraWxsIHRoZSBldmVudC5cbiAgICAgICAgICAgIHRoaXMuZW1pdE91dGVyKCdjbGlja3Jlc3VsdCcsIHBheWxvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ3VuaGFuZGxlZCBldmVudCBvZiB0eXBlOicsIHR5cGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { EventHandler } from '@net7/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { debounceTime } from 'rxjs/operators';
|
|
4
|
+
export class AwFacetsWrapperEH extends EventHandler {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.internalFacetsChange$ = new Subject();
|
|
8
|
+
this.externalFacetsChange$ = new Subject();
|
|
9
|
+
}
|
|
10
|
+
listen() {
|
|
11
|
+
// listen to inner (widget) events
|
|
12
|
+
this.innerEvents$.subscribe(({ type, payload }) => {
|
|
13
|
+
switch (type) {
|
|
14
|
+
case 'facets-wrapper.facet':
|
|
15
|
+
{
|
|
16
|
+
// empty payload control
|
|
17
|
+
if (!payload.eventPayload.inputPayload) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const { facetId, value } = payload.eventPayload.inputPayload;
|
|
21
|
+
if (value === '__loading__') {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const input = this.dataSource.getInputByFacetId(facetId);
|
|
25
|
+
const context = input.getContext();
|
|
26
|
+
// update
|
|
27
|
+
this.dataSource.onFacetChange(payload);
|
|
28
|
+
// internal
|
|
29
|
+
if (context === 'internal') {
|
|
30
|
+
this.internalFacetsChange$.next(input.getTarget());
|
|
31
|
+
// external
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.externalFacetsChange$.next(facetId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
break;
|
|
38
|
+
case 'facets-wrapper.facetheader':
|
|
39
|
+
this.dataSource.toggleGroup(payload);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this.outerEvents$.subscribe(({ type, payload }) => {
|
|
46
|
+
if (type.indexOf('queryparamschange') !== -1 && this.dataSource.searchModel) {
|
|
47
|
+
this.dataSource.updateFiltersFromQueryParams(payload);
|
|
48
|
+
this.dataSource.updateInputsFromFilters();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// listen to global events
|
|
52
|
+
EventHandler.globalEvents$.subscribe(({ type, payload }) => {
|
|
53
|
+
switch (type) {
|
|
54
|
+
case 'global.searchresponse':
|
|
55
|
+
if (this.dataSource.searchModel && this.dataSource.searchModel.getId() === payload) {
|
|
56
|
+
this.dataSource.updateInputLinks();
|
|
57
|
+
const internalFilters = this.dataSource.searchModel.getInternalFilters();
|
|
58
|
+
internalFilters.forEach((filter) => {
|
|
59
|
+
const input = this.dataSource.searchModel.getInputByFacetId(filter.facetId);
|
|
60
|
+
const target = input.getTarget();
|
|
61
|
+
// this.dataSource.filterTarget(target);
|
|
62
|
+
this.dataSource.updateFilteredTarget(target);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
// internal facets change
|
|
71
|
+
this.externalFacetsChange$.pipe(debounceTime(500)).subscribe((facetId) => {
|
|
72
|
+
const requestParams = this.dataSource.getRequestParams();
|
|
73
|
+
const queryParams = this.dataSource.filtersAsQueryParams(requestParams.filters);
|
|
74
|
+
Object.keys(queryParams).forEach((key) => { queryParams[key] = queryParams[key] || null; });
|
|
75
|
+
// signal
|
|
76
|
+
this.emitOuter('facetschange', { facetId });
|
|
77
|
+
// reset page
|
|
78
|
+
queryParams.page = 1;
|
|
79
|
+
// router signal
|
|
80
|
+
this.emitGlobal('navigate', {
|
|
81
|
+
handler: 'router',
|
|
82
|
+
path: [],
|
|
83
|
+
queryParams,
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXRzLXdyYXBwZXIuZWguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZXZlbnQtaGFuZGxlcnMvYXctZmFjZXRzLXdyYXBwZXIuZWgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsWUFBWTtJQUFuRDs7UUFDUywwQkFBcUIsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwRCwwQkFBcUIsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQTJGN0QsQ0FBQztJQXpGUSxNQUFNO1FBQ1gsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUNoRCxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNiLEtBQUssc0JBQXNCO29CQUFFLENBQUM7d0JBQzVCLHdCQUF3Qjt3QkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7NEJBQ3ZDLE9BQU87d0JBQ1QsQ0FBQzt3QkFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO3dCQUM3RCxJQUFJLEtBQUssS0FBSyxhQUFhLEVBQUUsQ0FBQzs0QkFDNUIsT0FBTzt3QkFDVCxDQUFDO3dCQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ3pELE1BQU0s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R0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUYsU0FBUztZQUNULElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUU1QyxhQUFhO1lBQ2IsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFFckIsZ0JBQWdCO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO2dCQUMxQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsV0FBVzthQUNaLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRIYW5kbGVyIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBBd0ZhY2V0c1dyYXBwZXJFSCBleHRlbmRzIEV2ZW50SGFuZGxlciB7XG4gIHB1YmxpYyBpbnRlcm5hbEZhY2V0c0NoYW5nZSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGV4dGVybmFsRmFjZXRzQ2hhbmdlJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgbGlzdGVuKCkge1xuICAgIC8vIGxpc3RlbiB0byBpbm5lciAod2lkZ2V0KSBldmVudHNcbiAgICB0aGlzLmlubmVyRXZlbnRzJC5zdWJzY3JpYmUoKHsgdHlwZSwgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnZmFjZXRzLXdyYXBwZXIuZmFjZXQnOiB7XG4gICAgICAgICAgLy8gZW1wdHkgcGF5bG9hZCBjb250cm9sXG4gICAgICAgICAgaWYgKCFwYXlsb2FkLmV2ZW50UGF5bG9hZC5pbnB1dFBheWxvYWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBmYWNldElkLCB2YWx1ZSB9ID0gcGF5bG9hZC5ldmVudFBheWxvYWQuaW5wdXRQYXlsb2FkO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ19fbG9hZGluZ19fJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZGF0YVNvdXJjZS5nZXRJbnB1dEJ5RmFjZXRJZChmYWNldElkKTtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gaW5wdXQuZ2V0Q29udGV4dCgpO1xuXG4gICAgICAgICAgLy8gdXBkYXRlXG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLm9uRmFjZXRDaGFuZ2UocGF5bG9hZCk7XG5cbiAgICAgICAgICAvLyBpbnRlcm5hbFxuICAgICAgICAgIGlmIChjb250ZXh0ID09PSAnaW50ZXJuYWwnKSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFsRmFjZXRzQ2hhbmdlJC5uZXh0KGlucHV0LmdldFRhcmdldCgpKTtcbiAgICAgICAgICAgIC8vIGV4dGVybmFsXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXh0ZXJuYWxGYWNldHNDaGFuZ2UkLm5leHQoZmFjZXRJZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZmFjZXRzLXdyYXBwZXIuZmFjZXRoZWFkZXInOlxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS50b2dnbGVHcm91cChwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdXRlckV2ZW50cyQuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQgfSkgPT4ge1xuICAgICAgaWYgKHR5cGUuaW5kZXhPZigncXVlcnlwYXJhbXNjaGFuZ2UnKSAhPT0gLTEgJiYgdGhpcy5kYXRhU291cmNlLnNlYXJjaE1vZGVsKSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS51cGRhdGVGaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1zKHBheWxvYWQpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UudXBkYXRlSW5wdXRzRnJvbUZpbHRlcnMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGxpc3RlbiB0byBnbG9iYWwgZXZlbnRzXG4gICAgRXZlbnRIYW5kbGVyLmdsb2JhbEV2ZW50cyQuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQgfSkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2dsb2JhbC5zZWFyY2hyZXNwb25zZSc6XG4gICAgICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5zZWFyY2hNb2RlbCAmJiB0aGlzLmRhdGFTb3VyY2Uuc2VhcmNoTW9kZWwuZ2V0SWQoKSA9PT0gcGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLnVwZGF0ZUlucHV0TGlua3MoKTtcbiAgICAgICAgICAgIGNvbnN0IGludGVybmFsRmlsdGVycyA9IHRoaXMuZGF0YVNvdXJjZS5zZWFyY2hNb2RlbC5nZXRJbnRlcm5hbEZpbHRlcnMoKTtcblxuICAgICAgICAgICAgaW50ZXJuYWxGaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZGF0YVNvdXJjZS5zZWFyY2hNb2RlbC5nZXRJbnB1dEJ5RmFjZXRJZChmaWx0ZXIuZmFjZXRJZCk7XG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGlucHV0LmdldFRhcmdldCgpO1xuICAgICAgICAgICAgICAvLyB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyVGFyZ2V0KHRhcmdldCk7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS51cGRhdGVGaWx0ZXJlZFRhcmdldCh0YXJnZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBpbnRlcm5hbCBmYWNldHMgY2hhbmdlXG4gICAgdGhpcy5leHRlcm5hbEZhY2V0c0NoYW5nZSQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICkuc3Vic2NyaWJlKChmYWNldElkKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gdGhpcy5kYXRhU291cmNlLmdldFJlcXVlc3RQYXJhbXMoKTtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdGhpcy5kYXRhU291cmNlLmZpbHRlcnNBc1F1ZXJ5UGFyYW1zKHJlcXVlc3RQYXJhbXMuZmlsdGVycyk7XG5cbiAgICAgIE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5mb3JFYWNoKChrZXkpID0+IHsgcXVlcnlQYXJhbXNba2V5XSA9IHF1ZXJ5UGFyYW1zW2tleV0gfHwgbnVsbDsgfSk7XG4gICAgICAvLyBzaWduYWxcbiAgICAgIHRoaXMuZW1pdE91dGVyKCdmYWNldHNjaGFuZ2UnLCB7IGZhY2V0SWQgfSk7XG5cbiAgICAgIC8vIHJlc2V0IHBhZ2VcbiAgICAgIHF1ZXJ5UGFyYW1zLnBhZ2UgPSAxO1xuXG4gICAgICAvLyByb3V0ZXIgc2lnbmFsXG4gICAgICB0aGlzLmVtaXRHbG9iYWwoJ25hdmlnYXRlJywge1xuICAgICAgICBoYW5kbGVyOiAncm91dGVyJyxcbiAgICAgICAgcGF0aDogW10sXG4gICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|