@net7/boilerplate-arianna 3.0.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2020/lib/components/aw-facets-wrapper/aw-facets-wrapper.mjs +29 -0
- package/esm2020/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.mjs +23 -0
- package/esm2020/lib/components/chart-tippy/chart-tippy.mjs +25 -0
- package/esm2020/lib/components/index.mjs +7 -0
- package/esm2020/lib/components/pdf-viewer/pdf-viewer.mjs +31 -0
- package/esm2020/lib/components/scheda-dropdown/scheda-dropdown.mjs +26 -0
- package/esm2020/lib/components/smart-breadcrumbs/smart-breadcrumbs.mjs +82 -0
- package/esm2020/lib/config/apollo.config.mjs +706 -0
- package/esm2020/lib/config-types/arianna/app.mjs +2 -0
- package/esm2020/lib/config-types/arianna/index.mjs +3 -0
- package/esm2020/lib/config-types/arianna/layouts.mjs +2 -0
- package/esm2020/lib/config-types/index.mjs +2 -0
- package/esm2020/lib/data-sources/autocomplete-wrapper.ds.mjs +48 -0
- package/esm2020/lib/data-sources/aw-facets-wrapper.ds.mjs +162 -0
- package/esm2020/lib/data-sources/bubble-chart.ds.mjs +95 -0
- package/esm2020/lib/data-sources/carousel.ds.mjs +74 -0
- package/esm2020/lib/data-sources/chart-tippy.ds.mjs +30 -0
- package/esm2020/lib/data-sources/entita-metadata-viewer.ds.mjs +16 -0
- package/esm2020/lib/data-sources/entita-nav.ds.mjs +74 -0
- package/esm2020/lib/data-sources/gallery-results.ds.mjs +103 -0
- package/esm2020/lib/data-sources/hero.ds.mjs +27 -0
- package/esm2020/lib/data-sources/home-autocomplete.ds.mjs +80 -0
- package/esm2020/lib/data-sources/home-facets-wrapper.ds.mjs +178 -0
- package/esm2020/lib/data-sources/home-hero-patrimonio.ds.mjs +7 -0
- package/esm2020/lib/data-sources/home-item-tags-wrapper.ds.mjs +7 -0
- package/esm2020/lib/data-sources/index.mjs +36 -0
- package/esm2020/lib/data-sources/linked-objects.ds.mjs +219 -0
- package/esm2020/lib/data-sources/map.ds.mjs +88 -0
- package/esm2020/lib/data-sources/related-entities.ds.mjs +35 -0
- package/esm2020/lib/data-sources/scheda-breadcrumbs.ds.mjs +18 -0
- package/esm2020/lib/data-sources/scheda-dropdown.ds.mjs +40 -0
- package/esm2020/lib/data-sources/scheda-image.ds.mjs +65 -0
- package/esm2020/lib/data-sources/scheda-inner-title.ds.mjs +7 -0
- package/esm2020/lib/data-sources/scheda-metadata.ds.mjs +11 -0
- package/esm2020/lib/data-sources/scheda-pdf.ds.mjs +54 -0
- package/esm2020/lib/data-sources/search-layout-tabs.ds.mjs +28 -0
- package/esm2020/lib/data-sources/sidebar-header.ds.mjs +24 -0
- package/esm2020/lib/data-sources/table.ds.mjs +8 -0
- package/esm2020/lib/data-sources/timeline.ds.mjs +106 -0
- package/esm2020/lib/data-sources/tree.ds.mjs +154 -0
- package/esm2020/lib/event-handlers/autocomplete-wrapper.eh.mjs +18 -0
- package/esm2020/lib/event-handlers/aw-facets-wrapper.eh.mjs +88 -0
- package/esm2020/lib/event-handlers/bubble-chart.eh.mjs +98 -0
- package/esm2020/lib/event-handlers/chart-tippy.eh.mjs +64 -0
- package/esm2020/lib/event-handlers/entita-nav.eh.mjs +22 -0
- package/esm2020/lib/event-handlers/gallery-results.eh.mjs +38 -0
- package/esm2020/lib/event-handlers/hero.eh.mjs +25 -0
- package/esm2020/lib/event-handlers/home-autocomplete.eh.mjs +15 -0
- package/esm2020/lib/event-handlers/home-facets-wrapper.eh.mjs +125 -0
- package/esm2020/lib/event-handlers/home-hero-patrimonio.eh.mjs +7 -0
- package/esm2020/lib/event-handlers/home-item-tags-wrapper.eh.mjs +18 -0
- package/esm2020/lib/event-handlers/index.mjs +30 -0
- package/esm2020/lib/event-handlers/linked-objects.eh.mjs +60 -0
- package/esm2020/lib/event-handlers/map.eh.mjs +23 -0
- package/esm2020/lib/event-handlers/scheda-breadcrumbs.eh.mjs +12 -0
- package/esm2020/lib/event-handlers/scheda-dropdown.eh.mjs +17 -0
- package/esm2020/lib/event-handlers/scheda-pdf.eh.mjs +14 -0
- package/esm2020/lib/event-handlers/search-layout-tabs.eh.mjs +7 -0
- package/esm2020/lib/event-handlers/sidebar-header.eh.mjs +11 -0
- package/esm2020/lib/event-handlers/table.eh.mjs +15 -0
- package/esm2020/lib/event-handlers/timeline.eh.mjs +46 -0
- package/esm2020/lib/event-handlers/tree.eh.mjs +113 -0
- package/esm2020/lib/helpers/metadata.helper.mjs +89 -0
- package/esm2020/lib/layouts/collection-layout/collection-layout.config.mjs +17 -0
- package/esm2020/lib/layouts/collection-layout/collection-layout.ds.mjs +173 -0
- package/esm2020/lib/layouts/collection-layout/collection-layout.eh.mjs +27 -0
- package/esm2020/lib/layouts/collection-layout/collection-layout.mjs +38 -0
- package/esm2020/lib/layouts/collection-layout/collection-layout.types.mjs +2 -0
- package/esm2020/lib/layouts/entita-layout/entita-layout.config.mjs +29 -0
- package/esm2020/lib/layouts/entita-layout/entita-layout.ds.mjs +310 -0
- package/esm2020/lib/layouts/entita-layout/entita-layout.eh.mjs +119 -0
- package/esm2020/lib/layouts/entita-layout/entita-layout.mjs +51 -0
- package/esm2020/lib/layouts/entita-layout/entita-layout.types.mjs +2 -0
- package/esm2020/lib/layouts/gallery-layout/gallery-facets.config.mjs +145 -0
- package/esm2020/lib/layouts/gallery-layout/gallery-layout.config.mjs +32 -0
- package/esm2020/lib/layouts/gallery-layout/gallery-layout.ds.mjs +15 -0
- package/esm2020/lib/layouts/gallery-layout/gallery-layout.eh.mjs +8 -0
- package/esm2020/lib/layouts/gallery-layout/gallery-layout.mjs +45 -0
- package/esm2020/lib/layouts/home-layout/home-layout.config.mjs +36 -0
- package/esm2020/lib/layouts/home-layout/home-layout.ds.mjs +286 -0
- package/esm2020/lib/layouts/home-layout/home-layout.eh.mjs +245 -0
- package/esm2020/lib/layouts/home-layout/home-layout.mjs +44 -0
- package/esm2020/lib/layouts/index.mjs +41 -0
- package/esm2020/lib/layouts/map-layout/map-layout.config.mjs +26 -0
- package/esm2020/lib/layouts/map-layout/map-layout.ds.mjs +112 -0
- package/esm2020/lib/layouts/map-layout/map-layout.eh.mjs +44 -0
- package/esm2020/lib/layouts/map-layout/map-layout.mjs +46 -0
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.config.mjs +32 -0
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +282 -0
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.eh.mjs +150 -0
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.mjs +53 -0
- package/esm2020/lib/layouts/search-layout/search-facets.config.mjs +163 -0
- package/esm2020/lib/layouts/search-layout/search-layout.config.mjs +32 -0
- package/esm2020/lib/layouts/search-layout/search-layout.ds.mjs +296 -0
- package/esm2020/lib/layouts/search-layout/search-layout.eh.mjs +175 -0
- package/esm2020/lib/layouts/search-layout/search-layout.mjs +50 -0
- package/esm2020/lib/layouts/timeline-layout/timeline-layout.config.mjs +26 -0
- package/esm2020/lib/layouts/timeline-layout/timeline-layout.ds.mjs +133 -0
- package/esm2020/lib/layouts/timeline-layout/timeline-layout.eh.mjs +41 -0
- package/esm2020/lib/layouts/timeline-layout/timeline-layout.mjs +46 -0
- package/esm2020/lib/n7-boilerplate-arianna.module.mjs +110 -0
- package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-checkbox.mjs +32 -0
- package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-link.mjs +89 -0
- package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-select.mjs +28 -0
- package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-text.mjs +36 -0
- package/esm2020/lib/search/aw-facet-inputs/aw-facet-input.mjs +30 -0
- package/esm2020/lib/search/aw-facet-inputs/index.mjs +6 -0
- package/esm2020/lib/search/aw-search.model.mjs +331 -0
- package/esm2020/lib/search/aw-search.service.mjs +42 -0
- package/esm2020/lib/search/entity-links.helper.mjs +126 -0
- package/esm2020/net7-boilerplate-arianna.mjs +5 -0
- package/esm2020/public-api.mjs +11 -0
- package/fesm2015/net7-boilerplate-arianna.mjs +7482 -0
- package/fesm2015/net7-boilerplate-arianna.mjs.map +1 -0
- package/fesm2020/net7-boilerplate-arianna.mjs +7520 -0
- package/fesm2020/net7-boilerplate-arianna.mjs.map +1 -0
- package/lib/components/aw-facets-wrapper/aw-facets-wrapper.d.ts +9 -0
- package/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.d.ts +9 -0
- package/lib/components/chart-tippy/chart-tippy.d.ts +9 -0
- package/lib/components/index.d.ts +6 -0
- package/lib/components/pdf-viewer/pdf-viewer.d.ts +38 -0
- package/lib/components/scheda-dropdown/scheda-dropdown.d.ts +23 -0
- package/lib/components/smart-breadcrumbs/smart-breadcrumbs.d.ts +71 -0
- package/lib/config/apollo.config.d.ts +67 -0
- package/lib/config-types/arianna/app.d.ts +103 -0
- package/lib/config-types/arianna/index.d.ts +2 -0
- package/lib/config-types/arianna/layouts.d.ts +164 -0
- package/lib/config-types/index.d.ts +1 -0
- package/lib/data-sources/autocomplete-wrapper.ds.d.ts +18 -0
- package/lib/data-sources/aw-facets-wrapper.ds.d.ts +50 -0
- package/lib/data-sources/bubble-chart.ds.d.ts +47 -0
- package/lib/data-sources/carousel.ds.d.ts +22 -0
- package/lib/data-sources/chart-tippy.ds.d.ts +4 -0
- package/lib/data-sources/entita-metadata-viewer.ds.d.ts +9 -0
- package/lib/data-sources/entita-nav.ds.d.ts +4 -0
- package/lib/data-sources/gallery-results.ds.d.ts +11 -0
- package/lib/data-sources/hero.ds.d.ts +20 -0
- package/lib/data-sources/home-autocomplete.ds.d.ts +37 -0
- package/lib/data-sources/home-facets-wrapper.ds.d.ts +14 -0
- package/lib/data-sources/home-hero-patrimonio.ds.d.ts +4 -0
- package/lib/data-sources/home-item-tags-wrapper.ds.d.ts +4 -0
- package/lib/data-sources/index.d.ts +27 -0
- package/lib/data-sources/linked-objects.ds.d.ts +22 -0
- package/lib/data-sources/map.ds.d.ts +17 -0
- package/lib/data-sources/related-entities.ds.d.ts +7 -0
- package/lib/data-sources/scheda-breadcrumbs.ds.d.ts +5 -0
- package/lib/data-sources/scheda-dropdown.ds.d.ts +7 -0
- package/lib/data-sources/scheda-image.ds.d.ts +10 -0
- package/lib/data-sources/scheda-inner-title.ds.d.ts +4 -0
- package/lib/data-sources/scheda-metadata.ds.d.ts +8 -0
- package/lib/data-sources/scheda-pdf.ds.d.ts +8 -0
- package/lib/data-sources/search-layout-tabs.ds.d.ts +12 -0
- package/lib/data-sources/sidebar-header.ds.d.ts +11 -0
- package/lib/data-sources/table.ds.d.ts +4 -0
- package/lib/data-sources/timeline.ds.d.ts +37 -0
- package/lib/data-sources/tree.ds.d.ts +19 -0
- package/lib/event-handlers/autocomplete-wrapper.eh.d.ts +4 -0
- package/lib/event-handlers/aw-facets-wrapper.eh.d.ts +7 -0
- package/lib/event-handlers/bubble-chart.eh.d.ts +7 -0
- package/lib/event-handlers/chart-tippy.eh.d.ts +6 -0
- package/lib/event-handlers/entita-nav.eh.d.ts +4 -0
- package/lib/event-handlers/gallery-results.eh.d.ts +4 -0
- package/lib/event-handlers/hero.eh.d.ts +4 -0
- package/lib/event-handlers/home-autocomplete.eh.d.ts +4 -0
- package/lib/event-handlers/home-facets-wrapper.eh.d.ts +7 -0
- package/lib/event-handlers/home-hero-patrimonio.eh.d.ts +4 -0
- package/lib/event-handlers/home-item-tags-wrapper.eh.d.ts +4 -0
- package/lib/event-handlers/index.d.ts +21 -0
- package/lib/event-handlers/linked-objects.eh.d.ts +5 -0
- package/lib/event-handlers/map.eh.d.ts +5 -0
- package/lib/event-handlers/scheda-breadcrumbs.eh.d.ts +4 -0
- package/lib/event-handlers/scheda-dropdown.eh.d.ts +4 -0
- package/lib/event-handlers/scheda-pdf.eh.d.ts +6 -0
- package/lib/event-handlers/search-layout-tabs.eh.d.ts +4 -0
- package/lib/event-handlers/sidebar-header.eh.d.ts +4 -0
- package/lib/event-handlers/table.eh.d.ts +4 -0
- package/lib/event-handlers/timeline.eh.d.ts +5 -0
- package/lib/event-handlers/tree.eh.d.ts +9 -0
- package/lib/helpers/metadata.helper.d.ts +15 -0
- package/lib/layouts/collection-layout/collection-layout.config.d.ts +13 -0
- package/lib/layouts/collection-layout/collection-layout.d.ts +21 -0
- package/lib/layouts/collection-layout/collection-layout.ds.d.ts +50 -0
- package/lib/layouts/collection-layout/collection-layout.eh.d.ts +6 -0
- package/lib/layouts/collection-layout/collection-layout.types.d.ts +31 -0
- package/lib/layouts/entita-layout/entita-layout.config.d.ts +29 -0
- package/lib/layouts/entita-layout/entita-layout.d.ts +28 -0
- package/lib/layouts/entita-layout/entita-layout.ds.d.ts +76 -0
- package/lib/layouts/entita-layout/entita-layout.eh.d.ts +13 -0
- package/lib/layouts/entita-layout/entita-layout.types.d.ts +17 -0
- package/lib/layouts/gallery-layout/gallery-facets.config.d.ts +150 -0
- package/lib/layouts/gallery-layout/gallery-layout.config.d.ts +38 -0
- package/lib/layouts/gallery-layout/gallery-layout.d.ts +26 -0
- package/lib/layouts/gallery-layout/gallery-layout.ds.d.ts +158 -0
- package/lib/layouts/gallery-layout/gallery-layout.eh.d.ts +4 -0
- package/lib/layouts/home-layout/home-layout.config.d.ts +15 -0
- package/lib/layouts/home-layout/home-layout.d.ts +23 -0
- package/lib/layouts/home-layout/home-layout.ds.d.ts +53 -0
- package/lib/layouts/home-layout/home-layout.eh.d.ts +11 -0
- package/lib/layouts/index.d.ts +32 -0
- package/lib/layouts/map-layout/map-layout.config.d.ts +22 -0
- package/lib/layouts/map-layout/map-layout.d.ts +23 -0
- package/lib/layouts/map-layout/map-layout.ds.d.ts +37 -0
- package/lib/layouts/map-layout/map-layout.eh.d.ts +5 -0
- package/lib/layouts/scheda-layout/scheda-layout.config.d.ts +19 -0
- package/lib/layouts/scheda-layout/scheda-layout.d.ts +33 -0
- package/lib/layouts/scheda-layout/scheda-layout.ds.d.ts +75 -0
- package/lib/layouts/scheda-layout/scheda-layout.eh.d.ts +11 -0
- package/lib/layouts/search-layout/search-facets.config.d.ts +168 -0
- package/lib/layouts/search-layout/search-layout.config.d.ts +38 -0
- package/lib/layouts/search-layout/search-layout.d.ts +31 -0
- package/lib/layouts/search-layout/search-layout.ds.d.ts +71 -0
- package/lib/layouts/search-layout/search-layout.eh.d.ts +31 -0
- package/lib/layouts/timeline-layout/timeline-layout.config.d.ts +22 -0
- package/lib/layouts/timeline-layout/timeline-layout.d.ts +23 -0
- package/lib/layouts/timeline-layout/timeline-layout.ds.d.ts +39 -0
- package/lib/layouts/timeline-layout/timeline-layout.eh.d.ts +5 -0
- package/lib/n7-boilerplate-arianna.module.d.ts +28 -0
- package/lib/search/aw-facet-inputs/aw-facet-input-checkbox.d.ts +18 -0
- package/lib/search/aw-facet-inputs/aw-facet-input-link.d.ts +8 -0
- package/lib/search/aw-facet-inputs/aw-facet-input-select.d.ts +21 -0
- package/lib/search/aw-facet-inputs/aw-facet-input-text.d.ts +30 -0
- package/lib/search/aw-facet-inputs/aw-facet-input.d.ts +35 -0
- package/lib/search/aw-facet-inputs/index.d.ts +5 -0
- package/lib/search/aw-search.model.d.ts +125 -0
- package/lib/search/aw-search.service.d.ts +13 -0
- package/lib/search/entity-links.helper.d.ts +12 -0
- package/net7-boilerplate-arianna.d.ts +5 -0
- package/package.json +36 -0
- package/public-api.d.ts +6 -0
- package/src/lib/styles/arianna/components/_advanced-autocomplete.scss +103 -0
- package/src/lib/styles/arianna/components/_breadcrumbs.scss +129 -0
- package/src/lib/styles/arianna/components/_bubble-popup-menu.scss +87 -0
- package/src/lib/styles/arianna/components/_carousel.scss +32 -0
- package/src/lib/styles/arianna/components/_facet-header.scss +58 -0
- package/src/lib/styles/arianna/components/_facet.scss +268 -0
- package/src/lib/styles/arianna/components/_footer.scss +64 -0
- package/src/lib/styles/arianna/components/_header.scss +61 -0
- package/src/lib/styles/arianna/components/_item-preview.scss +278 -0
- package/src/lib/styles/arianna/components/_map.scss +59 -0
- package/src/lib/styles/arianna/components/_metadata-viewer.scss +106 -0
- package/src/lib/styles/arianna/components/_pdf-viewer.scss +93 -0
- package/src/lib/styles/arianna/components/_simple-autocomplete.scss +60 -0
- package/src/lib/styles/arianna/components/_timeline.scss +112 -0
- package/src/lib/styles/arianna/components/_tippy-tooltip.scss +41 -0
- package/src/lib/styles/arianna/components/_tree.scss +110 -0
- package/src/lib/styles/arianna/generic/_color_scheme.scss +60 -0
- package/src/lib/styles/arianna/generic/_mixins.scss +18 -0
- package/src/lib/styles/arianna/generic/_variables.scss +380 -0
- package/src/lib/styles/arianna/layouts/_collection-layout.scss +200 -0
- package/src/lib/styles/arianna/layouts/_entita-layout.scss +344 -0
- package/src/lib/styles/arianna/layouts/_home-layout.scss +785 -0
- package/src/lib/styles/arianna/layouts/_multimedia-layout.scss +132 -0
- package/src/lib/styles/arianna/layouts/_scheda-layout.scss +438 -0
- package/src/lib/styles/arianna/layouts/_search-layout.scss +284 -0
- package/src/lib/styles/arianna/utilities/_item-preview-list.scss +48 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DataSource } from '@n7-frontend/core';
|
|
2
|
+
export class AwSearchLayoutTabsDS extends DataSource {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.selected = 'list';
|
|
6
|
+
}
|
|
7
|
+
transform() {
|
|
8
|
+
return {
|
|
9
|
+
items: [{
|
|
10
|
+
text: 'LISTA',
|
|
11
|
+
payload: 'list',
|
|
12
|
+
classes: this.selected === 'list' ? 'is-selected' : '',
|
|
13
|
+
}, {
|
|
14
|
+
text: 'GRAFICO',
|
|
15
|
+
payload: 'chart',
|
|
16
|
+
classes: this.selected === 'chart' ? 'is-selected' : '',
|
|
17
|
+
}, {
|
|
18
|
+
text: 'TIMELINE',
|
|
19
|
+
payload: 'timeline',
|
|
20
|
+
classes: this.selected === 'timeline' ? 'is-selected' : '',
|
|
21
|
+
}],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
setSelected(tabId) {
|
|
25
|
+
this.selected = tabId;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxheW91dC10YWJzLmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL2RhdGEtc291cmNlcy9zZWFyY2gtbGF5b3V0LXRhYnMuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQXBEOztRQUNVLGFBQVEsR0FBRyxNQUFNLENBQUM7SUF1QjVCLENBQUM7SUFyQlcsU0FBUztRQUNqQixPQUFPO1lBQ0wsS0FBSyxFQUFFLENBQUM7b0JBQ04sSUFBSSxFQUFFLE9BQU87b0JBQ2IsT0FBTyxFQUFFLE1BQU07b0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQ3ZELEVBQUU7b0JBQ0QsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUN4RCxFQUFFO29CQUNELElBQUksRUFBRSxVQUFVO29CQUNoQixPQUFPLEVBQUUsVUFBVTtvQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQzNELENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAbjctZnJvbnRlbmQvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBd1NlYXJjaExheW91dFRhYnNEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwcml2YXRlIHNlbGVjdGVkID0gJ2xpc3QnO1xuXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiBbe1xuICAgICAgICB0ZXh0OiAnTElTVEEnLFxuICAgICAgICBwYXlsb2FkOiAnbGlzdCcsXG4gICAgICAgIGNsYXNzZXM6IHRoaXMuc2VsZWN0ZWQgPT09ICdsaXN0JyA/ICdpcy1zZWxlY3RlZCcgOiAnJyxcbiAgICAgIH0sIHtcbiAgICAgICAgdGV4dDogJ0dSQUZJQ08nLFxuICAgICAgICBwYXlsb2FkOiAnY2hhcnQnLFxuICAgICAgICBjbGFzc2VzOiB0aGlzLnNlbGVjdGVkID09PSAnY2hhcnQnID8gJ2lzLXNlbGVjdGVkJyA6ICcnLFxuICAgICAgfSwge1xuICAgICAgICB0ZXh0OiAnVElNRUxJTkUnLFxuICAgICAgICBwYXlsb2FkOiAndGltZWxpbmUnLFxuICAgICAgICBjbGFzc2VzOiB0aGlzLnNlbGVjdGVkID09PSAndGltZWxpbmUnID8gJ2lzLXNlbGVjdGVkJyA6ICcnLFxuICAgICAgfV0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3RlZCh0YWJJZCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB0YWJJZDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DataSource } from '@n7-frontend/core';
|
|
2
|
+
export class AwSidebarHeaderDS extends DataSource {
|
|
3
|
+
transform(data) {
|
|
4
|
+
return {
|
|
5
|
+
iconLeft: 'n7-icon-tree-icon',
|
|
6
|
+
text: data.text || '',
|
|
7
|
+
iconRight: data.isExpanded ? 'n7-icon-angle-left' : 'n7-icon-angle-right',
|
|
8
|
+
classes: data.isExpanded ? 'is-expanded' : 'is-collapsed',
|
|
9
|
+
payload: 'header',
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
toggleSidebar() {
|
|
13
|
+
const sidebarData = this.output;
|
|
14
|
+
if (sidebarData.classes === 'is-expanded') {
|
|
15
|
+
sidebarData.classes = 'is-collapsed';
|
|
16
|
+
sidebarData.iconRight = 'n7-icon-angle-right';
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
sidebarData.classes = 'is-expanded';
|
|
20
|
+
sidebarData.iconRight = 'n7-icon-angle-left';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1oZWFkZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL3NpZGViYXItaGVhZGVyLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsVUFBVTtJQUNyQyxTQUFTLENBQUMsSUFBSTtRQUN0QixPQUFPO1lBQ0wsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMscUJBQXFCO1lBQ3pFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWM7WUFDekQsT0FBTyxFQUFFLFFBQVE7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEtBQUssYUFBYSxFQUFFO1lBQ3pDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLFdBQVcsQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUM7U0FDL0M7YUFBTTtZQUNMLFdBQVcsQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsb0JBQW9CLENBQUM7U0FDOUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG43LWZyb250ZW5kL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQXdTaWRlYmFySGVhZGVyRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb25MZWZ0OiAnbjctaWNvbi10cmVlLWljb24nLFxuICAgICAgdGV4dDogZGF0YS50ZXh0IHx8ICcnLFxuICAgICAgaWNvblJpZ2h0OiBkYXRhLmlzRXhwYW5kZWQgPyAnbjctaWNvbi1hbmdsZS1sZWZ0JyA6ICduNy1pY29uLWFuZ2xlLXJpZ2h0JyxcbiAgICAgIGNsYXNzZXM6IGRhdGEuaXNFeHBhbmRlZCA/ICdpcy1leHBhbmRlZCcgOiAnaXMtY29sbGFwc2VkJyxcbiAgICAgIHBheWxvYWQ6ICdoZWFkZXInLFxuICAgIH07XG4gIH1cblxuICB0b2dnbGVTaWRlYmFyKCkge1xuICAgIGNvbnN0IHNpZGViYXJEYXRhID0gdGhpcy5vdXRwdXQ7XG4gICAgaWYgKHNpZGViYXJEYXRhLmNsYXNzZXMgPT09ICdpcy1leHBhbmRlZCcpIHtcbiAgICAgIHNpZGViYXJEYXRhLmNsYXNzZXMgPSAnaXMtY29sbGFwc2VkJztcbiAgICAgIHNpZGViYXJEYXRhLmljb25SaWdodCA9ICduNy1pY29uLWFuZ2xlLXJpZ2h0JztcbiAgICB9IGVsc2Uge1xuICAgICAgc2lkZWJhckRhdGEuY2xhc3NlcyA9ICdpcy1leHBhbmRlZCc7XG4gICAgICBzaWRlYmFyRGF0YS5pY29uUmlnaHQgPSAnbjctaWNvbi1hbmdsZS1sZWZ0JztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DataSource } from '@n7-frontend/core';
|
|
2
|
+
import { TABLE_MOCK } from '@n7-frontend/components';
|
|
3
|
+
export class AwTableDS extends DataSource {
|
|
4
|
+
transform() {
|
|
5
|
+
return TABLE_MOCK;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL3RhYmxlLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUFVO0lBQzdCLFNBQVM7UUFDakIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuNy1mcm9udGVuZC9jb3JlJztcbmltcG9ydCB7IFRBQkxFX01PQ0sgfSBmcm9tICdAbjctZnJvbnRlbmQvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBjbGFzcyBBd1RhYmxlRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gVEFCTEVfTU9DSztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { DataSource } from '@n7-frontend/core';
|
|
2
|
+
import * as moment from 'moment';
|
|
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 ? moment(start).format('YYYY-MM-DD') : null,
|
|
18
|
+
end: (end && end !== start && !disableEndDates)
|
|
19
|
+
? moment(end).format('YYYY-MM-DD') // show end date
|
|
20
|
+
: null,
|
|
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,
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL3RpbWVsaW5lLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDO0FBQzdCLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUV4QixNQUFNLE9BQU8sWUFBYSxTQUFRLFVBQVU7SUFBNUM7O1FBR1Msb0JBQWUsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUkvQyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFN0IsY0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0IsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3ZCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQzVCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ0wsRUFBRTtnQkFDRixJQUFJO2dCQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ3hELEdBQUcsRUFBRSxDQUFDLEdB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QUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxPQUFPO2lCQUNaLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztpQkFDNUIsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzVCLEdBQUcsSUFBSSxDQUFDLE9BQU87aUJBQ1osTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDO2lCQUN4QixHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDekIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAbjctZnJvbnRlbmQvY29yZSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IG1heCBhcyBfbWF4LCBtaW4gYXMgX21pbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IE9ORV9ZRUFSID0gMzE1NTc2MDAwMDA7XG5jb25zdCBZRUFSU19NQVJHSU4gPSAzMDtcblxuZXhwb3J0IGNsYXNzIEF3VGltZWxpbmVEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwdWJsaWMgdGltZWxpbmU7XG5cbiAgcHVibGljIHRpbWVsaW5lTG9hZGVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGRhdGFTZXQ7XG5cbiAgcHVibGljIHRpbWVsaW5lQ29udHJvbHNWaXNpYmxlID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybSA9IChkYXRhKSA9PiB7XG4gICAgY29uc3QgeyBkaXNhYmxlRW5kRGF0ZXMgfSA9IHRoaXMub3B0aW9ucy5jb25maWd1cmF0aW9uO1xuICAgIHRoaXMuZGF0YVNldCA9IGRhdGEubWFwKCh7XG4gICAgICBpZCwgc3RhcnQsIGVuZCwgaXRlbSwgbGFiZWxcbiAgICB9KSA9PiAoe1xuICAgICAgaWQsXG4gICAgICBpdGVtLFxuICAgICAgc3RhcnQ6IHN0YXJ0ID8gbW9tZW50KHN0YXJ0KS5mb3JtYXQoJ1lZWVktTU0tREQnKSA6IG51bGwsXG4gICAgICBlbmQ6IChlbmQgJiYgZW5kICE9PSBzdGFydCAmJiAhZGlzYWJsZUVuZERhdGVzKVxuICAgICAgICA/IG1vbWVudChlbmQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpIC8vIHNob3cgZW5kIGRhdGVcbiAgICAgICAgOiBudWxsLCAvLyBoaWRlIGVuZCBkYXRlXG4gICAgICBjb250ZW50OiB0aGlzLmdldEl0ZW1UZW1wbGF0ZShsYWJlbCwgaXRlbS5sYWJlbCksXG4gICAgICBfbWV0YToge1xuICAgICAgICBkYXRlVGV4dDogbGFiZWxcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICBjb25zdCBtYXggPSB0aGlzLmdldE1heCgpO1xuICAgIGNvbnN0IG1pbiA9IHRoaXMuZ2V0TWluKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29udGFpbmVySUQ6ICd0aW1lbGluZS1jb21wb25lbnQnLFxuICAgICAgbGliT3B0aW9uczoge1xuICAgICAgICBtYXgsXG4gICAgICAgIG1pbixcbiAgICAgICAgc3RhcnQ6IG1pbixcbiAgICAgICAgZW5kOiBtYXgsXG4gICAgICAgIGFsaWduOiAnbGVmdCcsXG4gICAgICAgIG1pbkhlaWdodDogJzEwMHB4JyxcbiAgICAgICAgLy8gaGVpZ2h0OiAnMTAwcHgnLFxuICAgICAgICBsb2NhbGU6ICdpdF9JVCcsXG4gICAgICAgIC8vIGNsdXN0ZXI6IHtcbiAgICAgICAgLy8gZml0T25Eb3VibGVDbGljazogdHJ1ZSxcbiAgICAgICAgLy8gY2x1c3RlckNyaXRlcmlhOiAoZiwgcykgPT4gZi5jb250ZW50LmNoYXJBdCgwKSA9PT0gcy5jb250ZW50LmNoYXJBdCgwKSxcbiAgICAgICAgLy8gICB0aXRsZVRlbXBsYXRlOiAne2NvdW50fSBldmVudGknLFxuICAgICAgICAvLyB9LFxuICAgICAgICBzaG93Q3VycmVudFRpbWU6IGZhbHNlLFxuICAgICAgICBzaG93VG9vbHRpcHM6IGZhbHNlLFxuICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgZm9sbG93TW91c2U6IGZhbHNlLFxuICAgICAgICAgIHRlbXBsYXRlOiAoZDogYW55LCBlbGVtZW50OiB7IHRpdGxlOiBzdHJpbmcgfSkgPT4gYDxkaXYgY2xhc3M9XCJ0b29sdGlwXCI+JHtlbGVtZW50LnRpdGxlfTwvZGl2PmBcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgLy8gbWluSGVpZ2h0OiAnMzUwcHgnLFxuICAgICAgICAvLyBtYXhIZWlnaHQ6ICc4MDBweCcsXG4gICAgICAgIHpvb21NYXg6IE9ORV9ZRUFSICogMjAwMCwgLy8gMjAwMCB5ZWFyc1xuICAgICAgICB6b29tTWluOiBPTkVfWUVBUiAvIDEyLCAvLyBhIG1vbnRoXG4gICAgICAgIC8vIHpvb21GcmljdGlvbjogOFxuICAgICAgfSxcbiAgICAgIGRhdGFTZXQ6IHRoaXMuZGF0YVNldCxcbiAgICAgIF9zZXRJbnN0YW5jZTogKHRpbWVsaW5lKSA9PiB7XG4gICAgICAgIHRoaXMudGltZWxpbmUgPSB0aW1lbGluZTtcbiAgICAgICAgdGhpcy50aW1lbGluZUxvYWRlZCQubmV4dCgpO1xuXG4gICAgICAgIC8vIGZpeCBjbHVzdGVyIHZpc3VhbGl6YXRpb25cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy50aW1lbGluZS5maXQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdGltZW91dCBmb3Igem9vbSBjb250cm9sc1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRpbWVsaW5lQ29udHJvbHNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGdldEl0ZW1UZW1wbGF0ZShkYXRlc0xhYmVsLCBsYWJlbCkge1xuICAgIHJldHVybiAoYFxuICAgICAgPGRpdiBjbGFzcz1cImRhdGVzXCI+XG4gICAgICAgIDxlbT4ke2RhdGVzTGFiZWx9PC9lbT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj4ke2xhYmVsfTwvZGl2PlxuICAgIGApO1xuICB9XG5cbiAgZ2V0TWF4KCkge1xuICAgIGNvbnN0IG1heERhdGUgPSBuZXcgRGF0ZShfbWF4KHRoaXMuZ2V0QWxsRGF0ZXMoKSkpO1xuXG4gICAgY29uc3QgeWVhciA9IG1heERhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IG1heERhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBkYXkgPSBtYXhEYXRlLmdldERhdGUoKTtcbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciArIFlFQVJTX01BUkdJTiwgbW9udGgsIGRheSk7XG4gIH1cblxuICBnZXRNaW4oKSB7XG4gICAgY29uc3QgbWluRGF0ZSA9IG5ldyBEYXRlKF9taW4odGhpcy5nZXRBbGxEYXRlcygpKSk7XG5cbiAgICBjb25zdCB5ZWFyID0gbWluRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gbWluRGF0ZS5nZXRNb250aCgpO1xuICAgIGNvbnN0IGRheSA9IG1pbkRhdGUuZ2V0RGF0ZSgpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyIC0gWUVBUlNfTUFSR0lOLCBtb250aCwgZGF5KTtcbiAgfVxuXG4gIGdldEFsbERhdGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLmRhdGFTZXRcbiAgICAgICAgLmZpbHRlcigoeyBzdGFydCB9KSA9PiBzdGFydClcbiAgICAgICAgLm1hcCgoeyBzdGFydCB9KSA9PiBzdGFydCksXG4gICAgICAuLi50aGlzLmRhdGFTZXRcbiAgICAgICAgLmZpbHRlcigoeyBlbmQgfSkgPT4gZW5kKVxuICAgICAgICAubWFwKCh7IGVuZCB9KSA9PiBlbmQpXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { DataSource } from '@n7-frontend/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
|
+
load(data) {
|
|
96
|
+
const { tree, basePath } = data;
|
|
97
|
+
this.rootId = tree.id;
|
|
98
|
+
this.basePath = basePath;
|
|
99
|
+
// save in cache
|
|
100
|
+
if (!AwTreeDS.dataCache[this.rootId]) {
|
|
101
|
+
AwTreeDS.dataCache[this.rootId] = { flatIds: [], flatData: {} };
|
|
102
|
+
this._normalize(tree);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
build(id) {
|
|
106
|
+
const path = this._getTreePath(id);
|
|
107
|
+
const oldPath = this._getTreePath(this.currentId);
|
|
108
|
+
const oldPathIndex = oldPath.indexOf(id);
|
|
109
|
+
if (oldPathIndex > 0) {
|
|
110
|
+
path.splice(oldPathIndex);
|
|
111
|
+
this.currentId = null;
|
|
112
|
+
}
|
|
113
|
+
else if (this.currentId === id) {
|
|
114
|
+
const idIndex = path.indexOf(this.currentId);
|
|
115
|
+
path.splice(idIndex);
|
|
116
|
+
this.currentId = null;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.currentId = id;
|
|
120
|
+
}
|
|
121
|
+
const tree = this._getTree(path);
|
|
122
|
+
this.update(tree);
|
|
123
|
+
}
|
|
124
|
+
setActive(id) {
|
|
125
|
+
this.activeId = id;
|
|
126
|
+
}
|
|
127
|
+
highlightActive() {
|
|
128
|
+
const control = (items) => {
|
|
129
|
+
items.forEach((item) => {
|
|
130
|
+
const founded = item.meta === this.activeId;
|
|
131
|
+
const hasActive = item.classes.indexOf('is-active') !== -1;
|
|
132
|
+
// clear is-active
|
|
133
|
+
if (hasActive && !founded) {
|
|
134
|
+
const currentClasses = item.classes.split(' ');
|
|
135
|
+
currentClasses.splice(currentClasses.indexOf('is-active'), 1);
|
|
136
|
+
item.classes = currentClasses.join(' ');
|
|
137
|
+
}
|
|
138
|
+
if (founded) {
|
|
139
|
+
const currentClasses = item.classes.split(' ');
|
|
140
|
+
if (currentClasses.indexOf('is-active') === -1) {
|
|
141
|
+
currentClasses.push('is-active');
|
|
142
|
+
}
|
|
143
|
+
item.classes = currentClasses.join(' ');
|
|
144
|
+
}
|
|
145
|
+
if (Array.isArray(item.items) && item.items.length) {
|
|
146
|
+
control(item.items);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
};
|
|
150
|
+
control(this.output.items);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
AwTreeDS.dataCache = {};
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvdHJlZS5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxRQUFTLFNBQVEsVUFBVTtJQUF4Qzs7UUFXWSxjQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztRQWtFN0IsbUJBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUV0RCxlQUFVLEdBQUcsQ0FBQyxFQUNwQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUM3RixFQUFFLEVBQUU7WUFDSCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHO2dCQUNuQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxjQUFjO2FBQ3hELENBQUM7WUFDRixJQUFJLFdBQVcsRUFBRTtnQkFDZixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENB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QUFFO29CQUNYLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMvQyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7d0JBQzlDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7cUJBQ2xDO29CQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDekM7Z0JBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDckI7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7O0FBMUVNLGtCQUFTLEdBQVEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuNy1mcm9udGVuZC9jb3JlJztcbmltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQXdUcmVlRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgc3RhdGljIGRhdGFDYWNoZTogYW55ID0ge307XG5cbiAgcHJpdmF0ZSBiYXNlUGF0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcm9vdElkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjdXJyZW50SWQ6IHN0cmluZztcblxuICBwcml2YXRlIGFjdGl2ZUlkOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybSA9IChkYXRhKSA9PiBkYXRhO1xuXG4gIHB1YmxpYyBsb2FkKGRhdGEpIHtcbiAgICBjb25zdCB7IHRyZWUsIGJhc2VQYXRoIH0gPSBkYXRhO1xuICAgIHRoaXMucm9vdElkID0gdHJlZS5pZDtcbiAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgLy8gc2F2ZSBpbiBjYWNoZVxuICAgIGlmICghQXdUcmVlRFMuZGF0YUNhY2hlW3RoaXMucm9vdElkXSkge1xuICAgICAgQXdUcmVlRFMuZGF0YUNhY2hlW3RoaXMucm9vdElkXSA9IHsgZmxhdElkczogW10sIGZsYXREYXRhOiB7fSB9O1xuICAgICAgdGhpcy5fbm9ybWFsaXplKHRyZWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZChpZCkge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLl9nZXRUcmVlUGF0aChpZCk7XG4gICAgY29uc3Qgb2xkUGF0aCA9IHRoaXMuX2dldFRyZWVQYXRoKHRoaXMuY3VycmVudElkKTtcbiAgICBjb25zdCBvbGRQYXRoSW5kZXggPSBvbGRQYXRoLmluZGV4T2YoaWQpO1xuXG4gICAgaWYgKG9sZFBhdGhJbmRleCA+IDApIHtcbiAgICAgIHBhdGguc3BsaWNlKG9sZFBhdGhJbmRleCk7XG4gICAgICB0aGlzLmN1cnJlbnRJZCA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRJZCA9PT0gaWQpIHtcbiAgICAgIGNvbnN0IGlkSW5kZXggPSBwYXRoLmluZGV4T2YodGhpcy5jdXJyZW50SWQpO1xuICAgICAgcGF0aC5zcGxpY2UoaWRJbmRleCk7XG4gICAgICB0aGlzLmN1cnJlbnRJZCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudElkID0gaWQ7XG4gICAgfVxuXG4gICAgY29uc3QgdHJlZTogYW55ID0gdGhpcy5fZ2V0VHJlZShwYXRoKTtcbiAgICB0aGlzLnVwZGF0ZSh0cmVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmUoaWQpIHtcbiAgICB0aGlzLmFjdGl2ZUlkID0gaWQ7XG4gIH1cblxuICBwdWJsaWMgaGlnaGxpZ2h0QWN0aXZlKCkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSAoaXRlbXMpID0+IHtcbiAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgZm91bmRlZCA9IGl0ZW0ubWV0YSA9PT0gdGhpcy5hY3RpdmVJZDtcbiAgICAgICAgY29uc3QgaGFzQWN0aXZlID0gaXRlbS5jbGFzc2VzLmluZGV4T2YoJ2lzLWFjdGl2ZScpICE9PSAtMTtcblxuICAgICAgICAvLyBjbGVhciBpcy1hY3RpdmVcbiAgICAgICAgaWYgKGhhc0FjdGl2ZSAmJiAhZm91bmRlZCkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDbGFzc2VzID0gaXRlbS5jbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgICAgICAgY3VycmVudENsYXNzZXMuc3BsaWNlKGN1cnJlbnRDbGFzc2VzLmluZGV4T2YoJ2lzLWFjdGl2ZScpLCAxKTtcbiAgICAgICAgICBpdGVtLmNsYXNzZXMgPSBjdXJyZW50Q2xhc3Nlcy5qb2luKCcgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZm91bmRlZCkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDbGFzc2VzID0gaXRlbS5jbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgICAgICAgaWYgKGN1cnJlbnRDbGFzc2VzLmluZGV4T2YoJ2lzLWFjdGl2ZScpID09PSAtMSkge1xuICAgICAgICAgICAgY3VycmVudENsYXNzZXMucHVzaCgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGl0ZW0uY2xhc3NlcyA9IGN1cnJlbnRDbGFzc2VzLmpvaW4oJyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0uaXRlbXMpICYmIGl0ZW0uaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29udHJvbChpdGVtLml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjb250cm9sKHRoaXMub3V0cHV0Lml0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENhY2hlZERhdGEgPSAoKSA9PiBBd1RyZWVEUy5kYXRhQ2FjaGVbdGhpcy5yb290SWRdXG5cbiAgcHJpdmF0ZSBfbm9ybWFsaXplID0gKHtcbiAgICBpZCwgbGFiZWwsIGljb24sIGltZywgYnJhbmNoZXMsIGRvY3VtZW50X3R5cGU6IHR5cGUsIGRvY3VtZW50X2NsYXNzaWZpY2F0aW9uOiBjbGFzc2lmaWNhdGlvblxuICB9KSA9PiB7XG4gICAgY29uc3QgaGFzQnJhbmNoZXMgPSAhIShBcnJheS5pc0FycmF5KGJyYW5jaGVzKSAmJiBicmFuY2hlcy5sZW5ndGgpO1xuICAgIHRoaXMuX2dldENhY2hlZERhdGEoKS5mbGF0RGF0YVtpZF0gPSB7XG4gICAgICBpZCwgbGFiZWwsIGljb24sIGltZywgaGFzQnJhbmNoZXMsIHR5cGUsIGNsYXNzaWZpY2F0aW9uXG4gICAgfTtcbiAgICBpZiAoaGFzQnJhbmNoZXMpIHtcbiAgICAgIGJyYW5jaGVzLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5fZ2V0Q2FjaGVkRGF0YSgpLmZsYXRJZHMucHVzaChbaWQsIGRhdGEuaWRdKTtcbiAgICAgICAgdGhpcy5fbm9ybWFsaXplKGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGFyZW50ID0gKGlkKSA9PiB0aGlzLl9nZXRDYWNoZWREYXRhKCkuZmxhdElkc1xuICAgIC5maWx0ZXIoKFssIGNoaWxkSWRdKSA9PiBjaGlsZElkID09PSBpZClcbiAgICAubWFwKChbcGFyZW50SWRdKSA9PiBwYXJlbnRJZClbMF0gfHwgbnVsbFxuXG4gIHByaXZhdGUgX2dldFRyZWVQYXRoID0gKGlkKSA9PiB7XG4gICAgY29uc3QgaWRzID0gW2lkXTtcbiAgICBsZXQgY3VycmVudElkID0gaWQ7XG4gICAgd2hpbGUgKGN1cnJlbnRJZCkge1xuICAgICAgY29uc3QgcGFyZW50SWQgPSB0aGlzLl9nZXRQYXJlbnQoY3VycmVudElkKTtcbiAgICAgIGlmIChwYXJlbnRJZCkge1xuICAgICAgICBpZHMucHVzaChwYXJlbnRJZCk7XG4gICAgICB9XG4gICAgICBjdXJyZW50SWQgPSBwYXJlbnRJZDtcbiAgICB9XG4gICAgcmV0dXJuIGlkcy5yZXZlcnNlKCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUcmVlID0gKHBhdGgpID0+IHtcbiAgICBjb25zdCB0cmVlID0ge307XG4gICAgbGV0IGNvdW50ZXIgPSAwO1xuXG4gICAgY29uc3QgbG9hZEl0ZW1zID0gKGlkLCBzb3VyY2UpID0+IHtcbiAgICAgIGNvdW50ZXIgKz0gMTtcbiAgICAgIGNvbnN0IG5leHRQYXJlbnQgPSBwYXRoW2NvdW50ZXJdO1xuICAgICAgc291cmNlLml0ZW1zID0gW107XG5cbiAgICAgIHRoaXMuX2dldENhY2hlZERhdGEoKS5mbGF0SWRzXG4gICAgICAgIC5maWx0ZXIoKFtwYXJlbnRJZF0pID0+IHBhcmVudElkID09PSBpZClcbiAgICAgICAgLmZvckVhY2goKFssIGNoaWxkSWRdLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluUGF0aCA9IGNoaWxkSWQgPT09IG5leHRQYXJlbnQ7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2dldFRyZWVJdGVtKGNoaWxkSWQsIGluUGF0aCk7XG4gICAgICAgICAgc291cmNlLml0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgaWYgKGluUGF0aCkge1xuICAgICAgICAgICAgbG9hZEl0ZW1zKGNoaWxkSWQsIHNvdXJjZS5pdGVtc1tpbmRleF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIGluaXRcbiAgICBsb2FkSXRlbXMocGF0aFswXSwgdHJlZSk7XG4gICAgcmV0dXJuIHRyZWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUcmVlSXRlbSA9IChpZCwgaW5QYXRoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgbGFiZWwsIGltZywgaGFzQnJhbmNoZXMsIHR5cGUsIGNsYXNzaWZpY2F0aW9uXG4gICAgfSA9IHRoaXMuX2dldENhY2hlZERhdGEoKS5mbGF0RGF0YVtpZF07XG4gICAgY29uc3QgZGVmYXVsdEljb24gPSAodGhpcy5vcHRpb25zLmNvbmZpZ1t0eXBlXSB8fCB7IGljb246IG51bGwgfSkuaWNvbjtcbiAgICBsZXQgc3BlY2lmaWNJY29uID0gJyc7XG4gICAgY29uc3QgbGFzdFNlZ21lbnQgPSAvLipcXC4oXFx3KykkLztcbiAgICBpZiAoY2xhc3NpZmljYXRpb24gJiYgbGFzdFNlZ21lbnQudGVzdChjbGFzc2lmaWNhdGlvbikpIHtcbiAgICAgIGNvbnN0IGNsYXNzSUQgPSBjbGFzc2lmaWNhdGlvblxuICAgICAgICAubWF0Y2gobGFzdFNlZ21lbnQpWzFdIC8vIGdldCBjbGFzc2lmaWNhdGlvbiBjaGFyYWN0ZXJzXG4gICAgICAgIC50b1VwcGVyQ2FzZSgpOyAvLyBub3JtYWxpemVcbiAgICAgIHNwZWNpZmljSWNvbiA9IHRoaXMub3B0aW9ucy5jb25maWdbdHlwZV0uY2xhc3NpZmljYXRpb25zW2NsYXNzSURdLmljb247XG4gICAgfVxuICAgIGNvbnN0IGFycm93SWNvbnMgPSBpblBhdGggPyAnbjctaWNvbi1hbmdsZS1kb3duJyA6ICduNy1pY29uLWFuZ2xlLXJpZ2h0JztcbiAgICBjb25zdCBjbGFzc2VzID0gW107XG4gICAgaWYgKGluUGF0aCkge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdpcy1leHBhbmRlZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5hY3RpdmVJZCA9PT0gaWQpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaXMtYWN0aXZlJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjbGFzc2VzOiBjbGFzc2VzLmpvaW4oJyAnKSxcbiAgICAgIHRleHQ6IGxhYmVsIHx8IG51bGwsXG4gICAgICBpbWc6IGltZyB8fCBudWxsLFxuICAgICAgaWNvbjogKHNwZWNpZmljSWNvbiB8fCBkZWZhdWx0SWNvbiksXG4gICAgICB0b2dnbGU6IGhhc0JyYW5jaGVzID8ge1xuICAgICAgICBpY29uOiBhcnJvd0ljb25zLFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgc291cmNlOiAndG9nZ2xlJyxcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0gOiBudWxsLFxuICAgICAgbWV0YTogaWQsXG4gICAgICBhbmNob3I6IHtcbiAgICAgICAgaHJlZjogYCR7dGhpcy5iYXNlUGF0aH0vJHtpZH0vJHtoZWxwZXJzLnNsdWdpZnkobGFiZWwpfWAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventHandler } from '@n7-frontend/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIuZWguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZXZlbnQtaGFuZGxlcnMvYXV0b2NvbXBsZXRlLXdyYXBwZXIuZWgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBQ2hELE1BQU07UUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDaEQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSywrQkFBK0I7b0JBQ2xDLElBQUksT0FBTyxLQUFLLDhCQUE4QixFQUFFLEVBQUUsZ0RBQWdEO3dCQUNoRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztxQkFDeEM7b0JBQ0QsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMvQyxNQUFNO2FBQ1Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50SGFuZGxlciB9IGZyb20gJ0BuNy1mcm9udGVuZC9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEF3QXV0b2NvbXBsZXRlV3JhcHBlckVIIGV4dGVuZHMgRXZlbnRIYW5kbGVyIHtcbiAgcHVibGljIGxpc3RlbigpIHtcbiAgICB0aGlzLmlubmVyRXZlbnRzJC5zdWJzY3JpYmUoKHsgdHlwZSwgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnYXctYXV0b2NvbXBsZXRlLXdyYXBwZXIuY2xpY2snOlxuICAgICAgICAgIGlmIChwYXlsb2FkICE9PSAnZmFsbGJhY2stc2ltcGxlLWF1dG9jb21wbGV0ZScpIHsgLy8gaWYgdGhpcyBpcyB0aGUgZmFsbGJhY2sgaXRlbSwga2lsbCB0aGUgZXZlbnQuXG4gICAgICAgICAgICB0aGlzLmVtaXRPdXRlcignY2xpY2tyZXN1bHQnLCBwYXlsb2FkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29uc29sZS53YXJuKCd1bmhhbmRsZWQgZXZlbnQgb2YgdHlwZTonLCB0eXBlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { EventHandler } from '@n7-frontend/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXRzLXdyYXBwZXIuZWguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZXZlbnQtaGFuZGxlcnMvYXctZmFjZXRzLXdyYXBwZXIuZWgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxZQUFZO0lBQW5EOztRQUNTLDBCQUFxQixHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXBELDBCQUFxQixHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBMkY3RCxDQUFDO0lBekZRLE1BQU07UUFDWCxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ2hELFFBQVEsSUFBSSxFQUFFO2dCQUNaLEtBQUssc0JBQXNCO29CQUFFO3dCQUMzQix3QkFBd0I7d0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRTs0QkFDdEMsT0FBTzt5QkFDUjt3QkFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO3dCQUM3RCxJQUFJLEtBQUssS0FBSyxhQUFhLEVBQUU7NEJBQzNCLE9BQU87eUJBQ1I7d0JBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDekQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFB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QVMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBRTVDLGFBQWE7WUFDYixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUVyQixnQkFBZ0I7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixJQUFJLEVBQUUsRUFBRTtnQkFDUixXQUFXO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEhhbmRsZXIgfSBmcm9tICdAbjctZnJvbnRlbmQvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBBd0ZhY2V0c1dyYXBwZXJFSCBleHRlbmRzIEV2ZW50SGFuZGxlciB7XG4gIHB1YmxpYyBpbnRlcm5hbEZhY2V0c0NoYW5nZSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGV4dGVybmFsRmFjZXRzQ2hhbmdlJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgbGlzdGVuKCkge1xuICAgIC8vIGxpc3RlbiB0byBpbm5lciAod2lkZ2V0KSBldmVudHNcbiAgICB0aGlzLmlubmVyRXZlbnRzJC5zdWJzY3JpYmUoKHsgdHlwZSwgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnZmFjZXRzLXdyYXBwZXIuZmFjZXQnOiB7XG4gICAgICAgICAgLy8gZW1wdHkgcGF5bG9hZCBjb250cm9sXG4gICAgICAgICAgaWYgKCFwYXlsb2FkLmV2ZW50UGF5bG9hZC5pbnB1dFBheWxvYWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBmYWNldElkLCB2YWx1ZSB9ID0gcGF5bG9hZC5ldmVudFBheWxvYWQuaW5wdXRQYXlsb2FkO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ19fbG9hZGluZ19fJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZGF0YVNvdXJjZS5nZXRJbnB1dEJ5RmFjZXRJZChmYWNldElkKTtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gaW5wdXQuZ2V0Q29udGV4dCgpO1xuXG4gICAgICAgICAgLy8gdXBkYXRlXG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLm9uRmFjZXRDaGFuZ2UocGF5bG9hZCk7XG5cbiAgICAgICAgICAvLyBpbnRlcm5hbFxuICAgICAgICAgIGlmIChjb250ZXh0ID09PSAnaW50ZXJuYWwnKSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFsRmFjZXRzQ2hhbmdlJC5uZXh0KGlucHV0LmdldFRhcmdldCgpKTtcbiAgICAgICAgICAgIC8vIGV4dGVybmFsXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXh0ZXJuYWxGYWNldHNDaGFuZ2UkLm5leHQoZmFjZXRJZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZmFjZXRzLXdyYXBwZXIuZmFjZXRoZWFkZXInOlxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS50b2dnbGVHcm91cChwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdXRlckV2ZW50cyQuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQgfSkgPT4ge1xuICAgICAgaWYgKHR5cGUuaW5kZXhPZigncXVlcnlwYXJhbXNjaGFuZ2UnKSAhPT0gLTEgJiYgdGhpcy5kYXRhU291cmNlLnNlYXJjaE1vZGVsKSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS51cGRhdGVGaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1zKHBheWxvYWQpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UudXBkYXRlSW5wdXRzRnJvbUZpbHRlcnMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGxpc3RlbiB0byBnbG9iYWwgZXZlbnRzXG4gICAgRXZlbnRIYW5kbGVyLmdsb2JhbEV2ZW50cyQuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQgfSkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2dsb2JhbC5zZWFyY2hyZXNwb25zZSc6XG4gICAgICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5zZWFyY2hNb2RlbCAmJiB0aGlzLmRhdGFTb3VyY2Uuc2VhcmNoTW9kZWwuZ2V0SWQoKSA9PT0gcGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLnVwZGF0ZUlucHV0TGlua3MoKTtcbiAgICAgICAgICAgIGNvbnN0IGludGVybmFsRmlsdGVycyA9IHRoaXMuZGF0YVNvdXJjZS5zZWFyY2hNb2RlbC5nZXRJbnRlcm5hbEZpbHRlcnMoKTtcblxuICAgICAgICAgICAgaW50ZXJuYWxGaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZGF0YVNvdXJjZS5zZWFyY2hNb2RlbC5nZXRJbnB1dEJ5RmFjZXRJZChmaWx0ZXIuZmFjZXRJZCk7XG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGlucHV0LmdldFRhcmdldCgpO1xuICAgICAgICAgICAgICAvLyB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyVGFyZ2V0KHRhcmdldCk7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS51cGRhdGVGaWx0ZXJlZFRhcmdldCh0YXJnZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBpbnRlcm5hbCBmYWNldHMgY2hhbmdlXG4gICAgdGhpcy5leHRlcm5hbEZhY2V0c0NoYW5nZSQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICkuc3Vic2NyaWJlKChmYWNldElkKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gdGhpcy5kYXRhU291cmNlLmdldFJlcXVlc3RQYXJhbXMoKTtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdGhpcy5kYXRhU291cmNlLmZpbHRlcnNBc1F1ZXJ5UGFyYW1zKHJlcXVlc3RQYXJhbXMuZmlsdGVycyk7XG5cbiAgICAgIE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5mb3JFYWNoKChrZXkpID0+IHsgcXVlcnlQYXJhbXNba2V5XSA9IHF1ZXJ5UGFyYW1zW2tleV0gfHwgbnVsbDsgfSk7XG4gICAgICAvLyBzaWduYWxcbiAgICAgIHRoaXMuZW1pdE91dGVyKCdmYWNldHNjaGFuZ2UnLCB7IGZhY2V0SWQgfSk7XG5cbiAgICAgIC8vIHJlc2V0IHBhZ2VcbiAgICAgIHF1ZXJ5UGFyYW1zLnBhZ2UgPSAxO1xuXG4gICAgICAvLyByb3V0ZXIgc2lnbmFsXG4gICAgICB0aGlzLmVtaXRHbG9iYWwoJ25hdmlnYXRlJywge1xuICAgICAgICBoYW5kbGVyOiAncm91dGVyJyxcbiAgICAgICAgcGF0aDogW10sXG4gICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { EventHandler } from '@n7-frontend/core';
|
|
2
|
+
export class AwBubbleChartEH extends EventHandler {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.initialLoad = false;
|
|
6
|
+
this.toggleSelection = (id) => {
|
|
7
|
+
/*
|
|
8
|
+
Expects the ID of a bubble.
|
|
9
|
+
Updates the graph with a new request
|
|
10
|
+
*/
|
|
11
|
+
this.dataSource.handleBubbleClick(id);
|
|
12
|
+
this.emitOuter('selection', this.dataSource.selected);
|
|
13
|
+
};
|
|
14
|
+
this.toggleFilter = (f) => {
|
|
15
|
+
/*
|
|
16
|
+
Toggle the clicked eye-filter in the filteres array and
|
|
17
|
+
redraw the graph.
|
|
18
|
+
*/
|
|
19
|
+
if (this.dataSource.filters.includes(f)) {
|
|
20
|
+
this.dataSource.filters.splice(this.dataSource.filters.indexOf(f), 1);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.dataSource.filters.push(f);
|
|
24
|
+
}
|
|
25
|
+
this.dataSource.updateChart(null); // null means "reuse the last response"
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
listen() {
|
|
29
|
+
this.innerEvents$.subscribe(({ type, payload }) => {
|
|
30
|
+
switch (type) {
|
|
31
|
+
case 'aw-bubble-chart.click':
|
|
32
|
+
if (this.dataSource.options.selectable !== false) {
|
|
33
|
+
this.toggleSelection(payload);
|
|
34
|
+
}
|
|
35
|
+
this.emitOuter('lockfilter', this.dataSource.chartData.find((el) => payload === el.entity.id));
|
|
36
|
+
break;
|
|
37
|
+
case 'aw-bubble-chart.d3end':
|
|
38
|
+
{ // end of d3.js draw()
|
|
39
|
+
let filteredChartData;
|
|
40
|
+
// apply filters to the data before adding tooltips
|
|
41
|
+
if (this.dataSource.filters.length > 0) {
|
|
42
|
+
filteredChartData = this.dataSource.chartData.filter((el) => !this.dataSource.filters.includes(el.entity.typeOfEntity.replace(/ /g, '-')));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
filteredChartData = this.dataSource.chartData;
|
|
46
|
+
}
|
|
47
|
+
this.emitOuter('d3end', {
|
|
48
|
+
bubbles: this.dataSource.smartSlice(filteredChartData),
|
|
49
|
+
selected: this.dataSource.selected,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
console.warn('unhandled inner event of type', type, 'with payload', payload);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
this.outerEvents$.subscribe(({ type, payload }) => {
|
|
59
|
+
switch (type) {
|
|
60
|
+
case 'aw-home-layout.select':
|
|
61
|
+
{
|
|
62
|
+
const { id } = payload;
|
|
63
|
+
this.toggleSelection(id);
|
|
64
|
+
const foundBubble = this.dataSource.chartData.find((el) => id === el.entity.id);
|
|
65
|
+
if (foundBubble) {
|
|
66
|
+
this.emitOuter('lockfilter', foundBubble);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.warn('Unable to determine which bubble was selected.');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
case 'aw-home-layout.tagclick':
|
|
74
|
+
this.toggleSelection(payload);
|
|
75
|
+
break;
|
|
76
|
+
case 'aw-home-layout.facetclick':
|
|
77
|
+
if (!this.dataSource.selected.includes(payload)) {
|
|
78
|
+
this.toggleSelection(payload);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case 'aw-home-layout.togglefilter':
|
|
82
|
+
this.toggleFilter(payload);
|
|
83
|
+
break;
|
|
84
|
+
case 'aw-home-layout.clearselection':
|
|
85
|
+
this.dataSource.selected = [];
|
|
86
|
+
this.emitOuter('selection', []);
|
|
87
|
+
break;
|
|
88
|
+
case 'aw-entita-layout.filterbubbleresponse':
|
|
89
|
+
case 'aw-home-layout.filterbubbleresponse':
|
|
90
|
+
this.dataSource.updateChart(payload);
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlLWNoYXJ0LmVoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL2V2ZW50LWhhbmRsZXJzL2J1YmJsZS1jaGFydC5laC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQUFqRDs7UUFDUyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQW1FM0Isb0JBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCOzs7Y0FHRTtZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUE7UUFFRCxpQkFBWSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbkI7OztjQUdFO1lBQ0YsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7UUFDNUUsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQXRGUSxNQUFNO1FBQ1gsSUFBSSxD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O29CQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMzQixNQUFNO2dCQUNSLEtBQUssK0JBQStCO29CQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNoQyxNQUFNO2dCQUNSLEtBQUssdUNBQXVDLENBQUM7Z0JBQzdDLEtBQUsscUNBQXFDO29CQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckMsTUFBTTtnQkFDUjtvQkFDRSxNQUFNO2FBQ1Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0F1QkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEhhbmRsZXIgfSBmcm9tICdAbjctZnJvbnRlbmQvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBd0J1YmJsZUNoYXJ0RUggZXh0ZW5kcyBFdmVudEhhbmRsZXIge1xuICBwdWJsaWMgaW5pdGlhbExvYWQgPSBmYWxzZTtcblxuICBwdWJsaWMgbGlzdGVuKCkge1xuICAgIHRoaXMuaW5uZXJFdmVudHMkLnN1YnNjcmliZSgoeyB0eXBlLCBwYXlsb2FkIH0pID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdhdy1idWJibGUtY2hhcnQuY2xpY2snOlxuICAgICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2Uub3B0aW9ucy5zZWxlY3RhYmxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3Rpb24ocGF5bG9hZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZW1pdE91dGVyKCdsb2NrZmlsdGVyJywgdGhpcy5kYXRhU291cmNlLmNoYXJ0RGF0YS5maW5kKChlbCkgPT4gcGF5bG9hZCA9PT0gZWwuZW50aXR5LmlkKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWJ1YmJsZS1jaGFydC5kM2VuZCc6IHsgLy8gZW5kIG9mIGQzLmpzIGRyYXcoKVxuICAgICAgICAgIGxldCBmaWx0ZXJlZENoYXJ0RGF0YTtcbiAgICAgICAgICAvLyBhcHBseSBmaWx0ZXJzIHRvIHRoZSBkYXRhIGJlZm9yZSBhZGRpbmcgdG9vbHRpcHNcbiAgICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlLmZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmlsdGVyZWRDaGFydERhdGEgPSB0aGlzLmRhdGFTb3VyY2UuY2hhcnREYXRhLmZpbHRlcigoZWwpID0+ICF0aGlzLmRhdGFTb3VyY2UuZmlsdGVycy5pbmNsdWRlcyhlbC5lbnRpdHkudHlwZU9mRW50aXR5LnJlcGxhY2UoLyAvZywgJy0nKSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXJlZENoYXJ0RGF0YSA9IHRoaXMuZGF0YVNvdXJjZS5jaGFydERhdGE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZW1pdE91dGVyKCdkM2VuZCcsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRoaXMuZGF0YVNvdXJjZS5zbWFydFNsaWNlKGZpbHRlcmVkQ2hhcnREYXRhKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29uc29sZS53YXJuKCd1bmhhbmRsZWQgaW5uZXIgZXZlbnQgb2YgdHlwZScsIHR5cGUsICd3aXRoIHBheWxvYWQnLCBwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMub3V0ZXJFdmVudHMkLnN1YnNjcmliZSgoeyB0eXBlLCBwYXlsb2FkIH0pID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdhdy1ob21lLWxheW91dC5zZWxlY3QnOiB7XG4gICAgICAgICAgY29uc3QgeyBpZCB9ID0gcGF5bG9hZDtcbiAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdGlvbihpZCk7XG4gICAgICAgICAgY29uc3QgZm91bmRCdWJibGUgPSB0aGlzLmRhdGFTb3VyY2UuY2hhcnREYXRhLmZpbmQoKGVsKSA9PiBpZCA9PT0gZWwuZW50aXR5LmlkKTtcbiAgICAgICAgICBpZiAoZm91bmRCdWJibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdE91dGVyKCdsb2NrZmlsdGVyJywgZm91bmRCdWJibGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1VuYWJsZSB0byBkZXRlcm1pbmUgd2hpY2ggYnViYmxlIHdhcyBzZWxlY3RlZC4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWhvbWUtbGF5b3V0LnRhZ2NsaWNrJzpcbiAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdGlvbihwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXctaG9tZS1sYXlvdXQuZmFjZXRjbGljayc6XG4gICAgICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWQuaW5jbHVkZXMocGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlU2VsZWN0aW9uKHBheWxvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXctaG9tZS1sYXlvdXQudG9nZ2xlZmlsdGVyJzpcbiAgICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlcihwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXctaG9tZS1sYXlvdXQuY2xlYXJzZWxlY3Rpb24nOlxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RlZCA9IFtdO1xuICAgICAgICAgIHRoaXMuZW1pdE91dGVyKCdzZWxlY3Rpb24nLCBbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWVudGl0YS1sYXlvdXQuZmlsdGVyYnViYmxlcmVzcG9uc2UnOlxuICAgICAgICBjYXNlICdhdy1ob21lLWxheW91dC5maWx0ZXJidWJibGVyZXNwb25zZSc6XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnVwZGF0ZUNoYXJ0KHBheWxvYWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0aW9uID0gKGlkKSA9PiB7XG4gICAgLypcbiAgICAgIEV4cGVjdHMgdGhlIElEIG9mIGEgYnViYmxlLlxuICAgICAgVXBkYXRlcyB0aGUgZ3JhcGggd2l0aCBhIG5ldyByZXF1ZXN0XG4gICAgKi9cbiAgICB0aGlzLmRhdGFTb3VyY2UuaGFuZGxlQnViYmxlQ2xpY2soaWQpO1xuICAgIHRoaXMuZW1pdE91dGVyKCdzZWxlY3Rpb24nLCB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWQpO1xuICB9XG5cbiAgdG9nZ2xlRmlsdGVyID0gKGYpID0+IHtcbiAgICAvKlxuICAgICAgVG9nZ2xlIHRoZSBjbGlja2VkIGV5ZS1maWx0ZXIgaW4gdGhlIGZpbHRlcmVzIGFycmF5IGFuZFxuICAgICAgcmVkcmF3IHRoZSBncmFwaC5cbiAgICAqL1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuZmlsdGVycy5pbmNsdWRlcyhmKSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlcnMuc3BsaWNlKHRoaXMuZGF0YVNvdXJjZS5maWx0ZXJzLmluZGV4T2YoZiksIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVycy5wdXNoKGYpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFTb3VyY2UudXBkYXRlQ2hhcnQobnVsbCk7IC8vIG51bGwgbWVhbnMgXCJyZXVzZSB0aGUgbGFzdCByZXNwb25zZVwiXG4gIH1cbn1cbiJdfQ==
|