@seniorsistemas/angular-components 19.9.3 → 19.9.5
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/autocomplete/README.md +4 -0
- package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +7 -1
- package/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.d.ts +3 -1
- package/checkbox/lib/checkbox/checkbox.component.d.ts +1 -6
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +8 -0
- package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -2
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -0
- package/drawer/README.md +9 -2
- package/drawer/lib/drawer/drawer.component.d.ts +12 -1
- package/editor/lib/editor/editor.component.d.ts +1 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +10 -4
- package/esm2022/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +5 -3
- package/esm2022/button/lib/button/button.component.mjs +3 -3
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +3 -9
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +17 -5
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +9 -8
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +18 -3
- package/esm2022/drawer/lib/drawer/drawer.component.mjs +33 -11
- package/esm2022/drawer/lib/drawer/drawer.module.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.mjs +4 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +3 -3
- package/esm2022/editor/lib/editor/editor.component.mjs +8 -8
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/global-search.module.mjs +2 -2
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +3 -3
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +2 -3
- package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +21 -3
- package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +14 -3
- package/esm2022/insights/lib/insights/insights.component.mjs +15 -4
- package/esm2022/paginator/lib/models/paginator.models.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +19 -13
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +19 -8
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +3 -4
- package/esm2022/rating-scale/lib/rating-scale/models/rating-scale-node.mjs +1 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +23 -3
- package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +5 -3
- package/esm2022/select/lib/select/select.component.mjs +6 -4
- package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +6 -5
- package/esm2022/slider/lib/slider/slider.component.mjs +3 -3
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +58 -8
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +11 -3
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +1 -1
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +14 -21
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/token-list/lib/token-list/token-list.component.mjs +7 -3
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +3 -2
- package/esm2022/utils/lib/utils/utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +13 -5
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +16 -4
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +2 -8
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +8 -6
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -2
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +32 -9
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +17 -17
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +3 -4
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +47 -7
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +18 -12
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +20 -9
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +22 -2
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +9 -5
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +5 -4
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +57 -7
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +13 -20
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -2
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +1 -1
- package/global-search/lib/global-search/global-search.module.d.ts +1 -1
- package/insights/README.md +12 -0
- package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +22 -1
- package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +9 -1
- package/insights/lib/insights/insights.component.d.ts +9 -1
- package/package.json +1 -3
- package/paginator/lib/models/paginator.models.d.ts +1 -0
- package/paginator/lib/paginator/paginator.component.d.ts +3 -1
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +3 -1
- package/rating-scale/README.md +38 -13
- package/rating-scale/lib/rating-scale/models/rating-scale-node.d.ts +8 -0
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +4 -1
- package/select/README.md +2 -0
- package/select/lib/select/components/select-option/select-option.component.d.ts +3 -1
- package/select/lib/select/select.component.d.ts +3 -1
- package/side-sheet/README.md +4 -4
- package/side-sheet/lib/side-sheet/side-sheet.component.d.ts +1 -0
- package/speech-recognition/README.md +1 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +4 -1
- package/split-button/README.md +2 -0
- package/split-button/lib/split-button/split-button.component.d.ts +5 -1
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -4
- package/token-list/lib/token-list/token-list.component.d.ts +3 -1
- package/utils/lib/utils/utils.d.ts +21 -0
|
@@ -11,7 +11,7 @@ import { ALL_PERMISSIONS } from './models/file-picker-permissions';
|
|
|
11
11
|
import { ButtonComponent } from '@seniorsistemas/angular-components/button';
|
|
12
12
|
import { NgTemplateOutlet } from '@angular/common';
|
|
13
13
|
import { ProgressBarComponent } from '@seniorsistemas/angular-components/progressbar';
|
|
14
|
-
import {
|
|
14
|
+
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
import * as i1 from "@seniorsistemas/angular-components/common/deprecated-selector";
|
|
17
17
|
/**
|
|
@@ -281,7 +281,7 @@ export class FilePickerComponent {
|
|
|
281
281
|
removalVersion: '20.0.0',
|
|
282
282
|
},
|
|
283
283
|
},
|
|
284
|
-
], viewQueries: [{ propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }, { propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"file-picker\"\n>\n <div class=\"file-picker-choose\">\n <input\n #inputUpload\n [id]=\"id + 'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"_onInputFileSelect($event)\"\n />\n @if (permissions.includes(ADD_PERMISSION)) {\n <s-button\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (clicked)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formControl?.disabled || fileLimit === files.length\"\n [auxiliary]=\"false\"\n >\n </s-button>\n }\n </div>\n\n @if (files.length) {\n <section\n [id]=\"id + 'fileupload-list'\"\n class=\"file-picker-list\"\n role=\"grid\"\n >\n @for (file of files; track file; let i = $index) {\n <div\n class=\"file-picker-list-file\"\n role=\"row\"\n >\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"flex flex-grow items-center justify-between overflow-hidden text-ellipsis text-nowrap\"\n role=\"gridcell\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (permissions.includes(READ_PERMISSION) && file.savedFile) || file.progress === 100\n ? descriptionUrl\n : description;\n context: {\n $implicit: file,\n index: i,\n }\n \"\n >\n </ng-container>\n\n <span>{{ formatFileSize(file.size) }}</span>\n\n @if (modifiedDate) {\n <span class=\"file-picker-list-file-name-date\">{{ modifiedDate }}</span>\n }\n </div>\n <div\n class=\"file-picker-list-file-status\"\n role=\"gridcell\"\n >\n @if (file.isUploading && !isSmallDevice) {\n <div class=\"w-64\">\n <s-progressbar\n [value]=\"file.progress ?? 0\"\n [showValue]=\"false\"\n activeColor=\"blue\"\n ></s-progressbar>\n </div>\n }\n\n @if (file.isUploading && isSmallDevice) {\n <span\n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"\n ariaLabelProgress || 'platform.angular_components.loading_file' | translate\n \"\n >\n </span>\n }\n\n @if (!file.isUploading && !file.error && file.progress === 100) {\n <span\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"\n ariaLabelSuccess ||\n successTooltip ||\n 'platform.angular_components.file_attached_successfully' | translate\n \"\n [pTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\n >\n </span>\n }\n\n @if (file.error?.message) {\n <span\n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [pTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\n >\n </span>\n }\n </div>\n <div\n class=\"file-picker-list-file-actions\"\n role=\"gridcell\"\n >\n @if (file.isUploading) {\n <a\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\"\n >\n {{ cancelLabel || 'platform.angular_components.cancel' | translate }}\n </a>\n }\n\n @if (\n permissions.includes(REMOVE_PERMISSION) &&\n !file.isUploading &&\n !(disabled || !!formControl?.disabled)\n ) {\n <a\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"\n ariaLabelRemove || removeLabel || 'platform.angular_components.remove' | translate\n \"\n >\n {{ removeLabel || 'platform.angular_components.remove' | translate }}\n </a>\n }\n </div>\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i=\"index\"\n>\n <div class=\"flex justify-between\">\n <div>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"break-words\"\n >{{ file.name }}\n </a>\n <a\n style=\"display: none\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor\n >\n </a>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #description\n let-file\n>\n <div class=\"flex justify-between\">\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n", styles: [".file-picker .file-picker-choose{position:relative;margin:15px 0;width:max-content}.file-picker input[type=file]{display:none}.file-picker-list{border:1px solid #ccc}.file-picker-list-file:not(:first-child){border-top:1px solid #ccc}.file-picker-list .file-picker-list-file{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:15px}.file-picker-list .file-picker-list-file .file-picker-list-file-name{display:flex;flex-direction:column;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-picker-list .file-picker-list-file .file-picker-list-file-name .file-picker-list-file-name-date{font-size:.75rem;color:#999}.file-picker-list .file-picker-list-file .file-picker-list-file-name>a{cursor:pointer;text-decoration:none}.file-picker-list .file-picker-list-file .file-picker-list-file-status{align-self:center}.file-picker-list .file-picker-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-check{color:#0c9348;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-times{color:#c13018;font-size:12px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin-top:15px;align-self:center;width:100%}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action{text-decoration:none;color:#428bca}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action:hover,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :focus,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :visited{text-decoration:none}@media (min-width: 768px){.file-picker-list .file-picker-list-file{flex-wrap:nowrap}.file-picker-list .file-picker-list-file .file-picker-list-file-name{width:auto;flex-grow:2}.file-picker-list .file-picker-list-file .file-picker-list-file-status{margin:0 15px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin:0;width:auto}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ProgressBarComponent, selector: "s-progressbar", inputs: ["value", "activeColor", "numberFormatOptions", "targetValue", "label", "targetLabel", "showValue", "mode"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
284
|
+
], viewQueries: [{ propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }, { propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"file-picker\"\n>\n <div class=\"file-picker-choose\">\n <input\n #inputUpload\n [id]=\"id + 'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"_onInputFileSelect($event)\"\n />\n @if (permissions.includes(ADD_PERMISSION)) {\n <s-button\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (clicked)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formControl?.disabled || fileLimit === files.length\"\n [auxiliary]=\"false\"\n >\n </s-button>\n }\n </div>\n\n @if (files.length) {\n <section\n [id]=\"id + 'fileupload-list'\"\n class=\"file-picker-list\"\n role=\"grid\"\n >\n @for (file of files; track file; let i = $index) {\n <div\n class=\"file-picker-list-file\"\n role=\"row\"\n >\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"flex flex-grow items-center justify-between overflow-hidden text-ellipsis text-nowrap\"\n role=\"gridcell\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (permissions.includes(READ_PERMISSION) && file.savedFile) || file.progress === 100\n ? descriptionUrl\n : description;\n context: {\n $implicit: file,\n index: i,\n }\n \"\n >\n </ng-container>\n\n <span>{{ formatFileSize(file.size) }}</span>\n\n @if (modifiedDate) {\n <span class=\"file-picker-list-file-name-date\">{{ modifiedDate }}</span>\n }\n </div>\n <div\n class=\"file-picker-list-file-status\"\n role=\"gridcell\"\n >\n @if (file.isUploading && !isSmallDevice) {\n <div class=\"w-64\">\n <s-progressbar\n [value]=\"file.progress ?? 0\"\n [showValue]=\"false\"\n activeColor=\"blue\"\n ></s-progressbar>\n </div>\n }\n\n @if (file.isUploading && isSmallDevice) {\n <span\n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"\n ariaLabelProgress || 'platform.angular_components.loading_file' | translate\n \"\n >\n </span>\n }\n\n @if (!file.isUploading && !file.error && file.progress === 100) {\n <span\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"\n ariaLabelSuccess ||\n successTooltip ||\n 'platform.angular_components.file_attached_successfully' | translate\n \"\n [sTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n\n @if (file.error?.message) {\n <span\n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [sTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n </div>\n <div\n class=\"file-picker-list-file-actions\"\n role=\"gridcell\"\n >\n @if (file.isUploading) {\n <a\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\"\n >\n {{ cancelLabel || 'platform.angular_components.cancel' | translate }}\n </a>\n }\n\n @if (\n permissions.includes(REMOVE_PERMISSION) &&\n !file.isUploading &&\n !(disabled || !!formControl?.disabled)\n ) {\n <a\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"\n ariaLabelRemove || removeLabel || 'platform.angular_components.remove' | translate\n \"\n >\n {{ removeLabel || 'platform.angular_components.remove' | translate }}\n </a>\n }\n </div>\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i=\"index\"\n>\n <div class=\"flex justify-between\">\n <div>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"break-words\"\n >{{ file.name }}\n </a>\n <a\n style=\"display: none\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor\n >\n </a>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #description\n let-file\n>\n <div class=\"flex justify-between\">\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n", styles: [".file-picker .file-picker-choose{position:relative;margin:15px 0;width:max-content}.file-picker input[type=file]{display:none}.file-picker-list{border:1px solid #ccc}.file-picker-list-file:not(:first-child){border-top:1px solid #ccc}.file-picker-list .file-picker-list-file{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:15px}.file-picker-list .file-picker-list-file .file-picker-list-file-name{display:flex;flex-direction:column;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-picker-list .file-picker-list-file .file-picker-list-file-name .file-picker-list-file-name-date{font-size:.75rem;color:#999}.file-picker-list .file-picker-list-file .file-picker-list-file-name>a{cursor:pointer;text-decoration:none}.file-picker-list .file-picker-list-file .file-picker-list-file-status{align-self:center}.file-picker-list .file-picker-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-check{color:#0c9348;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-times{color:#c13018;font-size:12px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin-top:15px;align-self:center;width:100%}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action{text-decoration:none;color:#428bca}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action:hover,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :focus,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :visited{text-decoration:none}@media (min-width: 768px){.file-picker-list .file-picker-list-file{flex-wrap:nowrap}.file-picker-list .file-picker-list-file .file-picker-list-file-name{width:auto;flex-grow:2}.file-picker-list .file-picker-list-file .file-picker-list-file-status{margin:0 15px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin:0;width:auto}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ProgressBarComponent, selector: "s-progressbar", inputs: ["value", "activeColor", "numberFormatOptions", "targetValue", "label", "targetLabel", "showValue", "mode"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
285
285
|
}
|
|
286
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilePickerComponent, decorators: [{
|
|
287
287
|
type: Component,
|
|
@@ -294,7 +294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
294
294
|
removalVersion: '20.0.0',
|
|
295
295
|
},
|
|
296
296
|
},
|
|
297
|
-
], standalone: true, imports: [ButtonComponent, NgTemplateOutlet, ProgressBarComponent, Tooltip, TranslatePipe], template: "<div\n [id]=\"id\"\n class=\"file-picker\"\n>\n <div class=\"file-picker-choose\">\n <input\n #inputUpload\n [id]=\"id + 'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"_onInputFileSelect($event)\"\n />\n @if (permissions.includes(ADD_PERMISSION)) {\n <s-button\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (clicked)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formControl?.disabled || fileLimit === files.length\"\n [auxiliary]=\"false\"\n >\n </s-button>\n }\n </div>\n\n @if (files.length) {\n <section\n [id]=\"id + 'fileupload-list'\"\n class=\"file-picker-list\"\n role=\"grid\"\n >\n @for (file of files; track file; let i = $index) {\n <div\n class=\"file-picker-list-file\"\n role=\"row\"\n >\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"flex flex-grow items-center justify-between overflow-hidden text-ellipsis text-nowrap\"\n role=\"gridcell\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (permissions.includes(READ_PERMISSION) && file.savedFile) || file.progress === 100\n ? descriptionUrl\n : description;\n context: {\n $implicit: file,\n index: i,\n }\n \"\n >\n </ng-container>\n\n <span>{{ formatFileSize(file.size) }}</span>\n\n @if (modifiedDate) {\n <span class=\"file-picker-list-file-name-date\">{{ modifiedDate }}</span>\n }\n </div>\n <div\n class=\"file-picker-list-file-status\"\n role=\"gridcell\"\n >\n @if (file.isUploading && !isSmallDevice) {\n <div class=\"w-64\">\n <s-progressbar\n [value]=\"file.progress ?? 0\"\n [showValue]=\"false\"\n activeColor=\"blue\"\n ></s-progressbar>\n </div>\n }\n\n @if (file.isUploading && isSmallDevice) {\n <span\n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"\n ariaLabelProgress || 'platform.angular_components.loading_file' | translate\n \"\n >\n </span>\n }\n\n @if (!file.isUploading && !file.error && file.progress === 100) {\n <span\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"\n ariaLabelSuccess ||\n successTooltip ||\n 'platform.angular_components.file_attached_successfully' | translate\n \"\n [pTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\n >\n </span>\n }\n\n @if (file.error?.message) {\n <span\n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [pTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\n >\n </span>\n }\n </div>\n <div\n class=\"file-picker-list-file-actions\"\n role=\"gridcell\"\n >\n @if (file.isUploading) {\n <a\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\"\n >\n {{ cancelLabel || 'platform.angular_components.cancel' | translate }}\n </a>\n }\n\n @if (\n permissions.includes(REMOVE_PERMISSION) &&\n !file.isUploading &&\n !(disabled || !!formControl?.disabled)\n ) {\n <a\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"\n ariaLabelRemove || removeLabel || 'platform.angular_components.remove' | translate\n \"\n >\n {{ removeLabel || 'platform.angular_components.remove' | translate }}\n </a>\n }\n </div>\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i=\"index\"\n>\n <div class=\"flex justify-between\">\n <div>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"break-words\"\n >{{ file.name }}\n </a>\n <a\n style=\"display: none\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor\n >\n </a>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #description\n let-file\n>\n <div class=\"flex justify-between\">\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n", styles: [".file-picker .file-picker-choose{position:relative;margin:15px 0;width:max-content}.file-picker input[type=file]{display:none}.file-picker-list{border:1px solid #ccc}.file-picker-list-file:not(:first-child){border-top:1px solid #ccc}.file-picker-list .file-picker-list-file{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:15px}.file-picker-list .file-picker-list-file .file-picker-list-file-name{display:flex;flex-direction:column;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-picker-list .file-picker-list-file .file-picker-list-file-name .file-picker-list-file-name-date{font-size:.75rem;color:#999}.file-picker-list .file-picker-list-file .file-picker-list-file-name>a{cursor:pointer;text-decoration:none}.file-picker-list .file-picker-list-file .file-picker-list-file-status{align-self:center}.file-picker-list .file-picker-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-check{color:#0c9348;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-times{color:#c13018;font-size:12px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin-top:15px;align-self:center;width:100%}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action{text-decoration:none;color:#428bca}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action:hover,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :focus,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :visited{text-decoration:none}@media (min-width: 768px){.file-picker-list .file-picker-list-file{flex-wrap:nowrap}.file-picker-list .file-picker-list-file .file-picker-list-file-name{width:auto;flex-grow:2}.file-picker-list .file-picker-list-file .file-picker-list-file-status{margin:0 15px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin:0;width:auto}}\n"] }]
|
|
297
|
+
], standalone: true, imports: [ButtonComponent, NgTemplateOutlet, ProgressBarComponent, TooltipDirective, TranslatePipe], template: "<div\n [id]=\"id\"\n class=\"file-picker\"\n>\n <div class=\"file-picker-choose\">\n <input\n #inputUpload\n [id]=\"id + 'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"_onInputFileSelect($event)\"\n />\n @if (permissions.includes(ADD_PERMISSION)) {\n <s-button\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (clicked)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formControl?.disabled || fileLimit === files.length\"\n [auxiliary]=\"false\"\n >\n </s-button>\n }\n </div>\n\n @if (files.length) {\n <section\n [id]=\"id + 'fileupload-list'\"\n class=\"file-picker-list\"\n role=\"grid\"\n >\n @for (file of files; track file; let i = $index) {\n <div\n class=\"file-picker-list-file\"\n role=\"row\"\n >\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"flex flex-grow items-center justify-between overflow-hidden text-ellipsis text-nowrap\"\n role=\"gridcell\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (permissions.includes(READ_PERMISSION) && file.savedFile) || file.progress === 100\n ? descriptionUrl\n : description;\n context: {\n $implicit: file,\n index: i,\n }\n \"\n >\n </ng-container>\n\n <span>{{ formatFileSize(file.size) }}</span>\n\n @if (modifiedDate) {\n <span class=\"file-picker-list-file-name-date\">{{ modifiedDate }}</span>\n }\n </div>\n <div\n class=\"file-picker-list-file-status\"\n role=\"gridcell\"\n >\n @if (file.isUploading && !isSmallDevice) {\n <div class=\"w-64\">\n <s-progressbar\n [value]=\"file.progress ?? 0\"\n [showValue]=\"false\"\n activeColor=\"blue\"\n ></s-progressbar>\n </div>\n }\n\n @if (file.isUploading && isSmallDevice) {\n <span\n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"\n ariaLabelProgress || 'platform.angular_components.loading_file' | translate\n \"\n >\n </span>\n }\n\n @if (!file.isUploading && !file.error && file.progress === 100) {\n <span\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"\n ariaLabelSuccess ||\n successTooltip ||\n 'platform.angular_components.file_attached_successfully' | translate\n \"\n [sTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n\n @if (file.error?.message) {\n <span\n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [sTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n </div>\n <div\n class=\"file-picker-list-file-actions\"\n role=\"gridcell\"\n >\n @if (file.isUploading) {\n <a\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\"\n >\n {{ cancelLabel || 'platform.angular_components.cancel' | translate }}\n </a>\n }\n\n @if (\n permissions.includes(REMOVE_PERMISSION) &&\n !file.isUploading &&\n !(disabled || !!formControl?.disabled)\n ) {\n <a\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"\n ariaLabelRemove || removeLabel || 'platform.angular_components.remove' | translate\n \"\n >\n {{ removeLabel || 'platform.angular_components.remove' | translate }}\n </a>\n }\n </div>\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i=\"index\"\n>\n <div class=\"flex justify-between\">\n <div>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"break-words\"\n >{{ file.name }}\n </a>\n <a\n style=\"display: none\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor\n >\n </a>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #description\n let-file\n>\n <div class=\"flex justify-between\">\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n", styles: [".file-picker .file-picker-choose{position:relative;margin:15px 0;width:max-content}.file-picker input[type=file]{display:none}.file-picker-list{border:1px solid #ccc}.file-picker-list-file:not(:first-child){border-top:1px solid #ccc}.file-picker-list .file-picker-list-file{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:15px}.file-picker-list .file-picker-list-file .file-picker-list-file-name{display:flex;flex-direction:column;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-picker-list .file-picker-list-file .file-picker-list-file-name .file-picker-list-file-name-date{font-size:.75rem;color:#999}.file-picker-list .file-picker-list-file .file-picker-list-file-name>a{cursor:pointer;text-decoration:none}.file-picker-list .file-picker-list-file .file-picker-list-file-status{align-self:center}.file-picker-list .file-picker-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-check{color:#0c9348;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-times{color:#c13018;font-size:12px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin-top:15px;align-self:center;width:100%}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action{text-decoration:none;color:#428bca}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action:hover,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :focus,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :visited{text-decoration:none}@media (min-width: 768px){.file-picker-list .file-picker-list-file{flex-wrap:nowrap}.file-picker-list .file-picker-list-file .file-picker-list-file-name{width:auto;flex-grow:2}.file-picker-list .file-picker-list-file .file-picker-list-file-status{margin:0 15px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin:0;width:auto}}\n"] }]
|
|
298
298
|
}], propDecorators: { inputUpload: [{
|
|
299
299
|
type: ViewChild,
|
|
300
300
|
args: ['inputUpload', { static: false }]
|
|
@@ -357,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
357
357
|
type: HostListener,
|
|
358
358
|
args: ['window:resize']
|
|
359
359
|
}] } });
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2ZpbGUtcGlja2VyL3NyYy9saWIvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2ZpbGUtcGlja2VyL3NyYy9saWIvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUF5QixNQUFNLGtDQUFrQyxDQUFDO0FBRzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNu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S0FBSztnQkFLQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBS0MsY0FBYztzQkFEcEIsS0FBSztnQkFLQyxlQUFlO3NCQURyQixLQUFLO2dCQUtDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxLQUFLO2dCQUtDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFLQyxXQUFXO3NCQURqQixLQUFLO2dCQVFLLEtBQUs7c0JBRGYsS0FBSztnQkFpQkMsYUFBYTtzQkFEbkIsTUFBTTtnQkFLQSxVQUFVO3NCQURoQixNQUFNO2dCQUtBLFlBQVk7c0JBRGxCLE1BQU07Z0JBS0EsWUFBWTtzQkFEbEIsTUFBTTtnQkFLQSxjQUFjO3NCQURwQixNQUFNO2dCQXlCQSxRQUFRO3NCQURkLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IERFUFJFQ0FURURfQ09ORklHIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jb21tb24vZGVwcmVjYXRlZC1zZWxlY3Rvcic7XHJcbmltcG9ydCB7IERlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2RlcHJlY2F0ZWQtc2VsZWN0b3InO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50cywgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGaWxlUGlja2VyU2VydmljZSB9IGZyb20gJy4vZmlsZS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVEdG8gfSBmcm9tICcuL21vZGVscy9maWxlLWR0byc7XHJcbmltcG9ydCB7IEFMTF9QRVJNSVNTSU9OUywgRmlsZVBpY2tlclBlcm1pc3Npb25zIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS1waWNrZXItcGVybWlzc2lvbnMnO1xyXG5pbXBvcnQgeyBMaXN0QmxvYk1ldGFkYXRhUmVzcG9uc2UgfSBmcm9tICcuL21vZGVscy9saXN0LWJsb2ItbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBVcGxvYWRFcnJvciB9IGZyb20gJy4vbW9kZWxzL3VwbG9hZEVycm9yJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Byb2dyZXNzYmFyJztcclxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgdXBsb2FkIGRlIGFycXVpdm9zIGNvbSBzdXBvcnRlIGEgc2VsZcOnw6NvIG3Dumx0aXBsYSxcclxuICogdmFsaWRhw6fDo28gZGUgdGlwby90YW1hbmhvLCBjb250cm9sZSBkZSBwZXJtaXNzw7VlcyAoYWRpY2lvbmFyLCBsZXIsIHJlbW92ZXIpLFxyXG4gKiBkb3dubG9hZCBlIGNhbmNlbGFtZW50byBkZSB1cGxvYWRzIGVtIGFuZGFtZW50by5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1maWxlLXBpY2tlclxyXG4gKiAgIFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICogICBhY2NlcHQ9XCJhcHBsaWNhdGlvbi9wZGZcIlxyXG4gKiAgIFttYXhGaWxlU2l6ZV09XCI1MjQyODgwXCJcclxuICogICBbZmlsZXNdPVwiYXJxdWl2b3NcIlxyXG4gKiAgICh1cGxvYWRIYW5kbGVyKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gKiAgIChyZW1vdmVGaWxlKT1cIm9uUmVtb3ZlKCRldmVudClcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtZmlsZS1waWNrZXIsIHMtZmlsZS11cGxvYWQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBob3N0RGlyZWN0aXZlczogW0RlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZV0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IERFUFJFQ0FURURfQ09ORklHLFxyXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xyXG4gICAgICAgICAgICAgICAgb2xkU2VsZWN0b3I6ICdzLWZpbGUtdXBsb2FkJyxcclxuICAgICAgICAgICAgICAgIG5ld1NlbGVjdG9yOiAncy1maWxlLXBpY2tlcicsXHJcbiAgICAgICAgICAgICAgICByZW1vdmFsVmVyc2lvbjogJzIwLjAuMCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgUHJvZ3Jlc3NCYXJDb21wb25lbnQsIFRvb2x0aXAsIFRyYW5zbGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVQaWNrZXJTZXJ2aWNlID0gaW5qZWN0KEZpbGVQaWNrZXJTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcclxuXHJcbiAgICBwdWJsaWMgQUREX1BFUk1JU1NJT046IEZpbGVQaWNrZXJQZXJtaXNzaW9ucyA9ICdhZGQnO1xyXG4gICAgcHVibGljIFJFQURfUEVSTUlTU0lPTjogRmlsZVBpY2tlclBlcm1pc3Npb25zID0gJ3JlYWQnO1xyXG4gICAgcHVibGljIFJFTU9WRV9QRVJNSVNTSU9OOiBGaWxlUGlja2VyUGVybWlzc2lvbnMgPSAncmVtb3ZlJztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFVwbG9hZDogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2FuY2hvcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmNob3I6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3IgZG8gY29tcG9uZW50ZSBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYHMtZmlsZS1waWNrZXItJHtGaWxlUGlja2VyQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRvIGJvdMOjbyBkZSBzZWxlw6fDo28gZGUgYXJxdWl2by4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2hvb3NlTGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRvIGJvdMOjbyBkZSByZW1vw6fDo28gZGUgYXJxdWl2by4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVtb3ZlTGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRvIGJvdMOjbyBkZSBjYW5jZWxhbWVudG8gZGUgdXBsb2FkLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYW5jZWxMYWJlbD86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGRvIHRvb2x0aXAgZXhpYmlkbyBhcMOzcyB1cGxvYWQgYmVtLXN1Y2VkaWRvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzdWNjZXNzVG9vbHRpcD86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBlcm1pdGUgc2VsZWNpb25hciBtw7psdGlwbG9zIGFycXVpdm9zIGFvIG1lc21vIHRlbXBvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtdWx0aXBsZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaXBvcyBNSU1FIGFjZWl0b3MgcGVsbyBzZWxldG9yIGRlIGFycXVpdm8gKGV4LjogYCdhcHBsaWNhdGlvbi9wZGYsaW1hZ2UvKidgKS4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYWNjZXB0Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgZXh0ZW5zw7VlcyBkZSBhcnF1aXZvIGFjZWl0YXMgcGFyYSB2YWxpZGHDp8OjbyAoZXguOiBgWycucGRmJywgJy5kb2N4J11gKS4gQGRlZmF1bHQgW10gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIEFSSUEgcGFyYSBvIG5vbWUgZG8gYXJxdWl2bywgcGFyYSBsZWl0b3JlcyBkZSB0ZWxhLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxGaWxlTmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRhbWFuaG8gbcOheGltbyBwb3IgYXJxdWl2byBlbSBieXRlcy4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4RmlsZVNpemU/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUYW1hbmhvIG3DoXhpbW8gY29tYmluYWRvIGRlIHRvZG9zIG9zIGFycXVpdm9zIGVtIGJ5dGVzLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtYXhDb21iaW5lZEZpbGVTaXplPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBtw6F4aW1vIGRlIGFycXVpdm9zIHF1ZSBwb2RlbSBzZXIgc2VsZWNpb25hZG9zLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlTGltaXQ/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMYWJlbCBBUklBIHBhcmEgYSBiYXJyYSBkZSBwcm9ncmVzc28gZG8gdXBsb2FkLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxQcm9ncmVzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIEFSSUEgcGFyYSBvIMOtY29uZSBkZSBzdWNlc3NvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxTdWNjZXNzPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGFiZWwgQVJJQSBwYXJhIG1lbnNhZ2VucyBkZSBlcnJvIGRlIHZhbGlkYcOnw6NvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxFcnJvcj86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIEFSSUEgcGFyYSBvIGJvdMOjbyBkZSByZW1vw6fDo28gZGUgYXJxdWl2by4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXJpYUxhYmVsUmVtb3ZlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRm9ybUNvbnRyb2wgZXh0ZXJubyB2aW5jdWxhZG8gYW8gY29tcG9uZW50ZSBwYXJhIGNvbnRyb2xlIGRlIGVzdGFkby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlc2FiaWxpdGEgdG9kYXMgYXMgaW50ZXJhw6fDtWVzIGRvIGNvbXBvbmVudGUuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeGliZSBhIGRhdGEgZGUgdXBsb2FkIGRlIGNhZGEgYXJxdWl2by4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0ZpbGVVcGxvYWREYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBwZXJtaXNzw7VlcyBoYWJpbGl0YWRhcyBubyBjb21wb25lbnRlOiBgJ2FkZCdgLCBgJ3JlYWQnYCwgYCdyZW1vdmUnYC4gQGRlZmF1bHQgQUxMX1BFUk1JU1NJT05TICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBlcm1pc3Npb25zOiBGaWxlUGlja2VyUGVybWlzc2lvbnNbXSA9IEFMTF9QRVJNSVNTSU9OUztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBhcnF1aXZvcyBqw6EgZW52aWFkb3MgYSBzZXJlbSBleGliaWRvcyBubyBjb21wb25lbnRlLlxyXG4gICAgICogQW8gYXRyaWJ1aXIsIG9zIGFycXVpdm9zIHPDo28gcHJvY2Vzc2Fkb3MgZSBzdWFzIFVSTHMgc8OjbyBnZXJhZGFzIHBhcmEgcHJldmlldy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZmlsZXMoZmlsZXM6IEZpbGVEdG9bXSkge1xyXG4gICAgICAgIGlmICghZmlsZXMgfHwgZmlsZXM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWxlcyA9IFtdO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNob3dGaWxlVXBsb2FkRGF0ZSAmJiBmaWxlc1swXT8ub2JqZWN0SWQpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRVcGxvYWREYXRlKGZpbGVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZmlsZXMgPSBmaWxlcy5tYXAoKGZpbGUpID0+IHtcclxuICAgICAgICAgICAgZmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIHNlbGVjaW9uYSBhcnF1aXZvcyB2w6FsaWRvcyBwYXJhIHVwbG9hZC4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHVwbG9hZEhhbmRsZXI6IEV2ZW50RW1pdHRlcjx7IGZpbGVzOiBGaWxlRHRvW10gfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIHJlbW92ZSB1bSBhcnF1aXZvIGRhIGxpc3RhLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVtb3ZlRmlsZTogRXZlbnRFbWl0dGVyPHsgZmlsZTogRmlsZSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdXN1w6FyaW8gY2FuY2VsYSB1bSB1cGxvYWQgZW0gYW5kYW1lbnRvLiBFbWl0ZSBvIMOtbmRpY2UgZG8gYXJxdWl2byBjYW5jZWxhZG8uICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBjYW5jZWxVcGxvYWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYSBwYXJhIGJhaXhhciB1bSBhcnF1aXZvLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlOiBFdmVudEVtaXR0ZXI8eyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyB1bSBhcnF1aXZvIG7Do28gcGFzc2EgbmEgdmFsaWRhw6fDo28gZGUgdGlwbywgdGFtYW5obyBvdSBsaW1pdGUuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB2YWxpZGF0ZUVycm9yczogRXZlbnRFbWl0dGVyPFVwbG9hZEVycm9yPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBwcml2YXRlIF9maWxlczogRmlsZUR0b1tdID0gW107XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVXN1YnNjcmliZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBwdWJsaWMgaXNTbWFsbERldmljZSA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlucHV0VmFsdWUgPSAnJztcclxuICAgIHB1YmxpYyBtb2RpZmllZERhdGU/OiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucyA9IHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucy5tYXAoKGV4dGVuc2lvbikgPT5cclxuICAgICAgICAgICAgZXh0ZW5zaW9uLnJlcGxhY2UoJy4nLCAnJykudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLm5nVXN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgICBwdWJsaWMgb25SZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgX29uSW5wdXRGaWxlU2VsZWN0KCRldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBldmVudFRhcmdldEZpbGVzID0gKCRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmZpbGVzIGFzIEZpbGVMaXN0O1xyXG4gICAgICAgIGNvbnN0IGRhdGFUcmFuc2ZlckZpbGVzID0gKCRldmVudCBhcyBEcmFnRXZlbnQpLmRhdGFUcmFuc2Zlcj8uZmlsZXMgYXMgRmlsZUxpc3Q7XHJcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVEdG9bXSA9IEFycmF5LmZyb20oZGF0YVRyYW5zZmVyRmlsZXMgPyBkYXRhVHJhbnNmZXJGaWxlcyA6IGV2ZW50VGFyZ2V0RmlsZXMpO1xyXG4gICAgICAgIHRoaXMub25GaWxlU2VsZWN0KGZpbGVzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25GaWxlU2VsZWN0KGZpbGVzOiBGaWxlRHRvW10pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXdGaWxlczogRmlsZUR0b1tdID0gW107XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0ZpbGVMaW1pdEV4Y2VlZGVkKGZpbGVzKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRXJyb3JzLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgZmlsZXMsXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiAnbWF4RmlsZUxpbWl0JyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWxlSW5wdXQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNGaWxlQ29tYmluZWRTaXplRXhjZWVkZWQoZmlsZXMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcnMuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBmaWxlczogZmlsZXMsXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiAnbWF4Q29tYmluZWRGaWxlU2l6ZScsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsZUlucHV0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcclxuICAgICAgICAgICAgICAgICAgICBmaWxlczogW2ZpbGVdLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246ICd1bnN1cHBvcnRlZEV4dGVuc2lvbicsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0ZpbGVTaXplRXhjZWVkZWQoZmlsZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcnMuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IFtmaWxlXSxcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiAnbWF4RmlsZVNpemUnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbmV3RmlsZXMucHVzaChmaWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChuZXdGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlcyA9IHRoaXMuZmlsZXMuY29uY2F0KG5ld0ZpbGVzKTtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRIYW5kbGVyLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgZmlsZXM6IG5ld0ZpbGVzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlSW5wdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25SZW1vdmVGaWxlKGZpbGU6IEZpbGVEdG8pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlSW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZEZpbGVzID0gdGhpcy5maWxlcy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuXHJcbiAgICAgICAgaWYgKHJlbW92ZWRGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlLmVtaXQoeyBmaWxlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DYW5jZWxVcGxvYWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHJlbW92ZWRGaWxlcyA9IHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHJcbiAgICAgICAgaWYgKHJlbW92ZWRGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWQuZW1pdChpbmRleCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsZWFyRmlsZUlucHV0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRG93bG9hZEZpbGUoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmFuY2hvcikpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUuZW1pdCh7XHJcbiAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuYW5jaG9yLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZmlsZXMoKTogRmlsZUR0b1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvcm1hdEZpbGVTaXplKHNpemU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHNpemUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcwIEJ5dGVzJztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgayA9IDEwMjQ7XHJcbiAgICAgICAgY29uc3Qgc2l6ZXMgPSBbJ2J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XHJcbiAgICAgICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoKHNpemUgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZCgyKSkgKyAnICcgKyBzaXplc1tpXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZSgpIHtcclxuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICAgIHRoaXMuaXNTbWFsbERldmljZSA9IHdpbmRvd1dpZHRoIDw9IEJyZWFrcG9pbnRzLlNNX01BWDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzRmlsZUxpbWl0RXhjZWVkZWQoZmlsZXM6IEZpbGVEdG9bXSkge1xyXG4gICAgICAgIGlmICghdGhpcy5maWxlTGltaXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5sZW5ndGggKyBmaWxlcy5sZW5ndGggPiB0aGlzLmZpbGVMaW1pdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzRmlsZUNvbWJpbmVkU2l6ZUV4Y2VlZGVkKGZpbGVzOiBGaWxlW10pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMubWF4Q29tYmluZWRGaWxlU2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBmaWxlc0xpc3QgPSBbLi4uZmlsZXMsIC4uLnRoaXMuZmlsZXNdO1xyXG5cclxuICAgICAgICBjb25zdCBjb21iaW5lZFNpemUgPSBmaWxlc0xpc3QucmVkdWNlKChjb21iaW5lZFNpemUsIGZpbGUpID0+IGNvbWJpbmVkU2l6ZSArIGZpbGUuc2l6ZSwgMCk7XHJcblxyXG4gICAgICAgIHJldHVybiBjb21iaW5lZFNpemUgPiB0aGlzLm1heENvbWJpbmVkRmlsZVNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0ZpbGVTaXplRXhjZWVkZWQoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGhpcy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNVbnN1cHBvcnRlZEZpbGVFeHRlbnNpb24oZmlsZTogRmlsZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKSA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGV4dGVuc2lvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFyRmlsZUlucHV0KCkge1xyXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmlucHV0VXBsb2FkPy5uYXRpdmVFbGVtZW50KSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmlucHV0VXBsb2FkLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VXBsb2FkRGF0ZShibG9iRmlsZTogRmlsZUR0b1tdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFibG9iRmlsZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpbGVQaWNrZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRNZXRhZGF0YUN1c3RvbUZpZWxkKHsgb2JqZWN0SWQ6IGJsb2JGaWxlWzBdLm9iamVjdElkID8/ICcnIH0pXHJcbiAgICAgICAgICAgIC50aGVuKChtZXRhZGF0YSkgPT4gdGhpcy5zZXRNb2RpZmllZERhdGUobWV0YWRhdGEpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldE1vZGlmaWVkRGF0ZShtZXRhZGF0YTogTGlzdEJsb2JNZXRhZGF0YVJlc3BvbnNlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaG91ciA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KCdISCcpO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdCgnbW0nKTtcclxuICAgICAgICBjb25zdCBkYXkgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdCgnREQnKTtcclxuICAgICAgICBjb25zdCBtb250aCA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KCdNTScpO1xyXG4gICAgICAgIGNvbnN0IGZ1bGxZZWFyID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoJ1lZWVknKTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RpZmllZERhdGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9tb2RpZmllZF9jdXN0b21fYmxvYicsIHtcclxuICAgICAgICAgICAgaG91cixcclxuICAgICAgICAgICAgbWludXRlcyxcclxuICAgICAgICAgICAgZGF5LFxyXG4gICAgICAgICAgICBtb250aCxcclxuICAgICAgICAgICAgZnVsbFllYXIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdlxuICAgIFtpZF09XCJpZFwiXG4gICAgY2xhc3M9XCJmaWxlLXBpY2tlclwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImZpbGUtcGlja2VyLWNob29zZVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFVwbG9hZFxuICAgICAgICAgICAgW2lkXT1cImlkICsgJ2lucHV0LXVwbG9hZCdcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgbmFtZT1cImZpbGVcIlxuICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiX29uSW5wdXRGaWxlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKHBlcm1pc3Npb25zLmluY2x1ZGVzKEFERF9QRVJNSVNTSU9OKSkge1xuICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJ3VwbG9hZC1idXR0b24nXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvb3NlTGFiZWwgfHwgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5hdHRhY2hfZmlsZXMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJpbnB1dFVwbG9hZC5jbGljaygpXCJcbiAgICAgICAgICAgICAgICBwcmlvcml0eT1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhIWZvcm1Db250cm9sPy5kaXNhYmxlZCB8fCBmaWxlTGltaXQgPT09IGZpbGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW2F1eGlsaWFyeV09XCJmYWxzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3MtYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGZpbGVzLmxlbmd0aCkge1xuICAgICAgICA8c2VjdGlvblxuICAgICAgICAgICAgW2lkXT1cImlkICsgJ2ZpbGV1cGxvYWQtbGlzdCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0XCJcbiAgICAgICAgICAgIHJvbGU9XCJncmlkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1waWNrZXItbGlzdC1maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJvd1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLW5hbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWdyb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpcyB0ZXh0LW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcm1pc3Npb25zLmluY2x1ZGVzKFJFQURfUEVSTUlTU0lPTikgJiYgZmlsZS5zYXZlZEZpbGUpIHx8IGZpbGUucHJvZ3Jlc3MgPT09IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBkZXNjcmlwdGlvblVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBmaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZvcm1hdEZpbGVTaXplKGZpbGUuc2l6ZSkgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobW9kaWZpZWREYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0LWZpbGUtbmFtZS1kYXRlXCI+e3sgbW9kaWZpZWREYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0LWZpbGUtc3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJncmlkY2VsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5pc1VwbG9hZGluZyAmJiAhaXNTbWFsbERldmljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTY0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzLXByb2dyZXNzYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlsZS5wcm9ncmVzcyA/PyAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VmFsdWVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3I9XCJibHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcy1wcm9ncmVzc2Jhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlLmlzVXBsb2FkaW5nICYmIGlzU21hbGxEZXZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLXNwaW4nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtY2lyY2xlLW5vdGNoIGZhLXNwaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsUHJvZ3Jlc3MgfHwgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5sb2FkaW5nX2ZpbGUnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmlsZS5pc1VwbG9hZGluZyAmJiAhZmlsZS5lcnJvciAmJiBmaWxlLnByb2dyZXNzID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLWNoZWNrJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLWNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbFN1Y2Nlc3MgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzVG9vbHRpcCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZmlsZV9hdHRhY2hlZF9zdWNjZXNzZnVsbHknIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NUb29sdGlwIHx8ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZmlsZV9hdHRhY2hlZF9zdWNjZXNzZnVsbHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cIidib2R5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlLmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy1maWxlLScgKyBpICsgJy1lcnJvcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS10aW1lc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJmaWxlLmVycm9yPy5tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cIidib2R5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1waWNrZXItbGlzdC1maWxlLWFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlLmlzVXBsb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy1maWxlLScgKyBpICsgJy1jYW5jZWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0LWZpbGUtYWN0aW9ucy1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWxVcGxvYWQoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2FuY2VsTGFiZWwgfHwgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zLmluY2x1ZGVzKFJFTU9WRV9QRVJNSVNTSU9OKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFmaWxlLmlzVXBsb2FkaW5nICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIShkaXNhYmxlZCB8fCAhIWZvcm1Db250cm9sPy5kaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLXJlbW92ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbGUtcGlja2VyLWxpc3QtZmlsZS1hY3Rpb25zLWFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlbW92ZUZpbGUoZmlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsUmVtb3ZlIHx8IHJlbW92ZUxhYmVsIHx8ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVtb3ZlTGFiZWwgfHwgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5yZW1vdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgICAjZGVzY3JpcHRpb25VcmxcbiAgICBsZXQtZmlsZVxuICAgIGxldC1pPVwiaW5kZXhcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLW5hbWUtbGluaydcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRG93bG9hZEZpbGUoaSlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsRmlsZU5hbWUgfHwgZmlsZS5uYW1lXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJyZWFrLXdvcmRzXCJcbiAgICAgICAgICAgICAgICA+e3sgZmlsZS5uYW1lIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwiZmlsZS5vYmplY3RVUkxcIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgZG93bmxvYWRcbiAgICAgICAgICAgICAgICAjYW5jaG9yXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICAgI2Rlc2NyaXB0aW9uXG4gICAgbGV0LWZpbGVcbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbEZpbGVOYW1lIHx8IGZpbGUubmFtZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGZpbGUubmFtZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2ZpbGUtcGlja2VyL3NyYy9saWIvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2ZpbGUtcGlja2VyL3NyYy9saWIvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUF5QixNQUFNLGtDQUFrQyxDQUFDO0FBRzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNu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QkFEdkIsS0FBSztnQkFLQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBS0MsY0FBYztzQkFEcEIsS0FBSztnQkFLQyxlQUFlO3NCQURyQixLQUFLO2dCQUtDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxLQUFLO2dCQUtDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFLQyxXQUFXO3NCQURqQixLQUFLO2dCQVFLLEtBQUs7c0JBRGYsS0FBSztnQkFpQkMsYUFBYTtzQkFEbkIsTUFBTTtnQkFLQSxVQUFVO3NCQURoQixNQUFNO2dCQUtBLFlBQVk7c0JBRGxCLE1BQU07Z0JBS0EsWUFBWTtzQkFEbEIsTUFBTTtnQkFLQSxjQUFjO3NCQURwQixNQUFNO2dCQXlCQSxRQUFRO3NCQURkLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IERFUFJFQ0FURURfQ09ORklHIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jb21tb24vZGVwcmVjYXRlZC1zZWxlY3Rvcic7XHJcbmltcG9ydCB7IERlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2RlcHJlY2F0ZWQtc2VsZWN0b3InO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50cywgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGaWxlUGlja2VyU2VydmljZSB9IGZyb20gJy4vZmlsZS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVEdG8gfSBmcm9tICcuL21vZGVscy9maWxlLWR0byc7XHJcbmltcG9ydCB7IEFMTF9QRVJNSVNTSU9OUywgRmlsZVBpY2tlclBlcm1pc3Npb25zIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS1waWNrZXItcGVybWlzc2lvbnMnO1xyXG5pbXBvcnQgeyBMaXN0QmxvYk1ldGFkYXRhUmVzcG9uc2UgfSBmcm9tICcuL21vZGVscy9saXN0LWJsb2ItbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBVcGxvYWRFcnJvciB9IGZyb20gJy4vbW9kZWxzL3VwbG9hZEVycm9yJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Byb2dyZXNzYmFyJztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgdXBsb2FkIGRlIGFycXVpdm9zIGNvbSBzdXBvcnRlIGEgc2VsZcOnw6NvIG3Dumx0aXBsYSxcclxuICogdmFsaWRhw6fDo28gZGUgdGlwby90YW1hbmhvLCBjb250cm9sZSBkZSBwZXJtaXNzw7VlcyAoYWRpY2lvbmFyLCBsZXIsIHJlbW92ZXIpLFxyXG4gKiBkb3dubG9hZCBlIGNhbmNlbGFtZW50byBkZSB1cGxvYWRzIGVtIGFuZGFtZW50by5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1maWxlLXBpY2tlclxyXG4gKiAgIFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICogICBhY2NlcHQ9XCJhcHBsaWNhdGlvbi9wZGZcIlxyXG4gKiAgIFttYXhGaWxlU2l6ZV09XCI1MjQyODgwXCJcclxuICogICBbZmlsZXNdPVwiYXJxdWl2b3NcIlxyXG4gKiAgICh1cGxvYWRIYW5kbGVyKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gKiAgIChyZW1vdmVGaWxlKT1cIm9uUmVtb3ZlKCRldmVudClcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtZmlsZS1waWNrZXIsIHMtZmlsZS11cGxvYWQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBob3N0RGlyZWN0aXZlczogW0RlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZV0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IERFUFJFQ0FURURfQ09ORklHLFxyXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xyXG4gICAgICAgICAgICAgICAgb2xkU2VsZWN0b3I6ICdzLWZpbGUtdXBsb2FkJyxcclxuICAgICAgICAgICAgICAgIG5ld1NlbGVjdG9yOiAncy1maWxlLXBpY2tlcicsXHJcbiAgICAgICAgICAgICAgICByZW1vdmFsVmVyc2lvbjogJzIwLjAuMCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgUHJvZ3Jlc3NCYXJDb21wb25lbnQsIFRvb2x0aXBEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVQaWNrZXJTZXJ2aWNlID0gaW5qZWN0KEZpbGVQaWNrZXJTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcclxuXHJcbiAgICBwdWJsaWMgQUREX1BFUk1JU1NJT046IEZpbGVQaWNrZXJQZXJtaXNzaW9ucyA9ICdhZGQnO1xyXG4gICAgcHVibGljIFJFQURfUEVSTUlTU0lPTjogRmlsZVBpY2tlclBlcm1pc3Npb25zID0gJ3JlYWQnO1xyXG4gICAgcHVibGljIFJFTU9WRV9QRVJNSVNTSU9OOiBGaWxlUGlja2VyUGVybWlzc2lvbnMgPSAncmVtb3ZlJztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFVwbG9hZDogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2FuY2hvcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmNob3I6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3IgZG8gY29tcG9uZW50ZSBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYHMtZmlsZS1waWNrZXItJHtGaWxlUGlja2VyQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRvIGJvdMOjbyBkZSBzZWxlw6fDo28gZGUgYXJxdWl2by4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2hvb3NlTGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRvIGJvdMOjbyBkZSByZW1vw6fDo28gZGUgYXJxdWl2by4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVtb3ZlTGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRvIGJvdMOjbyBkZSBjYW5jZWxhbWVudG8gZGUgdXBsb2FkLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYW5jZWxMYWJlbD86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGRvIHRvb2x0aXAgZXhpYmlkbyBhcMOzcyB1cGxvYWQgYmVtLXN1Y2VkaWRvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzdWNjZXNzVG9vbHRpcD86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBlcm1pdGUgc2VsZWNpb25hciBtw7psdGlwbG9zIGFycXVpdm9zIGFvIG1lc21vIHRlbXBvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtdWx0aXBsZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaXBvcyBNSU1FIGFjZWl0b3MgcGVsbyBzZWxldG9yIGRlIGFycXVpdm8gKGV4LjogYCdhcHBsaWNhdGlvbi9wZGYsaW1hZ2UvKidgKS4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYWNjZXB0Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgZXh0ZW5zw7VlcyBkZSBhcnF1aXZvIGFjZWl0YXMgcGFyYSB2YWxpZGHDp8OjbyAoZXguOiBgWycucGRmJywgJy5kb2N4J11gKS4gQGRlZmF1bHQgW10gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIEFSSUEgcGFyYSBvIG5vbWUgZG8gYXJxdWl2bywgcGFyYSBsZWl0b3JlcyBkZSB0ZWxhLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxGaWxlTmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRhbWFuaG8gbcOheGltbyBwb3IgYXJxdWl2byBlbSBieXRlcy4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4RmlsZVNpemU/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUYW1hbmhvIG3DoXhpbW8gY29tYmluYWRvIGRlIHRvZG9zIG9zIGFycXVpdm9zIGVtIGJ5dGVzLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtYXhDb21iaW5lZEZpbGVTaXplPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBtw6F4aW1vIGRlIGFycXVpdm9zIHF1ZSBwb2RlbSBzZXIgc2VsZWNpb25hZG9zLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlTGltaXQ/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMYWJlbCBBUklBIHBhcmEgYSBiYXJyYSBkZSBwcm9ncmVzc28gZG8gdXBsb2FkLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxQcm9ncmVzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIEFSSUEgcGFyYSBvIMOtY29uZSBkZSBzdWNlc3NvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxTdWNjZXNzPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGFiZWwgQVJJQSBwYXJhIG1lbnNhZ2VucyBkZSBlcnJvIGRlIHZhbGlkYcOnw6NvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhcmlhTGFiZWxFcnJvcj86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIEFSSUEgcGFyYSBvIGJvdMOjbyBkZSByZW1vw6fDo28gZGUgYXJxdWl2by4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXJpYUxhYmVsUmVtb3ZlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRm9ybUNvbnRyb2wgZXh0ZXJubyB2aW5jdWxhZG8gYW8gY29tcG9uZW50ZSBwYXJhIGNvbnRyb2xlIGRlIGVzdGFkby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlc2FiaWxpdGEgdG9kYXMgYXMgaW50ZXJhw6fDtWVzIGRvIGNvbXBvbmVudGUuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFeGliZSBhIGRhdGEgZGUgdXBsb2FkIGRlIGNhZGEgYXJxdWl2by4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0ZpbGVVcGxvYWREYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBwZXJtaXNzw7VlcyBoYWJpbGl0YWRhcyBubyBjb21wb25lbnRlOiBgJ2FkZCdgLCBgJ3JlYWQnYCwgYCdyZW1vdmUnYC4gQGRlZmF1bHQgQUxMX1BFUk1JU1NJT05TICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBlcm1pc3Npb25zOiBGaWxlUGlja2VyUGVybWlzc2lvbnNbXSA9IEFMTF9QRVJNSVNTSU9OUztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBhcnF1aXZvcyBqw6EgZW52aWFkb3MgYSBzZXJlbSBleGliaWRvcyBubyBjb21wb25lbnRlLlxyXG4gICAgICogQW8gYXRyaWJ1aXIsIG9zIGFycXVpdm9zIHPDo28gcHJvY2Vzc2Fkb3MgZSBzdWFzIFVSTHMgc8OjbyBnZXJhZGFzIHBhcmEgcHJldmlldy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZmlsZXMoZmlsZXM6IEZpbGVEdG9bXSkge1xyXG4gICAgICAgIGlmICghZmlsZXMgfHwgZmlsZXM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWxlcyA9IFtdO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNob3dGaWxlVXBsb2FkRGF0ZSAmJiBmaWxlc1swXT8ub2JqZWN0SWQpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRVcGxvYWREYXRlKGZpbGVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZmlsZXMgPSBmaWxlcy5tYXAoKGZpbGUpID0+IHtcclxuICAgICAgICAgICAgZmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIHNlbGVjaW9uYSBhcnF1aXZvcyB2w6FsaWRvcyBwYXJhIHVwbG9hZC4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHVwbG9hZEhhbmRsZXI6IEV2ZW50RW1pdHRlcjx7IGZpbGVzOiBGaWxlRHRvW10gfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIHJlbW92ZSB1bSBhcnF1aXZvIGRhIGxpc3RhLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVtb3ZlRmlsZTogRXZlbnRFbWl0dGVyPHsgZmlsZTogRmlsZSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdXN1w6FyaW8gY2FuY2VsYSB1bSB1cGxvYWQgZW0gYW5kYW1lbnRvLiBFbWl0ZSBvIMOtbmRpY2UgZG8gYXJxdWl2byBjYW5jZWxhZG8uICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBjYW5jZWxVcGxvYWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYSBwYXJhIGJhaXhhciB1bSBhcnF1aXZvLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlOiBFdmVudEVtaXR0ZXI8eyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyB1bSBhcnF1aXZvIG7Do28gcGFzc2EgbmEgdmFsaWRhw6fDo28gZGUgdGlwbywgdGFtYW5obyBvdSBsaW1pdGUuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB2YWxpZGF0ZUVycm9yczogRXZlbnRFbWl0dGVyPFVwbG9hZEVycm9yPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBwcml2YXRlIF9maWxlczogRmlsZUR0b1tdID0gW107XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVXN1YnNjcmliZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBwdWJsaWMgaXNTbWFsbERldmljZSA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlucHV0VmFsdWUgPSAnJztcclxuICAgIHB1YmxpYyBtb2RpZmllZERhdGU/OiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucyA9IHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucy5tYXAoKGV4dGVuc2lvbikgPT5cclxuICAgICAgICAgICAgZXh0ZW5zaW9uLnJlcGxhY2UoJy4nLCAnJykudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLm5nVXN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgICBwdWJsaWMgb25SZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgX29uSW5wdXRGaWxlU2VsZWN0KCRldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBldmVudFRhcmdldEZpbGVzID0gKCRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmZpbGVzIGFzIEZpbGVMaXN0O1xyXG4gICAgICAgIGNvbnN0IGRhdGFUcmFuc2ZlckZpbGVzID0gKCRldmVudCBhcyBEcmFnRXZlbnQpLmRhdGFUcmFuc2Zlcj8uZmlsZXMgYXMgRmlsZUxpc3Q7XHJcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVEdG9bXSA9IEFycmF5LmZyb20oZGF0YVRyYW5zZmVyRmlsZXMgPyBkYXRhVHJhbnNmZXJGaWxlcyA6IGV2ZW50VGFyZ2V0RmlsZXMpO1xyXG4gICAgICAgIHRoaXMub25GaWxlU2VsZWN0KGZpbGVzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25GaWxlU2VsZWN0KGZpbGVzOiBGaWxlRHRvW10pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXdGaWxlczogRmlsZUR0b1tdID0gW107XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0ZpbGVMaW1pdEV4Y2VlZGVkKGZpbGVzKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRXJyb3JzLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgZmlsZXMsXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiAnbWF4RmlsZUxpbWl0JyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWxlSW5wdXQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNGaWxlQ29tYmluZWRTaXplRXhjZWVkZWQoZmlsZXMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcnMuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBmaWxlczogZmlsZXMsXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiAnbWF4Q29tYmluZWRGaWxlU2l6ZScsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsZUlucHV0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcclxuICAgICAgICAgICAgICAgICAgICBmaWxlczogW2ZpbGVdLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246ICd1bnN1cHBvcnRlZEV4dGVuc2lvbicsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0ZpbGVTaXplRXhjZWVkZWQoZmlsZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcnMuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IFtmaWxlXSxcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiAnbWF4RmlsZVNpemUnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbmV3RmlsZXMucHVzaChmaWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChuZXdGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlcyA9IHRoaXMuZmlsZXMuY29uY2F0KG5ld0ZpbGVzKTtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRIYW5kbGVyLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgZmlsZXM6IG5ld0ZpbGVzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlSW5wdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25SZW1vdmVGaWxlKGZpbGU6IEZpbGVEdG8pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlSW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZEZpbGVzID0gdGhpcy5maWxlcy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuXHJcbiAgICAgICAgaWYgKHJlbW92ZWRGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlLmVtaXQoeyBmaWxlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DYW5jZWxVcGxvYWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHJlbW92ZWRGaWxlcyA9IHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHJcbiAgICAgICAgaWYgKHJlbW92ZWRGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWQuZW1pdChpbmRleCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsZWFyRmlsZUlucHV0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRG93bG9hZEZpbGUoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmFuY2hvcikpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUuZW1pdCh7XHJcbiAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuYW5jaG9yLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZmlsZXMoKTogRmlsZUR0b1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvcm1hdEZpbGVTaXplKHNpemU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHNpemUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcwIEJ5dGVzJztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgayA9IDEwMjQ7XHJcbiAgICAgICAgY29uc3Qgc2l6ZXMgPSBbJ2J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XHJcbiAgICAgICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoKHNpemUgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZCgyKSkgKyAnICcgKyBzaXplc1tpXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZSgpIHtcclxuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICAgIHRoaXMuaXNTbWFsbERldmljZSA9IHdpbmRvd1dpZHRoIDw9IEJyZWFrcG9pbnRzLlNNX01BWDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzRmlsZUxpbWl0RXhjZWVkZWQoZmlsZXM6IEZpbGVEdG9bXSkge1xyXG4gICAgICAgIGlmICghdGhpcy5maWxlTGltaXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5sZW5ndGggKyBmaWxlcy5sZW5ndGggPiB0aGlzLmZpbGVMaW1pdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzRmlsZUNvbWJpbmVkU2l6ZUV4Y2VlZGVkKGZpbGVzOiBGaWxlW10pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMubWF4Q29tYmluZWRGaWxlU2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBmaWxlc0xpc3QgPSBbLi4uZmlsZXMsIC4uLnRoaXMuZmlsZXNdO1xyXG5cclxuICAgICAgICBjb25zdCBjb21iaW5lZFNpemUgPSBmaWxlc0xpc3QucmVkdWNlKChjb21iaW5lZFNpemUsIGZpbGUpID0+IGNvbWJpbmVkU2l6ZSArIGZpbGUuc2l6ZSwgMCk7XHJcblxyXG4gICAgICAgIHJldHVybiBjb21iaW5lZFNpemUgPiB0aGlzLm1heENvbWJpbmVkRmlsZVNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0ZpbGVTaXplRXhjZWVkZWQoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGhpcy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNVbnN1cHBvcnRlZEZpbGVFeHRlbnNpb24oZmlsZTogRmlsZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKSA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGV4dGVuc2lvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFyRmlsZUlucHV0KCkge1xyXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmlucHV0VXBsb2FkPy5uYXRpdmVFbGVtZW50KSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmlucHV0VXBsb2FkLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VXBsb2FkRGF0ZShibG9iRmlsZTogRmlsZUR0b1tdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFibG9iRmlsZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpbGVQaWNrZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRNZXRhZGF0YUN1c3RvbUZpZWxkKHsgb2JqZWN0SWQ6IGJsb2JGaWxlWzBdLm9iamVjdElkID8/ICcnIH0pXHJcbiAgICAgICAgICAgIC50aGVuKChtZXRhZGF0YSkgPT4gdGhpcy5zZXRNb2RpZmllZERhdGUobWV0YWRhdGEpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldE1vZGlmaWVkRGF0ZShtZXRhZGF0YTogTGlzdEJsb2JNZXRhZGF0YVJlc3BvbnNlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaG91ciA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KCdISCcpO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdCgnbW0nKTtcclxuICAgICAgICBjb25zdCBkYXkgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdCgnREQnKTtcclxuICAgICAgICBjb25zdCBtb250aCA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KCdNTScpO1xyXG4gICAgICAgIGNvbnN0IGZ1bGxZZWFyID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoJ1lZWVknKTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RpZmllZERhdGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9tb2RpZmllZF9jdXN0b21fYmxvYicsIHtcclxuICAgICAgICAgICAgaG91cixcclxuICAgICAgICAgICAgbWludXRlcyxcclxuICAgICAgICAgICAgZGF5LFxyXG4gICAgICAgICAgICBtb250aCxcclxuICAgICAgICAgICAgZnVsbFllYXIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdlxuICAgIFtpZF09XCJpZFwiXG4gICAgY2xhc3M9XCJmaWxlLXBpY2tlclwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImZpbGUtcGlja2VyLWNob29zZVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFVwbG9hZFxuICAgICAgICAgICAgW2lkXT1cImlkICsgJ2lucHV0LXVwbG9hZCdcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgbmFtZT1cImZpbGVcIlxuICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiX29uSW5wdXRGaWxlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKHBlcm1pc3Npb25zLmluY2x1ZGVzKEFERF9QRVJNSVNTSU9OKSkge1xuICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJ3VwbG9hZC1idXR0b24nXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvb3NlTGFiZWwgfHwgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5hdHRhY2hfZmlsZXMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJpbnB1dFVwbG9hZC5jbGljaygpXCJcbiAgICAgICAgICAgICAgICBwcmlvcml0eT1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhIWZvcm1Db250cm9sPy5kaXNhYmxlZCB8fCBmaWxlTGltaXQgPT09IGZpbGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW2F1eGlsaWFyeV09XCJmYWxzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3MtYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGZpbGVzLmxlbmd0aCkge1xuICAgICAgICA8c2VjdGlvblxuICAgICAgICAgICAgW2lkXT1cImlkICsgJ2ZpbGV1cGxvYWQtbGlzdCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0XCJcbiAgICAgICAgICAgIHJvbGU9XCJncmlkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1waWNrZXItbGlzdC1maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJvd1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLW5hbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWdyb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpcyB0ZXh0LW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcm1pc3Npb25zLmluY2x1ZGVzKFJFQURfUEVSTUlTU0lPTikgJiYgZmlsZS5zYXZlZEZpbGUpIHx8IGZpbGUucHJvZ3Jlc3MgPT09IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBkZXNjcmlwdGlvblVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBmaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZvcm1hdEZpbGVTaXplKGZpbGUuc2l6ZSkgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobW9kaWZpZWREYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0LWZpbGUtbmFtZS1kYXRlXCI+e3sgbW9kaWZpZWREYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0LWZpbGUtc3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJncmlkY2VsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5pc1VwbG9hZGluZyAmJiAhaXNTbWFsbERldmljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTY0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzLXByb2dyZXNzYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlsZS5wcm9ncmVzcyA/PyAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VmFsdWVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3I9XCJibHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcy1wcm9ncmVzc2Jhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlLmlzVXBsb2FkaW5nICYmIGlzU21hbGxEZXZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLXNwaW4nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtY2lyY2xlLW5vdGNoIGZhLXNwaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsUHJvZ3Jlc3MgfHwgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5sb2FkaW5nX2ZpbGUnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmlsZS5pc1VwbG9hZGluZyAmJiAhZmlsZS5lcnJvciAmJiBmaWxlLnByb2dyZXNzID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLWNoZWNrJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLWNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbFN1Y2Nlc3MgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzVG9vbHRpcCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZmlsZV9hdHRhY2hlZF9zdWNjZXNzZnVsbHknIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NUb29sdGlwIHx8ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZmlsZV9hdHRhY2hlZF9zdWNjZXNzZnVsbHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXNjYXBlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5lcnJvcj8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctZmlsZS0nICsgaSArICctZXJyb3InXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtdGltZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiZmlsZS5lcnJvcj8ubWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VzY2FwZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLXBpY2tlci1saXN0LWZpbGUtYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpbGUuaXNVcGxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWZpbGUtJyArIGkgKyAnLWNhbmNlbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbGUtcGlja2VyLWxpc3QtZmlsZS1hY3Rpb25zLWFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbFVwbG9hZChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjYW5jZWxMYWJlbCB8fCAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnMuaW5jbHVkZXMoUkVNT1ZFX1BFUk1JU1NJT04pICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWZpbGUuaXNVcGxvYWRpbmcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKGRpc2FibGVkIHx8ICEhZm9ybUNvbnRyb2w/LmRpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctZmlsZS0nICsgaSArICctcmVtb3ZlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1waWNrZXItbGlzdC1maWxlLWFjdGlvbnMtYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlRmlsZShmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWxSZW1vdmUgfHwgcmVtb3ZlTGFiZWwgfHwgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5yZW1vdmUnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByZW1vdmVMYWJlbCB8fCAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnJlbW92ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNkZXNjcmlwdGlvblVybFxuICAgIGxldC1maWxlXG4gICAgbGV0LWk9XCJpbmRleFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctZmlsZS0nICsgaSArICctbmFtZS1saW5rJ1wiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Eb3dsb2FkRmlsZShpKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxGaWxlTmFtZSB8fCBmaWxlLm5hbWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnJlYWstd29yZHNcIlxuICAgICAgICAgICAgICAgID57eyBmaWxlLm5hbWUgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJmaWxlLm9iamVjdFVSTFwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICBkb3dubG9hZFxuICAgICAgICAgICAgICAgICNhbmNob3JcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgICAjZGVzY3JpcHRpb25cbiAgICBsZXQtZmlsZVxuPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsRmlsZU5hbWUgfHwgZmlsZS5uYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgZmlsZS5uYW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';
|
|
2
2
|
import { ThumbnailComponent } from '@seniorsistemas/angular-components/thumbnail';
|
|
3
3
|
import { ButtonComponent } from '@seniorsistemas/angular-components/button';
|
|
4
|
-
import {
|
|
4
|
+
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
|
|
5
5
|
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class GlobalSearchDropdownItemComponent {
|
|
@@ -33,11 +33,11 @@ export class GlobalSearchDropdownItemComponent {
|
|
|
33
33
|
return this.size === 'standart';
|
|
34
34
|
}
|
|
35
35
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchDropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchDropdownItemComponent, isStandalone: true, selector: "s-global-search-dropdown-item", inputs: { id: "id", primaryLabel: "primaryLabel", secondaryEmptyLabel: "secondaryEmptyLabel", tertiaryEmptyLabel: "tertiaryEmptyLabel", imageSource: "imageSource", imageAlt: "imageAlt", iconClass: "iconClass", secondaryLabel: "secondaryLabel", tertiaryLabel: "tertiaryLabel", size: "size", template: "template" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\r\n <div\r\n class=\"global-search-dropdown-item\"\r\n [ngClass]=\"{ 'grid grid-cols-2 gap-2': isSmallSize() }\"\r\n >\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n\r\n @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageAlt]=\"imageAlt || primaryLabel\"\r\n [iconClass]=\"iconClass ?? ''\"\r\n [size]=\"getImageSize()\"\r\n ></s-thumbnail>\r\n }\r\n\r\n <div\r\n class=\"global-search-item__container ml-[10px] only:ml-0 w-full whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis {{ !isSmallSize() ? 'w-[60%]' : '' }}\"\r\n >\r\n <div #titleTemplate>\r\n <ng-content select=\"[titleTemplate]\"></ng-content>\r\n </div>\r\n @if (!titleTemplate.children.length) {\r\n <s-button\r\n styleClass=\"no-padding\"\r\n [id]=\"id + '-title'\"\r\n priority=\"link\"\r\n [
|
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchDropdownItemComponent, isStandalone: true, selector: "s-global-search-dropdown-item", inputs: { id: "id", primaryLabel: "primaryLabel", secondaryEmptyLabel: "secondaryEmptyLabel", tertiaryEmptyLabel: "tertiaryEmptyLabel", imageSource: "imageSource", imageAlt: "imageAlt", iconClass: "iconClass", secondaryLabel: "secondaryLabel", tertiaryLabel: "tertiaryLabel", size: "size", template: "template" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\r\n <div\r\n class=\"global-search-dropdown-item\"\r\n [ngClass]=\"{ 'grid grid-cols-2 gap-2': isSmallSize() }\"\r\n >\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n\r\n @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageAlt]=\"imageAlt || primaryLabel\"\r\n [iconClass]=\"iconClass ?? ''\"\r\n [size]=\"getImageSize()\"\r\n ></s-thumbnail>\r\n }\r\n\r\n <div\r\n class=\"global-search-item__container ml-[10px] only:ml-0 w-full whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis {{ !isSmallSize() ? 'w-[60%]' : '' }}\"\r\n >\r\n <div #titleTemplate>\r\n <ng-content select=\"[titleTemplate]\"></ng-content>\r\n </div>\r\n @if (!titleTemplate.children.length) {\r\n <s-button\r\n styleClass=\"no-padding\"\r\n [id]=\"id + '-title'\"\r\n priority=\"link\"\r\n [sTooltip]=\"primaryLabel\"\r\n tooltipPosition=\"right\"\r\n [showDelay]=\"0\"\r\n [escape]=\"true\"\r\n [label]=\"primaryLabel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit()\"\r\n >\r\n </s-button>\r\n }\r\n\r\n <div #labelTemplate>\r\n <ng-content select=\"[labelTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n [ngClass]=\"{\r\n 'text-right pt-[2px] pl-[15px]': isSmallSize(),\r\n 'italic': !secondaryLabel,\r\n }\"\r\n class=\"text-grayscale-90 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [sTooltip]=\"secondaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >{{ secondaryLabel ? secondaryLabel : secondaryEmptyLabel }}</span\r\n >\r\n }\r\n\r\n <div #descriptionTemplate>\r\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!descriptionTemplate.children.length && !isMediumSize() && !isSmallSize()) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"text-grayscale-50 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [ngClass]=\"{ 'italic': !secondaryLabel }\"\r\n [sTooltip]=\"tertiaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >\r\n {{ tertiaryLabel ? tertiaryLabel : tertiaryEmptyLabel }}\r\n </span>\r\n }\r\n </div>\r\n @if (!isSmallSize()) {\r\n <div class=\"w-[40%] flex flex-col text-right\">\r\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["::ng-deep .no-padding{padding:0!important;min-width:0px!important}::ng-deep .s-button-with-text{min-width:0px!important}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
37
37
|
}
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchDropdownItemComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
|
-
args: [{ selector: 's-global-search-dropdown-item', standalone: true, imports: [ThumbnailComponent, ButtonComponent,
|
|
40
|
+
args: [{ selector: 's-global-search-dropdown-item', standalone: true, imports: [ThumbnailComponent, ButtonComponent, TooltipDirective, NgClass, NgTemplateOutlet], template: "<ng-template>\r\n <div\r\n class=\"global-search-dropdown-item\"\r\n [ngClass]=\"{ 'grid grid-cols-2 gap-2': isSmallSize() }\"\r\n >\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n\r\n @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageAlt]=\"imageAlt || primaryLabel\"\r\n [iconClass]=\"iconClass ?? ''\"\r\n [size]=\"getImageSize()\"\r\n ></s-thumbnail>\r\n }\r\n\r\n <div\r\n class=\"global-search-item__container ml-[10px] only:ml-0 w-full whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis {{ !isSmallSize() ? 'w-[60%]' : '' }}\"\r\n >\r\n <div #titleTemplate>\r\n <ng-content select=\"[titleTemplate]\"></ng-content>\r\n </div>\r\n @if (!titleTemplate.children.length) {\r\n <s-button\r\n styleClass=\"no-padding\"\r\n [id]=\"id + '-title'\"\r\n priority=\"link\"\r\n [sTooltip]=\"primaryLabel\"\r\n tooltipPosition=\"right\"\r\n [showDelay]=\"0\"\r\n [escape]=\"true\"\r\n [label]=\"primaryLabel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit()\"\r\n >\r\n </s-button>\r\n }\r\n\r\n <div #labelTemplate>\r\n <ng-content select=\"[labelTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n [ngClass]=\"{\r\n 'text-right pt-[2px] pl-[15px]': isSmallSize(),\r\n 'italic': !secondaryLabel,\r\n }\"\r\n class=\"text-grayscale-90 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [sTooltip]=\"secondaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >{{ secondaryLabel ? secondaryLabel : secondaryEmptyLabel }}</span\r\n >\r\n }\r\n\r\n <div #descriptionTemplate>\r\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!descriptionTemplate.children.length && !isMediumSize() && !isSmallSize()) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"text-grayscale-50 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [ngClass]=\"{ 'italic': !secondaryLabel }\"\r\n [sTooltip]=\"tertiaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >\r\n {{ tertiaryLabel ? tertiaryLabel : tertiaryEmptyLabel }}\r\n </span>\r\n }\r\n </div>\r\n @if (!isSmallSize()) {\r\n <div class=\"w-[40%] flex flex-col text-right\">\r\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["::ng-deep .no-padding{padding:0!important;min-width:0px!important}::ng-deep .s-button-with-text{min-width:0px!important}\n"] }]
|
|
41
41
|
}], propDecorators: { id: [{
|
|
42
42
|
type: Input
|
|
43
43
|
}], primaryLabel: [{
|
|
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
69
69
|
type: ViewChild,
|
|
70
70
|
args: [TemplateRef, { static: true }]
|
|
71
71
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNlYXJjaC1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9nbG9iYWwtc2VhcmNoL3NyYy9saWIvZ2xvYmFsLXNlYXJjaC9jb21wb25lbnRzL2Ryb3Bkb3duL2dsb2JhbC1zZWFyY2gtZHJvcGRvd24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZ2xvYmFsLXNlYXJjaC9zcmMvbGliL2dsb2JhbC1zZWFyY2gvY29tcG9uZW50cy9kcm9wZG93bi9nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTNUQsTUFBTSxPQUFPLGlDQUFpQztJQUNuQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUdsQixFQUFFLEdBQUcsaUNBQWlDLGlDQUFpQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFHbkYsWUFBWSxDQUFVO0lBR3RCLG1CQUFtQixDQUFVO0lBRzdCLGtCQUFrQixDQUFVO0lBRzVCLFdBQVcsQ0FBVTtJQUdyQixRQUFRLENBQVU7SUFHbEIsU0FBUyxDQUFVO0lBR25CLGNBQWMsQ0FBVTtJQUd4QixhQUFhLENBQVU7SUFHdkIsSUFBSSxHQUF5QixVQUFVLENBQUM7SUFHeEMsUUFBUSxHQUE0QixJQUFJLENBQUM7SUFHekMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFHdkMsa0JBQWtCLEdBQThCLElBQUksQ0FBQztJQUdyRCxPQUFPLEdBQTRCLElBQUksQ0FBQztJQUV4QyxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztJQUNsQyxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVNLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDdkQsQ0FBQztJQUVPLGVBQWU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztJQUNwQyxDQUFDO3dHQTNEUSxpQ0FBaUM7NEZBQWpDLGlDQUFpQyw0ZUF1QzVCLGtCQUFrQix1R0FHckIsV0FBVyw4REN6RDFCLGcwR0ErRUEsb0xEbEVjLGtCQUFrQiw4TEFBRSxlQUFlLG9WQUFFLE9BQU8sNlVBQUUsT0FBTyxvRkFBRSxnQkFBZ0I7OzRGQUV4RSxpQ0FBaUM7a0JBUDdDLFNBQVM7K0JBQ0ksK0JBQStCLGNBRzdCLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDOzhCQU0zRSxFQUFFO3NCQURSLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxXQUFXO3NCQURqQixNQUFNO2dCQUlBLGtCQUFrQjtzQkFEeEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTNDLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR2xvYmFsU2VhcmNoU2l6ZUVudW0gfSBmcm9tICcuLi8uLi90eXBlcy9nbG9iYWwtc2VhcmNoLXNpemUuZW51bSc7XHJcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGh1bWJuYWlsJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dsb2JhbC1zZWFyY2gtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbVGh1bWJuYWlsQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIFRvb2x0aXAsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VhcmNoRHJvcGRvd25JdGVtQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYHMtZ2xvYmFsLXNlYXJjaC1kcm9wZG93bi1pdGVtLSR7R2xvYmFsU2VhcmNoRHJvcGRvd25JdGVtQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBwcmltYXJ5TGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZWNvbmRhcnlFbXB0eUxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVydGlhcnlFbXB0eUxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaW1hZ2VTb3VyY2U/OiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbWFnZUFsdD86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGljb25DbGFzcz86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNlY29uZGFyeUxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVydGlhcnlMYWJlbD86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNpemU6IEdsb2JhbFNlYXJjaFNpemVFbnVtID0gJ3N0YW5kYXJ0JztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChUaHVtYm5haWxDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgdGh1bWJuYWlsQ29tcG9uZW50OiBUaHVtYm5haWxDb21wb25lbnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgaXNNZWRpdW1TaXplKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdtZWRpdW0nO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1NtYWxsU2l6ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAnc21hbGwnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJbWFnZVNpemUoKTogJ21lZGl1bScgfCAnc21hbGwnIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faXNTdGFuZGFyZFNpemUoKSA/ICdtZWRpdW0nIDogJ3NtYWxsJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pc1N0YW5kYXJkU2l6ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAnc3RhbmRhcnQnO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZT5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImdsb2JhbC1zZWFyY2gtZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZ3JpZCBncmlkLWNvbHMtMiBnYXAtMic6IGlzU21hbGxTaXplKCkgfVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicy10aHVtYm5haWxcIj48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgIEBpZiAoIXRodW1ibmFpbENvbXBvbmVudCAmJiAoaW1hZ2VTb3VyY2UgfHwgaWNvbkNsYXNzKSAmJiAhaXNTbWFsbFNpemUoKSkge1xyXG4gICAgICAgICAgICA8cy10aHVtYm5haWxcclxuICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctdGh1bWJuYWlsJ1wiXHJcbiAgICAgICAgICAgICAgICBbaW1hZ2VTb3VyY2VdPVwiaW1hZ2VTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgW2ltYWdlQWx0XT1cImltYWdlQWx0IHx8IHByaW1hcnlMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cImljb25DbGFzcyA/PyAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJnZXRJbWFnZVNpemUoKVwiXHJcbiAgICAgICAgICAgID48L3MtdGh1bWJuYWlsPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImdsb2JhbC1zZWFyY2gtaXRlbV9fY29udGFpbmVyIG1sLVsxMHB4XSBvbmx5Om1sLTAgdy1mdWxsIHdoaXRlc3BhY2Utbm93cmFwIG1heC1tZDp3aGl0ZXNwYWNlLW5vcm1hbCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpcyB7eyAhaXNTbWFsbFNpemUoKSA/ICd3LVs2MCVdJyA6ICcnIH19XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgI3RpdGxlVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGl0bGVUZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBAaWYgKCF0aXRsZVRlbXBsYXRlLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgPHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cIm5vLXBhZGRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctdGl0bGUnXCJcclxuICAgICAgICAgICAgICAgICAgICBwcmlvcml0eT1cImxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJwcmltYXJ5TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJwcmltYXJ5TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiYnV0dG9uQ2xpY2suZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvcy1idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDxkaXYgI2xhYmVsVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGFiZWxUZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgQGlmICghbGFiZWxUZW1wbGF0ZS5jaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtcmlnaHQgcHQtWzJweF0gcGwtWzE1cHhdJzogaXNTbWFsbFNpemUoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2l0YWxpYyc6ICFzZWNvbmRhcnlMYWJlbCxcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheXNjYWxlLTkwIGJsb2NrIHdoaXRlc3BhY2Utbm93cmFwIG1heC1tZDp3aGl0ZXNwYWNlLW5vcm1hbCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cInNlY29uZGFyeUxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IHNlY29uZGFyeUxhYmVsID8gc2Vjb25kYXJ5TGFiZWwgOiBzZWNvbmRhcnlFbXB0eUxhYmVsIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDxkaXYgI2Rlc2NyaXB0aW9uVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVzY3JpcHRpb25UZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgQGlmICghZGVzY3JpcHRpb25UZW1wbGF0ZS5jaGlsZHJlbi5sZW5ndGggJiYgIWlzTWVkaXVtU2l6ZSgpICYmICFpc1NtYWxsU2l6ZSgpKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctZGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheXNjYWxlLTUwIGJsb2NrIHdoaXRlc3BhY2Utbm93cmFwIG1heC1tZDp3aGl0ZXNwYWNlLW5vcm1hbCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXRhbGljJzogIXNlY29uZGFyeUxhYmVsIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJ0ZXJ0aWFyeUxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdGVydGlhcnlMYWJlbCA/IHRlcnRpYXJ5TGFiZWwgOiB0ZXJ0aWFyeUVtcHR5TGFiZWwgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZiAoIWlzU21hbGxTaXplKCkpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzQwJV0gZmxleCBmbGV4LWNvbCB0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNlYXJjaC1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9nbG9iYWwtc2VhcmNoL3NyYy9saWIvZ2xvYmFsLXNlYXJjaC9jb21wb25lbnRzL2Ryb3Bkb3duL2dsb2JhbC1zZWFyY2gtZHJvcGRvd24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZ2xvYmFsLXNlYXJjaC9zcmMvbGliL2dsb2JhbC1zZWFyY2gvY29tcG9uZW50cy9kcm9wZG93bi9nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVM1RCxNQUFNLE9BQU8saUNBQWlDO0lBQ25DLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBR2xCLEVBQUUsR0FBRyxpQ0FBaUMsaUNBQWlDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUduRixZQUFZLENBQVU7SUFHdEIsbUJBQW1CLENBQVU7SUFHN0Isa0JBQWtCLENBQVU7SUFHNUIsV0FBVyxDQUFVO0lBR3JCLFFBQVEsQ0FBVTtJQUdsQixTQUFTLENBQVU7SUFHbkIsY0FBYyxDQUFVO0lBR3hCLGFBQWEsQ0FBVTtJQUd2QixJQUFJLEdBQXlCLFVBQVUsQ0FBQztJQUd4QyxRQUFRLEdBQTRCLElBQUksQ0FBQztJQUd6QyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUd2QyxrQkFBa0IsR0FBOEIsSUFBSSxDQUFDO0lBR3JELE9BQU8sR0FBNEIsSUFBSSxDQUFDO0lBRXhDLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRU0sWUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN2RCxDQUFDO0lBRU8sZUFBZTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0lBQ3BDLENBQUM7d0dBM0RRLGlDQUFpQzs0RkFBakMsaUNBQWlDLDRlQXVDNUIsa0JBQWtCLHVHQUdyQixXQUFXLDhEQ3pEMUIseWhIQW9GQSxvTER2RWMsa0JBQWtCLDhMQUFFLGVBQWUsb1ZBQUUsZ0JBQWdCLDROQUFFLE9BQU8sb0ZBQUUsZ0JBQWdCOzs0RkFFakYsaUNBQWlDO2tCQVA3QyxTQUFTOytCQUNJLCtCQUErQixjQUc3QixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDOzhCQU1wRixFQUFFO3NCQURSLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxXQUFXO3NCQURqQixNQUFNO2dCQUlBLGtCQUFrQjtzQkFEeEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTNDLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR2xvYmFsU2VhcmNoU2l6ZUVudW0gfSBmcm9tICcuLi8uLi90eXBlcy9nbG9iYWwtc2VhcmNoLXNpemUuZW51bSc7XHJcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGh1bWJuYWlsJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dsb2JhbC1zZWFyY2gtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbVGh1bWJuYWlsQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIFRvb2x0aXBEaXJlY3RpdmUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VhcmNoRHJvcGRvd25JdGVtQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYHMtZ2xvYmFsLXNlYXJjaC1kcm9wZG93bi1pdGVtLSR7R2xvYmFsU2VhcmNoRHJvcGRvd25JdGVtQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBwcmltYXJ5TGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZWNvbmRhcnlFbXB0eUxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVydGlhcnlFbXB0eUxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaW1hZ2VTb3VyY2U/OiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbWFnZUFsdD86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGljb25DbGFzcz86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNlY29uZGFyeUxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVydGlhcnlMYWJlbD86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNpemU6IEdsb2JhbFNlYXJjaFNpemVFbnVtID0gJ3N0YW5kYXJ0JztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChUaHVtYm5haWxDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgdGh1bWJuYWlsQ29tcG9uZW50OiBUaHVtYm5haWxDb21wb25lbnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgaXNNZWRpdW1TaXplKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdtZWRpdW0nO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1NtYWxsU2l6ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAnc21hbGwnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJbWFnZVNpemUoKTogJ21lZGl1bScgfCAnc21hbGwnIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faXNTdGFuZGFyZFNpemUoKSA/ICdtZWRpdW0nIDogJ3NtYWxsJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pc1N0YW5kYXJkU2l6ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAnc3RhbmRhcnQnO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZT5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImdsb2JhbC1zZWFyY2gtZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZ3JpZCBncmlkLWNvbHMtMiBnYXAtMic6IGlzU21hbGxTaXplKCkgfVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicy10aHVtYm5haWxcIj48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgIEBpZiAoIXRodW1ibmFpbENvbXBvbmVudCAmJiAoaW1hZ2VTb3VyY2UgfHwgaWNvbkNsYXNzKSAmJiAhaXNTbWFsbFNpemUoKSkge1xyXG4gICAgICAgICAgICA8cy10aHVtYm5haWxcclxuICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctdGh1bWJuYWlsJ1wiXHJcbiAgICAgICAgICAgICAgICBbaW1hZ2VTb3VyY2VdPVwiaW1hZ2VTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgW2ltYWdlQWx0XT1cImltYWdlQWx0IHx8IHByaW1hcnlMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cImljb25DbGFzcyA/PyAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJnZXRJbWFnZVNpemUoKVwiXHJcbiAgICAgICAgICAgID48L3MtdGh1bWJuYWlsPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImdsb2JhbC1zZWFyY2gtaXRlbV9fY29udGFpbmVyIG1sLVsxMHB4XSBvbmx5Om1sLTAgdy1mdWxsIHdoaXRlc3BhY2Utbm93cmFwIG1heC1tZDp3aGl0ZXNwYWNlLW5vcm1hbCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpcyB7eyAhaXNTbWFsbFNpemUoKSA/ICd3LVs2MCVdJyA6ICcnIH19XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgI3RpdGxlVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGl0bGVUZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBAaWYgKCF0aXRsZVRlbXBsYXRlLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgPHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cIm5vLXBhZGRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctdGl0bGUnXCJcclxuICAgICAgICAgICAgICAgICAgICBwcmlvcml0eT1cImxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJwcmltYXJ5TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0RlbGF5XT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlc2NhcGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInByaW1hcnlMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJidXR0b25DbGljay5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9zLWJ1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGRpdiAjbGFiZWxUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYWJlbFRlbXBsYXRlXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICBAaWYgKCFsYWJlbFRlbXBsYXRlLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1yaWdodCBwdC1bMnB4XSBwbC1bMTVweF0nOiBpc1NtYWxsU2l6ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnaXRhbGljJzogIXNlY29uZGFyeUxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5c2NhbGUtOTAgYmxvY2sgd2hpdGVzcGFjZS1ub3dyYXAgbWF4LW1kOndoaXRlc3BhY2Utbm9ybWFsIG92ZXJmbG93LWhpZGRlbiB0ZXh0LWVsbGlwc2lzXCJcclxuICAgICAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwic2Vjb25kYXJ5TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlc2NhcGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IHNlY29uZGFyeUxhYmVsID8gc2Vjb25kYXJ5TGFiZWwgOiBzZWNvbmRhcnlFbXB0eUxhYmVsIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDxkaXYgI2Rlc2NyaXB0aW9uVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVzY3JpcHRpb25UZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgQGlmICghZGVzY3JpcHRpb25UZW1wbGF0ZS5jaGlsZHJlbi5sZW5ndGggJiYgIWlzTWVkaXVtU2l6ZSgpICYmICFpc1NtYWxsU2l6ZSgpKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctZGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheXNjYWxlLTUwIGJsb2NrIHdoaXRlc3BhY2Utbm93cmFwIG1heC1tZDp3aGl0ZXNwYWNlLW5vcm1hbCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXRhbGljJzogIXNlY29uZGFyeUxhYmVsIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJ0ZXJ0aWFyeUxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcclxuICAgICAgICAgICAgICAgICAgICBbZXNjYXBlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHRlcnRpYXJ5TGFiZWwgPyB0ZXJ0aWFyeUxhYmVsIDogdGVydGlhcnlFbXB0eUxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAaWYgKCFpc1NtYWxsU2l6ZSgpKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LVs0MCVdIGZsZXggZmxleC1jb2wgdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { TooltipModule } from 'primeng/tooltip';
|
|
3
2
|
import { ButtonModule } from '@seniorsistemas/angular-components/button';
|
|
4
3
|
import { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';
|
|
5
4
|
import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
|
|
6
5
|
import { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';
|
|
6
|
+
import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
|
|
7
7
|
import { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';
|
|
8
8
|
import { GlobalSearchComponent } from './global-search.component';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
57
57
|
],
|
|
58
58
|
}]
|
|
59
59
|
}] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNlYXJjaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZ2xvYmFsLXNlYXJjaC9zcmMvbGliL2dsb2JhbC1zZWFyY2gvZ2xvYmFsLXNlYXJjaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNoSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFzQmxFLE1BQU0sT0FBTyxrQkFBa0I7d0dBQWxCLGtCQUFrQjt5R0FBbEIsa0JBQWtCLFlBbEJ2QixhQUFhO1lBQ2IsZUFBZTtZQUNmLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixpQ0FBaUMsYUFHakMscUJBQXFCO1lBQ3JCLGlDQUFpQztZQUNqQyxhQUFhO1lBQ2IsZUFBZTtZQUNmLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsZ0JBQWdCO3lHQUdYLGtCQUFrQixZQWxCdkIsYUFBYTtZQUNiLGVBQWU7WUFDZixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixxQkFBcUI7WUFDckIsaUNBQWlDLEVBS2pDLGFBQWE7WUFDYixlQUFlO1lBQ2YsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQixnQkFBZ0I7OzRGQUdYLGtCQUFrQjtrQkFwQjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGlDQUFpQztxQkFDcEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHFCQUFxQjt3QkFDckIsaUNBQWlDO3dCQUNqQyxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGdCQUFnQjtxQkFDbkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBFbXB0eVN0YXRlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9lbXB0eS1zdGF0ZSc7XHJcbmltcG9ydCB7IExvYWRpbmdTdGF0ZU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZSc7XHJcbmltcG9ydCB7IFRodW1ibmFpbE1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGh1bWJuYWlsJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XHJcbmltcG9ydCB7IEdsb2JhbFNlYXJjaERyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcm9wZG93bi9nbG9iYWwtc2VhcmNoLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2xvYmFsU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9nbG9iYWwtc2VhcmNoLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICAgICAgVGh1bWJuYWlsTW9kdWxlLFxyXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBMb2FkaW5nU3RhdGVNb2R1bGUsXHJcbiAgICAgICAgRW1wdHlTdGF0ZU1vZHVsZSxcclxuICAgICAgICBHbG9iYWxTZWFyY2hDb21wb25lbnQsXHJcbiAgICAgICAgR2xvYmFsU2VhcmNoRHJvcGRvd25JdGVtQ29tcG9uZW50LFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBHbG9iYWxTZWFyY2hDb21wb25lbnQsXHJcbiAgICAgICAgR2xvYmFsU2VhcmNoRHJvcGRvd25JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICAgICAgVGh1bWJuYWlsTW9kdWxlLFxyXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBMb2FkaW5nU3RhdGVNb2R1bGUsXHJcbiAgICAgICAgRW1wdHlTdGF0ZU1vZHVsZSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxTZWFyY2hNb2R1bGUge31cclxuIl19
|