@arsedizioni/ars-utils 18.3.12 → 18.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/clipper.ui/ui/browser-dialog/browser-dialog.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/document/document.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/references/references.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/search-result-item/search-result-item.component.mjs +3 -3
- package/esm2022/help/components/help-viewer/help-viewer.component.mjs +3 -3
- package/esm2022/support.ui/ui/notifications-browser/notification/notification.component.mjs +3 -3
- package/esm2022/support.ui/ui/notifications-browser/notifications-browser.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/busy/busy-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/info/info-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +3 -3
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +10 -10
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-help.mjs +2 -2
- package/fesm2022/arsedizioni-ars-utils-help.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +4 -4
- package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +18 -18
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +12 -12
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/ui.scss +3 -15
|
@@ -453,14 +453,14 @@ export class HelpViewerComponent {
|
|
|
453
453
|
this.getChapter(n.id, n.position + 1);
|
|
454
454
|
}
|
|
455
455
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: HelpViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
456
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: HelpViewerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, providers: [IndexTreeDataSource], viewQueries: [{ propertyName: "indexPane", first: true, predicate: ["indexPane"], descendants: true }], ngImport: i0, template: "<div class=\"helpviewer-fixed\">\r\n <div style=\"height:6px\">\r\n @if (busy()) {\r\n <mat-progress-bar z-index=\"11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n <div class=\"dialog-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill>\r\n <div class=\"dialog-menu\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"toggleIndexPane()\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>Guida</h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\" class=\"dialog-close\">\r\n @if (canGoBack()) {\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n</div>\r\n<mat-dialog-content id=\"helpviewer-scrollable\">\r\n <mat-drawer-container class=\"fill\">\r\n <mat-drawer #indexPane mode=\"side\" [autoFocus]=\"false\" class=\"drawer-small drawer-transparent\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"tree \" style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\" [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id}\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id }\" (click)=\"getChapter(node.id)\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div style=\"padding: 0 24px;\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div class=\"fill\" id=\"helpviewer-scroller\" (click)=\"gotoChapter($event)\"\r\n [innerHtml]=\"(page() ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 0 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:5px;padding-right:15px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 360px){.drawer,.drawer-small{border-radius:0!important}}@media screen and (min-width: 361px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader{padding:14px 10px 20px}.drawer .title{min-width:200px}.drawer .accordion-header{padding-left:15px;padding-right:20px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}.dialog-menu{margin-top:4px!important}.tree{overflow-x:hidden}.tree-node{min-height:36px!important;padding-right:12px;margin-right:0}.tree-node .small-icon-button{width:2rem!important;height:2rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.tree-node .small-icon-button .mat-mdc-button-touch-target{width:2rem!important;height:2rem!important}.tree-node:hover{cursor:pointer;background-color:var(--mat-menu-item-hover-state-layer-color, transparent);border-radius:24px}.tree-node-simple,.tree-node-simple>div{min-height:36px!important}.tree-node-activated,.tree-node-activated>div{min-height:36px!important;font-weight:700!important;color:var(--ars-color-accent, #7894ae)!important}a.help-link,.help-link>a{text-decoration:none;color:#2a91e0}.help-title-2,.help-title-1{font-weight:600!important}.help-word-hit{font-size:inherit;background-color:#ff0;border:1px solid silver;padding:0 4px}.help-hint{margin:10px;padding:5px 20px;background-color:#fafad2;border-radius:12px}.help-summary{margin:10px;padding:5px 20px;background-color:#e6e6fa;border-radius:12px}.help-img{display:flex;align-items:center;justify-content:center;margin:10px}.help-img-200,.help-img-300,.help-img-400,.help-img-500,.help-img-700,.help-img-800{width:100%}.help-img-200{max-width:200px}.help-img-300{max-width:300px}.help-img-400{max-width:400px}.help-img-500{max-width:500px}.help-img-600{max-width:600px}.help-img-700{max-width:700px}.help-img-800{max-width:800px}.help-filter-box{background-color:#f9fbe7;border-radius:12px;padding:6px;display:inline-block;margin:0 0 8px 10px}\n"], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i7.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i7.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i8.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i8.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i8.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i8.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i8.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
456
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: HelpViewerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, providers: [IndexTreeDataSource], viewQueries: [{ propertyName: "indexPane", first: true, predicate: ["indexPane"], descendants: true }], ngImport: i0, template: "<div class=\"helpviewer-fixed\">\r\n <div style=\"height:6px\">\r\n @if (busy()) {\r\n <mat-progress-bar z-index=\"11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n <div class=\"dialog-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill>\r\n <div class=\"dialog-menu\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"toggleIndexPane()\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>Guida</h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\" class=\"dialog-close\">\r\n @if (canGoBack()) {\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n</div>\r\n<mat-dialog-content id=\"helpviewer-scrollable\">\r\n <mat-drawer-container class=\"fill\">\r\n <mat-drawer #indexPane mode=\"side\" [autoFocus]=\"false\" class=\"drawer-small drawer-transparent\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"tree \" style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\" [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id}\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id }\" (click)=\"getChapter(node.id)\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div style=\"padding: 0 24px;\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div class=\"fill\" id=\"helpviewer-scroller\" (click)=\"gotoChapter($event)\"\r\n [innerHtml]=\"(page() ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 360px){.drawer,.drawer-small{border-radius:0!important}}@media screen and (min-width: 361px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}.dialog-menu{margin-top:4px!important}.tree{overflow-x:hidden}.tree-node{min-height:36px!important;padding-right:12px;margin-right:0}.tree-node .small-icon-button{width:2rem!important;height:2rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.tree-node .small-icon-button .mat-mdc-button-touch-target{width:2rem!important;height:2rem!important}.tree-node:hover{cursor:pointer;background-color:var(--mat-menu-item-hover-state-layer-color, transparent);border-radius:24px}.tree-node-simple,.tree-node-simple>div{min-height:36px!important}.tree-node-activated,.tree-node-activated>div{min-height:36px!important;font-weight:700!important;color:var(--ars-color-accent, #7894ae)!important}a.help-link,.help-link>a{text-decoration:none;color:#2a91e0}.help-title-2,.help-title-1{font-weight:600!important}.help-word-hit{font-size:inherit;background-color:#ff0;border:1px solid silver;padding:0 4px}.help-hint{margin:10px;padding:5px 20px;background-color:#fafad2;border-radius:12px}.help-summary{margin:10px;padding:5px 20px;background-color:#e6e6fa;border-radius:12px}.help-img{display:flex;align-items:center;justify-content:center;margin:10px}.help-img-200,.help-img-300,.help-img-400,.help-img-500,.help-img-700,.help-img-800{width:100%}.help-img-200{max-width:200px}.help-img-300{max-width:300px}.help-img-400{max-width:400px}.help-img-500{max-width:500px}.help-img-600{max-width:600px}.help-img-700{max-width:700px}.help-img-800{max-width:800px}.help-filter-box{background-color:#f9fbe7;border-radius:12px;padding:6px;display:inline-block;margin:0 0 8px 10px}\n"], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i7.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i7.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i8.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i8.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i8.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i8.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i8.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
457
457
|
}
|
|
458
458
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: HelpViewerComponent, decorators: [{
|
|
459
459
|
type: Component,
|
|
460
460
|
args: [{ host: { 'Bind': SystemUtils.generateUUID() }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [IndexTreeDataSource], standalone: true, imports: [FlexLayoutModule, MatButtonModule, MatTooltipModule, MatIconModule, MatProgressBarModule, MatDialogTitle, MatDialogContent,
|
|
461
|
-
NgStyle, MatSidenavModule, MatTreeModule, NgClass, SafeHtmlPipe], template: "<div class=\"helpviewer-fixed\">\r\n <div style=\"height:6px\">\r\n @if (busy()) {\r\n <mat-progress-bar z-index=\"11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n <div class=\"dialog-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill>\r\n <div class=\"dialog-menu\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"toggleIndexPane()\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>Guida</h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\" class=\"dialog-close\">\r\n @if (canGoBack()) {\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n</div>\r\n<mat-dialog-content id=\"helpviewer-scrollable\">\r\n <mat-drawer-container class=\"fill\">\r\n <mat-drawer #indexPane mode=\"side\" [autoFocus]=\"false\" class=\"drawer-small drawer-transparent\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"tree \" style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\" [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id}\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id }\" (click)=\"getChapter(node.id)\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div style=\"padding: 0 24px;\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div class=\"fill\" id=\"helpviewer-scroller\" (click)=\"gotoChapter($event)\"\r\n [innerHtml]=\"(page() ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px
|
|
461
|
+
NgStyle, MatSidenavModule, MatTreeModule, NgClass, SafeHtmlPipe], template: "<div class=\"helpviewer-fixed\">\r\n <div style=\"height:6px\">\r\n @if (busy()) {\r\n <mat-progress-bar z-index=\"11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n <div class=\"dialog-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill>\r\n <div class=\"dialog-menu\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"toggleIndexPane()\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>Guida</h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\" class=\"dialog-close\">\r\n @if (canGoBack()) {\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n</div>\r\n<mat-dialog-content id=\"helpviewer-scrollable\">\r\n <mat-drawer-container class=\"fill\">\r\n <mat-drawer #indexPane mode=\"side\" [autoFocus]=\"false\" class=\"drawer-small drawer-transparent\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"tree \" style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\" [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id}\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id }\" (click)=\"getChapter(node.id)\"\r\n [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div style=\"padding: 0 24px;\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div class=\"fill\" id=\"helpviewer-scroller\" (click)=\"gotoChapter($event)\"\r\n [innerHtml]=\"(page() ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 360px){.drawer,.drawer-small{border-radius:0!important}}@media screen and (min-width: 361px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}.dialog-menu{margin-top:4px!important}.tree{overflow-x:hidden}.tree-node{min-height:36px!important;padding-right:12px;margin-right:0}.tree-node .small-icon-button{width:2rem!important;height:2rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.tree-node .small-icon-button .mat-mdc-button-touch-target{width:2rem!important;height:2rem!important}.tree-node:hover{cursor:pointer;background-color:var(--mat-menu-item-hover-state-layer-color, transparent);border-radius:24px}.tree-node-simple,.tree-node-simple>div{min-height:36px!important}.tree-node-activated,.tree-node-activated>div{min-height:36px!important;font-weight:700!important;color:var(--ars-color-accent, #7894ae)!important}a.help-link,.help-link>a{text-decoration:none;color:#2a91e0}.help-title-2,.help-title-1{font-weight:600!important}.help-word-hit{font-size:inherit;background-color:#ff0;border:1px solid silver;padding:0 4px}.help-hint{margin:10px;padding:5px 20px;background-color:#fafad2;border-radius:12px}.help-summary{margin:10px;padding:5px 20px;background-color:#e6e6fa;border-radius:12px}.help-img{display:flex;align-items:center;justify-content:center;margin:10px}.help-img-200,.help-img-300,.help-img-400,.help-img-500,.help-img-700,.help-img-800{width:100%}.help-img-200{max-width:200px}.help-img-300{max-width:300px}.help-img-400{max-width:400px}.help-img-500{max-width:500px}.help-img-600{max-width:600px}.help-img-700{max-width:700px}.help-img-800{max-width:800px}.help-filter-box{background-color:#f9fbe7;border-radius:12px;padding:6px;display:inline-block;margin:0 0 8px 10px}\n"] }]
|
|
462
462
|
}], propDecorators: { indexPane: [{
|
|
463
463
|
type: ViewChild,
|
|
464
464
|
args: ['indexPane']
|
|
465
465
|
}] } });
|
|
466
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2hlbHAvY29tcG9uZW50cy9oZWxwLXZpZXdlci9oZWxwLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvaGVscC9jb21wb25lbnRzL2hlbHAtdmlld2VyL2hlbHAtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQTZCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwTSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxh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SUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDdkQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBMVZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhFQVZkLFdBQVcsQ0FBQyxZQUFZLEVBQUUsaUJBSy9CLENBQUMsbUJBQW1CLENBQUMsa0lDM0psQyxncUhBdUVxQiw0MktEc0ZULGdCQUFnQixraUhBQUUsZUFBZSwySUFBRSxnQkFBZ0IsNFRBQUUsYUFBYSxtTEFBRSxvQkFBb0IseU5BQUUsY0FBYywrSEFBRSxnQkFBZ0Isd0dBQ3pILGdCQUFnQix3ZEFBRSxhQUFhLGdyQkFBRSxPQUFPLCtFQUFFLFlBQVk7OzJGQUV0RCxtQkFBbUI7a0JBWC9CLFNBQVM7MkJBQ0YsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLGlCQUc3QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsbUJBQW1CLENBQUMsY0FDcEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCO3dCQUNsSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUM7OEJBRzFDLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT25Jbml0LCBTaWduYWwsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nVGl0bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0U2lkZW5hdiwgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciwgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQsIG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSGVscFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9oZWxwLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWxwVmlld2VyRGlhbG9nRGF0YSB7XHJcbiAgaWQ/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW5kZXhJbmZvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHBhcmVudD86IEluZGV4SW5mbyB8IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGl0ZW1zQ291bnQ/OiBudW1iZXIgfCBudWxsO1xyXG4gIHN1YkZvbGRlcnM/OiBJbmRleEluZm9bXSB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBJbmRleE5vZGUgZXh0ZW5kcyBJbmRleEluZm8ge1xyXG4gIGV4cGFuZGFibGU6IGJvb2xlYW47XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbTogSW5kZXhJbmZvLCBsZXZlbDogbnVtYmVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIC8vIEZsYXR0ZW5lZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgdGhpcy5leHBhbmRhYmxlID0gaXRlbS5zdWJGb2xkZXJzICYmIGl0ZW0uc3ViRm9sZGVycy5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5sZXZlbCA9IGxldmVsO1xyXG5cclxuICAgIC8vIERhdGFcclxuICAgIHRoaXMuaWQgPSBpdGVtLmlkO1xyXG4gICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xyXG4gICAgdGhpcy5pdGVtc0NvdW50ID0gaXRlbS5pdGVtc0NvdW50O1xyXG4gICAgdGhpcy5wYXJlbnQgPSBpdGVtLnBhcmVudDtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEluZGV4VHJlZURhdGFTb3VyY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGRhdGFDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEluZGV4SW5mb1tdPihbXSk7XHJcblxyXG4gIGdldCBkYXRhKCk6IEluZGV4SW5mb1tdIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2UudmFsdWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGF0YUNoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbHppZSB0aGUgZGF0YSBzb3VyY2VcclxuICAgKiBAcGFyYW0gZGF0YSA6IGRhdGFcclxuICAgKi9cclxuICBpbml0aWFsaXplKGRhdGE6IEluZGV4SW5mb1tdKSB7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dChkYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgYSBub2RlIGJ5IGlkIHJlY3Vyc2l2ZWx5XHJcbiAgICogQHBhcmFtIG5vZGU6IHRoZSBzb3VyY2Ugbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBpZCB0byBzZWFyY2ggZm9yXHJcbiAgICovXHJcbiAgZmluZE5vZGUobm9kZTogSW5kZXhJbmZvLCBpZDogc3RyaW5nKTogSW5kZXhJbmZvIHtcclxuICAgIGxldCBjaGlsZHJlbjtcclxuICAgIGlmIChub2RlICYmIG5vZGUuaWQgPT09IGlkKSByZXR1cm4gbm9kZTtcclxuICAgIGlmIChub2RlKSBjaGlsZHJlbiA9IG5vZGUuc3ViRm9sZGVycztcclxuICAgIGVsc2UgY2hpbGRyZW4gPSB0aGlzLmRhdGE7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgbGV0IF9uID0gbnVsbDtcclxuICAgICAgY2hpbGRyZW4uc29tZShuID0+IHtcclxuICAgICAgICBuLnBhcmVudCA9IG5vZGU7XHJcbiAgICAgICAgX24gPSB0aGlzLmZpbmROb2RlKG4sIGlkKTtcclxuICAgICAgICBpZiAoX24pIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBfbjtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGEgbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBub2RlIGlkIHRvIHJlbW92ZVxyXG4gICAqL1xyXG4gIHJlbW92ZU5vZGUoaWQ6IHN0cmluZykge1xyXG4gICAgbGV0IG4gPSB0aGlzLmZpbmROb2RlKG51bGwsIGlkKTtcclxuICAgIGlmICghbikgcmV0dXJuO1xyXG4gICAgaWYgKG4ucGFyZW50KSB7XHJcbiAgICAgIGNvbnN0IHAgPSBuLnBhcmVudC5zdWJGb2xkZXJzLmZpbmRJbmRleChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgICAgaWYgKHAgIT09IC0xKSB7XHJcbiAgICAgICAgbi5wYXJlbnQuc3ViRm9sZGVycy5zcGxpY2UocCwgMSk7XHJcbiAgICAgICAgbi5wYXJlbnQuaXRlbXNDb3VudC0tO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwID0gdGhpcy5kYXRhLmZpbmRJbmRleChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgICAgaWYgKHAgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLnNwbGljZShwLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnNlcnQgYSBuZXcgbm9kZVxyXG4gICAqIEBwYXJhbSBub2RlIDogdGhlIG5ldyBub2RlXHJcbiAgICovXHJcbiAgaW5zZXJ0Tm9kZShub2RlOiBJbmRleEluZm8pIHtcclxuICAgIGlmIChub2RlLnBhcmVudCkge1xyXG4gICAgICBub2RlLnBhcmVudC5zdWJGb2xkZXJzLnVuc2hpZnQobm9kZSk7XHJcbiAgICAgIG5vZGUucGFyZW50Lml0ZW1zQ291bnQrKztcclxuICAgIH0gZWxzZSB0aGlzLmRhdGEudW5zaGlmdChub2RlKTtcclxuXHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVuYW1lIGEgbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBub2RlIGlkXHJcbiAgICogQHBhcmFtIG5hbWUgOiB0aGUgbmV3IG5vZGUgbmFtZVxyXG4gICAqL1xyXG4gIHJlbmFtZU5vZGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgbiA9IHRoaXMuZmluZE5vZGUobnVsbCwgaWQpO1xyXG4gICAgaWYgKG4pIHtcclxuICAgICAgbi5uYW1lID0gbmFtZTtcclxuICAgICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBkYXRhXHJcbiAgICovXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWxwLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGVscC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW0luZGV4VHJlZURhdGFTb3VyY2VdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0ZsZXhMYXlvdXRNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsIE1hdERpYWxvZ1RpdGxlLCBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTmdTdHlsZSwgTWF0U2lkZW5hdk1vZHVsZSwgTWF0VHJlZU1vZHVsZSwgTmdDbGFzcywgU2FmZUh0bWxQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVscFZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdpbmRleFBhbmUnKSBpbmRleFBhbmUhOiBNYXRTaWRlbmF2O1xyXG5cclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8SGVscFZpZXdlckNvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBIZWxwVmlld2VyRGlhbG9nRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpID8/IHsgaWQ6IFwiMVwiIH07XHJcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgaGVscFNlcnZpY2UgPSBpbmplY3QoSGVscFNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBicmVha3BvaW50T2JzZXJ2ZXIgPSBpbmplY3QoQnJlYWtwb2ludE9ic2VydmVyKTtcclxuICBwcm90ZWN0ZWQgYnVzeSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIHBhZ2UgPSBzaWduYWw8c3RyaW5nPihudWxsKTtcclxuICBwcml2YXRlIGluZGV4SWQ6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBpbmRleFBhbmVDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgaW5kZXhOb2RlOiBJbmRleEluZm8gPSBudWxsO1xyXG4gIHByaXZhdGUgaGlzdG9yeSA9IHNpZ25hbChbXSk7XHJcbiAgcHJvdGVjdGVkIGNhbkdvQmFjazogU2lnbmFsPGJvb2xlYW4+ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGlzdG9yeSgpPy5sZW5ndGggPiAxO1xyXG4gIH0pXHJcblxyXG4gIC8qKlxyXG4gKiBNYW5hZ2UgZmxhdCB0cmVlIHZpZXdcclxuICovXHJcbiAgcHJpdmF0ZSB0cmVlID0gaW5qZWN0KEluZGV4VHJlZURhdGFTb3VyY2UpO1xyXG4gIHByaXZhdGUgdHJlZUZsYXR0ZW5lcjogTWF0VHJlZUZsYXR0ZW5lcjxJbmRleEluZm8sIEluZGV4Tm9kZT47XHJcbiAgcHJvdGVjdGVkIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8SW5kZXhOb2RlPjtcclxuICBwcm90ZWN0ZWQgdHJlZURhdGE6IE1hdFRyZWVGbGF0RGF0YVNvdXJjZTxJbmRleEluZm8sIEluZGV4Tm9kZT47XHJcbiAgcHJpdmF0ZSBmb2xkZXJzOiBJbmRleEluZm9bXSB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW4gPSAobm9kZTogSW5kZXhJbmZvKTogT2JzZXJ2YWJsZTxJbmRleEluZm9bXT4gPT5cclxuICAgIG9ic2VydmFibGVPZihub2RlLnN1YkZvbGRlcnMpO1xyXG4gIHByaXZhdGUgZ2V0TGV2ZWwgPSAobm9kZTogSW5kZXhOb2RlKSA9PiBub2RlLmxldmVsO1xyXG4gIHByaXZhdGUgaXNFeHBhbmRhYmxlID0gKG5vZGU6IEluZGV4Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xyXG4gIHByb3RlY3RlZCBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlOiBJbmRleE5vZGUpID0+IF9ub2RlLmV4cGFuZGFibGU7XHJcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybWVyID0gKGl0ZW06IEluZGV4SW5mbywgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBJbmRleE5vZGUoaXRlbSwgbGV2ZWwpO1xyXG4gIH07XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIC8vIFNldHVwIHRyZWUgc3RydWN0dXJlXHJcbiAgICB0aGlzLnRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcclxuICAgICAgdGhpcy50cmFuc2Zvcm1lcixcclxuICAgICAgdGhpcy5nZXRMZXZlbCxcclxuICAgICAgdGhpcy5pc0V4cGFuZGFibGUsXHJcbiAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5cclxuICAgICk7XHJcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxJbmRleE5vZGU+KFxyXG4gICAgICB0aGlzLmdldExldmVsLFxyXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZVxyXG4gICAgKTtcclxuICAgIHRoaXMudHJlZURhdGEgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKFxyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLFxyXG4gICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcclxuICAgICk7XHJcblxyXG4gICAgLy8gU3Vic2NyaWJlIGRhdGEgY2hhbmdlXHJcbiAgICB0aGlzLnRyZWUuZGF0YUNoYW5nZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiAodGhpcy50cmVlRGF0YS5kYXRhID0gZGF0YSkpO1xyXG5cclxuICAgIC8vIE9ic2VydmUgbGF5b3V0IGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXHJcbiAgICAgIC5vYnNlcnZlKFtcclxuICAgICAgICBCcmVha3BvaW50cy5YU21hbGwsXHJcbiAgICAgICAgQnJlYWtwb2ludHMuU21hbGwsXHJcbiAgICAgICAgQnJlYWtwb2ludHMuTWVkaXVtLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLkxhcmdlLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLlhMYXJnZSxcclxuICAgICAgXSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgZm9yIChjb25zdCBxdWVyeSBvZiBPYmplY3Qua2V5cyhyZXN1bHQuYnJlYWtwb2ludHMpKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmJyZWFrcG9pbnRzW3F1ZXJ5XSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgLy8gUmVhY3QgdG8gd2luZG93IHNpemUgY2hhbmdlXHJcbiAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpLCBkZWJvdW5jZVRpbWUoMjUwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5nZXRUb2MoKTtcclxuXHJcbiAgICB0aGlzLmluZGV4SWQgPSB0aGlzLmRpYWxvZ0RhdGEuaWQ7XHJcbiAgICBpZiAodGhpcy5pbmRleElkKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q2hhcHRlcih0aGlzLmluZGV4SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCk7XHJcbiAgICAgIHRoaXMuaW5kZXhQYW5lQ2xvc2VkID0gIXRoaXMuaW5kZXhQYW5lLm9wZW5lZDtcclxuICAgIH0sIDApO1xyXG4gICAgdGhpcy5yZXNpemUoKTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzaXplIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzaXplKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxldCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHB2aWV3ZXItc2Nyb2xsYWJsZScpO1xyXG4gICAgICBpZiAoZWxlbSkge1xyXG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXRDdXJyZW50RGlhbG9nU2Nyb2xsYWJsZUhlaWdodChcclxuICAgICAgICAgIFsnaGVscHZpZXdlci1maXhlZCddLFxyXG4gICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0XHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaGVpZ2h0ICE9IGVsZW0uY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICBlbGVtLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAncGFkZGluZzowIDAgMCAxMHB4O2hlaWdodDonICsgaGVpZ2h0ICsgJ3B4ICFpbXBvcnRhbnQ7bWF4LWhlaWdodDonICsgaGVpZ2h0ICsgJ3B4ICFpbXBvcnRhbnQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiogSGFuZGxlIGZpbHRlciBwYW5lIHZpc2liaWxpdHlcclxuKi9cclxuICBwcml2YXRlIGhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCkge1xyXG4gICAgaWYgKHRoaXMuaW5kZXhQYW5lKSB7XHJcbiAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuWFNtYWxsKSB8fFxyXG4gICAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5TbWFsbCkgfHxcclxuICAgICAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuTWVkaXVtKSkge1xyXG4gICAgICAgIGlmICh0aGlzLmluZGV4UGFuZS5vcGVuZWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5kZXhQYW5lLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5pbmRleFBhbmUub3BlbmVkICYmICF0aGlzLmluZGV4UGFuZUNsb3NlZCkge1xyXG4gICAgICAgICAgdGhpcy5pbmRleFBhbmUub3BlbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBoaWRlIGluZGV4IHBhbmUgbWFudWFsbHlcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdG9nZ2xlSW5kZXhQYW5lKCkge1xyXG4gICAgdGhpcy5pbmRleFBhbmVDbG9zZWQgPSAhdGhpcy5pbmRleFBhbmVDbG9zZWQ7XHJcbiAgICB0aGlzLmluZGV4UGFuZT8udG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2UgZGlhbG9nXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdG9jXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldFRvYygpOiB2b2lkIHtcclxuICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLmhlbHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRUb2MoKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiByID0+IHtcclxuICAgICAgICAgIGlmICghci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb2xkZXJzID0gci52YWx1ZS5zdWJGb2xkZXJzO1xyXG4gICAgICAgICAgICB0aGlzLnRyZWUuaW5pdGlhbGl6ZShyLnZhbHVlLnN1YkZvbGRlcnMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYnVzeS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWFjdCB0byBjbGljayBldmVudCBhbmQgZmluZCBuZXcgaGVscCB0YXJnZXQgdG8gZ28gdG9cclxuICAgKiBAcGFyYW0gZXZlbnQgOiB0aGUgY2xpY2sgZXZlbnRcclxuICAgKiBAcmV0dXJucyA6IGFsd2F5cyBmYWxzZSwgdG8gc3RvcCBuYXZpZ2F0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdvdG9DaGFwdGVyKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmIChldmVudC5zcmNFbGVtZW50Lm5vZGVOYW1lICE9PSAnQScpIHJldHVybiBmYWxzZTtcclxuICAgIGxldCB0YWcgPSBldmVudC5zcmNFbGVtZW50Lm91dGVySFRNTDtcclxuICAgIGxldCBpZCA9ICcnO1xyXG4gICAgbGV0IHAgPSB0YWcuaW5kZXhPZignaGVscC10YXJnZXQ9XCInKTtcclxuICAgIGlmIChwICE9PSAtMSkge1xyXG4gICAgICBwICs9IDEzO1xyXG4gICAgICB3aGlsZSAodGFnW3BdICE9PSAnXCInKSB7XHJcbiAgICAgICAgaWQgKz0gdGFnW3BdO1xyXG4gICAgICAgIHArKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlkKSB0aGlzLmdldENoYXB0ZXIoaWQpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCBhIG5vZGUgYnkgaWRcclxuICAgKiBAcGFyYW0gaWQgOiBmb2xkZXIgaWRcclxuICAgKiBAcmV0dXJuczogdGhlIGZvbGRlciBpbmZvXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmaW5kRm9sZGVyKGlkOiBzdHJpbmcpOiBJbmRleEluZm8ge1xyXG4gICAgbGV0IG5vZGUgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZm9sZGVycykge1xyXG4gICAgICB0aGlzLmZvbGRlcnMuc29tZShuID0+IHtcclxuICAgICAgICBub2RlID0gdGhpcy50cmVlLmZpbmROb2RlKG4sIGlkKTtcclxuICAgICAgICBpZiAobm9kZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBub2RlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwYW5kIGN1cnJlbnQgZm9kbGVyIG5vZGVcclxuICAgKi9cclxuICBwcml2YXRlIGV4cGFuZEN1cnJlbnRGb2xkZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbmRleE5vZGUpIHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQoXHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChuID0+IG4uaWQgPT09IHRoaXMuaW5kZXhOb2RlLmlkKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAodGhpcy5pbmRleE5vZGUucGFyZW50KSB7XHJcbiAgICAgICAgLy8gQXBwbHkgcHJldmlvdXMgc2VsZWN0aW9uXHJcbiAgICAgICAgbGV0IG4gPSB0aGlzLmluZGV4Tm9kZS5wYXJlbnQ7XHJcbiAgICAgICAgd2hpbGUgKG4pIHtcclxuICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKFxyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKHggPT4geC5pZCA9PT0gbi5pZClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBuID0gbi5wYXJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhIG5ldyBjaGFwdGVyXHJcbiAgICogQHBhcmFtIGlkIHRoZSBjaGFwdGVyIGlkI2FuY2hvclxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiA6IHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG9cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0Q2hhcHRlcihpZDogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyID0gMCk6IHZvaWQge1xyXG4gICAgLy8gRGV0ZWN0IGFuY2hvciBpZiBleGlzdHNcclxuICAgIGxldCBhbmNob3I6IHN0cmluZyA9IG51bGw7XHJcbiAgICBjb25zdCBwID0gaWQuaW5kZXhPZignIycpO1xyXG4gICAgaWYgKHAgIT09IC0xKSB7XHJcbiAgICAgIGFuY2hvciA9IGlkLnN1YnN0cmluZyhwICsgMSk7XHJcbiAgICAgIGlkID0gaWQuc3Vic3RyaW5nKDAsIHApO1xyXG4gICAgfVxyXG4gICAgaWYgKGlkICE9PSAnLicpIHtcclxuICAgICAgdGhpcy5idXN5LnNldCh0cnVlKTtcclxuICAgICAgdGhpcy5oZWxwU2VydmljZS5nZXRDaGFwdGVyKGlkKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihcIkNhcGl0b2xvIG5vbiB0cm92YXRvLlwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoIXBvc2l0aW9uKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5KCkucHVzaCh7IGlkOiB0aGlzLmluZGV4SWQsIHBvc2l0aW9uOiB0aGlzLmdldFBvc2l0aW9uKCkgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbmRleElkID0gaWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYWdlLnNldChyLnZhbHVlLmRhdGEpO1xyXG4gICAgICAgICAgICAgIGZvdW5kID0gci52YWx1ZS5jaGFwdGVyPy5uYW1lPy5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgICAgIGlmIChmb3VuZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGZvbGRlclxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbmRleE5vZGUgPSB0aGlzLmZpbmRGb2xkZXIoaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRDdXJyZW50Rm9sZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgcG9zaXRpb25pbmdcclxuICAgICAgICAgICAgICAgIHRoaXMuZ290b1Bvc2l0aW9uKGFuY2hvciwgcG9zaXRpb24pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFmb3VuZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0Q2hhcHRlcihcIjFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghcG9zaXRpb24pXHJcbiAgICAgICAgdGhpcy5oaXN0b3J5KCkucHVzaCh7IGlkOiB0aGlzLmluZGV4SWQsIHBvc2l0aW9uOiB0aGlzLmdldFBvc2l0aW9uKCkgfSk7XHJcbiAgICAgIC8vIE1vdmUgb24gdGhlIHNhbWUgY2hhcHRlclxyXG4gICAgICB0aGlzLmdvdG9Qb3NpdGlvbihhbmNob3IsIHBvc2l0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvdG8gcG9zaXRpb25cclxuICAgKiBAcGFyYW0gYW5jaG9yIHRoZSBhbmNob3IgdG8gZ28gdG9cclxuICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIG9mZnNldCB0byBnbyB0b1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnb3RvUG9zaXRpb24oYW5jaG9yOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAvLyBIYW5kbGUgcG9zaXRpb25pbmdcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyBIYW5kbGUgYW5jaG9yIGZpcnN0XHJcbiAgICAgIGlmIChhbmNob3IpIHtcclxuICAgICAgICBsZXQgZWxtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKGFuY2hvci50b1VwcGVyQ2FzZSgpKTtcclxuICAgICAgICBpZiAoZWxtcykgcG9zaXRpb24gPSBlbG1zWzBdLm9mZnNldFRvcDtcclxuICAgICAgfVxyXG4gICAgICAvLyBUaGVuIHBvc2l0aW9uXHJcbiAgICAgIGlmIChwb3NpdGlvbiA+IDApIHRoaXMuc2V0UG9zaXRpb24ocG9zaXRpb24gLSAxKTtcclxuICAgICAgZWxzZSB0aGlzLnNldFBvc2l0aW9uKDApO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHNjcm9sbCBwb3NpdGlvblxyXG4gICAqIEByZXR1cm5zOiB0aGUgbmV3IHNjcm9sbCB0b3BcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb24oKTogbnVtYmVyIHtcclxuICAgIGxldCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHB2aWV3ZXItc2Nyb2xsZXInKTtcclxuICAgIGlmIChlbGVtKSB7XHJcbiAgICAgIHJldHVybiBlbGVtLnNjcm9sbFRvcDtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHNjcm9sbCBwb3NpdGlvblxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiA6IHRoZSBwb3NpdGlvbiB0byBnbyB0b1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRQb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBsZXQgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoZWxwdmlld2VyLXNjcm9sbGVyJyk7XHJcbiAgICBpZiAoZWxlbSkge1xyXG4gICAgICBlbGVtLnNjcm9sbFRvKDAsIHBvc2l0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIGJhY2tcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYmFjaygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oaXN0b3J5IHx8IHRoaXMuaGlzdG9yeS5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGxldCBuID0gdGhpcy5oaXN0b3J5KCkucG9wKCk7XHJcbiAgICB0aGlzLmdldENoYXB0ZXIobi5pZCwgbi5wb3NpdGlvbiArIDEpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoZWxwdmlld2VyLWZpeGVkXCI+XHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDo2cHhcIj5cclxuICAgIEBpZiAoYnVzeSgpKSB7XHJcbiAgICA8bWF0LXByb2dyZXNzLWJhciB6LWluZGV4PVwiMTFcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiPlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctbWVudVwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiTW9zdHJhIG1lbnVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidNb3N0cmEgaW5kaWNlJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlSW5kZXhQYW5lKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiPlxyXG4gICAgICAgIDxoMiBtYXQtZGlhbG9nLXRpdGxlPkd1aWRhPC9oMj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiMTAwcHhcIiBmeExheW91dEFsaWduPVwiZW5kXCIgY2xhc3M9XCJkaWFsb2ctY2xvc2VcIj5cclxuICAgICAgICBAaWYgKGNhbkdvQmFjaygpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cInN0YXJ0XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiSW5kaWV0cm9cIiAoY2xpY2spPVwiYmFjaygpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+YXJyb3dfYmFjazwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJzdGFydFwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIkNoaXVkaVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gXHJcbjwvZGl2PlxyXG48bWF0LWRpYWxvZy1jb250ZW50IGlkPVwiaGVscHZpZXdlci1zY3JvbGxhYmxlXCI+XHJcbiAgPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiZmlsbFwiPlxyXG4gICAgPG1hdC1kcmF3ZXIgI2luZGV4UGFuZSBtb2RlPVwic2lkZVwiIFthdXRvRm9jdXNdPVwiZmFsc2VcIiBjbGFzcz1cImRyYXdlci1zbWFsbCBkcmF3ZXItdHJhbnNwYXJlbnRcIj5cclxuICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbD5cclxuICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIj5cclxuICAgICAgICAgIDxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJ0cmVlRGF0YVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiIGNsYXNzPVwidHJlZSBcIiBzdHlsZT1cIm1heC13aWR0aDozMTBweFwiPlxyXG4gICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiIG1hdFRyZWVOb2RlVG9nZ2xlIG1hdFRyZWVOb2RlUGFkZGluZ1xyXG4gICAgICAgICAgICAgIFttYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnRdPVwiMjBcIiBjbGFzcz1cInRyZWUtbm9kZSB0cmVlLW5vZGUtc2ltcGxlIHRyZWUtbm9kZS1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdldENoYXB0ZXIobm9kZS5pZCk7XCIgW25nQ2xhc3NdPVwieyd0cmVlLW5vZGUtYWN0aXZhdGVkJzogaW5kZXhOb2RlICYmIGluZGV4Tm9kZS5pZCA9PT0gbm9kZS5pZH1cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXN5KClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsIGNsYXNzPVwic21hbGwgdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZCBjbGFzcz1cInNtYWxsLWljb24tYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPnt7bm9kZS5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxyXG4gICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTt3aGVuOiBoYXNDaGlsZFwiIG1hdFRyZWVOb2RlUGFkZGluZyBbbWF0VHJlZU5vZGVQYWRkaW5nSW5kZW50XT1cIjIwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInRyZWUtbm9kZSB0cmVlLW5vZGUtc2ltcGxlIHRyZWUtbm9kZS1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0cmVlLW5vZGUtYWN0aXZhdGVkJzogaW5kZXhOb2RlICYmIGluZGV4Tm9kZS5pZCA9PT0gbm9kZS5pZCB9XCIgKGNsaWNrKT1cImdldENoYXB0ZXIobm9kZS5pZClcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXN5KClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsIGNsYXNzPVwic21hbGwgdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUcmVlTm9kZVRvZ2dsZVxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHJpL2NoaXVkaSAnICsgbm9kZS5uYW1lXCIgY2xhc3M9XCJzbWFsbC1pY29uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2V4cGFuZF9tb3JlJyA6ICdjaGV2cm9uX3JpZ2h0J319XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+e3tub2RlLm5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XHJcbiAgICAgICAgICA8L21hdC10cmVlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRyYXdlcj5cclxuICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDI0cHg7XCI+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGxcIiBpZD1cImhlbHB2aWV3ZXItc2Nyb2xsZXJcIiAoY2xpY2spPVwiZ290b0NoYXB0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbaW5uZXJIdG1sXT1cIihwYWdlKCkgPz8gJycpIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXItY29udGFpbmVyPlxyXG48L21hdC1kaWFsb2ctY29udGVudD4iXX0=
|
|
466
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2hlbHAvY29tcG9uZW50cy9oZWxwLXZpZXdlci9oZWxwLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvaGVscC9jb21wb25lbnRzL2hlbHAtdmlld2VyL2hlbHAtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQTZCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwTSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxh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SUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDdkQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBMVZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhFQVZkLFdBQVcsQ0FBQyxZQUFZLEVBQUUsaUJBSy9CLENBQUMsbUJBQW1CLENBQUMsa0lDM0psQyxncUhBdUVxQixxc0tEc0ZULGdCQUFnQixraUhBQUUsZUFBZSwySUFBRSxnQkFBZ0IsNFRBQUUsYUFBYSxtTEFBRSxvQkFBb0IseU5BQUUsY0FBYywrSEFBRSxnQkFBZ0Isd0dBQ3pILGdCQUFnQix3ZEFBRSxhQUFhLGdyQkFBRSxPQUFPLCtFQUFFLFlBQVk7OzJGQUV0RCxtQkFBbUI7a0JBWC9CLFNBQVM7MkJBQ0YsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLGlCQUc3QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsbUJBQW1CLENBQUMsY0FDcEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCO3dCQUNsSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUM7OEJBRzFDLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT25Jbml0LCBTaWduYWwsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nVGl0bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0U2lkZW5hdiwgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciwgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQsIG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSGVscFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9oZWxwLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWxwVmlld2VyRGlhbG9nRGF0YSB7XHJcbiAgaWQ/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW5kZXhJbmZvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHBhcmVudD86IEluZGV4SW5mbyB8IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGl0ZW1zQ291bnQ/OiBudW1iZXIgfCBudWxsO1xyXG4gIHN1YkZvbGRlcnM/OiBJbmRleEluZm9bXSB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBJbmRleE5vZGUgZXh0ZW5kcyBJbmRleEluZm8ge1xyXG4gIGV4cGFuZGFibGU6IGJvb2xlYW47XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbTogSW5kZXhJbmZvLCBsZXZlbDogbnVtYmVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIC8vIEZsYXR0ZW5lZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgdGhpcy5leHBhbmRhYmxlID0gaXRlbS5zdWJGb2xkZXJzICYmIGl0ZW0uc3ViRm9sZGVycy5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5sZXZlbCA9IGxldmVsO1xyXG5cclxuICAgIC8vIERhdGFcclxuICAgIHRoaXMuaWQgPSBpdGVtLmlkO1xyXG4gICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xyXG4gICAgdGhpcy5pdGVtc0NvdW50ID0gaXRlbS5pdGVtc0NvdW50O1xyXG4gICAgdGhpcy5wYXJlbnQgPSBpdGVtLnBhcmVudDtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEluZGV4VHJlZURhdGFTb3VyY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGRhdGFDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEluZGV4SW5mb1tdPihbXSk7XHJcblxyXG4gIGdldCBkYXRhKCk6IEluZGV4SW5mb1tdIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2UudmFsdWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGF0YUNoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbHppZSB0aGUgZGF0YSBzb3VyY2VcclxuICAgKiBAcGFyYW0gZGF0YSA6IGRhdGFcclxuICAgKi9cclxuICBpbml0aWFsaXplKGRhdGE6IEluZGV4SW5mb1tdKSB7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dChkYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgYSBub2RlIGJ5IGlkIHJlY3Vyc2l2ZWx5XHJcbiAgICogQHBhcmFtIG5vZGU6IHRoZSBzb3VyY2Ugbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBpZCB0byBzZWFyY2ggZm9yXHJcbiAgICovXHJcbiAgZmluZE5vZGUobm9kZTogSW5kZXhJbmZvLCBpZDogc3RyaW5nKTogSW5kZXhJbmZvIHtcclxuICAgIGxldCBjaGlsZHJlbjtcclxuICAgIGlmIChub2RlICYmIG5vZGUuaWQgPT09IGlkKSByZXR1cm4gbm9kZTtcclxuICAgIGlmIChub2RlKSBjaGlsZHJlbiA9IG5vZGUuc3ViRm9sZGVycztcclxuICAgIGVsc2UgY2hpbGRyZW4gPSB0aGlzLmRhdGE7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgbGV0IF9uID0gbnVsbDtcclxuICAgICAgY2hpbGRyZW4uc29tZShuID0+IHtcclxuICAgICAgICBuLnBhcmVudCA9IG5vZGU7XHJcbiAgICAgICAgX24gPSB0aGlzLmZpbmROb2RlKG4sIGlkKTtcclxuICAgICAgICBpZiAoX24pIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBfbjtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGEgbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBub2RlIGlkIHRvIHJlbW92ZVxyXG4gICAqL1xyXG4gIHJlbW92ZU5vZGUoaWQ6IHN0cmluZykge1xyXG4gICAgbGV0IG4gPSB0aGlzLmZpbmROb2RlKG51bGwsIGlkKTtcclxuICAgIGlmICghbikgcmV0dXJuO1xyXG4gICAgaWYgKG4ucGFyZW50KSB7XHJcbiAgICAgIGNvbnN0IHAgPSBuLnBhcmVudC5zdWJGb2xkZXJzLmZpbmRJbmRleChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgICAgaWYgKHAgIT09IC0xKSB7XHJcbiAgICAgICAgbi5wYXJlbnQuc3ViRm9sZGVycy5zcGxpY2UocCwgMSk7XHJcbiAgICAgICAgbi5wYXJlbnQuaXRlbXNDb3VudC0tO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwID0gdGhpcy5kYXRhLmZpbmRJbmRleChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgICAgaWYgKHAgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLnNwbGljZShwLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnNlcnQgYSBuZXcgbm9kZVxyXG4gICAqIEBwYXJhbSBub2RlIDogdGhlIG5ldyBub2RlXHJcbiAgICovXHJcbiAgaW5zZXJ0Tm9kZShub2RlOiBJbmRleEluZm8pIHtcclxuICAgIGlmIChub2RlLnBhcmVudCkge1xyXG4gICAgICBub2RlLnBhcmVudC5zdWJGb2xkZXJzLnVuc2hpZnQobm9kZSk7XHJcbiAgICAgIG5vZGUucGFyZW50Lml0ZW1zQ291bnQrKztcclxuICAgIH0gZWxzZSB0aGlzLmRhdGEudW5zaGlmdChub2RlKTtcclxuXHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVuYW1lIGEgbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBub2RlIGlkXHJcbiAgICogQHBhcmFtIG5hbWUgOiB0aGUgbmV3IG5vZGUgbmFtZVxyXG4gICAqL1xyXG4gIHJlbmFtZU5vZGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgbiA9IHRoaXMuZmluZE5vZGUobnVsbCwgaWQpO1xyXG4gICAgaWYgKG4pIHtcclxuICAgICAgbi5uYW1lID0gbmFtZTtcclxuICAgICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBkYXRhXHJcbiAgICovXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWxwLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGVscC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW0luZGV4VHJlZURhdGFTb3VyY2VdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0ZsZXhMYXlvdXRNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsIE1hdERpYWxvZ1RpdGxlLCBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTmdTdHlsZSwgTWF0U2lkZW5hdk1vZHVsZSwgTWF0VHJlZU1vZHVsZSwgTmdDbGFzcywgU2FmZUh0bWxQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVscFZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdpbmRleFBhbmUnKSBpbmRleFBhbmUhOiBNYXRTaWRlbmF2O1xyXG5cclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8SGVscFZpZXdlckNvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBIZWxwVmlld2VyRGlhbG9nRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpID8/IHsgaWQ6IFwiMVwiIH07XHJcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgaGVscFNlcnZpY2UgPSBpbmplY3QoSGVscFNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBicmVha3BvaW50T2JzZXJ2ZXIgPSBpbmplY3QoQnJlYWtwb2ludE9ic2VydmVyKTtcclxuICBwcm90ZWN0ZWQgYnVzeSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIHBhZ2UgPSBzaWduYWw8c3RyaW5nPihudWxsKTtcclxuICBwcml2YXRlIGluZGV4SWQ6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBpbmRleFBhbmVDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgaW5kZXhOb2RlOiBJbmRleEluZm8gPSBudWxsO1xyXG4gIHByaXZhdGUgaGlzdG9yeSA9IHNpZ25hbChbXSk7XHJcbiAgcHJvdGVjdGVkIGNhbkdvQmFjazogU2lnbmFsPGJvb2xlYW4+ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGlzdG9yeSgpPy5sZW5ndGggPiAxO1xyXG4gIH0pXHJcblxyXG4gIC8qKlxyXG4gKiBNYW5hZ2UgZmxhdCB0cmVlIHZpZXdcclxuICovXHJcbiAgcHJpdmF0ZSB0cmVlID0gaW5qZWN0KEluZGV4VHJlZURhdGFTb3VyY2UpO1xyXG4gIHByaXZhdGUgdHJlZUZsYXR0ZW5lcjogTWF0VHJlZUZsYXR0ZW5lcjxJbmRleEluZm8sIEluZGV4Tm9kZT47XHJcbiAgcHJvdGVjdGVkIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8SW5kZXhOb2RlPjtcclxuICBwcm90ZWN0ZWQgdHJlZURhdGE6IE1hdFRyZWVGbGF0RGF0YVNvdXJjZTxJbmRleEluZm8sIEluZGV4Tm9kZT47XHJcbiAgcHJpdmF0ZSBmb2xkZXJzOiBJbmRleEluZm9bXSB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW4gPSAobm9kZTogSW5kZXhJbmZvKTogT2JzZXJ2YWJsZTxJbmRleEluZm9bXT4gPT5cclxuICAgIG9ic2VydmFibGVPZihub2RlLnN1YkZvbGRlcnMpO1xyXG4gIHByaXZhdGUgZ2V0TGV2ZWwgPSAobm9kZTogSW5kZXhOb2RlKSA9PiBub2RlLmxldmVsO1xyXG4gIHByaXZhdGUgaXNFeHBhbmRhYmxlID0gKG5vZGU6IEluZGV4Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xyXG4gIHByb3RlY3RlZCBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlOiBJbmRleE5vZGUpID0+IF9ub2RlLmV4cGFuZGFibGU7XHJcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybWVyID0gKGl0ZW06IEluZGV4SW5mbywgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBJbmRleE5vZGUoaXRlbSwgbGV2ZWwpO1xyXG4gIH07XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIC8vIFNldHVwIHRyZWUgc3RydWN0dXJlXHJcbiAgICB0aGlzLnRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcclxuICAgICAgdGhpcy50cmFuc2Zvcm1lcixcclxuICAgICAgdGhpcy5nZXRMZXZlbCxcclxuICAgICAgdGhpcy5pc0V4cGFuZGFibGUsXHJcbiAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5cclxuICAgICk7XHJcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxJbmRleE5vZGU+KFxyXG4gICAgICB0aGlzLmdldExldmVsLFxyXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZVxyXG4gICAgKTtcclxuICAgIHRoaXMudHJlZURhdGEgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKFxyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLFxyXG4gICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcclxuICAgICk7XHJcblxyXG4gICAgLy8gU3Vic2NyaWJlIGRhdGEgY2hhbmdlXHJcbiAgICB0aGlzLnRyZWUuZGF0YUNoYW5nZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiAodGhpcy50cmVlRGF0YS5kYXRhID0gZGF0YSkpO1xyXG5cclxuICAgIC8vIE9ic2VydmUgbGF5b3V0IGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXHJcbiAgICAgIC5vYnNlcnZlKFtcclxuICAgICAgICBCcmVha3BvaW50cy5YU21hbGwsXHJcbiAgICAgICAgQnJlYWtwb2ludHMuU21hbGwsXHJcbiAgICAgICAgQnJlYWtwb2ludHMuTWVkaXVtLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLkxhcmdlLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLlhMYXJnZSxcclxuICAgICAgXSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgZm9yIChjb25zdCBxdWVyeSBvZiBPYmplY3Qua2V5cyhyZXN1bHQuYnJlYWtwb2ludHMpKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmJyZWFrcG9pbnRzW3F1ZXJ5XSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgLy8gUmVhY3QgdG8gd2luZG93IHNpemUgY2hhbmdlXHJcbiAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpLCBkZWJvdW5jZVRpbWUoMjUwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5nZXRUb2MoKTtcclxuXHJcbiAgICB0aGlzLmluZGV4SWQgPSB0aGlzLmRpYWxvZ0RhdGEuaWQ7XHJcbiAgICBpZiAodGhpcy5pbmRleElkKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q2hhcHRlcih0aGlzLmluZGV4SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCk7XHJcbiAgICAgIHRoaXMuaW5kZXhQYW5lQ2xvc2VkID0gIXRoaXMuaW5kZXhQYW5lLm9wZW5lZDtcclxuICAgIH0sIDApO1xyXG4gICAgdGhpcy5yZXNpemUoKTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzaXplIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzaXplKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxldCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHB2aWV3ZXItc2Nyb2xsYWJsZScpO1xyXG4gICAgICBpZiAoZWxlbSkge1xyXG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXRDdXJyZW50RGlhbG9nU2Nyb2xsYWJsZUhlaWdodChcclxuICAgICAgICAgIFsnaGVscHZpZXdlci1maXhlZCddLFxyXG4gICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0XHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaGVpZ2h0ICE9IGVsZW0uY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICBlbGVtLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAncGFkZGluZzowIDAgMCAxMHB4O2hlaWdodDonICsgaGVpZ2h0ICsgJ3B4ICFpbXBvcnRhbnQ7bWF4LWhlaWdodDonICsgaGVpZ2h0ICsgJ3B4ICFpbXBvcnRhbnQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiogSGFuZGxlIGZpbHRlciBwYW5lIHZpc2liaWxpdHlcclxuKi9cclxuICBwcml2YXRlIGhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCkge1xyXG4gICAgaWYgKHRoaXMuaW5kZXhQYW5lKSB7XHJcbiAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuWFNtYWxsKSB8fFxyXG4gICAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5TbWFsbCkgfHxcclxuICAgICAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuTWVkaXVtKSkge1xyXG4gICAgICAgIGlmICh0aGlzLmluZGV4UGFuZS5vcGVuZWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5kZXhQYW5lLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5pbmRleFBhbmUub3BlbmVkICYmICF0aGlzLmluZGV4UGFuZUNsb3NlZCkge1xyXG4gICAgICAgICAgdGhpcy5pbmRleFBhbmUub3BlbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBoaWRlIGluZGV4IHBhbmUgbWFudWFsbHlcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdG9nZ2xlSW5kZXhQYW5lKCkge1xyXG4gICAgdGhpcy5pbmRleFBhbmVDbG9zZWQgPSAhdGhpcy5pbmRleFBhbmVDbG9zZWQ7XHJcbiAgICB0aGlzLmluZGV4UGFuZT8udG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2UgZGlhbG9nXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdG9jXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldFRvYygpOiB2b2lkIHtcclxuICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLmhlbHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRUb2MoKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiByID0+IHtcclxuICAgICAgICAgIGlmICghci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb2xkZXJzID0gci52YWx1ZS5zdWJGb2xkZXJzO1xyXG4gICAgICAgICAgICB0aGlzLnRyZWUuaW5pdGlhbGl6ZShyLnZhbHVlLnN1YkZvbGRlcnMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYnVzeS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWFjdCB0byBjbGljayBldmVudCBhbmQgZmluZCBuZXcgaGVscCB0YXJnZXQgdG8gZ28gdG9cclxuICAgKiBAcGFyYW0gZXZlbnQgOiB0aGUgY2xpY2sgZXZlbnRcclxuICAgKiBAcmV0dXJucyA6IGFsd2F5cyBmYWxzZSwgdG8gc3RvcCBuYXZpZ2F0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdvdG9DaGFwdGVyKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmIChldmVudC5zcmNFbGVtZW50Lm5vZGVOYW1lICE9PSAnQScpIHJldHVybiBmYWxzZTtcclxuICAgIGxldCB0YWcgPSBldmVudC5zcmNFbGVtZW50Lm91dGVySFRNTDtcclxuICAgIGxldCBpZCA9ICcnO1xyXG4gICAgbGV0IHAgPSB0YWcuaW5kZXhPZignaGVscC10YXJnZXQ9XCInKTtcclxuICAgIGlmIChwICE9PSAtMSkge1xyXG4gICAgICBwICs9IDEzO1xyXG4gICAgICB3aGlsZSAodGFnW3BdICE9PSAnXCInKSB7XHJcbiAgICAgICAgaWQgKz0gdGFnW3BdO1xyXG4gICAgICAgIHArKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlkKSB0aGlzLmdldENoYXB0ZXIoaWQpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCBhIG5vZGUgYnkgaWRcclxuICAgKiBAcGFyYW0gaWQgOiBmb2xkZXIgaWRcclxuICAgKiBAcmV0dXJuczogdGhlIGZvbGRlciBpbmZvXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmaW5kRm9sZGVyKGlkOiBzdHJpbmcpOiBJbmRleEluZm8ge1xyXG4gICAgbGV0IG5vZGUgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZm9sZGVycykge1xyXG4gICAgICB0aGlzLmZvbGRlcnMuc29tZShuID0+IHtcclxuICAgICAgICBub2RlID0gdGhpcy50cmVlLmZpbmROb2RlKG4sIGlkKTtcclxuICAgICAgICBpZiAobm9kZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBub2RlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwYW5kIGN1cnJlbnQgZm9kbGVyIG5vZGVcclxuICAgKi9cclxuICBwcml2YXRlIGV4cGFuZEN1cnJlbnRGb2xkZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbmRleE5vZGUpIHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQoXHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChuID0+IG4uaWQgPT09IHRoaXMuaW5kZXhOb2RlLmlkKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAodGhpcy5pbmRleE5vZGUucGFyZW50KSB7XHJcbiAgICAgICAgLy8gQXBwbHkgcHJldmlvdXMgc2VsZWN0aW9uXHJcbiAgICAgICAgbGV0IG4gPSB0aGlzLmluZGV4Tm9kZS5wYXJlbnQ7XHJcbiAgICAgICAgd2hpbGUgKG4pIHtcclxuICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKFxyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKHggPT4geC5pZCA9PT0gbi5pZClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBuID0gbi5wYXJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhIG5ldyBjaGFwdGVyXHJcbiAgICogQHBhcmFtIGlkIHRoZSBjaGFwdGVyIGlkI2FuY2hvclxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiA6IHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG9cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0Q2hhcHRlcihpZDogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyID0gMCk6IHZvaWQge1xyXG4gICAgLy8gRGV0ZWN0IGFuY2hvciBpZiBleGlzdHNcclxuICAgIGxldCBhbmNob3I6IHN0cmluZyA9IG51bGw7XHJcbiAgICBjb25zdCBwID0gaWQuaW5kZXhPZignIycpO1xyXG4gICAgaWYgKHAgIT09IC0xKSB7XHJcbiAgICAgIGFuY2hvciA9IGlkLnN1YnN0cmluZyhwICsgMSk7XHJcbiAgICAgIGlkID0gaWQuc3Vic3RyaW5nKDAsIHApO1xyXG4gICAgfVxyXG4gICAgaWYgKGlkICE9PSAnLicpIHtcclxuICAgICAgdGhpcy5idXN5LnNldCh0cnVlKTtcclxuICAgICAgdGhpcy5oZWxwU2VydmljZS5nZXRDaGFwdGVyKGlkKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihcIkNhcGl0b2xvIG5vbiB0cm92YXRvLlwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoIXBvc2l0aW9uKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5KCkucHVzaCh7IGlkOiB0aGlzLmluZGV4SWQsIHBvc2l0aW9uOiB0aGlzLmdldFBvc2l0aW9uKCkgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbmRleElkID0gaWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYWdlLnNldChyLnZhbHVlLmRhdGEpO1xyXG4gICAgICAgICAgICAgIGZvdW5kID0gci52YWx1ZS5jaGFwdGVyPy5uYW1lPy5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgICAgIGlmIChmb3VuZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGZvbGRlclxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbmRleE5vZGUgPSB0aGlzLmZpbmRGb2xkZXIoaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRDdXJyZW50Rm9sZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgcG9zaXRpb25pbmdcclxuICAgICAgICAgICAgICAgIHRoaXMuZ290b1Bvc2l0aW9uKGFuY2hvciwgcG9zaXRpb24pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFmb3VuZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0Q2hhcHRlcihcIjFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghcG9zaXRpb24pXHJcbiAgICAgICAgdGhpcy5oaXN0b3J5KCkucHVzaCh7IGlkOiB0aGlzLmluZGV4SWQsIHBvc2l0aW9uOiB0aGlzLmdldFBvc2l0aW9uKCkgfSk7XHJcbiAgICAgIC8vIE1vdmUgb24gdGhlIHNhbWUgY2hhcHRlclxyXG4gICAgICB0aGlzLmdvdG9Qb3NpdGlvbihhbmNob3IsIHBvc2l0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvdG8gcG9zaXRpb25cclxuICAgKiBAcGFyYW0gYW5jaG9yIHRoZSBhbmNob3IgdG8gZ28gdG9cclxuICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIG9mZnNldCB0byBnbyB0b1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnb3RvUG9zaXRpb24oYW5jaG9yOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAvLyBIYW5kbGUgcG9zaXRpb25pbmdcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyBIYW5kbGUgYW5jaG9yIGZpcnN0XHJcbiAgICAgIGlmIChhbmNob3IpIHtcclxuICAgICAgICBsZXQgZWxtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKGFuY2hvci50b1VwcGVyQ2FzZSgpKTtcclxuICAgICAgICBpZiAoZWxtcykgcG9zaXRpb24gPSBlbG1zWzBdLm9mZnNldFRvcDtcclxuICAgICAgfVxyXG4gICAgICAvLyBUaGVuIHBvc2l0aW9uXHJcbiAgICAgIGlmIChwb3NpdGlvbiA+IDApIHRoaXMuc2V0UG9zaXRpb24ocG9zaXRpb24gLSAxKTtcclxuICAgICAgZWxzZSB0aGlzLnNldFBvc2l0aW9uKDApO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHNjcm9sbCBwb3NpdGlvblxyXG4gICAqIEByZXR1cm5zOiB0aGUgbmV3IHNjcm9sbCB0b3BcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb24oKTogbnVtYmVyIHtcclxuICAgIGxldCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHB2aWV3ZXItc2Nyb2xsZXInKTtcclxuICAgIGlmIChlbGVtKSB7XHJcbiAgICAgIHJldHVybiBlbGVtLnNjcm9sbFRvcDtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHNjcm9sbCBwb3NpdGlvblxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiA6IHRoZSBwb3NpdGlvbiB0byBnbyB0b1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRQb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBsZXQgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoZWxwdmlld2VyLXNjcm9sbGVyJyk7XHJcbiAgICBpZiAoZWxlbSkge1xyXG4gICAgICBlbGVtLnNjcm9sbFRvKDAsIHBvc2l0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIGJhY2tcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYmFjaygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oaXN0b3J5IHx8IHRoaXMuaGlzdG9yeS5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGxldCBuID0gdGhpcy5oaXN0b3J5KCkucG9wKCk7XHJcbiAgICB0aGlzLmdldENoYXB0ZXIobi5pZCwgbi5wb3NpdGlvbiArIDEpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoZWxwdmlld2VyLWZpeGVkXCI+XHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDo2cHhcIj5cclxuICAgIEBpZiAoYnVzeSgpKSB7XHJcbiAgICA8bWF0LXByb2dyZXNzLWJhciB6LWluZGV4PVwiMTFcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiPlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctbWVudVwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiTW9zdHJhIG1lbnVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidNb3N0cmEgaW5kaWNlJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlSW5kZXhQYW5lKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiPlxyXG4gICAgICAgIDxoMiBtYXQtZGlhbG9nLXRpdGxlPkd1aWRhPC9oMj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiMTAwcHhcIiBmeExheW91dEFsaWduPVwiZW5kXCIgY2xhc3M9XCJkaWFsb2ctY2xvc2VcIj5cclxuICAgICAgICBAaWYgKGNhbkdvQmFjaygpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cInN0YXJ0XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiSW5kaWV0cm9cIiAoY2xpY2spPVwiYmFjaygpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+YXJyb3dfYmFjazwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJzdGFydFwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIkNoaXVkaVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gXHJcbjwvZGl2PlxyXG48bWF0LWRpYWxvZy1jb250ZW50IGlkPVwiaGVscHZpZXdlci1zY3JvbGxhYmxlXCI+XHJcbiAgPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiZmlsbFwiPlxyXG4gICAgPG1hdC1kcmF3ZXIgI2luZGV4UGFuZSBtb2RlPVwic2lkZVwiIFthdXRvRm9jdXNdPVwiZmFsc2VcIiBjbGFzcz1cImRyYXdlci1zbWFsbCBkcmF3ZXItdHJhbnNwYXJlbnRcIj5cclxuICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbD5cclxuICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIj5cclxuICAgICAgICAgIDxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJ0cmVlRGF0YVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiIGNsYXNzPVwidHJlZSBcIiBzdHlsZT1cIm1heC13aWR0aDozMTBweFwiPlxyXG4gICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiIG1hdFRyZWVOb2RlVG9nZ2xlIG1hdFRyZWVOb2RlUGFkZGluZ1xyXG4gICAgICAgICAgICAgIFttYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnRdPVwiMjBcIiBjbGFzcz1cInRyZWUtbm9kZSB0cmVlLW5vZGUtc2ltcGxlIHRyZWUtbm9kZS1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdldENoYXB0ZXIobm9kZS5pZCk7XCIgW25nQ2xhc3NdPVwieyd0cmVlLW5vZGUtYWN0aXZhdGVkJzogaW5kZXhOb2RlICYmIGluZGV4Tm9kZS5pZCA9PT0gbm9kZS5pZH1cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXN5KClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsIGNsYXNzPVwic21hbGwgdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZCBjbGFzcz1cInNtYWxsLWljb24tYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPnt7bm9kZS5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxyXG4gICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTt3aGVuOiBoYXNDaGlsZFwiIG1hdFRyZWVOb2RlUGFkZGluZyBbbWF0VHJlZU5vZGVQYWRkaW5nSW5kZW50XT1cIjIwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInRyZWUtbm9kZSB0cmVlLW5vZGUtc2ltcGxlIHRyZWUtbm9kZS1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0cmVlLW5vZGUtYWN0aXZhdGVkJzogaW5kZXhOb2RlICYmIGluZGV4Tm9kZS5pZCA9PT0gbm9kZS5pZCB9XCIgKGNsaWNrKT1cImdldENoYXB0ZXIobm9kZS5pZClcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXN5KClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsIGNsYXNzPVwic21hbGwgdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUcmVlTm9kZVRvZ2dsZVxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHJpL2NoaXVkaSAnICsgbm9kZS5uYW1lXCIgY2xhc3M9XCJzbWFsbC1pY29uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2V4cGFuZF9tb3JlJyA6ICdjaGV2cm9uX3JpZ2h0J319XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+e3tub2RlLm5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XHJcbiAgICAgICAgICA8L21hdC10cmVlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRyYXdlcj5cclxuICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDI0cHg7XCI+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGxcIiBpZD1cImhlbHB2aWV3ZXItc2Nyb2xsZXJcIiAoY2xpY2spPVwiZ290b0NoYXB0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbaW5uZXJIdG1sXT1cIihwYWdlKCkgPz8gJycpIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXItY29udGFpbmVyPlxyXG48L21hdC1kaWFsb2ctY29udGVudD4iXX0=
|
|
@@ -90,11 +90,11 @@ export class SupportNotificationComponent {
|
|
|
90
90
|
window.open(item.url, '_blank');
|
|
91
91
|
}
|
|
92
92
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SupportNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: SupportNotificationComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<div class=\"support-notification-fixed\">\r\n <div class=\"support-notification-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill >\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>{{item?.title}}</h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\"\r\n aria-label=\"Chiudi\" [mat-dialog-close]=\"true\" class=\"dialog-close\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"notification-scrollable\">\r\n <div id=\"notification-scroller\">\r\n <div [innerHtml]=\"(item?.text ?? 'Caricamento in corso...') | safeHtml\"></div>\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"notification-fixed\">\r\n <div style=\"padding: 10px 0\">\r\n @if (item?.documents && item?.documents.length > 0) {\r\n <button type=\"button\" mat-button [attr.aria-label]=\"'Documenti scaricabili'\" [matMenuTriggerFor]=\"documentsMenu\"\r\n color=\"primary\">\r\n {{item?.documents.length}} @if (item?.documents.length === 1) {\r\n <span>Documento scaricabile</span>\r\n }\r\n @if (item?.documents.length !== 1) {\r\n <span>Documenti scaricabili</span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #documentsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n @for (doc of item?.documents; track doc) {\r\n <button mat-menu-item (click)=\"downloadDocument(doc)\">\r\n @if (doc.isBinary) {\r\n <mat-icon>attach_file</mat-icon>\r\n }\r\n @if (!doc.isBinary) {\r\n <mat-icon>link</mat-icon>\r\n }\r\n {{doc.name}}\r\n </button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 0 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:5px;padding-right:15px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 360px){.drawer,.drawer-small{border-radius:0!important}}@media screen and (min-width: 361px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader{padding:14px 10px 20px}.drawer .title{min-width:200px}.drawer .accordion-header{padding-left:15px;padding-right:20px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: SupportNotificationComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<div class=\"support-notification-fixed\">\r\n <div class=\"support-notification-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill >\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>{{item?.title}}</h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\"\r\n aria-label=\"Chiudi\" [mat-dialog-close]=\"true\" class=\"dialog-close\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"notification-scrollable\">\r\n <div id=\"notification-scroller\">\r\n <div [innerHtml]=\"(item?.text ?? 'Caricamento in corso...') | safeHtml\"></div>\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"notification-fixed\">\r\n <div style=\"padding: 10px 0\">\r\n @if (item?.documents && item?.documents.length > 0) {\r\n <button type=\"button\" mat-button [attr.aria-label]=\"'Documenti scaricabili'\" [matMenuTriggerFor]=\"documentsMenu\"\r\n color=\"primary\">\r\n {{item?.documents.length}} @if (item?.documents.length === 1) {\r\n <span>Documento scaricabile</span>\r\n }\r\n @if (item?.documents.length !== 1) {\r\n <span>Documenti scaricabili</span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #documentsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n @for (doc of item?.documents; track doc) {\r\n <button mat-menu-item (click)=\"downloadDocument(doc)\">\r\n @if (doc.isBinary) {\r\n <mat-icon>attach_file</mat-icon>\r\n }\r\n @if (!doc.isBinary) {\r\n <mat-icon>link</mat-icon>\r\n }\r\n {{doc.name}}\r\n </button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 360px){.drawer,.drawer-small{border-radius:0!important}}@media screen and (min-width: 361px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
94
94
|
}
|
|
95
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SupportNotificationComponent, decorators: [{
|
|
96
96
|
type: Component,
|
|
97
97
|
args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FlexModule, MatDialogTitle, MatButtonModule, MatTooltipModule, MatDialogClose, MatIconModule, MatDialogContent,
|
|
98
|
-
MatDialogActions, MatMenuModule, SafeHtmlPipe], template: "<div class=\"support-notification-fixed\">\r\n <div class=\"support-notification-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill >\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>{{item?.title}}</h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\"\r\n aria-label=\"Chiudi\" [mat-dialog-close]=\"true\" class=\"dialog-close\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"notification-scrollable\">\r\n <div id=\"notification-scroller\">\r\n <div [innerHtml]=\"(item?.text ?? 'Caricamento in corso...') | safeHtml\"></div>\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"notification-fixed\">\r\n <div style=\"padding: 10px 0\">\r\n @if (item?.documents && item?.documents.length > 0) {\r\n <button type=\"button\" mat-button [attr.aria-label]=\"'Documenti scaricabili'\" [matMenuTriggerFor]=\"documentsMenu\"\r\n color=\"primary\">\r\n {{item?.documents.length}} @if (item?.documents.length === 1) {\r\n <span>Documento scaricabile</span>\r\n }\r\n @if (item?.documents.length !== 1) {\r\n <span>Documenti scaricabili</span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #documentsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n @for (doc of item?.documents; track doc) {\r\n <button mat-menu-item (click)=\"downloadDocument(doc)\">\r\n @if (doc.isBinary) {\r\n <mat-icon>attach_file</mat-icon>\r\n }\r\n @if (!doc.isBinary) {\r\n <mat-icon>link</mat-icon>\r\n }\r\n {{doc.name}}\r\n </button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px
|
|
98
|
+
MatDialogActions, MatMenuModule, SafeHtmlPipe], template: "<div class=\"support-notification-fixed\">\r\n <div class=\"support-notification-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill >\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>{{item?.title}}</h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\"\r\n aria-label=\"Chiudi\" [mat-dialog-close]=\"true\" class=\"dialog-close\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"notification-scrollable\">\r\n <div id=\"notification-scroller\">\r\n <div [innerHtml]=\"(item?.text ?? 'Caricamento in corso...') | safeHtml\"></div>\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"notification-fixed\">\r\n <div style=\"padding: 10px 0\">\r\n @if (item?.documents && item?.documents.length > 0) {\r\n <button type=\"button\" mat-button [attr.aria-label]=\"'Documenti scaricabili'\" [matMenuTriggerFor]=\"documentsMenu\"\r\n color=\"primary\">\r\n {{item?.documents.length}} @if (item?.documents.length === 1) {\r\n <span>Documento scaricabile</span>\r\n }\r\n @if (item?.documents.length !== 1) {\r\n <span>Documenti scaricabili</span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #documentsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n @for (doc of item?.documents; track doc) {\r\n <button mat-menu-item (click)=\"downloadDocument(doc)\">\r\n @if (doc.isBinary) {\r\n <mat-icon>attach_file</mat-icon>\r\n }\r\n @if (!doc.isBinary) {\r\n <mat-icon>link</mat-icon>\r\n }\r\n {{doc.name}}\r\n </button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 360px){.drawer,.drawer-small{border-radius:0!important}}@media screen and (min-width: 361px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"] }]
|
|
99
99
|
}] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hGLE9BQU8sRUFDTCxhQUFhLEVBQ2QsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUs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T0FHRztJQUNPLGdCQUFnQixDQUFDLElBQVM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM1QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNaLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzs7WUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0EzRVUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsOEVBUnZCLFdBQVcsQ0FBQyxZQUFZLEVBQUUsOEJDNUI1Qyw4OERBa0RxQiwreEhEakJULFVBQVUsZ2lHQUFFLGNBQWMsOEhBQUUsZUFBZSx3VUFBRSxnQkFBZ0IsNlRBQUUsY0FBYyxvTEFBRSxhQUFhLG9MQUFFLGdCQUFnQix5R0FDdEgsZ0JBQWdCLDJIQUFFLGFBQWEsazFCQUFFLFlBQVk7OzJGQUVwQyw0QkFBNEI7a0JBVHhDLFNBQVM7MkJBQ0YsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLGNBR2hDLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCO3dCQUN0SCxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgT25Jbml0LFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1RpdGxlLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJyb2FkY2FzdFNlcnZpY2UsIFNjcmVlblNlcnZpY2UsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgU3VwcG9ydE1lc3NhZ2VzLCBTdXBwb3J0U2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvc3VwcG9ydC5jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIERpYWxvZ1NlcnZpY2VcclxufSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL3VpJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQvZmxleCc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnROb3RpZmljYXRpb25EYXRhIHtcclxuICBpZD86IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBob3N0OiB7ICdCaW5kJzogU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkgfSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtGbGV4TW9kdWxlLCBNYXREaWFsb2dUaXRsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXREaWFsb2dDbG9zZSwgTWF0SWNvbk1vZHVsZSwgTWF0RGlhbG9nQ29udGVudCxcclxuICAgIE1hdERpYWxvZ0FjdGlvbnMsIE1hdE1lbnVNb2R1bGUsIFNhZmVIdG1sUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cHBvcnROb3RpZmljYXRpb25Db21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHByb3RlY3RlZCBzY3JlZW5TZXJ2aWNlID0gaW5qZWN0KFNjcmVlblNlcnZpY2UpO1xyXG4gIHByaXZhdGUgc3VwcG9ydFNlcnZpY2UgPSBpbmplY3QoU3VwcG9ydFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZSA9IGluamVjdChCcm9hZGNhc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBkaWFsb2dEYXRhOiBTdXBwb3J0Tm90aWZpY2F0aW9uRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xyXG5cclxuICBwcm90ZWN0ZWQgaWQ6IG51bWJlciA9IC0xO1xyXG4gIHByb3RlY3RlZCBpdGVtOiBhbnkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhKSB7XHJcbiAgICAgIHRoaXMuaWQgPSB0aGlzLmRpYWxvZ0RhdGEuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZldGNoKCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNpemUgZGlhbG9nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXNpemUoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbGV0IGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm90aWZpY2F0aW9uLXNjcm9sbGFibGUnKTtcclxuICAgICAgaWYgKGVsZW0pIHtcclxuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0Q3VycmVudERpYWxvZ1Njcm9sbGFibGVIZWlnaHQoXHJcbiAgICAgICAgICBbJ3N1cHBvcnQtbm90aWZpY2F0aW9uLWZpeGVkJ10sXHJcbiAgICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChoZWlnaHQgIT0gZWxlbS5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgIGVsZW0uc2V0QXR0cmlidXRlKCdzdHlsZScsICdoZWlnaHQ6JyArIGhlaWdodCArICdweCAhaW1wb3J0YW50O21heC1oZWlnaHQ6JyArIGhlaWdodCArICdweCAhaW1wb3J0YW50Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGRhdGFcclxuICAgKi9cclxuICBwcml2YXRlIGZldGNoKCkge1xyXG4gICAgaWYgKCF0aGlzLnN1cHBvcnRTZXJ2aWNlLmxvZ2dlZEluKCkpIHJldHVybjtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5idXN5KCdDYXJpY2FtZW50byBpbiBjb3Jzby4uLicpO1xyXG4gICAgdGhpcy5zdXBwb3J0U2VydmljZS5nZXROb3RpZmljYXRpb24odGhpcy5pZClcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kaWFsb2dTZXJ2aWNlLmNsZWFyQnVzeSgpKSlcclxuICAgICAgLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKHIubWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaXRlbSA9IHIudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLk5PVElGSUNBVElPTl9SRUFELCB0aGlzLml0ZW0uaWQpO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgYSBub3RpZmljYXRpb24gZG9jdW1lbnQgb3IgbmF2aWdhdGUgdG8gdGhlIHVybFxyXG4gICAqIEBwYXJhbSBpdGVtIDogdGhlIGRvY3VtZW50IGl0ZW1cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG93bmxvYWREb2N1bWVudChpdGVtOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5zdXBwb3J0U2VydmljZS5sb2dnZWRJbigpKSByZXR1cm47XHJcbiAgICBpZiAoaXRlbS5pc0JpbmFyeSkge1xyXG4gICAgICB0aGlzLnN1cHBvcnRTZXJ2aWNlLmRvd2xvYWROb3RpZmljYXRpb25Eb2N1bWVudChpdGVtLmlkKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgc2F2ZUFzKHIpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZVxyXG4gICAgICB3aW5kb3cub3BlbihpdGVtLnVybCwgJ19ibGFuaycpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN1cHBvcnQtbm90aWZpY2F0aW9uLWZpeGVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1cHBvcnQtbm90aWZpY2F0aW9uLWhlYWRlclwiPlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGwgPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIj5cclxuICAgICAgICA8aDIgbWF0LWRpYWxvZy10aXRsZT57e2l0ZW0/LnRpdGxlfX08L2gyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeExheW91dEFsaWduPVwiZW5kXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cInN0YXJ0XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAgbWF0VG9vbHRpcD1cIkNoaXVkaVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hpdWRpXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiIGNsYXNzPVwiZGlhbG9nLWNsb3NlXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPG1hdC1kaWFsb2ctY29udGVudCBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxhYmxlXCI+XHJcbiAgPGRpdiBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxlclwiPlxyXG4gICAgPGRpdiBbaW5uZXJIdG1sXT1cIihpdGVtPy50ZXh0ID8/ICdDYXJpY2FtZW50byBpbiBjb3Jzby4uLicpIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbjxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJub3RpZmljYXRpb24tZml4ZWRcIj5cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZzogMTBweCAwXCI+XHJcbiAgICBAaWYgKGl0ZW0/LmRvY3VtZW50cyAmJiBpdGVtPy5kb2N1bWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidEb2N1bWVudGkgc2NhcmljYWJpbGknXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRvY3VtZW50c01lbnVcIlxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAge3tpdGVtPy5kb2N1bWVudHMubGVuZ3RofX0gQGlmIChpdGVtPy5kb2N1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIDxzcGFuPkRvY3VtZW50byBzY2FyaWNhYmlsZTwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGl0ZW0/LmRvY3VtZW50cy5sZW5ndGggIT09IDEpIHtcclxuICAgICAgPHNwYW4+RG9jdW1lbnRpIHNjYXJpY2FiaWxpPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tbWVudS1kcm9wLWRvd25cIj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICA8bWF0LW1lbnUgI2RvY3VtZW50c01lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cclxuICAgICAgICBAZm9yIChkb2Mgb2YgaXRlbT8uZG9jdW1lbnRzOyB0cmFjayBkb2MpIHtcclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRvd25sb2FkRG9jdW1lbnQoZG9jKVwiPlxyXG4gICAgICAgICAgQGlmIChkb2MuaXNCaW5hcnkpIHtcclxuICAgICAgICAgIDxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKCFkb2MuaXNCaW5hcnkpIHtcclxuICAgICAgICAgIDxtYXQtaWNvbj5saW5rPC9tYXQtaWNvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHt7ZG9jLm5hbWV9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPiJdfQ==
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hGLE9BQU8sRUFDTCxhQUFhLEVBQ2QsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUs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T0FHRztJQUNPLGdCQUFnQixDQUFDLElBQVM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM1QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNaLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzs7WUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0EzRVUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsOEVBUnZCLFdBQVcsQ0FBQyxZQUFZLEVBQUUsOEJDNUI1Qyw4OERBa0RxQix3bkhEakJULFVBQVUsZ2lHQUFFLGNBQWMsOEhBQUUsZUFBZSx3VUFBRSxnQkFBZ0IsNlRBQUUsY0FBYyxvTEFBRSxhQUFhLG9MQUFFLGdCQUFnQix5R0FDdEgsZ0JBQWdCLDJIQUFFLGFBQWEsazFCQUFFLFlBQVk7OzJGQUVwQyw0QkFBNEI7a0JBVHhDLFNBQVM7MkJBQ0YsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLGNBR2hDLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCO3dCQUN0SCxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgT25Jbml0LFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1RpdGxlLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJyb2FkY2FzdFNlcnZpY2UsIFNjcmVlblNlcnZpY2UsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgU3VwcG9ydE1lc3NhZ2VzLCBTdXBwb3J0U2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvc3VwcG9ydC5jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIERpYWxvZ1NlcnZpY2VcclxufSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL3VpJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQvZmxleCc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnROb3RpZmljYXRpb25EYXRhIHtcclxuICBpZD86IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBob3N0OiB7ICdCaW5kJzogU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkgfSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtGbGV4TW9kdWxlLCBNYXREaWFsb2dUaXRsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXREaWFsb2dDbG9zZSwgTWF0SWNvbk1vZHVsZSwgTWF0RGlhbG9nQ29udGVudCxcclxuICAgIE1hdERpYWxvZ0FjdGlvbnMsIE1hdE1lbnVNb2R1bGUsIFNhZmVIdG1sUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cHBvcnROb3RpZmljYXRpb25Db21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHByb3RlY3RlZCBzY3JlZW5TZXJ2aWNlID0gaW5qZWN0KFNjcmVlblNlcnZpY2UpO1xyXG4gIHByaXZhdGUgc3VwcG9ydFNlcnZpY2UgPSBpbmplY3QoU3VwcG9ydFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZSA9IGluamVjdChCcm9hZGNhc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBkaWFsb2dEYXRhOiBTdXBwb3J0Tm90aWZpY2F0aW9uRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xyXG5cclxuICBwcm90ZWN0ZWQgaWQ6IG51bWJlciA9IC0xO1xyXG4gIHByb3RlY3RlZCBpdGVtOiBhbnkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhKSB7XHJcbiAgICAgIHRoaXMuaWQgPSB0aGlzLmRpYWxvZ0RhdGEuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZldGNoKCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNpemUgZGlhbG9nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXNpemUoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbGV0IGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm90aWZpY2F0aW9uLXNjcm9sbGFibGUnKTtcclxuICAgICAgaWYgKGVsZW0pIHtcclxuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0Q3VycmVudERpYWxvZ1Njcm9sbGFibGVIZWlnaHQoXHJcbiAgICAgICAgICBbJ3N1cHBvcnQtbm90aWZpY2F0aW9uLWZpeGVkJ10sXHJcbiAgICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChoZWlnaHQgIT0gZWxlbS5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgICAgIGVsZW0uc2V0QXR0cmlidXRlKCdzdHlsZScsICdoZWlnaHQ6JyArIGhlaWdodCArICdweCAhaW1wb3J0YW50O21heC1oZWlnaHQ6JyArIGhlaWdodCArICdweCAhaW1wb3J0YW50Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGRhdGFcclxuICAgKi9cclxuICBwcml2YXRlIGZldGNoKCkge1xyXG4gICAgaWYgKCF0aGlzLnN1cHBvcnRTZXJ2aWNlLmxvZ2dlZEluKCkpIHJldHVybjtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5idXN5KCdDYXJpY2FtZW50byBpbiBjb3Jzby4uLicpO1xyXG4gICAgdGhpcy5zdXBwb3J0U2VydmljZS5nZXROb3RpZmljYXRpb24odGhpcy5pZClcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kaWFsb2dTZXJ2aWNlLmNsZWFyQnVzeSgpKSlcclxuICAgICAgLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKHIubWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaXRlbSA9IHIudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLk5PVElGSUNBVElPTl9SRUFELCB0aGlzLml0ZW0uaWQpO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgYSBub3RpZmljYXRpb24gZG9jdW1lbnQgb3IgbmF2aWdhdGUgdG8gdGhlIHVybFxyXG4gICAqIEBwYXJhbSBpdGVtIDogdGhlIGRvY3VtZW50IGl0ZW1cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG93bmxvYWREb2N1bWVudChpdGVtOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5zdXBwb3J0U2VydmljZS5sb2dnZWRJbigpKSByZXR1cm47XHJcbiAgICBpZiAoaXRlbS5pc0JpbmFyeSkge1xyXG4gICAgICB0aGlzLnN1cHBvcnRTZXJ2aWNlLmRvd2xvYWROb3RpZmljYXRpb25Eb2N1bWVudChpdGVtLmlkKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgc2F2ZUFzKHIpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZVxyXG4gICAgICB3aW5kb3cub3BlbihpdGVtLnVybCwgJ19ibGFuaycpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN1cHBvcnQtbm90aWZpY2F0aW9uLWZpeGVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1cHBvcnQtbm90aWZpY2F0aW9uLWhlYWRlclwiPlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGwgPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIj5cclxuICAgICAgICA8aDIgbWF0LWRpYWxvZy10aXRsZT57e2l0ZW0/LnRpdGxlfX08L2gyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeExheW91dEFsaWduPVwiZW5kXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cInN0YXJ0XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAgbWF0VG9vbHRpcD1cIkNoaXVkaVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hpdWRpXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiIGNsYXNzPVwiZGlhbG9nLWNsb3NlXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPG1hdC1kaWFsb2ctY29udGVudCBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxhYmxlXCI+XHJcbiAgPGRpdiBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxlclwiPlxyXG4gICAgPGRpdiBbaW5uZXJIdG1sXT1cIihpdGVtPy50ZXh0ID8/ICdDYXJpY2FtZW50byBpbiBjb3Jzby4uLicpIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbjxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJub3RpZmljYXRpb24tZml4ZWRcIj5cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZzogMTBweCAwXCI+XHJcbiAgICBAaWYgKGl0ZW0/LmRvY3VtZW50cyAmJiBpdGVtPy5kb2N1bWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidEb2N1bWVudGkgc2NhcmljYWJpbGknXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRvY3VtZW50c01lbnVcIlxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAge3tpdGVtPy5kb2N1bWVudHMubGVuZ3RofX0gQGlmIChpdGVtPy5kb2N1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIDxzcGFuPkRvY3VtZW50byBzY2FyaWNhYmlsZTwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGl0ZW0/LmRvY3VtZW50cy5sZW5ndGggIT09IDEpIHtcclxuICAgICAgPHNwYW4+RG9jdW1lbnRpIHNjYXJpY2FiaWxpPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tbWVudS1kcm9wLWRvd25cIj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICA8bWF0LW1lbnUgI2RvY3VtZW50c01lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cclxuICAgICAgICBAZm9yIChkb2Mgb2YgaXRlbT8uZG9jdW1lbnRzOyB0cmFjayBkb2MpIHtcclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRvd25sb2FkRG9jdW1lbnQoZG9jKVwiPlxyXG4gICAgICAgICAgQGlmIChkb2MuaXNCaW5hcnkpIHtcclxuICAgICAgICAgIDxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKCFkb2MuaXNCaW5hcnkpIHtcclxuICAgICAgICAgIDxtYXQtaWNvbj5saW5rPC9tYXQtaWNvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHt7ZG9jLm5hbWV9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPiJdfQ==
|