geonetwork-ui 2.6.0-dev.502fa026d → 2.6.0-dev.b306f1194
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/index.mjs +2 -1
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +27 -6
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +22 -6
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +163 -0
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +29 -7
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +3 -2
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +21 -19
- package/esm2022/translations/de.json +7 -0
- package/esm2022/translations/en.json +8 -1
- package/esm2022/translations/es.json +7 -0
- package/esm2022/translations/fr.json +7 -0
- package/esm2022/translations/it.json +7 -1
- package/esm2022/translations/nl.json +7 -0
- package/esm2022/translations/pt.json +7 -0
- package/fesm2022/geonetwork-ui.mjs +315 -55
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +1 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +9 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +8 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +43 -0
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +10 -2
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +16 -16
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +1 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +1 -1
- package/src/libs/ui/elements/src/index.ts +1 -0
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +64 -38
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +26 -2
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +17 -17
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +20 -2
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +7 -6
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.css +0 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +156 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +190 -0
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +27 -29
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +33 -3
- package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +1 -1
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +4 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -1
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -4
- package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +2 -2
- package/src/libs/util/shared/src/lib/links/link-utils.ts +20 -18
- package/tailwind.base.css +34 -1
- package/translations/de.json +7 -0
- package/translations/en.json +8 -1
- package/translations/es.json +7 -0
- package/translations/fr.json +7 -0
- package/translations/it.json +7 -1
- package/translations/nl.json +7 -0
- package/translations/pt.json +7 -0
- package/translations/sk.json +7 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { Component, Input, TemplateRef, Output, EventEmitter, ElementRef, } from '@angular/core';
|
|
2
|
+
import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
3
|
+
import { MarkdownParserComponent } from '../markdown-parser/markdown-parser.component';
|
|
4
|
+
import { MetadataQualityComponent } from '../metadata-quality/metadata-quality.component';
|
|
5
|
+
import { ThumbnailComponent } from '../thumbnail/thumbnail.component';
|
|
6
|
+
import { propagateToDocumentOnly, removeWhitespace, stripHtml, } from '../../../../../../libs/util/shared/src';
|
|
7
|
+
import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
|
|
8
|
+
import { matLocationSearchingOutline, matEmailOutline, matPhoneOutline, matLocationOnOutline, } from '@ng-icons/material-icons/outline';
|
|
9
|
+
import { matCode } from '@ng-icons/material-icons/baseline';
|
|
10
|
+
import { iconoirDatabase, iconoirMap, iconoirInternet } from '@ng-icons/iconoir';
|
|
11
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
12
|
+
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
13
|
+
import { fromEvent, Subscription } from 'rxjs';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@ngx-translate/core";
|
|
16
|
+
marker('record.kind.dataset');
|
|
17
|
+
marker('record.kind.reuse');
|
|
18
|
+
marker('record.kind.service');
|
|
19
|
+
export class InternalLinkCardComponent {
|
|
20
|
+
set size(value) {
|
|
21
|
+
this._size = value;
|
|
22
|
+
this.cardClass = this.sizeClassMap[value] || '';
|
|
23
|
+
this.thumbnailContainerClass = this.thumbnailSizeClassMap[value] || 'hidden';
|
|
24
|
+
}
|
|
25
|
+
get size() {
|
|
26
|
+
return this._size;
|
|
27
|
+
}
|
|
28
|
+
constructor(elementRef) {
|
|
29
|
+
this.elementRef = elementRef;
|
|
30
|
+
this.linkHref = null;
|
|
31
|
+
this.mdSelect = new EventEmitter();
|
|
32
|
+
this.subscription = new Subscription();
|
|
33
|
+
this.cardClass = '';
|
|
34
|
+
this.thumbnailContainerClass = '';
|
|
35
|
+
this._size = 'M';
|
|
36
|
+
this.sizeClassMap = {
|
|
37
|
+
L: 'min-h-[190px] md:w-[992px] py-3 px-3 flex items-start gap-5',
|
|
38
|
+
M: 'min-h-[140px] md:w-[570px] py-3 px-3 flex items-start gap-4',
|
|
39
|
+
S: 'min-h-[220px] md:w-[370px] py-3 px-3 flex gap-4',
|
|
40
|
+
XS: 'min-h-[108px] md:w-[570px] py-3 px-3 flex gap-4',
|
|
41
|
+
};
|
|
42
|
+
this.thumbnailSizeClassMap = {
|
|
43
|
+
L: 'w-[190px] h-[180px] rounded-lg overflow-hidden shrink-0',
|
|
44
|
+
M: 'w-[110px] h-[140px] rounded-lg overflow-hidden shrink-0',
|
|
45
|
+
S: 'hidden',
|
|
46
|
+
XS: 'hidden',
|
|
47
|
+
};
|
|
48
|
+
this.titleClassMap = {
|
|
49
|
+
L: 'text-xl line-clamp-2',
|
|
50
|
+
M: 'text-base line-clamp-2',
|
|
51
|
+
S: 'text-base line-clamp-3',
|
|
52
|
+
XS: 'text-base mt-3 line-clamp-2',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
ngOnInit() {
|
|
56
|
+
this.abstract = removeWhitespace(stripHtml(this.record?.abstract));
|
|
57
|
+
this.subscription.add(fromEvent(this.elementRef.nativeElement, 'click').subscribe((event) => {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
propagateToDocumentOnly(event);
|
|
60
|
+
this.mdSelect.emit(this.record);
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
get organization() {
|
|
64
|
+
return this.record.ownerOrganization;
|
|
65
|
+
}
|
|
66
|
+
get contacts() {
|
|
67
|
+
return ((this.record.kind === 'dataset'
|
|
68
|
+
? this.record.contactsForResource
|
|
69
|
+
: this.record.contacts) || []);
|
|
70
|
+
}
|
|
71
|
+
getTitleClass() {
|
|
72
|
+
return (this.titleClassMap[this._size] +
|
|
73
|
+
' ' +
|
|
74
|
+
(this.record.ownerOrganization?.name ? '' : 'mt-3') || '');
|
|
75
|
+
}
|
|
76
|
+
openExternalUrl(event, url) {
|
|
77
|
+
event.stopPropagation();
|
|
78
|
+
window.open(url, '_blank');
|
|
79
|
+
}
|
|
80
|
+
openMailto(event, email) {
|
|
81
|
+
event.stopPropagation();
|
|
82
|
+
window.open(`mailto:${email}`, '_blank');
|
|
83
|
+
}
|
|
84
|
+
copyToClipboard(event, text) {
|
|
85
|
+
event.stopPropagation();
|
|
86
|
+
navigator.clipboard.writeText(text);
|
|
87
|
+
}
|
|
88
|
+
get shouldShowThumbnail() {
|
|
89
|
+
return this.size === 'L' || this.size === 'M';
|
|
90
|
+
}
|
|
91
|
+
getKindInfo() {
|
|
92
|
+
if (!this.record?.kind)
|
|
93
|
+
return { text: '', icon: '' };
|
|
94
|
+
switch (this.record.kind.toLowerCase()) {
|
|
95
|
+
case 'dataset':
|
|
96
|
+
return { text: 'record.kind.dataset', icon: 'iconoirDatabase' };
|
|
97
|
+
case 'reuse':
|
|
98
|
+
return { text: 'record.kind.reuse', icon: 'iconoirMap' };
|
|
99
|
+
case 'service':
|
|
100
|
+
return { text: 'record.kind.service', icon: 'matCode' };
|
|
101
|
+
default:
|
|
102
|
+
return { text: '', icon: '' };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InternalLinkCardComponent, isStandalone: true, selector: "gn-ui-internal-link-card", inputs: { record: "record", metadataQualityDisplay: "metadataQualityDisplay", favoriteTemplate: "favoriteTemplate", linkHref: "linkHref", isGeodata: "isGeodata", size: "size" }, outputs: { mdSelect: "mdSelect" }, providers: [
|
|
107
|
+
provideIcons({
|
|
108
|
+
matLocationSearchingOutline,
|
|
109
|
+
matCode,
|
|
110
|
+
iconoirDatabase,
|
|
111
|
+
iconoirMap,
|
|
112
|
+
iconoirInternet,
|
|
113
|
+
matEmailOutline,
|
|
114
|
+
matPhoneOutline,
|
|
115
|
+
matLocationOnOutline,
|
|
116
|
+
}),
|
|
117
|
+
provideNgIconsConfig({
|
|
118
|
+
size: '1.2em',
|
|
119
|
+
}),
|
|
120
|
+
], ngImport: i0, template: "<div\n class=\"rounded-lg group card-shadow cursor-pointer overflow-hidden hover:bg-gray-50\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-row justify-between w-full\">\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div\n class=\"flex flex-col flex-1 relative\"\n [ngClass]=\"{\n 'justify-between': record.ownerOrganization?.name && size !== 'XS',\n }\"\n >\n <div class=\"flex items-center space-x-2\">\n <span\n *ngIf=\"getKindInfo().text\"\n class=\"badge-btn text-white text-xs px-2 py-0.5 font-bold shrink-0 bg-primary leading-tight flex items-center justify-evenly h-6 min-h-6\"\n >\n <ng-icon\n class=\"text-[0.9em] text-white mr-1\"\n [name]=\"getKindInfo().icon\"\n ></ng-icon>\n <span class=\"font-medium text-white text-xs\" translate>\n {{ getKindInfo().text }}\n </span>\n </span>\n <span\n *ngIf=\"isGeodata\"\n class=\"badge-btn text-black text-xs px-2 py-0.5 font-bold shrink-0 bg-primary-white leading-tight flex items-center justify-evenly h-6 min-h-6\"\n [ngClass]=\"size === 'L' ? 'w-[164px]' : 'w-8'\"\n >\n <ng-icon\n class=\"text-[0.9em] text-primary-darkest\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <ng-container *ngIf=\"size === 'L'\">\n <span\n class=\"font-medium text-primary-darkest text-xs ml-1\"\n translate\n >\n record.metadata.type\n </span>\n </ng-container>\n </span>\n <div class=\"flex items-center\">\n <gn-ui-metadata-quality\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div class=\"absolute top-0 right-0 items-center\">\n <ng-container\n *ngIf=\"size !== 'XS'\"\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n <div\n class=\"font-medium text-title group-hover:text-primary overflow-hidden break-words\"\n [ngClass]=\"getTitleClass()\"\n >\n {{ record.title }}\n </div>\n <div\n *ngIf=\"size === 'L'\"\n class=\"mt-1 mb-2 font-normal text-xs text-gray-900 line-clamp-2 overflow-hidden\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n >\n <div class=\"flex items-center flex-1 min-w-0\">\n <div\n class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\"\n >\n <gn-ui-thumbnail\n [thumbnailUrl]=\"\n record.ownerOrganization?.logoUrl?.toString() || ''\n \"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div class=\"text-xl text-primary-black font-medium truncate\">\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }] }); }
|
|
121
|
+
}
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
|
|
123
|
+
type: Component,
|
|
124
|
+
args: [{ selector: 'gn-ui-internal-link-card', standalone: true, imports: [
|
|
125
|
+
NgClass,
|
|
126
|
+
NgIf,
|
|
127
|
+
ThumbnailComponent,
|
|
128
|
+
MetadataQualityComponent,
|
|
129
|
+
NgTemplateOutlet,
|
|
130
|
+
NgIconComponent,
|
|
131
|
+
TranslateModule,
|
|
132
|
+
MarkdownParserComponent,
|
|
133
|
+
], providers: [
|
|
134
|
+
provideIcons({
|
|
135
|
+
matLocationSearchingOutline,
|
|
136
|
+
matCode,
|
|
137
|
+
iconoirDatabase,
|
|
138
|
+
iconoirMap,
|
|
139
|
+
iconoirInternet,
|
|
140
|
+
matEmailOutline,
|
|
141
|
+
matPhoneOutline,
|
|
142
|
+
matLocationOnOutline,
|
|
143
|
+
}),
|
|
144
|
+
provideNgIconsConfig({
|
|
145
|
+
size: '1.2em',
|
|
146
|
+
}),
|
|
147
|
+
], template: "<div\n class=\"rounded-lg group card-shadow cursor-pointer overflow-hidden hover:bg-gray-50\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-row justify-between w-full\">\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div\n class=\"flex flex-col flex-1 relative\"\n [ngClass]=\"{\n 'justify-between': record.ownerOrganization?.name && size !== 'XS',\n }\"\n >\n <div class=\"flex items-center space-x-2\">\n <span\n *ngIf=\"getKindInfo().text\"\n class=\"badge-btn text-white text-xs px-2 py-0.5 font-bold shrink-0 bg-primary leading-tight flex items-center justify-evenly h-6 min-h-6\"\n >\n <ng-icon\n class=\"text-[0.9em] text-white mr-1\"\n [name]=\"getKindInfo().icon\"\n ></ng-icon>\n <span class=\"font-medium text-white text-xs\" translate>\n {{ getKindInfo().text }}\n </span>\n </span>\n <span\n *ngIf=\"isGeodata\"\n class=\"badge-btn text-black text-xs px-2 py-0.5 font-bold shrink-0 bg-primary-white leading-tight flex items-center justify-evenly h-6 min-h-6\"\n [ngClass]=\"size === 'L' ? 'w-[164px]' : 'w-8'\"\n >\n <ng-icon\n class=\"text-[0.9em] text-primary-darkest\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <ng-container *ngIf=\"size === 'L'\">\n <span\n class=\"font-medium text-primary-darkest text-xs ml-1\"\n translate\n >\n record.metadata.type\n </span>\n </ng-container>\n </span>\n <div class=\"flex items-center\">\n <gn-ui-metadata-quality\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div class=\"absolute top-0 right-0 items-center\">\n <ng-container\n *ngIf=\"size !== 'XS'\"\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n <div\n class=\"font-medium text-title group-hover:text-primary overflow-hidden break-words\"\n [ngClass]=\"getTitleClass()\"\n >\n {{ record.title }}\n </div>\n <div\n *ngIf=\"size === 'L'\"\n class=\"mt-1 mb-2 font-normal text-xs text-gray-900 line-clamp-2 overflow-hidden\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n >\n <div class=\"flex items-center flex-1 min-w-0\">\n <div\n class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\"\n >\n <gn-ui-thumbnail\n [thumbnailUrl]=\"\n record.ownerOrganization?.logoUrl?.toString() || ''\n \"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div class=\"text-xl text-primary-black font-medium truncate\">\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
148
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { record: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], metadataQualityDisplay: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], favoriteTemplate: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], linkHref: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], isGeodata: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], size: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], mdSelect: [{
|
|
161
|
+
type: Output
|
|
162
|
+
}] } });
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbnRlcm5hbC1saW5rLWNhcmQvaW50ZXJuYWwtbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQTtBQUt0QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3JFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLFNBQVMsR0FDVixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsZUFBZSxFQUNmLGVBQWUsRUFDZixvQkFBb0IsR0FDckIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTs7O0FBRTlDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0FBQzdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQzNCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0FBbUM3QixNQUFNLE9BQU8seUJBQXlCO0lBTXBDLElBQWEsSUFBSSxDQUFDLEtBQWU7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMvQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQTtJQUM5RSxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFnQ0QsWUFBc0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXpDbkMsYUFBUSxHQUFXLElBQUksQ0FBQTtRQVV0QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUE7UUFDdEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBSWpDLGNBQVMsR0FBRyxFQUFFLENBQUE7UUFDZCw0QkFBdUIsR0FBRyxFQUFFLENBQUE7UUFFcEIsVUFBSyxHQUFhLEdBQUcsQ0FBQTtRQUVaLGlCQUFZLEdBQTZCO1lBQ3hELENBQUMsRUFBRSw2REFBNkQ7WUFDaEUsQ0FBQyxFQUFFLDZEQUE2RDtZQUNoRSxDQUFDLEVBQUUsaURBQWlEO1lBQ3BELEVBQUUsRUFBRSxpREFBaUQ7U0FDdEQsQ0FBQTtRQUVnQiwwQkFBcUIsR0FBNkI7WUFDakUsQ0FBQyxFQUFFLHlEQUF5RDtZQUM1RCxDQUFDLEVBQUUseURBQXlEO1lBQzVELENBQUMsRUFBRSxRQUFRO1lBQ1gsRUFBRSxFQUFFLFFBQVE7U0FDYixDQUFBO1FBRWdCLGtCQUFhLEdBQTZCO1lBQ3pELENBQUMsRUFBRSxzQkFBc0I7WUFDekIsQ0FBQyxFQUFFLHdCQUF3QjtZQUMzQixDQUFDLEVBQUUsd0JBQXdCO1lBQzNCLEVBQUUsRUFBRSw2QkFBNkI7U0FDbEMsQ0FBQTtJQUU4QyxDQUFDO0lBRWhELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ3pELENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDZixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUE7WUFDdEIsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2pDLENBQUMsQ0FDRixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFBO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQjtZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ2hDLENBQUE7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDNUIsR0FBRztZQUNILENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUM1RCxDQUFBO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZLEVBQUUsR0FBUTtRQUNwQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZLEVBQUUsS0FBYTtRQUNwQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWSxFQUFFLElBQVk7UUFDeEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFBO0lBQy9DLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtZQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQTtRQUVyRCxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7WUFDakUsS0FBSyxPQUFPO2dCQUNWLE9BQU8sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFBO1lBQzFELEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQTtZQUN6RDtnQkFDRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUE7UUFDakMsQ0FBQztJQUNILENBQUM7K0dBaEhVLHlCQUF5QjttR0FBekIseUJBQXlCLDRSQWxCekI7WUFDVCxZQUFZLENBQUM7Z0JBQ1gsMkJBQTJCO2dCQUMzQixPQUFPO2dCQUNQLGVBQWU7Z0JBQ2YsVUFBVTtnQkFDVixlQUFlO2dCQUNmLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZixvQkFBb0I7YUFDckIsQ0FBQztZQUNGLG9CQUFvQixDQUFDO2dCQUNuQixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7U0FDSCwwQkN4RUgsNm5NQTRKQSwwREQzR0ksT0FBTyxvRkFDUCxJQUFJLDZGQUNKLGtCQUFrQiw0SEFDbEIsd0JBQXdCLDhIQUN4QixnQkFBZ0Isb0pBQ2hCLGVBQWUsNEdBQ2YsZUFBZSxzS0FDZix1QkFBdUI7OzRGQW9CZCx5QkFBeUI7a0JBL0JyQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZix1QkFBdUI7cUJBQ3hCLGFBQ1U7d0JBQ1QsWUFBWSxDQUFDOzRCQUNYLDJCQUEyQjs0QkFDM0IsT0FBTzs0QkFDUCxlQUFlOzRCQUNmLFVBQVU7NEJBQ1YsZUFBZTs0QkFDZixlQUFlOzRCQUNmLGVBQWU7NEJBQ2Ysb0JBQW9CO3lCQUNyQixDQUFDO3dCQUNGLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIOytFQUtRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDTyxJQUFJO3NCQUFoQixLQUFLO2dCQVFJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIE9yZ2FuaXphdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFya2Rvd24tcGFyc2VyL21hcmtkb3duLXBhcnNlci5jb21wb25lbnQnXG5pbXBvcnQgeyBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50J1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQge1xuICBwcm9wYWdhdGVUb0RvY3VtZW50T25seSxcbiAgcmVtb3ZlV2hpdGVzcGFjZSxcbiAgc3RyaXBIdG1sLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQge1xuICBtYXRMb2NhdGlvblNlYXJjaGluZ091dGxpbmUsXG4gIG1hdEVtYWlsT3V0bGluZSxcbiAgbWF0UGhvbmVPdXRsaW5lLFxuICBtYXRMb2NhdGlvbk9uT3V0bGluZSxcbn0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL291dGxpbmUnXG5pbXBvcnQgeyBtYXRDb2RlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuaW1wb3J0IHsgaWNvbm9pckRhdGFiYXNlLCBpY29ub2lyTWFwLCBpY29ub2lySW50ZXJuZXQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5cbm1hcmtlcigncmVjb3JkLmtpbmQuZGF0YXNldCcpXG5tYXJrZXIoJ3JlY29yZC5raW5kLnJldXNlJylcbm1hcmtlcigncmVjb3JkLmtpbmQuc2VydmljZScpXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWludGVybmFsLWxpbmstY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nSWYsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWFya2Rvd25QYXJzZXJDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBtYXRMb2NhdGlvblNlYXJjaGluZ091dGxpbmUsXG4gICAgICBtYXRDb2RlLFxuICAgICAgaWNvbm9pckRhdGFiYXNlLFxuICAgICAgaWNvbm9pck1hcCxcbiAgICAgIGljb25vaXJJbnRlcm5ldCxcbiAgICAgIG1hdEVtYWlsT3V0bGluZSxcbiAgICAgIG1hdFBob25lT3V0bGluZSxcbiAgICAgIG1hdExvY2F0aW9uT25PdXRsaW5lLFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjJlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcm5hbC1saW5rLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlcm5hbC1saW5rLWNhcmQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbExpbmtDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcmVjb3JkOiBDYXRhbG9nUmVjb3JkXG4gIEBJbnB1dCgpIG1ldGFkYXRhUXVhbGl0eURpc3BsYXk6IGJvb2xlYW5cbiAgQElucHV0KCkgZmF2b3JpdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IENhdGFsb2dSZWNvcmQgfT5cbiAgQElucHV0KCkgbGlua0hyZWY6IHN0cmluZyA9IG51bGxcbiAgQElucHV0KCkgaXNHZW9kYXRhOiBib29sZWFuXG4gIEBJbnB1dCgpIHNldCBzaXplKHZhbHVlOiBDYXJkU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZVxuICAgIHRoaXMuY2FyZENsYXNzID0gdGhpcy5zaXplQ2xhc3NNYXBbdmFsdWVdIHx8ICcnXG4gICAgdGhpcy50aHVtYm5haWxDb250YWluZXJDbGFzcyA9IHRoaXMudGh1bWJuYWlsU2l6ZUNsYXNzTWFwW3ZhbHVlXSB8fCAnaGlkZGVuJ1xuICB9XG4gIGdldCBzaXplKCk6IENhcmRTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZVxuICB9XG4gIEBPdXRwdXQoKSBtZFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKClcblxuICBhYnN0cmFjdDogc3RyaW5nXG5cbiAgY2FyZENsYXNzID0gJydcbiAgdGh1bWJuYWlsQ29udGFpbmVyQ2xhc3MgPSAnJ1xuXG4gIHByaXZhdGUgX3NpemU6IENhcmRTaXplID0gJ00nXG5cbiAgcHJpdmF0ZSByZWFkb25seSBzaXplQ2xhc3NNYXA6IFJlY29yZDxDYXJkU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICBMOiAnbWluLWgtWzE5MHB4XSBtZDp3LVs5OTJweF0gcHktMyBweC0zIGZsZXggaXRlbXMtc3RhcnQgZ2FwLTUnLFxuICAgIE06ICdtaW4taC1bMTQwcHhdIG1kOnctWzU3MHB4XSBweS0zIHB4LTMgZmxleCBpdGVtcy1zdGFydCBnYXAtNCcsXG4gICAgUzogJ21pbi1oLVsyMjBweF0gbWQ6dy1bMzcwcHhdIHB5LTMgcHgtMyBmbGV4IGdhcC00JyxcbiAgICBYUzogJ21pbi1oLVsxMDhweF0gbWQ6dy1bNTcwcHhdIHB5LTMgcHgtMyBmbGV4IGdhcC00JyxcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGh1bWJuYWlsU2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ3ctWzE5MHB4XSBoLVsxODBweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAnLFxuICAgIE06ICd3LVsxMTBweF0gaC1bMTQwcHhdIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIHNocmluay0wJyxcbiAgICBTOiAnaGlkZGVuJyxcbiAgICBYUzogJ2hpZGRlbicsXG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlQ2xhc3NNYXA6IFJlY29yZDxDYXJkU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICBMOiAndGV4dC14bCBsaW5lLWNsYW1wLTInLFxuICAgIE06ICd0ZXh0LWJhc2UgbGluZS1jbGFtcC0yJyxcbiAgICBTOiAndGV4dC1iYXNlIGxpbmUtY2xhbXAtMycsXG4gICAgWFM6ICd0ZXh0LWJhc2UgbXQtMyBsaW5lLWNsYW1wLTInLFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hYnN0cmFjdCA9IHJlbW92ZVdoaXRlc3BhY2Uoc3RyaXBIdG1sKHRoaXMucmVjb3JkPy5hYnN0cmFjdCkpXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoXG4gICAgICAgIChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgcHJvcGFnYXRlVG9Eb2N1bWVudE9ubHkoZXZlbnQpXG4gICAgICAgICAgdGhpcy5tZFNlbGVjdC5lbWl0KHRoaXMucmVjb3JkKVxuICAgICAgICB9XG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgZ2V0IG9yZ2FuaXphdGlvbigpOiBPcmdhbml6YXRpb24ge1xuICAgIHJldHVybiB0aGlzLnJlY29yZC5vd25lck9yZ2FuaXphdGlvblxuICB9XG5cbiAgZ2V0IGNvbnRhY3RzKCkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5yZWNvcmQua2luZCA9PT0gJ2RhdGFzZXQnXG4gICAgICAgID8gdGhpcy5yZWNvcmQuY29udGFjdHNGb3JSZXNvdXJjZVxuICAgICAgICA6IHRoaXMucmVjb3JkLmNvbnRhY3RzKSB8fCBbXVxuICAgIClcbiAgfVxuXG4gIGdldFRpdGxlQ2xhc3MoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudGl0bGVDbGFzc01hcFt0aGlzLl9zaXplXSArXG4gICAgICAgICcgJyArXG4gICAgICAgICh0aGlzLnJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZSA/ICcnIDogJ210LTMnKSB8fCAnJ1xuICAgIClcbiAgfVxuXG4gIG9wZW5FeHRlcm5hbFVybChldmVudDogRXZlbnQsIHVybDogVVJMKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKVxuICB9XG5cbiAgb3Blbk1haWx0byhldmVudDogRXZlbnQsIGVtYWlsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHdpbmRvdy5vcGVuKGBtYWlsdG86JHtlbWFpbH1gLCAnX2JsYW5rJylcbiAgfVxuXG4gIGNvcHlUb0NsaXBib2FyZChldmVudDogRXZlbnQsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dClcbiAgfVxuXG4gIGdldCBzaG91bGRTaG93VGh1bWJuYWlsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdMJyB8fCB0aGlzLnNpemUgPT09ICdNJ1xuICB9XG5cbiAgZ2V0S2luZEluZm8oKTogeyB0ZXh0OiBzdHJpbmc7IGljb246IHN0cmluZyB9IHtcbiAgICBpZiAoIXRoaXMucmVjb3JkPy5raW5kKSByZXR1cm4geyB0ZXh0OiAnJywgaWNvbjogJycgfVxuXG4gICAgc3dpdGNoICh0aGlzLnJlY29yZC5raW5kLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2RhdGFzZXQnOlxuICAgICAgICByZXR1cm4geyB0ZXh0OiAncmVjb3JkLmtpbmQuZGF0YXNldCcsIGljb246ICdpY29ub2lyRGF0YWJhc2UnIH1cbiAgICAgIGNhc2UgJ3JldXNlJzpcbiAgICAgICAgcmV0dXJuIHsgdGV4dDogJ3JlY29yZC5raW5kLnJldXNlJywgaWNvbjogJ2ljb25vaXJNYXAnIH1cbiAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICByZXR1cm4geyB0ZXh0OiAncmVjb3JkLmtpbmQuc2VydmljZScsIGljb246ICdtYXRDb2RlJyB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyB0ZXh0OiAnJywgaWNvbjogJycgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInJvdW5kZWQtbGcgZ3JvdXAgY2FyZC1zaGFkb3cgY3Vyc29yLXBvaW50ZXIgb3ZlcmZsb3ctaGlkZGVuIGhvdmVyOmJnLWdyYXktNTBcIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaG91bGRTaG93VGh1bWJuYWlsXCJcbiAgICAgIFtuZ0NsYXNzXT1cInRodW1ibmFpbENvbnRhaW5lckNsYXNzXCJcbiAgICAgIGNsYXNzPVwibXItNCBmbGV4IGZsZXgtY29sXCJcbiAgICA+XG4gICAgICA8Z24tdWktdGh1bWJuYWlsXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXJcIlxuICAgICAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsPy50b1N0cmluZygpIHx8ICcnXCJcbiAgICAgICAgW2ZpdF09XCInY292ZXInXCJcbiAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC0xIHJlbGF0aXZlXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2p1c3RpZnktYmV0d2Vlbic6IHJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubmFtZSAmJiBzaXplICE9PSAnWFMnLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMlwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZ2V0S2luZEluZm8oKS50ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biB0ZXh0LXdoaXRlIHRleHQteHMgcHgtMiBweS0wLjUgZm9udC1ib2xkIHNocmluay0wIGJnLXByaW1hcnkgbGVhZGluZy10aWdodCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWV2ZW5seSBoLTYgbWluLWgtNlwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LVswLjllbV0gdGV4dC13aGl0ZSBtci0xXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImdldEtpbmRJbmZvKCkuaWNvblwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdGV4dC14c1wiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgIHt7IGdldEtpbmRJbmZvKCkudGV4dCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiaXNHZW9kYXRhXCJcbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biB0ZXh0LWJsYWNrIHRleHQteHMgcHgtMiBweS0wLjUgZm9udC1ib2xkIHNocmluay0wIGJnLXByaW1hcnktd2hpdGUgbGVhZGluZy10aWdodCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWV2ZW5seSBoLTYgbWluLWgtNlwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwic2l6ZSA9PT0gJ0wnID8gJ3ctWzE2NHB4XScgOiAndy04J1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LVswLjllbV0gdGV4dC1wcmltYXJ5LWRhcmtlc3RcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZVwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSA9PT0gJ0wnXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtcHJpbWFyeS1kYXJrZXN0IHRleHQteHMgbWwtMVwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICByZWNvcmQubWV0YWRhdGEudHlwZVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5XG4gICAgICAgICAgICBbc21hbGxlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttZXRhZGF0YV09XCJyZWNvcmRcIlxuICAgICAgICAgICAgW21ldGFkYXRhUXVhbGl0eURpc3BsYXldPVwibWV0YWRhdGFRdWFsaXR5RGlzcGxheVwiXG4gICAgICAgICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCByaWdodC0wIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwic2l6ZSAhPT0gJ1hTJ1wiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmYXZvcml0ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXRpdGxlIGdyb3VwLWhvdmVyOnRleHQtcHJpbWFyeSBvdmVyZmxvdy1oaWRkZW4gYnJlYWstd29yZHNcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRUaXRsZUNsYXNzKClcIlxuICAgICAgPlxuICAgICAgICB7eyByZWNvcmQudGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNpemUgPT09ICdMJ1wiXG4gICAgICAgIGNsYXNzPVwibXQtMSBtYi0yIGZvbnQtbm9ybWFsIHRleHQteHMgdGV4dC1ncmF5LTkwMCBsaW5lLWNsYW1wLTIgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAgPGduLXVpLW1hcmtkb3duLXBhcnNlclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJhYnN0cmFjdFwiXG4gICAgICAgICAgW3doaXRvdXRTdHlsZXNdPVwidHJ1ZVwiXG4gICAgICAgID48L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNpemUgIT09ICdYUycgJiYgcmVjb3JkLm93bmVyT3JnYW5pemF0aW9uPy5uYW1lXCJcbiAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWV2ZW5seSBiZy1ncmF5LTUwIHJvdW5kZWQtbGcgaC1bNTNweF0gcHgtMlwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidy1bNDVweF0gaC1bNDVweF0gcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTAgbXItM1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGduLXVpLXRodW1ibmFpbFxuICAgICAgICAgICAgICBbdGh1bWJuYWlsVXJsXT1cIlxuICAgICAgICAgICAgICAgIHJlY29yZC5vd25lck9yZ2FuaXphdGlvbj8ubG9nb1VybD8udG9TdHJpbmcoKSB8fCAnJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbZml0XT1cIidjb250YWluJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCByb3VuZGVkLWxnXCJcbiAgICAgICAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3JnYW5pemF0aW9uPy5uYW1lXCIgY2xhc3M9XCJmbGV4LTEgdy0wIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ibGFjayBmb250LW5vcm1hbCBsZWFkaW5nLXRpZ2h0IHRydW5jYXRlXCJcbiAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHJlY29yZC5jYXJkLm1ldGFkYXRhLmNvbnRhY3RcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgdGV4dC1wcmltYXJ5LWJsYWNrIGZvbnQtbWVkaXVtIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgIHt7IG9yZ2FuaXphdGlvbi5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaXplID09PSAnTCdcIiBjbGFzcz1cIm1sLTIgZmxleCBzcGFjZS14LTJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3JnYW5pemF0aW9uPy53ZWJzaXRlXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJvcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5FeHRlcm5hbFVybCgkZXZlbnQsIG9yZ2FuaXphdGlvbi53ZWJzaXRlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lySW50ZXJuZXRcIj48L25nLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmVtYWlsXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJjb250YWN0c1swXS5lbWFpbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidy1bNDBweF0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLVsjRDREM0Q3XSBweC1bOHB4XSBweS1bNHB4XSBob3ZlcjpiZy1wcmltYXJ5LWxpZ2h0ZXN0XCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk1haWx0bygkZXZlbnQsIGNvbnRhY3RzWzBdLmVtYWlsKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRFbWFpbE91dGxpbmVcIj48L25nLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LnBob25lXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5waG9uZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0UGhvbmVPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5hZGRyZXNzXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ29weSB0byBjbGlwYm9hcmQnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LVs0MHB4XSBoLVszMnB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItWyNENEQzRDddIHB4LVs4cHhdIHB5LVs0cHhdIGhvdmVyOmJnLXByaW1hcnktbGlnaHRlc3QgcmVsYXRpdmUgZ3JvdXBcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1waG9uZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50LCBjb250YWN0c1swXS5hZGRyZXNzKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRMb2NhdGlvbk9uT3V0bGluZVwiPjwvbmctaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -2,11 +2,27 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
|
|
4
4
|
import { matOpenInNew } from '@ng-icons/material-icons/baseline';
|
|
5
|
+
import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src';
|
|
6
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@ngx-translate/core";
|
|
7
10
|
export class LinkCardComponent {
|
|
8
11
|
constructor() {
|
|
9
|
-
this.
|
|
12
|
+
this.sizeClassMap = {
|
|
13
|
+
L: 'gn-ui-card-l py-2 px-5',
|
|
14
|
+
M: 'gn-ui-card-m py-2 px-5',
|
|
15
|
+
S: 'gn-ui-card-s p-4',
|
|
16
|
+
XS: 'gn-ui-card-xs py-2 px-5',
|
|
17
|
+
};
|
|
18
|
+
this.cardClass = '';
|
|
19
|
+
}
|
|
20
|
+
set size(value) {
|
|
21
|
+
this._size = value;
|
|
22
|
+
this.cardClass = this.sizeClassMap[value];
|
|
23
|
+
}
|
|
24
|
+
get size() {
|
|
25
|
+
return this._size;
|
|
10
26
|
}
|
|
11
27
|
get title() {
|
|
12
28
|
if (this.link.name && this.link.description) {
|
|
@@ -14,25 +30,31 @@ export class LinkCardComponent {
|
|
|
14
30
|
}
|
|
15
31
|
return this.link.name || this.link.description || '';
|
|
16
32
|
}
|
|
33
|
+
getLinkFormat(link) {
|
|
34
|
+
return getFileFormat(link);
|
|
35
|
+
}
|
|
36
|
+
getLinkColor(link) {
|
|
37
|
+
return getBadgeColor(getFileFormat(link));
|
|
38
|
+
}
|
|
17
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LinkCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LinkCardComponent, isStandalone: true, selector: "gn-ui-link-card", inputs: { link: "link",
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LinkCardComponent, isStandalone: true, selector: "gn-ui-link-card", inputs: { link: "link", size: "size" }, providers: [
|
|
19
41
|
provideIcons({
|
|
20
42
|
matOpenInNew,
|
|
21
43
|
}),
|
|
22
44
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
23
|
-
], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"flex flex-
|
|
45
|
+
], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
46
|
}
|
|
25
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LinkCardComponent, decorators: [{
|
|
26
48
|
type: Component,
|
|
27
|
-
args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent], providers: [
|
|
49
|
+
args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [
|
|
28
50
|
provideIcons({
|
|
29
51
|
matOpenInNew,
|
|
30
52
|
}),
|
|
31
53
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
32
|
-
], template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"flex flex-
|
|
54
|
+
], template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n" }]
|
|
33
55
|
}], propDecorators: { link: [{
|
|
34
56
|
type: Input
|
|
35
|
-
}],
|
|
57
|
+
}], size: [{
|
|
36
58
|
type: Input
|
|
37
59
|
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBTXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFpQnJELE1BQU0sT0FBTyxpQkFBaUI7SUFkOUI7UUFpQm1CLGlCQUFZLEdBQTZCO1lBQ3hELENBQUMsRUFBRSx3QkFBd0I7WUFDM0IsQ0FBQyxFQUFFLHdCQUF3QjtZQUMzQixDQUFDLEVBQUUsa0JBQWtCO1lBQ3JCLEVBQUUsRUFBRSx5QkFBeUI7U0FDOUIsQ0FBQTtRQVNELGNBQVMsR0FBRyxFQUFFLENBQUE7S0FnQmY7SUF2QkMsSUFBYSxJQUFJLENBQUMsS0FBZTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUNELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBR0QsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQTtJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVM7UUFDckIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7K0dBaENVLGlCQUFpQjttR0FBakIsaUJBQWlCLHNHQVBqQjtZQUNULFlBQVksQ0FBQztnQkFDWCxZQUFZO2FBQ2IsQ0FBQztZQUNGLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3hDLDBCQzdCSCx3dENBcUNBLHlERGRZLFlBQVksaU9BQUUsZUFBZSw0R0FBRSxlQUFlOzs0RkFRN0MsaUJBQWlCO2tCQWQ3QixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLGFBQzlDO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxZQUFZO3lCQUNiLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7cUJBQ3hDOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFRTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uLFxuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0T3BlbkluTmV3IH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuaW1wb3J0IHsgZ2V0QmFkZ2VDb2xvciwgZ2V0RmlsZUZvcm1hdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxudHlwZSBDYXJkU2l6ZSA9ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWxpbmstY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rLWNhcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJY29uQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0T3BlbkluTmV3LFxuICAgIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHsgc2l6ZTogJzEuNWVtJyB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua0NhcmRDb21wb25lbnQge1xuICBwcml2YXRlIF9zaXplOiAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG4gIEBJbnB1dCgpIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZVxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVDbGFzc01hcDogUmVjb3JkPENhcmRTaXplLCBzdHJpbmc+ID0ge1xuICAgIEw6ICdnbi11aS1jYXJkLWwgcHktMiBweC01JyxcbiAgICBNOiAnZ24tdWktY2FyZC1tIHB5LTIgcHgtNScsXG4gICAgUzogJ2duLXVpLWNhcmQtcyBwLTQnLFxuICAgIFhTOiAnZ24tdWktY2FyZC14cyBweS0yIHB4LTUnLFxuICB9XG5cbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IENhcmRTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlXG4gICAgdGhpcy5jYXJkQ2xhc3MgPSB0aGlzLnNpemVDbGFzc01hcFt2YWx1ZV1cbiAgfVxuICBnZXQgc2l6ZSgpOiAnTCcgfCAnTScgfCAnUycgfCAnWFMnIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZVxuICB9XG4gIGNhcmRDbGFzcyA9ICcnXG5cbiAgZ2V0IHRpdGxlKCkge1xuICAgIGlmICh0aGlzLmxpbmsubmFtZSAmJiB0aGlzLmxpbmsuZGVzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmxpbmsubmFtZX0gfCAke3RoaXMubGluay5kZXNjcmlwdGlvbn1gXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxpbmsubmFtZSB8fCB0aGlzLmxpbmsuZGVzY3JpcHRpb24gfHwgJydcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogYW55KSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBhbnkpIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG59XG4iLCI8YVxuICBbaHJlZl09XCJsaW5rLnVybFwiXG4gIHRhcmdldD1cIl9ibGFua1wiXG4gIGNsYXNzPVwiZ3JvdXAgZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gY2FyZC1zaGFkb3cgY3Vyc29yLXBvaW50ZXIgcm91bmRlZCBvdmVyZmxvdy1oaWRkZW5cIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuICBbdGl0bGVdPVwidGl0bGVcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ24tdWktY2FyZC10aXRsZVwiPlxuICAgICAge3sgbGluay5kZXNjcmlwdGlvbiB8fCBsaW5rLm5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ24tdWktY2FyZC1kZXRhaWxcIj5cbiAgICAgIHt7IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICAgIDxwICpuZ0lmPVwiIWxpbmsubmFtZSAmJiAhbGluay5kZXNjcmlwdGlvblwiIGNsYXNzPVwiZ24tdWktY2FyZC10aXRsZVwiPlxuICAgICAge3sgbGluay51cmwgfX1cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cInB0LTFcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgdHJhbnNpdGlvbi1vcGFjaXR5IG9wYWNpdHktNzAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDBcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRMaW5rQ29sb3IobGluaylcIlxuICAgICAgICBkYXRhLWN5PVwiZG93bmxvYWQtZm9ybWF0XCJcbiAgICAgICAgPnt7XG4gICAgICAgICAgZ2V0TGlua0Zvcm1hdChsaW5rKSB8fCAoJ2Rvd25sb2Fkcy5mb3JtYXQudW5rbm93bicgfCB0cmFuc2xhdGUpXG4gICAgICAgIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleFwiIFtuZ0NsYXNzXT1cInNpemUgPT09ICdTJyA/ICdpdGVtcy1lbmQnIDogJ2l0ZW1zLWNlbnRlcidcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ24tdWktY2FyZC1pY29uXCI+XG4gICAgICA8bmctaWNvblxuICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBjYXJkLWljb24gYWxpZ24tbWlkZGxlXCJcbiAgICAgICAgbmFtZT1cIm1hdE9wZW5Jbk5ld1wiXG4gICAgICA+PC9uZy1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYT5cbiJdfQ==
|
|
@@ -4,12 +4,12 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@ngx-translate/core";
|
|
5
5
|
export class MetadataCatalogComponent {
|
|
6
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataCatalogComponent, isStandalone: true, selector: "gn-ui-metadata-catalog", inputs: { sourceLabel: "sourceLabel" }, ngImport: i0, template: "<div>\n <p class=\"text-gray-
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataCatalogComponent, isStandalone: true, selector: "gn-ui-metadata-catalog", inputs: { sourceLabel: "sourceLabel" }, ngImport: i0, template: "<div>\n <p class=\"text-gray-900 text-xs mb-3 uppercase\" translate>\n record.metadata.catalog\n </p>\n <p class=\"text-primary font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8
8
|
}
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataCatalogComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
|
-
args: [{ selector: 'gn-ui-metadata-catalog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TranslateModule], template: "<div>\n <p class=\"text-gray-
|
|
11
|
+
args: [{ selector: 'gn-ui-metadata-catalog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TranslateModule], template: "<div>\n <p class=\"text-gray-900 text-xs mb-3 uppercase\" translate>\n record.metadata.catalog\n </p>\n <p class=\"text-primary font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n" }]
|
|
12
12
|
}], propDecorators: { sourceLabel: [{
|
|
13
13
|
type: Input
|
|
14
14
|
}] } });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY2F0YWxvZy9tZXRhZGF0YS1jYXRhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jYXRhbG9nL21ldGFkYXRhLWNhdGFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFVckQsTUFBTSxPQUFPLHdCQUF3QjsrR0FBeEIsd0JBQXdCO21HQUF4Qix3QkFBd0IsMEhDWHJDLDJNQVFBLHlERENZLGVBQWU7OzRGQUVkLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDOzhCQUdqQixXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtY2F0YWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFDYXRhbG9nQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc291cmNlTGFiZWw6IHN0cmluZ1xufVxuIiwiPGRpdj5cbiAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQteHMgbWItMyB1cHBlcmNhc2VcIiB0cmFuc2xhdGU+XG4gICAgcmVjb3JkLm1ldGFkYXRhLmNhdGFsb2dcbiAgPC9wPlxuICA8cCBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LXRpdGxlIHRleHQtMjEgbWItMVwiPlxuICAgIHt7IHNvdXJjZUxhYmVsIH19XG4gIDwvcD5cbjwvZGl2PlxuIl19
|
|
@@ -54,7 +54,7 @@ export class MetadataQualityComponent {
|
|
|
54
54
|
size: '1.2em',
|
|
55
55
|
strokeWidth: '1.5px',
|
|
56
56
|
}),
|
|
57
|
-
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"
|
|
57
|
+
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"metadata-quality\">\n <div\n class=\"flex items-center\"\n [class]=\"\n smaller ? 'leading-[8px] min-w-[120px] m-h-[120px]' : 'min-w-[200px]'\n \"\n >\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n </div>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58
58
|
}
|
|
59
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, decorators: [{
|
|
60
60
|
type: Component,
|
|
@@ -73,7 +73,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
73
73
|
size: '1.2em',
|
|
74
74
|
strokeWidth: '1.5px',
|
|
75
75
|
}),
|
|
76
|
-
], template: "<div *ngIf=\"metadataQualityDisplay\" class=\"
|
|
76
|
+
], template: "<div *ngIf=\"metadataQualityDisplay\" class=\"metadata-quality\">\n <div\n class=\"flex items-center\"\n [class]=\"\n smaller ? 'leading-[8px] min-w-[120px] m-h-[120px]' : 'min-w-[200px]'\n \"\n >\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n </div>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
|
|
77
77
|
}], propDecorators: { metadata: [{
|
|
78
78
|
type: Input
|
|
79
79
|
}], smaller: [{
|
|
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
81
81
|
}], metadataQualityDisplay: [{
|
|
82
82
|
type: Input
|
|
83
83
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSwwREFBMEQsQ0FBQTtBQUVqRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLHVDQUF1QyxDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7Ozs7QUEwQm5FLE1BQU0sT0FBTyx3QkFBd0I7SUF4QnJDO1FBMEJXLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFHeEIsVUFBSyxHQUEwQixFQUFFLENBQUE7S0F1Q2xDO0lBckNDLElBQUksWUFBWTtRQUNkLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQTtRQUN4RCxPQUFPLE9BQU8sWUFBWSxLQUFLLFFBQVE7WUFD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WUFBWSxDQUFDOzRCQUNYLGNBQWM7eUJBQ2YsQ0FBQzt3QkFDRixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLE9BQU87NEJBQ2IsV0FBVyxFQUFFLE9BQU87eUJBQ3JCLENBQUM7cUJBQ0g7OEJBR1EsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIE1ldGFkYXRhUXVhbGl0eUl0ZW0sXG4gIE1ldGFkYXRhUXVhbGl0eUl0ZW1Db21wb25lbnQsXG59IGZyb20gJy4uL21ldGFkYXRhLXF1YWxpdHktaXRlbS9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIFBvcG92ZXJDb21wb25lbnQsXG4gIFByb2dyZXNzQmFyQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE5nSWNvbiB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0SW5mb091dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IHByb3ZpZGVJY29ucywgcHJvdmlkZU5nSWNvbnNDb25maWcgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtcXVhbGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgTWV0YWRhdGFRdWFsaXR5SXRlbUNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTmdJY29uLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0SW5mb091dGxpbmUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuMmVtJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAnMS41cHgnLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtZXRhZGF0YTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPlxuICBASW5wdXQoKSBzbWFsbGVyID0gZmFsc2VcbiAgQElucHV0KCkgbWV0YWRhdGFRdWFsaXR5RGlzcGxheTogYm9vbGVhblxuXG4gIGl0ZW1zOiBNZXRhZGF0YVF1YWxpdHlJdGVtW10gPSBbXVxuXG4gIGdldCBxdWFsaXR5U2NvcmUoKSB7XG4gICAgY29uc3QgcXVhbGl0eVNjb3JlID0gdGhpcy5tZXRhZGF0YT8uZXh0cmFzPy5xdWFsaXR5U2NvcmVcbiAgICByZXR1cm4gdHlwZW9mIHF1YWxpdHlTY29yZSA9PT0gJ251bWJlcidcbiAgICAgID8gcXVhbGl0eVNjb3JlXG4gICAgICA6IHRoaXMuY2FsY3VsYXRlZFF1YWxpdHlTY29yZVxuICB9XG5cbiAgZ2V0IGNhbGN1bGF0ZWRRdWFsaXR5U2NvcmUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChcbiAgICAgICh0aGlzLml0ZW1zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSkubGVuZ3RoICogMTAwKSAvIHRoaXMuaXRlbXMubGVuZ3RoXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBhZGQobmFtZTogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm1ldGFkYXRhUXVhbGl0eURpc3BsYXk/LltuYW1lXSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaCh7IG5hbWUsIHZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBjb250YWN0ID0gdGhpcy5tZXRhZGF0YT8uY29udGFjdHM/LlswXVxuICAgIHRoaXMuaXRlbXMgPSBbXVxuICAgIHRoaXMuYWRkKCd0aXRsZScsICEhdGhpcy5tZXRhZGF0YT8udGl0bGUpXG4gICAgdGhpcy5hZGQoJ2Rlc2NyaXB0aW9uJywgISF0aGlzLm1ldGFkYXRhPy5hYnN0cmFjdClcbiAgICB0aGlzLmFkZCgndG9waWMnLCB0aGlzLm1ldGFkYXRhPy50b3BpY3M/Lmxlbmd0aCA+IDApXG4gICAgdGhpcy5hZGQoJ2tleXdvcmRzJywgdGhpcy5tZXRhZGF0YT8ua2V5d29yZHM/Lmxlbmd0aCA+IDApXG4gICAgdGhpcy5hZGQoJ2xlZ2FsQ29uc3RyYWludHMnLCB0aGlzLm1ldGFkYXRhPy5sZWdhbENvbnN0cmFpbnRzPy5sZW5ndGggPiAwKVxuICAgIHRoaXMuYWRkKCdvcmdhbmlzYXRpb24nLCAhIWNvbnRhY3Q/Lm9yZ2FuaXphdGlvbilcbiAgICB0aGlzLmFkZCgnY29udGFjdCcsICEhY29udGFjdD8uZW1haWwpXG4gICAgdGhpcy5hZGQoJ3VwZGF0ZUZyZXF1ZW5jeScsICEhdGhpcy5tZXRhZGF0YT8udXBkYXRlRnJlcXVlbmN5KVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydtZXRhZGF0YSddIHx8IGNoYW5nZXNbJ21ldGFkYXRhUXVhbGl0eURpc3BsYXknXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplKClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJtZXRhZGF0YVF1YWxpdHlEaXNwbGF5XCIgY2xhc3M9XCJtZXRhZGF0YS1xdWFsaXR5XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCJcbiAgICBbY2xhc3NdPVwiXG4gICAgICBzbWFsbGVyID8gJ2xlYWRpbmctWzhweF0gbWluLXctWzEyMHB4XSBtLWgtWzEyMHB4XScgOiAnbWluLXctWzIwMHB4XSdcbiAgICBcIlxuICA+XG4gICAgPGduLXVpLXByb2dyZXNzLWJhclxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFt2YWx1ZV09XCJxdWFsaXR5U2NvcmVcIlxuICAgICAgW3R5cGVdPVwiJ2xpZ2h0J1wiXG4gICAgICBjbGFzcz1cImZsZXgtZ3Jvd1wiXG4gICAgPjwvZ24tdWktcHJvZ3Jlc3MtYmFyPlxuICAgIDxnbi11aS1wb3BvdmVyXG4gICAgICBbY29udGVudF09XCJwb3BvdmVySXRlbXNcIlxuICAgICAgdGhlbWU9XCJsaWdodC1ib3JkZXJcIlxuICAgICAgW2NsYXNzXT1cInNtYWxsZXIgPyAnbWwtMicgOiAnbWwtMiBtdC0xJ1wiXG4gICAgPlxuICAgICAgPG5nLWljb25cbiAgICAgICAgbmFtZT1cIm1hdEluZm9PdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJmbGV4LXNocmluay0wIHRleHQtZ3JheS02MDBcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICA8L2duLXVpLXBvcG92ZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3BvcG92ZXJJdGVtcz5cbiAgPGRpdiBjbGFzcz1cInAtMiBweS00XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTQgZm9udC1ib2xkXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmRldGFpbHM8L2Rpdj5cbiAgICA8Z24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtXG4gICAgICAqbmdGb3I9XCJsZXQgZSBvZiBpdGVtc1wiXG4gICAgICBbbmFtZV09XCJlLm5hbWVcIlxuICAgICAgW3ZhbHVlXT1cImUudmFsdWVcIlxuICAgID48L2duLXVpLW1ldGFkYXRhLXF1YWxpdHktaXRlbT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -110,7 +110,7 @@ export class RecordApiFormComponent {
|
|
|
110
110
|
maxFeatures: limit !== '-1' ? Number(limit) : undefined,
|
|
111
111
|
limit: limit !== '-1' ? Number(limit) : -1,
|
|
112
112
|
offset: offset !== '' ? Number(offset) : undefined,
|
|
113
|
-
outputCrs: format
|
|
113
|
+
outputCrs: format.toLowerCase().indexOf('json') > -1 ? 'EPSG:4326' : undefined,
|
|
114
114
|
};
|
|
115
115
|
if (this.endpoint instanceof WfsEndpoint) {
|
|
116
116
|
delete options.limit;
|
|
@@ -118,6 +118,7 @@ export class RecordApiFormComponent {
|
|
|
118
118
|
return this.endpoint.getFeatureUrl(this.apiFeatureType, options);
|
|
119
119
|
}
|
|
120
120
|
else {
|
|
121
|
+
delete options.outputCrs;
|
|
121
122
|
return await this.endpoint.getCollectionItemsUrl(this.apiFeatureType, options);
|
|
122
123
|
}
|
|
123
124
|
}
|
|
@@ -136,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
136
137
|
}], propDecorators: { apiLink: [{
|
|
137
138
|
type: Input
|
|
138
139
|
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBWSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFLOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7OztBQUVyRCxNQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLGtCQUFrQjtDQUMzQixDQUFBO0FBZ0JELE1BQU0sT0FBTyxzQkFBc0I7SUFkbkM7UUEwQkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxXQUFNLEdBQUcsSUFBSSxl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LElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FDOUMsSUFBSSxDQUFDLGNBQWMsRUFDbkIsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0E1SVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUhDckNuQywyekdBMkZBLHFnQkQ3REksWUFBWSx3TEFDWixrQkFBa0IsK0pBQ2xCLHlCQUF5QixxTkFDekIsdUJBQXVCLDBIQUN2QixlQUFlOzs0RkFHTixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGVBQWU7cUJBQ2hCOzhCQUdZLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNaW1lVHlwZSwgT2djQXBpRW5kcG9pbnQsIFdmc0VuZHBvaW50IH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7XG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IG1pbWVUeXBlVG9Gb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgREVGQVVMVF9QQVJBTVMgPSB7XG4gIE9GRlNFVDogJycsXG4gIExJTUlUOiAnLTEnLFxuICBGT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWFwaS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENvcHlUZXh0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBhcGlMaW5rKHZhbHVlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbikge1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IFt7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfV1cbiAgICB0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IHZhbHVlID8gdmFsdWUuYWNjZXNzU2VydmljZVByb3RvY29sIDogdW5kZWZpbmVkXG4gICAgdGhpcy5hcGlGZWF0dXJlVHlwZSA9IHZhbHVlID8gdmFsdWUubmFtZSA6IHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUudXJsLmhyZWZcbiAgICAgIHRoaXMuY3JlYXRlRW5kcG9pbnQoKS50aGVuKCgpID0+IHRoaXMucGFyc2VPdXRwdXRGb3JtYXRzKCkpXG4gICAgfVxuICAgIHRoaXMucmVzZXRVcmwoKVxuICB9XG5cbiAgb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoREVGQVVMVF9QQVJBTVMuT0ZGU0VUKVxuICBsaW1pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChERUZBVUxUX1BBUkFNUy5GT1JNQVQpXG4gIGVuZHBvaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gIClcbiAgYXBpQmFzZVVybDogc3RyaW5nXG4gIGFwaUZlYXR1cmVUeXBlOiBzdHJpbmdcbiAgc3VwcG9ydE9mZnNldCA9IHRydWVcbiAgYWNjZXNzU2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wgfCB1bmRlZmluZWRcbiAgb3V0cHV0Rm9ybWF0czogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfSxcbiAgXVxuICBlbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZFxuXG4gIGFwaVF1ZXJ5VXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub2Zmc2V0JCxcbiAgICB0aGlzLmxpbWl0JCxcbiAgICB0aGlzLmZvcm1hdCQsXG4gICAgLy8gb25seSBjb21wdXRlIHRoZSB1cmwgaWYgdGhlIGVuZHBvaW50IHdhcyBjcmVhdGVkXG4gICAgdGhpcy5lbmRwb2ludCQucGlwZShmaWx0ZXIoKGVuZHBvaW50KSA9PiAhIWVuZHBvaW50KSksXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2Zmc2V0LCBsaW1pdCwgZm9ybWF0XSkgPT5cbiAgICAgIHRoaXMuZ2VuZXJhdGVBcGlRdWVyeVVybChvZmZzZXQsIGxpbWl0LCBmb3JtYXQpXG4gICAgKVxuICApXG5cbiAgbm9MaW1pdENoZWNrZWQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiBsaW1pdCA9PT0gJy0xJyB8fCBsaW1pdCA9PT0gJycpXG4gIClcbiAgZGlzcGxheUxpbWl0JCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gKGxpbWl0ICE9PSAnLTEnID8gbGltaXQgOiAnJykpXG4gIClcblxuICBzZXRPZmZzZXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgc2V0TGltaXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubGltaXQkLm5leHQodmFsdWUgPT09ICcnID8gJy0xJyA6IHZhbHVlKVxuICB9XG5cbiAgc2V0Rm9ybWF0KHZhbHVlOiBzdHJpbmcgfCB1bmtub3duKSB7XG4gICAgdGhpcy5mb3JtYXQkLm5leHQoU3RyaW5nKHZhbHVlKSlcbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KERFRkFVTFRfUEFSQU1TLk9GRlNFVClcbiAgICB0aGlzLmxpbWl0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICAgIHRoaXMuZm9ybWF0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkZPUk1BVClcbiAgfVxuXG4gIGFzeW5jIHBhcnNlT3V0cHV0Rm9ybWF0cygpIHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVyblxuICAgIGNvbnN0IG91dHB1dEZvcm1hdHMgPSAoYXdhaXQgdGhpcy5nZXRPdXRwdXRGb3JtYXRzKCkpLm1hcChcbiAgICAgIHRoaXMubWltZVR5cGVUb0Zvcm1hdE5hbWVcbiAgICApXG5cbiAgICB0aGlzLm91dHB1dEZvcm1hdHMgPSB0aGlzLm91dHB1dEZvcm1hdHNcbiAgICAgIC5jb25jYXQob3V0cHV0Rm9ybWF0cy5maWx0ZXIoQm9vbGVhbikpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudmFsdWUgPT09IGZvcm1hdC52YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpXG4gIH1cblxuICBtaW1lVHlwZVRvRm9ybWF0TmFtZShtaW1lVHlwZTogTWltZVR5cGUpOiBEcm9wZG93bkNob2ljZSB8IG51bGwge1xuICAgIGNvbnN0IGZvcm1hdE5hbWUgPSBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlKVxuICAgIHJldHVybiBmb3JtYXROYW1lXG4gICAgICA/IHsgbGFiZWw6IGZvcm1hdE5hbWUudG9VcHBlckNhc2UoKSwgdmFsdWU6IG1pbWVUeXBlIH1cbiAgICAgIDogbnVsbFxuICB9XG5cbiAgYXN5bmMgZ2V0T3V0cHV0Rm9ybWF0cygpOiBQcm9taXNlPE1pbWVUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVybiBbXVxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIHRoaXMuc3VwcG9ydE9mZnNldCA9IHRoaXMuZW5kcG9pbnQuc3VwcG9ydHNTdGFydEluZGV4KClcbiAgICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdldFNlcnZpY2VJbmZvKCkub3V0cHV0Rm9ybWF0c1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkluZm8odGhpcy5hcGlGZWF0dXJlVHlwZSkpXG4gICAgICAgIC5pdGVtRm9ybWF0c1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUVuZHBvaW50KCkge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkgcmV0dXJuXG4gICAgaWYgKHRoaXMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgdGhpcy5lbmRwb2ludCA9IG5ldyBXZnNFbmRwb2ludCh0aGlzLmFwaUJhc2VVcmwpXG4gICAgICBhd2FpdCAodGhpcy5lbmRwb2ludCBhcyBXZnNFbmRwb2ludCkuaXNSZWFkeSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5hcGlCYXNlVXJsKVxuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBhd2FpdCB0aGlzLmVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAvLyBpZiB0aGVyZSdzIG9ubHkgb25lIGNvbGxlY3Rpb24sIHVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIG5hbWUgZ2l2ZW4gaW4gdGhlIGxpbmsuXG4gICAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuYXBpRmVhdHVyZVR5cGUgPSBjb2xsZWN0aW9uc1swXS5uYW1lXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW5kcG9pbnQkLm5leHQodGhpcy5lbmRwb2ludClcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlQXBpUXVlcnlVcmwoXG4gICAgb2Zmc2V0OiBzdHJpbmcsXG4gICAgbGltaXQ6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmVuZHBvaW50IHx8ICF0aGlzLmFwaUZlYXR1cmVUeXBlKSByZXR1cm4gJydcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBvdXRwdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgIHN0YXJ0SW5kZXg6IG9mZnNldCA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgbWF4RmVhdHVyZXM6IGxpbWl0ICE9PSAnLTEnID8gTnVtYmVyKGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxpbWl0OiBsaW1pdCAhPT0gJy0xJyA/IE51bWJlcihsaW1pdCkgOiAtMSxcbiAgICAgIG9mZnNldDogb2Zmc2V0ICE9PSAnJyA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgb3V0cHV0Q3JzOlxuICAgICAgICBmb3JtYXQgPT09ICgnYXBwbGljYXRpb24vanNvbicgfHwgJ2dlb2pzb24nKSA/ICdFUFNHOjQzMjYnIDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLmxpbWl0XG4gICAgICBvcHRpb25zLm1heEZlYXR1cmVzID0gbGltaXQgIT09ICctMScgPyBOdW1iZXIobGltaXQpIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuYXBpRmVhdHVyZVR5cGUsIG9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmVuZHBvaW50LmdldENvbGxlY3Rpb25JdGVtc1VybChcbiAgICAgICAgdGhpcy5hcGlGZWF0dXJlVHlwZSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLThcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgYmctd2hpdGUgcC04IG5nLXN0YXItaW5zZXJ0ZWQgc2hhZG93LXhsIGdhcC04XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LVsxNnB4XSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmNyZWF0ZVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJyZXNldFVybCgpXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgY2FwaXRhbGl6ZSB0ZXh0LXByaW1hcnktbGlnaHRlc3QgaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTNweF0gdXBwZXJjYXNlXCIgdHJhbnNsYXRlPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFxuICAgICAgICA8L3A+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGdyb3cgZ2FwLTVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTRweF1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJtci0yIHctMjBcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNldExpbWl0KCRldmVudClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlMaW1pdCQgfCBhc3luY1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cIm1yLTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJub0xpbWl0Q2hlY2tlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TGltaXQoJy0xJylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0LmFsbDwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgcmVsYXRpdmVcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgW2NsYXNzLnRleHQtZ3JheS02MDBdPVwiIXN1cHBvcnRPZmZzZXRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm9mZnNldFxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInctMjBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9mZnNldCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN1cHBvcnRPZmZzZXRcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInN1cHBvcnRPZmZzZXQgPyBzZXRPZmZzZXQoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhc3VwcG9ydE9mZnNldFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtb3JhbmdlLTUwMCB6LTEwIG1sLTNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJOb3Qgc3VwcG9ydGVkIG9uIHRoaXMgc2VydmljZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0udHlwZTwvcD5cbiAgICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgICAgW3RpdGxlXT1cIicnXCJcbiAgICAgICAgICBleHRyYUJ0bkNsYXNzPVwic2Vjb25kYXJ5IG1pbi13LWZ1bGwgIXctNDAgIXRleHQtYmxhY2tcIlxuICAgICAgICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgW2Nob2ljZXNdPVwib3V0cHV0Rm9ybWF0c1wiXG4gICAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIG1iLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jdXN0b21VcmxcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZC1sZ1wiPlxuICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgW3RleHRdPVwiYXBpUXVlcnlVcmwkIHwgYXN5bmNcIlxuICAgICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBWSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFLOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7OztBQUVyRCxNQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLGtCQUFrQjtDQUMzQixDQUFBO0FBZ0JELE1BQU0sT0FBTyxzQkFBc0I7SUFkbkM7UUEwQkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxXQUFNLEdBQUcsSUFBSSxl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QUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQTtZQUN4QixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FDOUMsSUFBSSxDQUFDLGNBQWMsRUFDbkIsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0E3SVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUhDckNuQywyekdBMkZBLHFnQkQ3REksWUFBWSx3TEFDWixrQkFBa0IsK0pBQ2xCLHlCQUF5QixxTkFDekIsdUJBQXVCLDBIQUN2QixlQUFlOzs0RkFHTixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGVBQWU7cUJBQ2hCOzhCQUdZLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNaW1lVHlwZSwgT2djQXBpRW5kcG9pbnQsIFdmc0VuZHBvaW50IH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7XG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IG1pbWVUeXBlVG9Gb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgREVGQVVMVF9QQVJBTVMgPSB7XG4gIE9GRlNFVDogJycsXG4gIExJTUlUOiAnLTEnLFxuICBGT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWFwaS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENvcHlUZXh0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBhcGlMaW5rKHZhbHVlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbikge1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IFt7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfV1cbiAgICB0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IHZhbHVlID8gdmFsdWUuYWNjZXNzU2VydmljZVByb3RvY29sIDogdW5kZWZpbmVkXG4gICAgdGhpcy5hcGlGZWF0dXJlVHlwZSA9IHZhbHVlID8gdmFsdWUubmFtZSA6IHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUudXJsLmhyZWZcbiAgICAgIHRoaXMuY3JlYXRlRW5kcG9pbnQoKS50aGVuKCgpID0+IHRoaXMucGFyc2VPdXRwdXRGb3JtYXRzKCkpXG4gICAgfVxuICAgIHRoaXMucmVzZXRVcmwoKVxuICB9XG5cbiAgb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoREVGQVVMVF9QQVJBTVMuT0ZGU0VUKVxuICBsaW1pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChERUZBVUxUX1BBUkFNUy5GT1JNQVQpXG4gIGVuZHBvaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gIClcbiAgYXBpQmFzZVVybDogc3RyaW5nXG4gIGFwaUZlYXR1cmVUeXBlOiBzdHJpbmdcbiAgc3VwcG9ydE9mZnNldCA9IHRydWVcbiAgYWNjZXNzU2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wgfCB1bmRlZmluZWRcbiAgb3V0cHV0Rm9ybWF0czogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfSxcbiAgXVxuICBlbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZFxuXG4gIGFwaVF1ZXJ5VXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub2Zmc2V0JCxcbiAgICB0aGlzLmxpbWl0JCxcbiAgICB0aGlzLmZvcm1hdCQsXG4gICAgLy8gb25seSBjb21wdXRlIHRoZSB1cmwgaWYgdGhlIGVuZHBvaW50IHdhcyBjcmVhdGVkXG4gICAgdGhpcy5lbmRwb2ludCQucGlwZShmaWx0ZXIoKGVuZHBvaW50KSA9PiAhIWVuZHBvaW50KSksXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2Zmc2V0LCBsaW1pdCwgZm9ybWF0XSkgPT5cbiAgICAgIHRoaXMuZ2VuZXJhdGVBcGlRdWVyeVVybChvZmZzZXQsIGxpbWl0LCBmb3JtYXQpXG4gICAgKVxuICApXG5cbiAgbm9MaW1pdENoZWNrZWQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiBsaW1pdCA9PT0gJy0xJyB8fCBsaW1pdCA9PT0gJycpXG4gIClcbiAgZGlzcGxheUxpbWl0JCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gKGxpbWl0ICE9PSAnLTEnID8gbGltaXQgOiAnJykpXG4gIClcblxuICBzZXRPZmZzZXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgc2V0TGltaXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubGltaXQkLm5leHQodmFsdWUgPT09ICcnID8gJy0xJyA6IHZhbHVlKVxuICB9XG5cbiAgc2V0Rm9ybWF0KHZhbHVlOiBzdHJpbmcgfCB1bmtub3duKSB7XG4gICAgdGhpcy5mb3JtYXQkLm5leHQoU3RyaW5nKHZhbHVlKSlcbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KERFRkFVTFRfUEFSQU1TLk9GRlNFVClcbiAgICB0aGlzLmxpbWl0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICAgIHRoaXMuZm9ybWF0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkZPUk1BVClcbiAgfVxuXG4gIGFzeW5jIHBhcnNlT3V0cHV0Rm9ybWF0cygpIHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVyblxuICAgIGNvbnN0IG91dHB1dEZvcm1hdHMgPSAoYXdhaXQgdGhpcy5nZXRPdXRwdXRGb3JtYXRzKCkpLm1hcChcbiAgICAgIHRoaXMubWltZVR5cGVUb0Zvcm1hdE5hbWVcbiAgICApXG5cbiAgICB0aGlzLm91dHB1dEZvcm1hdHMgPSB0aGlzLm91dHB1dEZvcm1hdHNcbiAgICAgIC5jb25jYXQob3V0cHV0Rm9ybWF0cy5maWx0ZXIoQm9vbGVhbikpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudmFsdWUgPT09IGZvcm1hdC52YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpXG4gIH1cblxuICBtaW1lVHlwZVRvRm9ybWF0TmFtZShtaW1lVHlwZTogTWltZVR5cGUpOiBEcm9wZG93bkNob2ljZSB8IG51bGwge1xuICAgIGNvbnN0IGZvcm1hdE5hbWUgPSBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlKVxuICAgIHJldHVybiBmb3JtYXROYW1lXG4gICAgICA/IHsgbGFiZWw6IGZvcm1hdE5hbWUudG9VcHBlckNhc2UoKSwgdmFsdWU6IG1pbWVUeXBlIH1cbiAgICAgIDogbnVsbFxuICB9XG5cbiAgYXN5bmMgZ2V0T3V0cHV0Rm9ybWF0cygpOiBQcm9taXNlPE1pbWVUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVybiBbXVxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIHRoaXMuc3VwcG9ydE9mZnNldCA9IHRoaXMuZW5kcG9pbnQuc3VwcG9ydHNTdGFydEluZGV4KClcbiAgICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdldFNlcnZpY2VJbmZvKCkub3V0cHV0Rm9ybWF0c1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkluZm8odGhpcy5hcGlGZWF0dXJlVHlwZSkpXG4gICAgICAgIC5pdGVtRm9ybWF0c1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUVuZHBvaW50KCkge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkgcmV0dXJuXG4gICAgaWYgKHRoaXMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgdGhpcy5lbmRwb2ludCA9IG5ldyBXZnNFbmRwb2ludCh0aGlzLmFwaUJhc2VVcmwpXG4gICAgICBhd2FpdCAodGhpcy5lbmRwb2ludCBhcyBXZnNFbmRwb2ludCkuaXNSZWFkeSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5hcGlCYXNlVXJsKVxuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBhd2FpdCB0aGlzLmVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAvLyBpZiB0aGVyZSdzIG9ubHkgb25lIGNvbGxlY3Rpb24sIHVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIG5hbWUgZ2l2ZW4gaW4gdGhlIGxpbmsuXG4gICAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuYXBpRmVhdHVyZVR5cGUgPSBjb2xsZWN0aW9uc1swXS5uYW1lXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW5kcG9pbnQkLm5leHQodGhpcy5lbmRwb2ludClcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlQXBpUXVlcnlVcmwoXG4gICAgb2Zmc2V0OiBzdHJpbmcsXG4gICAgbGltaXQ6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmVuZHBvaW50IHx8ICF0aGlzLmFwaUZlYXR1cmVUeXBlKSByZXR1cm4gJydcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBvdXRwdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgIHN0YXJ0SW5kZXg6IG9mZnNldCA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgbWF4RmVhdHVyZXM6IGxpbWl0ICE9PSAnLTEnID8gTnVtYmVyKGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxpbWl0OiBsaW1pdCAhPT0gJy0xJyA/IE51bWJlcihsaW1pdCkgOiAtMSxcbiAgICAgIG9mZnNldDogb2Zmc2V0ICE9PSAnJyA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgb3V0cHV0Q3JzOlxuICAgICAgICBmb3JtYXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdqc29uJykgPiAtMSA/ICdFUFNHOjQzMjYnIDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLmxpbWl0XG4gICAgICBvcHRpb25zLm1heEZlYXR1cmVzID0gbGltaXQgIT09ICctMScgPyBOdW1iZXIobGltaXQpIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuYXBpRmVhdHVyZVR5cGUsIG9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLm91dHB1dENyc1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkl0ZW1zVXJsKFxuICAgICAgICB0aGlzLmFwaUZlYXR1cmVUeXBlLFxuICAgICAgICBvcHRpb25zXG4gICAgICApXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtOFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBiZy13aGl0ZSBwLTggbmctc3Rhci1pbnNlcnRlZCBzaGFkb3cteGwgZ2FwLThcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtWzE2cHhdIHRleHQtYmxhY2sgdHJ1bmNhdGUgZm9udC10aXRsZSB3LTExLzEyXCIgdHJhbnNsYXRlPlxuICAgICAgICByZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uY3JlYXRlXG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInJlc2V0VXJsKClcIlxuICAgICAgICBjbGFzcz1cImJnLXByaW1hcnktb3BhY2l0eS01MCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCBjYXBpdGFsaXplIHRleHQtcHJpbWFyeS1saWdodGVzdCBob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxM3B4XSB1cHBlcmNhc2VcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnJlc2V0XG4gICAgICAgIDwvcD5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBqdXN0aWZ5LWJldHdlZW4gZ3JvdyBnYXAtNVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxNHB4XVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ubGltaXQ8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICAgICBjbGFzcz1cIm1yLTIgdy0yMFwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwic2V0TGltaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheUxpbWl0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwibXItMiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIm5vTGltaXRDaGVja2VkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRMaW1pdCgnLTEnKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ubGltaXQuYWxsPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMyByZWxhdGl2ZVwiPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtc21cIiBbY2xhc3MudGV4dC1ncmF5LTYwMF09XCIhc3VwcG9ydE9mZnNldFwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICByZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ub2Zmc2V0XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGduLXVpLXRleHQtaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwidy0yMFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwib2Zmc2V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3VwcG9ydE9mZnNldFwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwic3VwcG9ydE9mZnNldCA/IHNldE9mZnNldCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIiFzdXBwb3J0T2Zmc2V0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1vcmFuZ2UtNTAwIHotMTAgbWwtM1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIk5vdCBzdXBwb3J0ZWQgb24gdGhpcyBzZXJ2aWNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgd2FybmluZ1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS50eXBlPC9wPlxuICAgICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgICAjZHJvcGRvd25cbiAgICAgICAgICBbdGl0bGVdPVwiJydcIlxuICAgICAgICAgIGV4dHJhQnRuQ2xhc3M9XCJzZWNvbmRhcnkgbWluLXctZnVsbCAhdy00MCAhdGV4dC1ibGFja1wiXG4gICAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJsYWNrXCJcbiAgICAgICAgICBbY2hvaWNlc109XCJvdXRwdXRGb3JtYXRzXCJcbiAgICAgICAgICAoc2VsZWN0VmFsdWUpPVwic2V0Rm9ybWF0KCRldmVudClcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCJmb3JtYXQkIHwgYXN5bmNcIlxuICAgICAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgbWItM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtYmxhY2sgdHJ1bmNhdGUgZm9udC10aXRsZSB3LTExLzEyXCIgdHJhbnNsYXRlPlxuICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmN1c3RvbVVybFxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiZy13aGl0ZSByb3VuZGVkLWxnXCI+XG4gICAgICA8Z24tdWktY29weS10ZXh0LWJ1dHRvblxuICAgICAgICBbdGV4dF09XCJhcGlRdWVyeVVybCQgfCBhc3luY1wiXG4gICAgICA+PC9nbi11aS1jb3B5LXRleHQtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|