@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,89 @@
|
|
|
1
|
+
import { AwFacetInput } from './aw-facet-input';
|
|
2
|
+
const RESULTS_LIMIT = 2000;
|
|
3
|
+
export class AwFacetInputLink extends AwFacetInput {
|
|
4
|
+
transform() {
|
|
5
|
+
const facetId = this.getFacetId();
|
|
6
|
+
const results = [];
|
|
7
|
+
let resultsCounter = 0;
|
|
8
|
+
this.data.forEach(({ label, counter, hidden, value: rawValue, options: rawOptions }) => {
|
|
9
|
+
if (hidden) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
resultsCounter += 1;
|
|
13
|
+
if (resultsCounter > RESULTS_LIMIT) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
// normalize value
|
|
17
|
+
const value = `${rawValue}`;
|
|
18
|
+
const options = rawOptions || {};
|
|
19
|
+
const classes = [];
|
|
20
|
+
if (options.classes) {
|
|
21
|
+
classes.push(options.classes);
|
|
22
|
+
}
|
|
23
|
+
if (this._isActive(this.facetValue, value)) {
|
|
24
|
+
classes.push('is-active');
|
|
25
|
+
}
|
|
26
|
+
if (value === '__loading__') {
|
|
27
|
+
classes.push('loader-link');
|
|
28
|
+
}
|
|
29
|
+
results.push({
|
|
30
|
+
type: 'link',
|
|
31
|
+
id: this.getId(),
|
|
32
|
+
text: label,
|
|
33
|
+
counter,
|
|
34
|
+
payload: {
|
|
35
|
+
facetId,
|
|
36
|
+
source: 'input-link',
|
|
37
|
+
value,
|
|
38
|
+
},
|
|
39
|
+
icon: options.icon || null,
|
|
40
|
+
classes: classes.join(' '),
|
|
41
|
+
_meta: { facetId, value },
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
// empty state control
|
|
45
|
+
const itemEmpty = results.filter((item) => item.id === 'empty')[0];
|
|
46
|
+
if (this.isEmpty) {
|
|
47
|
+
if (itemEmpty) {
|
|
48
|
+
itemEmpty.classes = 'empty-text-link';
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const { label } = this.getConfig().emptyState;
|
|
52
|
+
const emptyId = 'empty-link';
|
|
53
|
+
results.push({
|
|
54
|
+
type: 'link',
|
|
55
|
+
id: emptyId,
|
|
56
|
+
text: label,
|
|
57
|
+
classes: 'empty-text-link',
|
|
58
|
+
_meta: { facetId: emptyId, value: null },
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if (itemEmpty) {
|
|
63
|
+
itemEmpty.classes = 'empty-text-link is-hidden';
|
|
64
|
+
}
|
|
65
|
+
return results;
|
|
66
|
+
}
|
|
67
|
+
setActive(facetValue) {
|
|
68
|
+
this.output.forEach((config) => {
|
|
69
|
+
const isActive = this._isActive(facetValue, config._meta.value);
|
|
70
|
+
let classes = config.classes ? config.classes.split(' ') : [];
|
|
71
|
+
if (!isActive) {
|
|
72
|
+
classes = classes.filter((className) => className !== 'is-active');
|
|
73
|
+
}
|
|
74
|
+
else if (classes.indexOf('is-active') === -1) {
|
|
75
|
+
classes.push('is-active');
|
|
76
|
+
}
|
|
77
|
+
config.classes = classes.join(' ');
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
_isActive(facetValue, value) {
|
|
81
|
+
this.facetValue = facetValue;
|
|
82
|
+
return ((Array.isArray(facetValue) && facetValue.indexOf(value) !== -1)
|
|
83
|
+
|| (facetValue === value));
|
|
84
|
+
}
|
|
85
|
+
clear() {
|
|
86
|
+
this.facetValue = [];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9zZWFyY2gvYXctZmFjZXQtaW5wdXRzL2F3LWZhY2V0LWlucHV0LWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUUzQixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBWTtJQUd0QyxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDakIsS0FBSyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sS0FBSyxFQUFFLFFBQVEsRUFDZixPQUFPLEVBQUUsVUFBVSxFQUNwQixFQUFFLEVBQUU7WUFDSCxJQUFJLE1BQU0sRUFBRTtnQkFDVixPQUFPO2FBQ1I7WUFDRCxjQUFjLElBQUksQ0FBQyxDQUFDO1lBRXBCLElBQUksY0FBYyxHQUFHLGFBQWEsRUFBRTtnQkFDbEMsT0FBTzthQUNSO1lBRUQsa0JBQWtCO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUVqQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQUU7WUFDdkQsSUFBSSxJQUFJLENBQUMsU0FB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UUFFN0IsT0FBTyxDQUNMLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2VBQzVELENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd0ZhY2V0SW5wdXQgfSBmcm9tICcuL2F3LWZhY2V0LWlucHV0JztcblxuY29uc3QgUkVTVUxUU19MSU1JVCA9IDIwMDA7XG5cbmV4cG9ydCBjbGFzcyBBd0ZhY2V0SW5wdXRMaW5rIGV4dGVuZHMgQXdGYWNldElucHV0IHtcbiAgcHJpdmF0ZSBmYWNldFZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKCkge1xuICAgIGNvbnN0IGZhY2V0SWQgPSB0aGlzLmdldEZhY2V0SWQoKTtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgbGV0IHJlc3VsdHNDb3VudGVyID0gMDtcblxuICAgIHRoaXMuZGF0YS5mb3JFYWNoKCh7XG4gICAgICBsYWJlbCxcbiAgICAgIGNvdW50ZXIsXG4gICAgICBoaWRkZW4sXG4gICAgICB2YWx1ZTogcmF3VmFsdWUsXG4gICAgICBvcHRpb25zOiByYXdPcHRpb25zXG4gICAgfSkgPT4ge1xuICAgICAgaWYgKGhpZGRlbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXN1bHRzQ291bnRlciArPSAxO1xuXG4gICAgICBpZiAocmVzdWx0c0NvdW50ZXIgPiBSRVNVTFRTX0xJTUlUKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gbm9ybWFsaXplIHZhbHVlXG4gICAgICBjb25zdCB2YWx1ZSA9IGAke3Jhd1ZhbHVlfWA7XG4gICAgICBjb25zdCBvcHRpb25zID0gcmF3T3B0aW9ucyB8fCB7fTtcblxuICAgICAgY29uc3QgY2xhc3NlcyA9IFtdO1xuICAgICAgaWYgKG9wdGlvbnMuY2xhc3NlcykgeyBjbGFzc2VzLnB1c2gob3B0aW9ucy5jbGFzc2VzKTsgfVxuICAgICAgaWYgKHRoaXMuX2lzQWN0aXZlKHRoaXMuZmFjZXRWYWx1ZSwgdmFsdWUpKSB7IGNsYXNzZXMucHVzaCgnaXMtYWN0aXZlJyk7IH1cbiAgICAgIGlmICh2YWx1ZSA9PT0gJ19fbG9hZGluZ19fJykgeyBjbGFzc2VzLnB1c2goJ2xvYWRlci1saW5rJyk7IH1cblxuICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICBpZDogdGhpcy5nZXRJZCgpLFxuICAgICAgICB0ZXh0OiBsYWJlbCxcbiAgICAgICAgY291bnRlcixcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgIGZhY2V0SWQsXG4gICAgICAgICAgc291cmNlOiAnaW5wdXQtbGluaycsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICAgIGljb246IG9wdGlvbnMuaWNvbiB8fCBudWxsLFxuICAgICAgICBjbGFzc2VzOiBjbGFzc2VzLmpvaW4oJyAnKSxcbiAgICAgICAgX21ldGE6IHsgZmFjZXRJZCwgdmFsdWUgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gZW1wdHkgc3RhdGUgY29udHJvbFxuICAgIGNvbnN0IGl0ZW1FbXB0eSA9IHJlc3VsdHMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlkID09PSAnZW1wdHknKVswXTtcbiAgICBpZiAodGhpcy5pc0VtcHR5KSB7XG4gICAgICBpZiAoaXRlbUVtcHR5KSB7XG4gICAgICAgIGl0ZW1FbXB0eS5jbGFzc2VzID0gJ2VtcHR5LXRleHQtbGluayc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGxhYmVsIH0gPSB0aGlzLmdldENvbmZpZygpLmVtcHR5U3RhdGU7XG4gICAgICAgIGNvbnN0IGVtcHR5SWQgPSAnZW1wdHktbGluayc7XG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgIGlkOiBlbXB0eUlkLFxuICAgICAgICAgIHRleHQ6IGxhYmVsLFxuICAgICAgICAgIGNsYXNzZXM6ICdlbXB0eS10ZXh0LWxpbmsnLFxuICAgICAgICAgIF9tZXRhOiB7IGZhY2V0SWQ6IGVtcHR5SWQsIHZhbHVlOiBudWxsIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXRlbUVtcHR5KSB7XG4gICAgICBpdGVtRW1wdHkuY2xhc3NlcyA9ICdlbXB0eS10ZXh0LWxpbmsgaXMtaGlkZGVuJztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmUoZmFjZXRWYWx1ZSkge1xuICAgIHRoaXMub3V0cHV0LmZvckVhY2goKGNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLl9pc0FjdGl2ZShmYWNldFZhbHVlLCBjb25maWcuX21ldGEudmFsdWUpO1xuICAgICAgbGV0IGNsYXNzZXMgPSBjb25maWcuY2xhc3NlcyA/IGNvbmZpZy5jbGFzc2VzLnNwbGl0KCcgJykgOiBbXTtcbiAgICAgIGlmICghaXNBY3RpdmUpIHtcbiAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMuZmlsdGVyKChjbGFzc05hbWUpID0+IGNsYXNzTmFtZSAhPT0gJ2lzLWFjdGl2ZScpO1xuICAgICAgfSBlbHNlIGlmIChjbGFzc2VzLmluZGV4T2YoJ2lzLWFjdGl2ZScpID09PSAtMSkge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2lzLWFjdGl2ZScpO1xuICAgICAgfVxuICAgICAgY29uZmlnLmNsYXNzZXMgPSBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQWN0aXZlKGZhY2V0VmFsdWUsIHZhbHVlKSB7XG4gICAgdGhpcy5mYWNldFZhbHVlID0gZmFjZXRWYWx1ZTtcblxuICAgIHJldHVybiAoXG4gICAgICAoQXJyYXkuaXNBcnJheShmYWNldFZhbHVlKSAmJiBmYWNldFZhbHVlLmluZGV4T2YodmFsdWUpICE9PSAtMSlcbiAgICAgIHx8IChmYWNldFZhbHVlID09PSB2YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuZmFjZXRWYWx1ZSA9IFtdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AwFacetInput } from './aw-facet-input';
|
|
2
|
+
export class AwFacetInputSelect extends AwFacetInput {
|
|
3
|
+
transform() {
|
|
4
|
+
const facetId = this.getFacetId();
|
|
5
|
+
return {
|
|
6
|
+
type: 'select',
|
|
7
|
+
id: this.getId(),
|
|
8
|
+
label: this.config.label,
|
|
9
|
+
disabled: this.config.disabled,
|
|
10
|
+
options: this.data ? this.data.map(({ value, label }) => ({
|
|
11
|
+
// normalize value
|
|
12
|
+
value: `${value}`,
|
|
13
|
+
label,
|
|
14
|
+
})) : [],
|
|
15
|
+
payload: {
|
|
16
|
+
facetId,
|
|
17
|
+
source: 'input-select',
|
|
18
|
+
},
|
|
19
|
+
_meta: { facetId },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
setActive(facetValue) {
|
|
23
|
+
this.output.options
|
|
24
|
+
.filter((option) => option.value === facetValue)
|
|
25
|
+
.forEach((option) => { option.selected = true; });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQtc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL3NlYXJjaC9hdy1mYWNldC1pbnB1dHMvYXctZmFjZXQtaW5wdXQtc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBWTtJQUN4QyxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVE7WUFDZCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELGtCQUFrQjtnQkFDbEIsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFO2dCQUNqQixLQUFLO2FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDUixPQUFPLEVBQUU7Z0JBQ1AsT0FBTztnQkFDUCxNQUFNLEVBQUUsY0FBYzthQUN2QjtZQUNELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRTtTQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxVQUFVO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzthQUNoQixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDO2FBQy9DLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd0ZhY2V0SW5wdXQgfSBmcm9tICcuL2F3LWZhY2V0LWlucHV0JztcblxuZXhwb3J0IGNsYXNzIEF3RmFjZXRJbnB1dFNlbGVjdCBleHRlbmRzIEF3RmFjZXRJbnB1dCB7XG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oKSB7XG4gICAgY29uc3QgZmFjZXRJZCA9IHRoaXMuZ2V0RmFjZXRJZCgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgaWQ6IHRoaXMuZ2V0SWQoKSxcbiAgICAgIGxhYmVsOiB0aGlzLmNvbmZpZy5sYWJlbCxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmNvbmZpZy5kaXNhYmxlZCxcbiAgICAgIG9wdGlvbnM6IHRoaXMuZGF0YSA/IHRoaXMuZGF0YS5tYXAoKHsgdmFsdWUsIGxhYmVsIH0pID0+ICh7XG4gICAgICAgIC8vIG5vcm1hbGl6ZSB2YWx1ZVxuICAgICAgICB2YWx1ZTogYCR7dmFsdWV9YCxcbiAgICAgICAgbGFiZWwsXG4gICAgICB9KSkgOiBbXSxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmFjZXRJZCxcbiAgICAgICAgc291cmNlOiAnaW5wdXQtc2VsZWN0JyxcbiAgICAgIH0sXG4gICAgICBfbWV0YTogeyBmYWNldElkIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmUoZmFjZXRWYWx1ZSkge1xuICAgIHRoaXMub3V0cHV0Lm9wdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBmYWNldFZhbHVlKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4geyBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlOyB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { helpers } from '@net7/boilerplate-common';
|
|
2
|
+
import { AwFacetInput } from './aw-facet-input';
|
|
3
|
+
export class AwFacetInputText extends AwFacetInput {
|
|
4
|
+
transform() {
|
|
5
|
+
const facetId = this.getFacetId();
|
|
6
|
+
const payload = {
|
|
7
|
+
facetId,
|
|
8
|
+
source: 'input-text',
|
|
9
|
+
};
|
|
10
|
+
return {
|
|
11
|
+
type: 'text',
|
|
12
|
+
id: this.getId(),
|
|
13
|
+
label: this.config.label,
|
|
14
|
+
disabled: this.config.disabled,
|
|
15
|
+
placeholder: this.config.placeholder,
|
|
16
|
+
icon: this.config.icon,
|
|
17
|
+
inputPayload: {
|
|
18
|
+
...payload,
|
|
19
|
+
trigger: 'input',
|
|
20
|
+
},
|
|
21
|
+
enterPayload: {
|
|
22
|
+
...payload,
|
|
23
|
+
trigger: 'enter',
|
|
24
|
+
},
|
|
25
|
+
iconPayload: {
|
|
26
|
+
...payload,
|
|
27
|
+
trigger: 'icon',
|
|
28
|
+
},
|
|
29
|
+
_meta: { facetId },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
setActive(facetValue) {
|
|
33
|
+
this.output.value = helpers.unescapeQuotes(facetValue) || null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQtdGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9zZWFyY2gvYXctZmFjZXQtaW5wdXRzL2F3LWZhY2V0LWlucHV0LXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBWTtJQUN0QyxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRztZQUNkLE9BQU87WUFDUCxNQUFNLEVBQUUsWUFBWTtTQUNyQixDQUFDO1FBRUYsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUN0QixZQUFZLEVBQUU7Z0JBQ1osR0FBRyxPQUFPO2dCQUNWLE9BQU8sRUFBRSxPQUFPO2FBQ2pCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLEdBQUcsT0FBTztnQkFDVixPQUFPLEVBQUUsT0FBTzthQUNqQjtZQUNELFdBQVcsRUFBRTtnQkFDWCxHQUFHLE9BQU87Z0JBQ1YsT0FBTyxFQUFFLE1BQU07YUFDaEI7WUFDRCxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUU7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFTSxTQUFTLENBQUMsVUFBVTtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNqRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IEF3RmFjZXRJbnB1dCB9IGZyb20gJy4vYXctZmFjZXQtaW5wdXQnO1xuXG5leHBvcnQgY2xhc3MgQXdGYWNldElucHV0VGV4dCBleHRlbmRzIEF3RmFjZXRJbnB1dCB7XG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oKSB7XG4gICAgY29uc3QgZmFjZXRJZCA9IHRoaXMuZ2V0RmFjZXRJZCgpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBmYWNldElkLFxuICAgICAgc291cmNlOiAnaW5wdXQtdGV4dCcsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBpZDogdGhpcy5nZXRJZCgpLFxuICAgICAgbGFiZWw6IHRoaXMuY29uZmlnLmxhYmVsLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuY29uZmlnLmRpc2FibGVkLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuY29uZmlnLnBsYWNlaG9sZGVyLFxuICAgICAgaWNvbjogdGhpcy5jb25maWcuaWNvbixcbiAgICAgIGlucHV0UGF5bG9hZDoge1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICB0cmlnZ2VyOiAnaW5wdXQnLFxuICAgICAgfSxcbiAgICAgIGVudGVyUGF5bG9hZDoge1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICB0cmlnZ2VyOiAnZW50ZXInLFxuICAgICAgfSxcbiAgICAgIGljb25QYXlsb2FkOiB7XG4gICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgIHRyaWdnZXI6ICdpY29uJyxcbiAgICAgIH0sXG4gICAgICBfbWV0YTogeyBmYWNldElkIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmUoZmFjZXRWYWx1ZSkge1xuICAgIHRoaXMub3V0cHV0LnZhbHVlID0gaGVscGVycy51bmVzY2FwZVF1b3RlcyhmYWNldFZhbHVlKSB8fCBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class AwFacetInput {
|
|
2
|
+
constructor(config) {
|
|
3
|
+
this.isEmpty = false;
|
|
4
|
+
this.update = () => { this.output = this.transform(); };
|
|
5
|
+
this.getId = () => this.id;
|
|
6
|
+
this.getData = () => this.data;
|
|
7
|
+
this.getConfig = () => this.config;
|
|
8
|
+
this.getFacetId = () => this.config.facetId;
|
|
9
|
+
this.getInputIndex = () => this.config.inputIndex;
|
|
10
|
+
this.getSectionIndex = () => this.config.sectionIndex;
|
|
11
|
+
this.getContext = () => this.config.filterConfig.context || 'external';
|
|
12
|
+
this.getTarget = () => this.config.filterConfig.target || null;
|
|
13
|
+
this.getSearchIn = () => this.config.filterConfig.searchIn || null;
|
|
14
|
+
this.getType = () => this.config.type;
|
|
15
|
+
this.getOutput = () => this.output;
|
|
16
|
+
this.setIsEmpty = (empty) => {
|
|
17
|
+
this.isEmpty = empty;
|
|
18
|
+
};
|
|
19
|
+
this.setData = (newData) => { this.data = newData; };
|
|
20
|
+
this.config = config;
|
|
21
|
+
this._setId();
|
|
22
|
+
AwFacetInput.index += 1;
|
|
23
|
+
}
|
|
24
|
+
clear() { return null; }
|
|
25
|
+
_setId() {
|
|
26
|
+
this.id = `facet-input-${this.getType()}-${AwFacetInput.index}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
AwFacetInput.index = 0;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvc2VhcmNoL2F3LWZhY2V0LWlucHV0cy9hdy1mYWNldC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQWdCLFlBQVk7SUFhaEMsWUFBWSxNQUFNO1FBRlIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQWFuQixXQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFbEQsVUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFdEIsWUFBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFMUIsY0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFOUIsZUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBRXZDLGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFFN0Msb0JBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUVqRCxlQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUVsRSxjQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztRQUUxRCxnQkFBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7UUFFOUQsWUFBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRWpDLGNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBSTlCLGVBQVUsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQTtRQUVNLFlBQU8sR0FBRyxDQUFDLE9BQXlCLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBeEN0RSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFZCxZQUFZLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBOEJNLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFRdkIsTUFBTTtRQUNaLElBQUksQ0FBQyxFQUFFLEdBQUcsZUFBZSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7O0FBekRNLGtCQUFLLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIEZhY2V0SW5wdXREYXRhIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgbGFiZWw6IHN0cmluZztcbiAgY291bnRlcjogbnVtYmVyO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBvcHRpb25zPzogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXdGYWNldElucHV0IHtcbiAgc3RhdGljIGluZGV4ID0gMDtcblxuICBwcml2YXRlIGlkOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZzogYW55O1xuXG4gIHByb3RlY3RlZCBvdXRwdXQ6IGFueTtcblxuICBwcm90ZWN0ZWQgZGF0YTogRmFjZXRJbnB1dERhdGFbXTtcblxuICBwcm90ZWN0ZWQgaXNFbXB0eSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX3NldElkKCk7XG5cbiAgICBBd0ZhY2V0SW5wdXQuaW5kZXggKz0gMTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBzZXRBY3RpdmUoZmFjZXRWYWx1ZTogYW55KTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdHJhbnNmb3JtKCk6IGFueTtcblxuICBwdWJsaWMgdXBkYXRlID0gKCkgPT4geyB0aGlzLm91dHB1dCA9IHRoaXMudHJhbnNmb3JtKCk7IH1cblxuICBwdWJsaWMgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIHB1YmxpYyBnZXREYXRhID0gKCkgPT4gdGhpcy5kYXRhO1xuXG4gIHB1YmxpYyBnZXRDb25maWcgPSAoKSA9PiB0aGlzLmNvbmZpZztcblxuICBwdWJsaWMgZ2V0RmFjZXRJZCA9ICgpID0+IHRoaXMuY29uZmlnLmZhY2V0SWQ7XG5cbiAgcHVibGljIGdldElucHV0SW5kZXggPSAoKSA9PiB0aGlzLmNvbmZpZy5pbnB1dEluZGV4O1xuXG4gIHB1YmxpYyBnZXRTZWN0aW9uSW5kZXggPSAoKSA9PiB0aGlzLmNvbmZpZy5zZWN0aW9uSW5kZXg7XG5cbiAgcHVibGljIGdldENvbnRleHQgPSAoKSA9PiB0aGlzLmNvbmZpZy5maWx0ZXJDb25maWcuY29udGV4dCB8fCAnZXh0ZXJuYWwnO1xuXG4gIHB1YmxpYyBnZXRUYXJnZXQgPSAoKSA9PiB0aGlzLmNvbmZpZy5maWx0ZXJDb25maWcudGFyZ2V0IHx8IG51bGw7XG5cbiAgcHVibGljIGdldFNlYXJjaEluID0gKCkgPT4gdGhpcy5jb25maWcuZmlsdGVyQ29uZmlnLnNlYXJjaEluIHx8IG51bGw7XG5cbiAgcHVibGljIGdldFR5cGUgPSAoKSA9PiB0aGlzLmNvbmZpZy50eXBlO1xuXG4gIHB1YmxpYyBnZXRPdXRwdXQgPSAoKSA9PiB0aGlzLm91dHB1dDtcblxuICBwdWJsaWMgY2xlYXIoKSB7IHJldHVybiBudWxsOyB9XG5cbiAgcHVibGljIHNldElzRW1wdHkgPSAoZW1wdHk6IGJvb2xlYW4pID0+IHtcbiAgICB0aGlzLmlzRW1wdHkgPSBlbXB0eTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREYXRhID0gKG5ld0RhdGE6IEZhY2V0SW5wdXREYXRhW10pID0+IHsgdGhpcy5kYXRhID0gbmV3RGF0YTsgfVxuXG4gIHByaXZhdGUgX3NldElkKCkge1xuICAgIHRoaXMuaWQgPSBgZmFjZXQtaW5wdXQtJHt0aGlzLmdldFR5cGUoKX0tJHtBd0ZhY2V0SW5wdXQuaW5kZXh9YDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './aw-facet-input';
|
|
2
|
+
export * from './aw-facet-input-checkbox';
|
|
3
|
+
export * from './aw-facet-input-link';
|
|
4
|
+
export * from './aw-facet-input-select';
|
|
5
|
+
export * from './aw-facet-input-text';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvc2VhcmNoL2F3LWZhY2V0LWlucHV0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F3LWZhY2V0LWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXQtaW5wdXQtY2hlY2tib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9hdy1mYWNldC1pbnB1dC1saW5rJztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXQtaW5wdXQtc2VsZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXQtaW5wdXQtdGV4dCc7XG4iXX0=
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/* eslint-disable max-classes-per-file */
|
|
2
|
+
import { get as _get, isEmpty as _isEmpty } from 'lodash';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { helpers } from '@net7/boilerplate-common';
|
|
5
|
+
import { AwFacetInputCheckbox, AwFacetInputText, AwFacetInputLink, AwFacetInputSelect, } from './aw-facet-inputs';
|
|
6
|
+
const INPUTS_MAP = {
|
|
7
|
+
checkbox: AwFacetInputCheckbox,
|
|
8
|
+
text: AwFacetInputText,
|
|
9
|
+
link: AwFacetInputLink,
|
|
10
|
+
select: AwFacetInputSelect,
|
|
11
|
+
};
|
|
12
|
+
const FILTERS_MAP = {
|
|
13
|
+
'=': '_filterDataEquals',
|
|
14
|
+
'>': '_filterDataGreaterThan',
|
|
15
|
+
'<': '_filterDataLessThan',
|
|
16
|
+
'>=': '_filterDataGreaterOrEquals',
|
|
17
|
+
'<=': '_filterDataLessOrEquals',
|
|
18
|
+
'<>': '_filterDataNotEqual',
|
|
19
|
+
LIKE: '_filterDataLike',
|
|
20
|
+
};
|
|
21
|
+
export class AwSearchModel {
|
|
22
|
+
constructor(id, config) {
|
|
23
|
+
this._filters = [];
|
|
24
|
+
this._facets = [];
|
|
25
|
+
this._inputs = [];
|
|
26
|
+
this._results$ = new Subject();
|
|
27
|
+
this.getId = () => this._id;
|
|
28
|
+
this.getFilters = () => this._filters;
|
|
29
|
+
this.getFacets = () => this._facets;
|
|
30
|
+
this.getInputs = () => this._inputs;
|
|
31
|
+
this.getConfig = () => this._config;
|
|
32
|
+
this.getTotalCount = () => this._totalCount;
|
|
33
|
+
this.getFields = () => this._config.fields;
|
|
34
|
+
this.getResults$ = () => this._results$;
|
|
35
|
+
this.setResults = (results) => this._results$.next(results);
|
|
36
|
+
this._id = id;
|
|
37
|
+
this._config = config;
|
|
38
|
+
this._setFilters();
|
|
39
|
+
this._setFacets();
|
|
40
|
+
this._setPage();
|
|
41
|
+
this._setInputs();
|
|
42
|
+
this._setInputsData();
|
|
43
|
+
this._setTotalCount();
|
|
44
|
+
// query params control
|
|
45
|
+
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
46
|
+
if (AwSearchModel.queryParams) {
|
|
47
|
+
this.updateFiltersFromQueryParams(AwSearchModel.queryParams);
|
|
48
|
+
AwSearchModel.queryParams = null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
updateFilter(facetId, value, remove) {
|
|
52
|
+
const selectedFilters = this.getFiltersByFacetId(facetId);
|
|
53
|
+
selectedFilters.forEach((filter) => {
|
|
54
|
+
if (Array.isArray(filter.value) && remove) {
|
|
55
|
+
filter.value = filter.value.filter((item) => item !== value);
|
|
56
|
+
}
|
|
57
|
+
else if (Array.isArray(filter.value)
|
|
58
|
+
&& filter.value.indexOf(value) === -1) {
|
|
59
|
+
filter.value.push(value);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
filter.value = !remove ? helpers.escapeQuotes(value) : null;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
clear() {
|
|
67
|
+
this.updateFiltersFromQueryParams({}, true);
|
|
68
|
+
this._clearInputs();
|
|
69
|
+
}
|
|
70
|
+
updateFiltersFromQueryParams(queryParams, clearAll = false) {
|
|
71
|
+
this._facets.forEach(({ id }) => {
|
|
72
|
+
const selectedFilters = this.getFiltersByFacetId(id);
|
|
73
|
+
const value = queryParams[id];
|
|
74
|
+
const isInternal = this.getInputByFacetId(id).getContext() === 'internal';
|
|
75
|
+
if (isInternal && !clearAll) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
selectedFilters.forEach((filter) => {
|
|
79
|
+
if (filter.isArray) {
|
|
80
|
+
filter.value = value ? value.split(',') : [];
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
filter.value = value || null;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
updateInputsFromFilters() {
|
|
89
|
+
this._filters.forEach(({ facetId, value }) => {
|
|
90
|
+
this.getInputByFacetId(facetId).setActive(value);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
updateFacets(facets) {
|
|
94
|
+
facets.forEach(({ id, data }) => this.updateFacet(id, data));
|
|
95
|
+
this._setInputsData();
|
|
96
|
+
}
|
|
97
|
+
updateTotalCount(totalCount) {
|
|
98
|
+
this._totalCount = totalCount;
|
|
99
|
+
}
|
|
100
|
+
updateFacet(facetId, data) {
|
|
101
|
+
const selectedFacets = this._facets.filter((facet) => facet.id === facetId);
|
|
102
|
+
if (!selectedFacets.length) {
|
|
103
|
+
throw Error(`Facet with id '${facetId}' does not exists`);
|
|
104
|
+
}
|
|
105
|
+
selectedFacets.forEach((facet) => { facet.data = data; });
|
|
106
|
+
}
|
|
107
|
+
reset() {
|
|
108
|
+
this._filters.forEach((filter) => { filter.value = null; });
|
|
109
|
+
}
|
|
110
|
+
getRequestParams() {
|
|
111
|
+
return {
|
|
112
|
+
facets: this._getRequestFacets(),
|
|
113
|
+
page: this._page,
|
|
114
|
+
results: this._config.results,
|
|
115
|
+
filters: this._filters
|
|
116
|
+
.filter((filter) => filter.context !== 'internal')
|
|
117
|
+
.map(({ facetId, value, searchIn, pagination }) => (pagination ? {
|
|
118
|
+
facetId, value, searchIn, pagination
|
|
119
|
+
} : {
|
|
120
|
+
facetId, value, searchIn
|
|
121
|
+
})),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
getInternalFilters() {
|
|
125
|
+
return this._filters
|
|
126
|
+
.filter((filter) => (filter.context === 'internal'
|
|
127
|
+
&& !_isEmpty(filter.value)))
|
|
128
|
+
.map(({ facetId, value, searchIn }) => ({
|
|
129
|
+
facetId, value, searchIn
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
filtersAsQueryParams(filters) {
|
|
133
|
+
const queryParams = {};
|
|
134
|
+
filters.forEach((filter) => {
|
|
135
|
+
queryParams[filter.facetId] = Array.isArray(filter.value)
|
|
136
|
+
? filter.value.join(',')
|
|
137
|
+
: filter.value;
|
|
138
|
+
});
|
|
139
|
+
return queryParams;
|
|
140
|
+
}
|
|
141
|
+
getFiltersByFacetId(facetId) {
|
|
142
|
+
return this._filters.filter((filter) => filter.facetId === facetId);
|
|
143
|
+
}
|
|
144
|
+
getInputByFacetId(facetId) {
|
|
145
|
+
return this._inputs.filter((input) => input.getFacetId() === facetId)[0];
|
|
146
|
+
}
|
|
147
|
+
setInputData(facetId, data) {
|
|
148
|
+
this.getInputByFacetId(facetId).setData(data);
|
|
149
|
+
}
|
|
150
|
+
filterTarget(target) {
|
|
151
|
+
const inputs = this._inputs.filter((input) => input.getTarget() === target);
|
|
152
|
+
const targetInput = this.getInputByFacetId(target);
|
|
153
|
+
const facet = this._facets.filter((f) => f.id === target)[0];
|
|
154
|
+
const facetData = facet.data;
|
|
155
|
+
const searchIns = [];
|
|
156
|
+
inputs.forEach((input) => {
|
|
157
|
+
const filter = this.getFiltersByFacetId(input.getFacetId())[0];
|
|
158
|
+
const searchIn = input.getSearchIn();
|
|
159
|
+
const { value } = filter;
|
|
160
|
+
searchIns.push([searchIn, value]);
|
|
161
|
+
});
|
|
162
|
+
// filter
|
|
163
|
+
facetData.forEach((item) => this._filterData(searchIns, item));
|
|
164
|
+
// update
|
|
165
|
+
targetInput.setData(facetData);
|
|
166
|
+
if (targetInput.getConfig().emptyState) {
|
|
167
|
+
const isEmpty = !facetData.filter((data) => !data.hidden).length;
|
|
168
|
+
targetInput.setIsEmpty(isEmpty);
|
|
169
|
+
}
|
|
170
|
+
targetInput.update();
|
|
171
|
+
}
|
|
172
|
+
setSearchConfigOrderBy(orderBy) {
|
|
173
|
+
this._config.results.order.key = orderBy;
|
|
174
|
+
}
|
|
175
|
+
setSearchConfigDirection(direction) {
|
|
176
|
+
this._config.results.order.direction = direction;
|
|
177
|
+
}
|
|
178
|
+
setSearchConfigType(type) {
|
|
179
|
+
this._config.results.order.type = type;
|
|
180
|
+
}
|
|
181
|
+
setPageConfigOffset(offset) {
|
|
182
|
+
this._config.page.offset = offset;
|
|
183
|
+
}
|
|
184
|
+
setPageConfigLimit(limit) {
|
|
185
|
+
this._config.page.limit = limit;
|
|
186
|
+
}
|
|
187
|
+
_clearInputs() {
|
|
188
|
+
// do nothing
|
|
189
|
+
}
|
|
190
|
+
_filterData(searchIns, item) {
|
|
191
|
+
// reset
|
|
192
|
+
item.hidden = false;
|
|
193
|
+
searchIns.forEach(([searchIn, value]) => {
|
|
194
|
+
searchIn.forEach(({ key, operator }) => {
|
|
195
|
+
if (item.hidden) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
let refValue = _get(item, key, null);
|
|
199
|
+
if (key.indexOf('searchData') !== -1 && Array.isArray(item.searchData)) {
|
|
200
|
+
const searchDataKey = key.replace('searchData.', '');
|
|
201
|
+
item.searchData.forEach(({ key: dataKey, value: dataValue }) => {
|
|
202
|
+
if (dataKey === searchDataKey) {
|
|
203
|
+
refValue = dataValue;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
if (refValue === null) {
|
|
208
|
+
item.hidden = true;
|
|
209
|
+
}
|
|
210
|
+
else if (FILTERS_MAP[operator]) {
|
|
211
|
+
item.hidden = this[FILTERS_MAP[operator]](value, refValue);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
console.warn(`SearchIn: operator ${operator} not supported`);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
_filterDataEquals(value, refValue) {
|
|
220
|
+
if (Array.isArray(refValue)) {
|
|
221
|
+
if (Array.isArray(value)) {
|
|
222
|
+
let inArray = value.length === 0;
|
|
223
|
+
refValue.forEach((rv) => {
|
|
224
|
+
if (value.indexOf(rv) !== -1) {
|
|
225
|
+
inArray = true;
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
return !(inArray);
|
|
229
|
+
}
|
|
230
|
+
return !(value && refValue.indexOf(value) !== -1);
|
|
231
|
+
}
|
|
232
|
+
if (Array.isArray(value)) {
|
|
233
|
+
return !(!value.length || value.indexOf(refValue) !== -1);
|
|
234
|
+
}
|
|
235
|
+
return !(value && value === refValue);
|
|
236
|
+
}
|
|
237
|
+
_filterDataGreaterThan(value, refValue) {
|
|
238
|
+
if (!Array.isArray(value)) {
|
|
239
|
+
return !(value && value > refValue);
|
|
240
|
+
}
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
_filterDataLessThan(value, refValue) {
|
|
244
|
+
if (!Array.isArray(value)) {
|
|
245
|
+
return !(value && value < refValue);
|
|
246
|
+
}
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
_filterDataGreaterOrEquals(value, refValue) {
|
|
250
|
+
if (!Array.isArray(value)) {
|
|
251
|
+
return !(value && value >= refValue);
|
|
252
|
+
}
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
_filterDataLessOrEquals(value, refValue) {
|
|
256
|
+
if (!Array.isArray(value)) {
|
|
257
|
+
return !(value && value <= refValue);
|
|
258
|
+
}
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
261
|
+
_filterDataNotEqual(value, refValue) {
|
|
262
|
+
if (!Array.isArray(value)) {
|
|
263
|
+
return !(value && value !== refValue);
|
|
264
|
+
}
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
_filterDataLike(value, refValue) {
|
|
268
|
+
if (value
|
|
269
|
+
&& typeof value === 'string'
|
|
270
|
+
&& typeof refValue === 'string') {
|
|
271
|
+
const haystack = refValue.toLowerCase();
|
|
272
|
+
const needle = value.toLocaleLowerCase();
|
|
273
|
+
return !(haystack.indexOf(needle) !== -1);
|
|
274
|
+
}
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
_setFilters() {
|
|
278
|
+
this._config.fields.forEach((field) => {
|
|
279
|
+
field.inputs.forEach((input) => this._filters.push({
|
|
280
|
+
...input.filterConfig,
|
|
281
|
+
facetId: input.facetId,
|
|
282
|
+
value: input.filterConfig.isArray ? [] : null,
|
|
283
|
+
}));
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
_setFacets() {
|
|
287
|
+
this._facets = this._config.facets;
|
|
288
|
+
}
|
|
289
|
+
_setPage() {
|
|
290
|
+
this._page = this._config.page;
|
|
291
|
+
}
|
|
292
|
+
_setTotalCount() {
|
|
293
|
+
this._totalCount = this._config.totalCount;
|
|
294
|
+
}
|
|
295
|
+
_setInputs() {
|
|
296
|
+
this._config.fields.forEach((sectionConfig, sectionIndex) => {
|
|
297
|
+
sectionConfig.inputs.forEach((inputConfig, inputIndex) => {
|
|
298
|
+
const InputModel = INPUTS_MAP[inputConfig.type];
|
|
299
|
+
if (!InputModel) {
|
|
300
|
+
throw Error(`Input type ${inputConfig.type} not supported`);
|
|
301
|
+
}
|
|
302
|
+
this._inputs.push(new InputModel({ ...inputConfig, inputIndex, sectionIndex }));
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
_setInputsData() {
|
|
307
|
+
this._facets.forEach((facet) => this.setInputData(facet.id, facet.data));
|
|
308
|
+
}
|
|
309
|
+
_getRequestFacets() {
|
|
310
|
+
const results = [];
|
|
311
|
+
this._facets.forEach((f) => {
|
|
312
|
+
const facetConfig = { ...f };
|
|
313
|
+
if (!f.hasStaticData) {
|
|
314
|
+
delete facetConfig.data;
|
|
315
|
+
}
|
|
316
|
+
delete facetConfig.hasStaticData;
|
|
317
|
+
// searchData control
|
|
318
|
+
if (Array.isArray(facetConfig.data)) {
|
|
319
|
+
facetConfig.data
|
|
320
|
+
.filter((dataItem) => typeof dataItem.searchData !== 'undefined')
|
|
321
|
+
.forEach((dataItem) => {
|
|
322
|
+
delete dataItem.searchData;
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
results.push(facetConfig);
|
|
326
|
+
});
|
|
327
|
+
return results;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
AwSearchModel.queryParams = null;
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctc2VhcmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL3NlYXJjaC9hdy1zZWFyY2gubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE9BQU8sSUFBSSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNuQixNQUFNLG1CQUFtQixDQUFDO0FBTTNCLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLFFBQVEsRUFBRSxvQkFBb0I7SUFDOUIsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLE1BQU0sRUFBRSxrQkFBa0I7Q0FDM0IsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsR0FBRyxFQUFFLHdCQUF3QjtJQUM3QixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLElBQUksRUFBRSw0QkFBNEI7SUFDbEMsSUFBSSxFQUFFLHlCQUF5QjtJQUMvQixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLElBQUksRUFBRSxpQkFBaUI7Q0FDeEIsQ0FBQztBQW9DRixNQUFNLE9BQU8sYUFBYTtJQW1CeEIsWUFBWSxFQUFVLEVBQUUsTUFBc0I7UUFkdEMsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUV4QixZQUFPLEdBQVksRUFBRSxDQUFDO1FBRXRCLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBUTdCLGNBQVMsR0FBbUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQXFCM0MsVUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFFdkIsZUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFakMsY0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFL0IsY0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFL0IsY0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFL0Isa0JBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRXZDLGNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUV0QyxnQkFBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFbkMsZUFBVSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQWxDNUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0Qix1QkFBdUI7UUFDdkIsNERBQTREO1FBQzVELElBQUksYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUM3QixJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdELGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQW9CTSxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFnQjtRQUNsRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxFQUFFO2dCQUN6QyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7YUFDOUQ7aUJBQU0sSUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7bUJBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNyQztnQkFDQSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDN0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxRQUFRLEdBQUcsS0FBSztRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxVQUFVLENBQUM7WUFFMUUsSUFBSSxVQUFVLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzNCLE9BQU87YUFDUjtZQUVELGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDakMsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO29CQUNsQixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUM5QztxQkFBTTtvQkFDTCxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQU07UUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsVUFBVTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJO1FBQzlCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQzFCLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixPQUFPLG1CQUFtQixDQUFDLENBQUM7U0FDM0Q7UUFFRCxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7aUJBQ25CLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUM7aUJBQ2pELEdBQUcsQ0FBQyxDQUFDLEVBQ0osT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUNyQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVU7YUFDckMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRO2FBQ3pCLENBQUMsQ0FBQztTQUNOLENBQUM7SUFDSixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVE7YUFDakIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUNsQixNQUFNLENBQUMsT0FBTyxLQUFLLFVBQVU7ZUFDMUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUMzQixDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsRUFDSixPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFDekIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNMLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUTtTQUN6QixDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFPO1FBQ2pDLE1BQU0sV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsT0FBTyxDQUNiLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDVCxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDbkIsQ0FBQyxDQUNGLENBQUM7UUFFRixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sbUJBQW1CLENBQUMsT0FBZTtRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxPQUFlO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFNO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDNUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFFN0IsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0QsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7WUFFekIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUztRQUNULFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFL0QsU0FBUztRQUNULFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0IsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2pFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakM7UUFDRCxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE9BQU87UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7SUFDM0MsQ0FBQztJQUVNLHdCQUF3QixDQUFDLFNBQVM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLElBQUk7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQU07UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsS0FBSztRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLGFBQWE7SUFDZixDQUFDO0lBRU8sV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJO1FBQ2pDLFFBQVE7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN0QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNmLE9BQU87aUJBQ1I7Z0JBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDdEUsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO3dCQUM3RCxJQUFJLE9BQU8sS0FBSyxhQUFhLEVBQUU7NEJBQzdCLFFBQVEsR0FBRyxTQUFTLENBQUM7eUJBQ3RCO29CQUNILENBQUMsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7aUJBQ3BCO3FCQUFNLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7aUJBQzVEO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLFFBQVEsZ0JBQWdCLENBQUMsQ0FBQztpQkFDOUQ7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRO1FBQ3ZDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUNqQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQ3RCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDNUIsT0FBTyxHQUFHLElBQUksQ0FBQztxQkFDaEI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbkI7WUFDRCxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxDQUNOLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNoRCxDQUFDO1NBQ0g7UUFDRCxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBSyxFQUFFLFFBQVE7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQztTQUNyQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLDBCQUEwQixDQUFDLEtBQUssRUFBRSxRQUFRO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLElBQUksUUFBUSxDQUFDLENBQUM7U0FDdEM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxJQUFJLFFBQVEsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBSyxFQUFFLFFBQVE7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUNyQyxJQUNFLEtBQUs7ZUFDRixPQUFPLEtBQUssS0FBSyxRQUFRO2VBQ3pCLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFDL0I7WUFDQSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFFekMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pELEdBQUcsS0FBSyxDQUFDLFlBQVk7Z0JBQ3JCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVPLFFBQVE7UUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDN0MsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQzFELGFBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFO2dCQUN2RCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNmLE1BQU0sS0FBSyxDQUFDLGNBQWMsV0FBVyxDQUFDLElBQUksZ0JBQWdCLENBQUMsQ0FBQztpQkFDN0Q7Z0JBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsSUFBSSxVQUFVLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FDN0QsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsTUFBTSxPQUFPLEdBQVksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekIsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO2dCQUNwQixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUM7YUFDekI7WUFDRCxPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFFakMscUJBQXFCO1lBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25DLFdBQVcsQ0FBQyxJQUFJO3FCQUNiLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxRQUFRLENBQUMsVUFBVSxLQUFLLFdBQVcsQ0FBQztxQkFDaEUsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ3BCLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOztBQXRZTSx5QkFBVyxHQUFRLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1jbGFzc2VzLXBlci1maWxlICovXG5pbXBvcnQgeyBnZXQgYXMgX2dldCwgaXNFbXB0eSBhcyBfaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7XG4gIEF3RmFjZXRJbnB1dCxcbiAgQXdGYWNldElucHV0Q2hlY2tib3gsXG4gIEF3RmFjZXRJbnB1dFRleHQsXG4gIEF3RmFjZXRJbnB1dExpbmssXG4gIEF3RmFjZXRJbnB1dFNlbGVjdCxcbn0gZnJvbSAnLi9hdy1mYWNldC1pbnB1dHMnO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJPcGVyYXRvcnMgPSAnPScgfCAnPicgfCAnPCcgfCAnPj0nIHwgJzw9JyB8ICc8PicgfCAnTElLRSc7XG5leHBvcnQgdHlwZSBGYWNldFR5cGVzID0gJ3ZhbHVlJyB8ICdyYW5nZSc7XG5leHBvcnQgdHlwZSBGYWNldE9wZXJhdG9ycyA9ICdPUicgfCAnQU5EJztcblxuY29uc3QgSU5QVVRTX01BUCA9IHtcbiAgY2hlY2tib3g6IEF3RmFjZXRJbnB1dENoZWNrYm94LFxuICB0ZXh0OiBBd0ZhY2V0SW5wdXRUZXh0LFxuICBsaW5rOiBBd0ZhY2V0SW5wdXRMaW5rLFxuICBzZWxlY3Q6IEF3RmFjZXRJbnB1dFNlbGVjdCxcbn07XG5cbmNvbnN0IEZJTFRFUlNfTUFQID0ge1xuICAnPSc6ICdfZmlsdGVyRGF0YUVxdWFscycsXG4gICc+JzogJ19maWx0ZXJEYXRhR3JlYXRlclRoYW4nLFxuICAnPCc6ICdfZmlsdGVyRGF0YUxlc3NUaGFuJyxcbiAgJz49JzogJ19maWx0ZXJEYXRhR3JlYXRlck9yRXF1YWxzJyxcbiAgJzw9JzogJ19maWx0ZXJEYXRhTGVzc09yRXF1YWxzJyxcbiAgJzw+JzogJ19maWx0ZXJEYXRhTm90RXF1YWwnLFxuICBMSUtFOiAnX2ZpbHRlckRhdGFMaWtlJyxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdTZWFyY2hDb25maWcge1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIGZhY2V0czogYW55O1xuICBwYWdlOiBhbnk7XG4gIHJlc3VsdHM6IGFueTtcbiAgZmllbGRzOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFjZXQge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBGYWNldFR5cGVzO1xuICBvcGVyYXRvcjogRmFjZXRPcGVyYXRvcnM7XG4gIGhhc1N0YXRpY0RhdGE/OiBib29sZWFuO1xuICBzZWFyY2hEYXRhPzogc3RyaW5nW107XG4gIGRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgZmFjZXRJZDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgKG51bWJlciB8IHN0cmluZylbXSB8IG51bGw7XG4gIHNlYXJjaEluOiBBcnJheTx7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgb3BlcmF0b3I/OiBGaWx0ZXJPcGVyYXRvcnM7XG4gIH0+O1xuICBpc0FycmF5PzogYm9vbGVhbjtcbiAgY29udGV4dD86ICdpbnRlcm5hbCcgfCAnZXh0ZXJuYWwnO1xuICB0YXJnZXQ/OiBzdHJpbmc7XG4gIHBhZ2luYXRpb24/OiB7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBd1NlYXJjaE1vZGVsIHtcbiAgc3RhdGljIHF1ZXJ5UGFyYW1zOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgX2lkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyczogRmlsdGVyW10gPSBbXTtcblxuICBwcml2YXRlIF9mYWNldHM6IEZhY2V0W10gPSBbXTtcblxuICBwcml2YXRlIF9pbnB1dHM6IEF3RmFjZXRJbnB1dFtdID0gW107XG5cbiAgcHJpdmF0ZSBfcGFnZTogYW55O1xuXG4gIHByaXZhdGUgX3RvdGFsQ291bnQ6IG51bWJlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBBd1NlYXJjaENvbmZpZztcblxuICBwcml2YXRlIF9yZXN1bHRzJDogU3ViamVjdDxhbnlbXT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIGNvbmZpZzogQXdTZWFyY2hDb25maWcpIHtcbiAgICB0aGlzLl9pZCA9IGlkO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcblxuICAgIHRoaXMuX3NldEZpbHRlcnMoKTtcbiAgICB0aGlzLl9zZXRGYWNldHMoKTtcbiAgICB0aGlzLl9zZXRQYWdlKCk7XG4gICAgdGhpcy5fc2V0SW5wdXRzKCk7XG4gICAgdGhpcy5fc2V0SW5wdXRzRGF0YSgpO1xuICAgIHRoaXMuX3NldFRvdGFsQ291bnQoKTtcblxuICAgIC8vIHF1ZXJ5IHBhcmFtcyBjb250cm9sXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4gICAgaWYgKEF3U2VhcmNoTW9kZWwucXVlcnlQYXJhbXMpIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyc0Zyb21RdWVyeVBhcmFtcyhBd1NlYXJjaE1vZGVsLnF1ZXJ5UGFyYW1zKTtcbiAgICAgIEF3U2VhcmNoTW9kZWwucXVlcnlQYXJhbXMgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJZCA9ICgpID0+IHRoaXMuX2lkO1xuXG4gIHB1YmxpYyBnZXRGaWx0ZXJzID0gKCkgPT4gdGhpcy5fZmlsdGVycztcblxuICBwdWJsaWMgZ2V0RmFjZXRzID0gKCkgPT4gdGhpcy5fZmFjZXRzO1xuXG4gIHB1YmxpYyBnZXRJbnB1dHMgPSAoKSA9PiB0aGlzLl9pbnB1dHM7XG5cbiAgcHVibGljIGdldENvbmZpZyA9ICgpID0+IHRoaXMuX2NvbmZpZztcblxuICBwdWJsaWMgZ2V0VG90YWxDb3VudCA9ICgpID0+IHRoaXMuX3RvdGFsQ291bnQ7XG5cbiAgcHVibGljIGdldEZpZWxkcyA9ICgpID0+IHRoaXMuX2NvbmZpZy5maWVsZHM7XG5cbiAgcHVibGljIGdldFJlc3VsdHMkID0gKCkgPT4gdGhpcy5fcmVzdWx0cyQ7XG5cbiAgcHVibGljIHNldFJlc3VsdHMgPSAocmVzdWx0cykgPT4gdGhpcy5fcmVzdWx0cyQubmV4dChyZXN1bHRzKTtcblxuICBwdWJsaWMgdXBkYXRlRmlsdGVyKGZhY2V0SWQsIHZhbHVlLCByZW1vdmU/OiBib29sZWFuKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzQnlGYWNldElkKGZhY2V0SWQpO1xuICAgIHNlbGVjdGVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlci52YWx1ZSkgJiYgcmVtb3ZlKSB7XG4gICAgICAgIGZpbHRlci52YWx1ZSA9IGZpbHRlci52YWx1ZS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKVxuICAgICAgICAmJiBmaWx0ZXIudmFsdWUuaW5kZXhPZih2YWx1ZSkgPT09IC0xXG4gICAgICApIHtcbiAgICAgICAgZmlsdGVyLnZhbHVlLnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVyLnZhbHVlID0gIXJlbW92ZSA/IGhlbHBlcnMuZXNjYXBlUXVvdGVzKHZhbHVlKSA6IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1zKHt9LCB0cnVlKTtcbiAgICB0aGlzLl9jbGVhcklucHV0cygpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpbHRlcnNGcm9tUXVlcnlQYXJhbXMocXVlcnlQYXJhbXMsIGNsZWFyQWxsID0gZmFsc2UpIHtcbiAgICB0aGlzLl9mYWNldHMuZm9yRWFjaCgoeyBpZCB9KSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnNCeUZhY2V0SWQoaWQpO1xuICAgICAgY29uc3QgdmFsdWUgPSBxdWVyeVBhcmFtc1tpZF07XG4gICAgICBjb25zdCBpc0ludGVybmFsID0gdGhpcy5nZXRJbnB1dEJ5RmFjZXRJZChpZCkuZ2V0Q29udGV4dCgpID09PSAnaW50ZXJuYWwnO1xuXG4gICAgICBpZiAoaXNJbnRlcm5hbCAmJiAhY2xlYXJBbGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZWxlY3RlZEZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXIuaXNBcnJheSkge1xuICAgICAgICAgIGZpbHRlci52YWx1ZSA9IHZhbHVlID8gdmFsdWUuc3BsaXQoJywnKSA6IFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbHRlci52YWx1ZSA9IHZhbHVlIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUlucHV0c0Zyb21GaWx0ZXJzKCkge1xuICAgIHRoaXMuX2ZpbHRlcnMuZm9yRWFjaCgoeyBmYWNldElkLCB2YWx1ZSB9KSA9PiB7XG4gICAgICB0aGlzLmdldElucHV0QnlGYWNldElkKGZhY2V0SWQpLnNldEFjdGl2ZSh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmFjZXRzKGZhY2V0cykge1xuICAgIGZhY2V0cy5mb3JFYWNoKCh7IGlkLCBkYXRhIH0pID0+IHRoaXMudXBkYXRlRmFjZXQoaWQsIGRhdGEpKTtcbiAgICB0aGlzLl9zZXRJbnB1dHNEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVG90YWxDb3VudCh0b3RhbENvdW50KSB7XG4gICAgdGhpcy5fdG90YWxDb3VudCA9IHRvdGFsQ291bnQ7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmFjZXQoZmFjZXRJZCwgZGF0YSkge1xuICAgIGNvbnN0IHNlbGVjdGVkRmFjZXRzID0gdGhpcy5fZmFjZXRzLmZpbHRlcigoZmFjZXQpID0+IGZhY2V0LmlkID09PSBmYWNldElkKTtcbiAgICBpZiAoIXNlbGVjdGVkRmFjZXRzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEZhY2V0IHdpdGggaWQgJyR7ZmFjZXRJZH0nIGRvZXMgbm90IGV4aXN0c2ApO1xuICAgIH1cblxuICAgIHNlbGVjdGVkRmFjZXRzLmZvckVhY2goKGZhY2V0KSA9PiB7IGZhY2V0LmRhdGEgPSBkYXRhOyB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLl9maWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4geyBmaWx0ZXIudmFsdWUgPSBudWxsOyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXF1ZXN0UGFyYW1zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWNldHM6IHRoaXMuX2dldFJlcXVlc3RGYWNldHMoKSxcbiAgICAgIHBhZ2U6IHRoaXMuX3BhZ2UsXG4gICAgICByZXN1bHRzOiB0aGlzLl9jb25maWcucmVzdWx0cyxcbiAgICAgIGZpbHRlcnM6IHRoaXMuX2ZpbHRlcnNcbiAgICAgICAgLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuY29udGV4dCAhPT0gJ2ludGVybmFsJylcbiAgICAgICAgLm1hcCgoe1xuICAgICAgICAgIGZhY2V0SWQsIHZhbHVlLCBzZWFyY2hJbiwgcGFnaW5hdGlvblxuICAgICAgICB9KSA9PiAocGFnaW5hdGlvbiA/IHtcbiAgICAgICAgICBmYWNldElkLCB2YWx1ZSwgc2VhcmNoSW4sIHBhZ2luYXRpb25cbiAgICAgICAgfSA6IHtcbiAgICAgICAgICBmYWNldElkLCB2YWx1ZSwgc2VhcmNoSW5cbiAgICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0SW50ZXJuYWxGaWx0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzXG4gICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IChcbiAgICAgICAgZmlsdGVyLmNvbnRleHQgPT09ICdpbnRlcm5hbCdcbiAgICAgICAgJiYgIV9pc0VtcHR5KGZpbHRlci52YWx1ZSlcbiAgICAgICkpXG4gICAgICAubWFwKCh7XG4gICAgICAgIGZhY2V0SWQsIHZhbHVlLCBzZWFyY2hJblxuICAgICAgfSkgPT4gKHtcbiAgICAgICAgZmFjZXRJZCwgdmFsdWUsIHNlYXJjaEluXG4gICAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyc0FzUXVlcnlQYXJhbXMoZmlsdGVycykge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBhbnkgPSB7fTtcbiAgICBmaWx0ZXJzLmZvckVhY2goXG4gICAgICAoZmlsdGVyKSA9PiB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zW2ZpbHRlci5mYWNldElkXSA9IEFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKVxuICAgICAgICAgID8gZmlsdGVyLnZhbHVlLmpvaW4oJywnKVxuICAgICAgICAgIDogZmlsdGVyLnZhbHVlO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldEZpbHRlcnNCeUZhY2V0SWQoZmFjZXRJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5mYWNldElkID09PSBmYWNldElkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbnB1dEJ5RmFjZXRJZChmYWNldElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRzLmZpbHRlcigoaW5wdXQpID0+IGlucHV0LmdldEZhY2V0SWQoKSA9PT0gZmFjZXRJZClbMF07XG4gIH1cblxuICBwdWJsaWMgc2V0SW5wdXREYXRhKGZhY2V0SWQsIGRhdGEpIHtcbiAgICB0aGlzLmdldElucHV0QnlGYWNldElkKGZhY2V0SWQpLnNldERhdGEoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyVGFyZ2V0KHRhcmdldCkge1xuICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuX2lucHV0cy5maWx0ZXIoKGlucHV0KSA9PiBpbnB1dC5nZXRUYXJnZXQoKSA9PT0gdGFyZ2V0KTtcbiAgICBjb25zdCB0YXJnZXRJbnB1dCA9IHRoaXMuZ2V0SW5wdXRCeUZhY2V0SWQodGFyZ2V0KTtcbiAgICBjb25zdCBmYWNldCA9IHRoaXMuX2ZhY2V0cy5maWx0ZXIoKGYpID0+IGYuaWQgPT09IHRhcmdldClbMF07XG4gICAgY29uc3QgZmFjZXREYXRhID0gZmFjZXQuZGF0YTtcblxuICAgIGNvbnN0IHNlYXJjaElucyA9IFtdO1xuICAgIGlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXJzQnlGYWNldElkKGlucHV0LmdldEZhY2V0SWQoKSlbMF07XG4gICAgICBjb25zdCBzZWFyY2hJbiA9IGlucHV0LmdldFNlYXJjaEluKCk7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSBmaWx0ZXI7XG5cbiAgICAgIHNlYXJjaElucy5wdXNoKFtzZWFyY2hJbiwgdmFsdWVdKTtcbiAgICB9KTtcblxuICAgIC8vIGZpbHRlclxuICAgIGZhY2V0RGF0YS5mb3JFYWNoKChpdGVtKSA9PiB0aGlzLl9maWx0ZXJEYXRhKHNlYXJjaElucywgaXRlbSkpO1xuXG4gICAgLy8gdXBkYXRlXG4gICAgdGFyZ2V0SW5wdXQuc2V0RGF0YShmYWNldERhdGEpO1xuXG4gICAgaWYgKHRhcmdldElucHV0LmdldENvbmZpZygpLmVtcHR5U3RhdGUpIHtcbiAgICAgIGNvbnN0IGlzRW1wdHkgPSAhZmFjZXREYXRhLmZpbHRlcigoZGF0YSkgPT4gIWRhdGEuaGlkZGVuKS5sZW5ndGg7XG4gICAgICB0YXJnZXRJbnB1dC5zZXRJc0VtcHR5KGlzRW1wdHkpO1xuICAgIH1cbiAgICB0YXJnZXRJbnB1dC51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWFyY2hDb25maWdPcmRlckJ5KG9yZGVyQnkpIHtcbiAgICB0aGlzLl9jb25maWcucmVzdWx0cy5vcmRlci5rZXkgPSBvcmRlckJ5O1xuICB9XG5cbiAgcHVibGljIHNldFNlYXJjaENvbmZpZ0RpcmVjdGlvbihkaXJlY3Rpb24pIHtcbiAgICB0aGlzLl9jb25maWcucmVzdWx0cy5vcmRlci5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gIH1cblxuICBwdWJsaWMgc2V0U2VhcmNoQ29uZmlnVHlwZSh0eXBlKSB7XG4gICAgdGhpcy5fY29uZmlnLnJlc3VsdHMub3JkZXIudHlwZSA9IHR5cGU7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZUNvbmZpZ09mZnNldChvZmZzZXQpIHtcbiAgICB0aGlzLl9jb25maWcucGFnZS5vZmZzZXQgPSBvZmZzZXQ7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZUNvbmZpZ0xpbWl0KGxpbWl0KSB7XG4gICAgdGhpcy5fY29uZmlnLnBhZ2UubGltaXQgPSBsaW1pdDtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW5wdXRzKCkge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckRhdGEoc2VhcmNoSW5zLCBpdGVtKSB7XG4gICAgLy8gcmVzZXRcbiAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgIHNlYXJjaElucy5mb3JFYWNoKChbc2VhcmNoSW4sIHZhbHVlXSkgPT4ge1xuICAgICAgc2VhcmNoSW4uZm9yRWFjaCgoeyBrZXksIG9wZXJhdG9yIH0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uaGlkZGVuKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZWZWYWx1ZSA9IF9nZXQoaXRlbSwga2V5LCBudWxsKTtcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKCdzZWFyY2hEYXRhJykgIT09IC0xICYmIEFycmF5LmlzQXJyYXkoaXRlbS5zZWFyY2hEYXRhKSkge1xuICAgICAgICAgIGNvbnN0IHNlYXJjaERhdGFLZXkgPSBrZXkucmVwbGFjZSgnc2VhcmNoRGF0YS4nLCAnJyk7XG4gICAgICAgICAgaXRlbS5zZWFyY2hEYXRhLmZvckVhY2goKHsga2V5OiBkYXRhS2V5LCB2YWx1ZTogZGF0YVZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhS2V5ID09PSBzZWFyY2hEYXRhS2V5KSB7XG4gICAgICAgICAgICAgIHJlZlZhbHVlID0gZGF0YVZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGl0ZW0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChGSUxURVJTX01BUFtvcGVyYXRvcl0pIHtcbiAgICAgICAgICBpdGVtLmhpZGRlbiA9IHRoaXNbRklMVEVSU19NQVBbb3BlcmF0b3JdXSh2YWx1ZSwgcmVmVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgU2VhcmNoSW46IG9wZXJhdG9yICR7b3BlcmF0b3J9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJEYXRhRXF1YWxzKHZhbHVlLCByZWZWYWx1ZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlZlZhbHVlKSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIGxldCBpbkFycmF5ID0gdmFsdWUubGVuZ3RoID09PSAwO1xuICAgICAgICByZWZWYWx1ZS5mb3JFYWNoKChydikgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKHJ2KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGluQXJyYXkgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhKGluQXJyYXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICEodmFsdWUgJiYgcmVmVmFsdWUuaW5kZXhPZih2YWx1ZSkgIT09IC0xKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gIShcbiAgICAgICAgIXZhbHVlLmxlbmd0aCB8fCB2YWx1ZS5pbmRleE9mKHJlZlZhbHVlKSAhPT0gLTFcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAhKHZhbHVlICYmIHZhbHVlID09PSByZWZWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJEYXRhR3JlYXRlclRoYW4odmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuICEodmFsdWUgJiYgdmFsdWUgPiByZWZWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckRhdGFMZXNzVGhhbih2YWx1ZSwgcmVmVmFsdWUpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gISh2YWx1ZSAmJiB2YWx1ZSA8IHJlZlZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRGF0YUdyZWF0ZXJPckVxdWFscyh2YWx1ZSwgcmVmVmFsdWUpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gISh2YWx1ZSAmJiB2YWx1ZSA+PSByZWZWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckRhdGFMZXNzT3JFcXVhbHModmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuICEodmFsdWUgJiYgdmFsdWUgPD0gcmVmVmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJEYXRhTm90RXF1YWwodmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuICEodmFsdWUgJiYgdmFsdWUgIT09IHJlZlZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRGF0YUxpa2UodmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWVcbiAgICAgICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIHR5cGVvZiByZWZWYWx1ZSA9PT0gJ3N0cmluZydcbiAgICApIHtcbiAgICAgIGNvbnN0IGhheXN0YWNrID0gcmVmVmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG5lZWRsZSA9IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgICAgIHJldHVybiAhKGhheXN0YWNrLmluZGV4T2YobmVlZGxlKSAhPT0gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuX2NvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGZpZWxkLmlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4gdGhpcy5fZmlsdGVycy5wdXNoKHtcbiAgICAgICAgLi4uaW5wdXQuZmlsdGVyQ29uZmlnLFxuICAgICAgICBmYWNldElkOiBpbnB1dC5mYWNldElkLFxuICAgICAgICB2YWx1ZTogaW5wdXQuZmlsdGVyQ29uZmlnLmlzQXJyYXkgPyBbXSA6IG51bGwsXG4gICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGYWNldHMoKSB7XG4gICAgdGhpcy5fZmFjZXRzID0gdGhpcy5fY29uZmlnLmZhY2V0cztcbiAgfVxuXG4gIHByaXZhdGUgX3NldFBhZ2UoKSB7XG4gICAgdGhpcy5fcGFnZSA9IHRoaXMuX2NvbmZpZy5wYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VG90YWxDb3VudCgpIHtcbiAgICB0aGlzLl90b3RhbENvdW50ID0gdGhpcy5fY29uZmlnLnRvdGFsQ291bnQ7XG4gIH1cblxuICBwcml2YXRlIF9zZXRJbnB1dHMoKSB7XG4gICAgdGhpcy5fY29uZmlnLmZpZWxkcy5mb3JFYWNoKChzZWN0aW9uQ29uZmlnLCBzZWN0aW9uSW5kZXgpID0+IHtcbiAgICAgIHNlY3Rpb25Db25maWcuaW5wdXRzLmZvckVhY2goKGlucHV0Q29uZmlnLCBpbnB1dEluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IElucHV0TW9kZWwgPSBJTlBVVFNfTUFQW2lucHV0Q29uZmlnLnR5cGVdO1xuICAgICAgICBpZiAoIUlucHV0TW9kZWwpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgSW5wdXQgdHlwZSAke2lucHV0Q29uZmlnLnR5cGV9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lucHV0cy5wdXNoKFxuICAgICAgICAgIG5ldyBJbnB1dE1vZGVsKHsgLi4uaW5wdXRDb25maWcsIGlucHV0SW5kZXgsIHNlY3Rpb25JbmRleCB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0SW5wdXRzRGF0YSgpIHtcbiAgICB0aGlzLl9mYWNldHMuZm9yRWFjaCgoZmFjZXQpID0+IHRoaXMuc2V0SW5wdXREYXRhKGZhY2V0LmlkLCBmYWNldC5kYXRhKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZXF1ZXN0RmFjZXRzKCkge1xuICAgIGNvbnN0IHJlc3VsdHM6IEZhY2V0W10gPSBbXTtcbiAgICB0aGlzLl9mYWNldHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZmFjZXRDb25maWcgPSB7IC4uLmYgfTtcbiAgICAgIGlmICghZi5oYXNTdGF0aWNEYXRhKSB7XG4gICAgICAgIGRlbGV0ZSBmYWNldENvbmZpZy5kYXRhO1xuICAgICAgfVxuICAgICAgZGVsZXRlIGZhY2V0Q29uZmlnLmhhc1N0YXRpY0RhdGE7XG5cbiAgICAgIC8vIHNlYXJjaERhdGEgY29udHJvbFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmFjZXRDb25maWcuZGF0YSkpIHtcbiAgICAgICAgZmFjZXRDb25maWcuZGF0YVxuICAgICAgICAgIC5maWx0ZXIoKGRhdGFJdGVtKSA9PiB0eXBlb2YgZGF0YUl0ZW0uc2VhcmNoRGF0YSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgLmZvckVhY2goKGRhdGFJdGVtKSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgZGF0YUl0ZW0uc2VhcmNoRGF0YTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdHMucHVzaChmYWNldENvbmZpZyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cbn1cbiJdfQ==
|