@arsedizioni/ars-utils 18.2.398 → 18.2.399

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.
@@ -4,8 +4,8 @@ import { ClipperDocumentInfo } from '@arsedizioni/ars-utils/clipper.common';
4
4
  import { ClipperSearchResultManager } from '../search-result-manager/search-result-manager';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ClipperDocumentMenuComponent {
7
- rsMenuTrigger: MatMenuTrigger;
8
- linksMenuTrigger: MatMenuTrigger;
7
+ private rsMenuTrigger;
8
+ private linksMenuTrigger;
9
9
  private allMenuTriggers;
10
10
  private renderer2;
11
11
  useSelections: import("@angular/core").InputSignal<boolean>;
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, Renderer2, ViewChild, computed, inject, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Renderer2, computed, inject, input, viewChild } from '@angular/core';
2
2
  import { MatTooltipModule } from '@angular/material/tooltip';
3
3
  import { MatDividerModule } from '@angular/material/divider';
4
4
  import { MatIconModule } from '@angular/material/icon';
@@ -12,6 +12,8 @@ import * as i4 from "@angular/material/divider";
12
12
  import * as i5 from "@angular/material/tooltip";
13
13
  export class ClipperDocumentMenuComponent {
14
14
  constructor() {
15
+ this.rsMenuTrigger = viewChild('rsMenuTrigger');
16
+ this.linksMenuTrigger = viewChild('linksMenuTrigger');
15
17
  this.allMenuTriggers = [
16
18
  this.linksMenuTrigger,
17
19
  this.rsMenuTrigger
@@ -46,9 +48,9 @@ export class ClipperDocumentMenuComponent {
46
48
  */
47
49
  showSubMenu(trigger = null) {
48
50
  this.allMenuTriggers.forEach(menuTrigger => {
49
- if (menuTrigger.menuOpen) {
50
- menuTrigger.closeMenu();
51
- this.resetSubMenu(menuTrigger);
51
+ if (menuTrigger()?.menuOpen) {
52
+ menuTrigger().closeMenu();
53
+ this.resetSubMenu(menuTrigger());
52
54
  }
53
55
  });
54
56
  trigger?.openMenu();
@@ -84,16 +86,10 @@ export class ClipperDocumentMenuComponent {
84
86
  this.parent()?.setRead(value, this.item());
85
87
  }
86
88
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ClipperDocumentMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ClipperDocumentMenuComponent, isStandalone: true, selector: "clipper-document-menu", inputs: { useSelections: { classPropertyName: "useSelections", publicName: "useSelections", isSignal: true, isRequired: false, transformFunction: null }, selectionSource: { classPropertyName: "selectionSource", publicName: "selectionSource", isSignal: true, isRequired: false, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isReference: { classPropertyName: "isReference", publicName: "isReference", isSignal: true, isRequired: false, transformFunction: null }, isReadable: { classPropertyName: "isReadable", publicName: "isReadable", isSignal: true, isRequired: false, transformFunction: null }, isDeadline: { classPropertyName: "isDeadline", publicName: "isDeadline", isSignal: true, isRequired: false, transformFunction: null }, isLawInForce: { classPropertyName: "isLawInForce", publicName: "isLawInForce", isSignal: true, isRequired: false, transformFunction: null }, isLaw: { classPropertyName: "isLaw", publicName: "isLaw", isSignal: true, isRequired: false, transformFunction: null }, canPrint: { classPropertyName: "canPrint", publicName: "canPrint", isSignal: true, isRequired: false, transformFunction: null }, canFind: { classPropertyName: "canFind", publicName: "canFind", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "rsMenuTrigger", first: true, predicate: ["rsMenuTrigger"], descendants: true }, { propertyName: "linksMenuTrigger", first: true, predicate: ["linksMenuTrigger"], descendants: true }], ngImport: i0, template: "@if (selectionSource() && selectionSource() !== 'none') {\r\n@if (selectionSource() === 'selection') {\r\n<button mat-menu-item (click)=\"parent().selection?.clear()\" [attr.aria-label]=\"'Deseleziona tutti'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>clear</mat-icon>Deseleziona tutti\r\n</button>\r\n} @else if (selectionSource() === 'bag') {\r\n<button mat-menu-item (click)=\"parent().openBag()\" [attr.aria-label]=\"'Gestisci documenti di lavoro'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Gestisci documenti di lavoro\r\n</button>\r\n}\r\n<mat-divider></mat-divider>\r\n}\r\n@if (item() || (selection()?.length === 1)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Apri documento'\" (mouseenter)=\"showSubMenu()\"\r\n (click)=\"parent().open(item() ? item().documentId : selection()[0].documentId)\">\r\n <mat-icon></mat-icon>Apri\r\n</button>\r\n}\r\n@if (selectionSource() !== 'bag') {\r\n<button mat-menu-item [attr.aria-label]=\"'Aggiungi ai documenti di lavoro'\"\r\n (click)=\"parent().addItemsToBag(item() ? [item()] : selection())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Aggiungi ai documenti di lavoro\r\n</button>\r\n}\r\n@if(canPrint()) {\r\n<button mat-menu-item (click)=\"parent()?.print()\" [attr.aria-label]=\"'Stampa documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>print</mat-icon>\r\n <div>Stampa</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+P</div>\r\n </div>\r\n</button>\r\n}\r\n@if(canFind()) {\r\n<button mat-menu-item (click)=\"parent()?.find()\" [attr.aria-label]=\"'Trova nel documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>find_in_page</mat-icon>\r\n <div>Trova nel documento</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+F</div>\r\n </div>\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length > 1))) {\r\n<button mat-menu-item (click)=\"parent().sendItemsTo(item() ? [item()] : selection())\"\r\n [attr.aria-label]=\"'Invia documento per email'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>send</mat-icon>Invia per email\r\n</button>\r\n}\r\n@if (((item() && item().model != 11) || (selection()?.length === 1 && selection()[0].model != 11))) {\r\n<button mat-menu-item (click)=\"parent().exportPdf(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\"\r\n [attr.aria-label]=\"'Salva documento in pdf'\">\r\n <mat-icon>save_alt</mat-icon>Salva in pdf\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Genera un link permanente da utilizzare esternamente'\"\r\n (click)=\"parent().showLink(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>link</mat-icon>Link\r\n</button>\r\n}\r\n@if (!isReference() && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [matMenuTriggerFor]=\"linksMenu\" #linksMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(linksMenuTrigger)\" (mouseleave)=\"resetSubMenu(linksMenuTrigger)\">\r\n <mat-icon>compare_arrows</mat-icon>Collegamenti\r\n</button>\r\n<mat-menu #linksMenu=\"matMenu\" >\r\n @if (!isReference() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti richiamati da questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if ( !isReference() &&(item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti che richiamano questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra giurisprudenza'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra modifiche normative'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 3)\">\r\n Modifiche\r\n </button>\r\n }\r\n</mat-menu>\r\n}\r\n\r\n@if (!isReference() && isReadable()) {\r\n<mat-divider></mat-divider>\r\n\r\n@if (item() ? item().isRead === true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead ===\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come da leggere'\" (click)=\"parent()?.setRead(false, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>outlined_flag</mat-icon>Segna come da leggere\r\n</button>\r\n}\r\n@if (item() ? item().isRead !== true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead !==\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come gi\u00E0 letto'\" (click)=\"parent()?.setRead(true, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>flag</mat-icon>Segna come gi\u00E0 letto\r\n</button>\r\n}\r\n}\r\n\r\n@if ((isLawInForce() || isDeadline()) && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Mostra report utilizzo'\"\r\n (click)=\"parent().report(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>assignment</mat-icon>Report\r\n</button>\r\n}\r\n\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<mat-divider></mat-divider>\r\n}\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<button mat-menu-item matTooltip=\"Registro & Scadenzario\" [attr.aria-label]=\"'Opzioni di Registro & Scadenzario'\"\r\n [matMenuTriggerFor]=\"rsMenu\" #rsMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(rsMenuTrigger)\" (mouseleave)=\"resetSubMenu(rsMenuTrigger)\">\r\n <mat-icon>alarm_on</mat-icon>\r\n Registro e scadenzario\r\n</button>\r\n<mat-menu #rsMenu=\"matMenu\">\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova legge'\" (click)=\"parent().RS_newLaw([item()])\">\r\n Nuova legge\r\n </button>\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova attivit\u00E0'\" (click)=\"parent().RS_newActivity(item())\">\r\n Nuova attivit\u00E0\r\n </button>\r\n }\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Report utilizzo norma'\" (click)=\"parent().RS_usageReport(item())\">\r\n Report utilizzo norma\r\n </button>\r\n }\r\n</mat-menu>\r\n}", styles: [""], 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.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: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.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: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ClipperDocumentMenuComponent, isStandalone: true, selector: "clipper-document-menu", inputs: { useSelections: { classPropertyName: "useSelections", publicName: "useSelections", isSignal: true, isRequired: false, transformFunction: null }, selectionSource: { classPropertyName: "selectionSource", publicName: "selectionSource", isSignal: true, isRequired: false, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isReference: { classPropertyName: "isReference", publicName: "isReference", isSignal: true, isRequired: false, transformFunction: null }, isReadable: { classPropertyName: "isReadable", publicName: "isReadable", isSignal: true, isRequired: false, transformFunction: null }, isDeadline: { classPropertyName: "isDeadline", publicName: "isDeadline", isSignal: true, isRequired: false, transformFunction: null }, isLawInForce: { classPropertyName: "isLawInForce", publicName: "isLawInForce", isSignal: true, isRequired: false, transformFunction: null }, isLaw: { classPropertyName: "isLaw", publicName: "isLaw", isSignal: true, isRequired: false, transformFunction: null }, canPrint: { classPropertyName: "canPrint", publicName: "canPrint", isSignal: true, isRequired: false, transformFunction: null }, canFind: { classPropertyName: "canFind", publicName: "canFind", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "rsMenuTrigger", first: true, predicate: ["rsMenuTrigger"], descendants: true, isSignal: true }, { propertyName: "linksMenuTrigger", first: true, predicate: ["linksMenuTrigger"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (selectionSource() && selectionSource() !== 'none') {\r\n@if (selectionSource() === 'selection') {\r\n<button mat-menu-item (click)=\"parent().selection?.clear()\" [attr.aria-label]=\"'Deseleziona tutti'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>clear</mat-icon>Deseleziona tutti\r\n</button>\r\n} @else if (selectionSource() === 'bag') {\r\n<button mat-menu-item (click)=\"parent().openBag()\" [attr.aria-label]=\"'Gestisci documenti di lavoro'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Gestisci documenti di lavoro\r\n</button>\r\n}\r\n<mat-divider></mat-divider>\r\n}\r\n@if (item() || (selection()?.length === 1)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Apri documento'\" (mouseenter)=\"showSubMenu()\"\r\n (click)=\"parent().open(item() ? item().documentId : selection()[0].documentId)\">\r\n <mat-icon></mat-icon>Apri\r\n</button>\r\n}\r\n@if (selectionSource() !== 'bag') {\r\n<button mat-menu-item [attr.aria-label]=\"'Aggiungi ai documenti di lavoro'\"\r\n (click)=\"parent().addItemsToBag(item() ? [item()] : selection())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Aggiungi ai documenti di lavoro\r\n</button>\r\n}\r\n@if(canPrint()) {\r\n<button mat-menu-item (click)=\"parent()?.print()\" [attr.aria-label]=\"'Stampa documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>print</mat-icon>\r\n <div>Stampa</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+P</div>\r\n </div>\r\n</button>\r\n}\r\n@if(canFind()) {\r\n<button mat-menu-item (click)=\"parent()?.find()\" [attr.aria-label]=\"'Trova nel documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>find_in_page</mat-icon>\r\n <div>Trova nel documento</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+F</div>\r\n </div>\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length > 1))) {\r\n<button mat-menu-item (click)=\"parent().sendItemsTo(item() ? [item()] : selection())\"\r\n [attr.aria-label]=\"'Invia documento per email'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>send</mat-icon>Invia per email\r\n</button>\r\n}\r\n@if (((item() && item().model != 11) || (selection()?.length === 1 && selection()[0].model != 11))) {\r\n<button mat-menu-item (click)=\"parent().exportPdf(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\"\r\n [attr.aria-label]=\"'Salva documento in pdf'\">\r\n <mat-icon>save_alt</mat-icon>Salva in pdf\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Genera un link permanente da utilizzare esternamente'\"\r\n (click)=\"parent().showLink(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>link</mat-icon>Link\r\n</button>\r\n}\r\n@if (!isReference() && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [matMenuTriggerFor]=\"linksMenu\" #linksMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(linksMenuTrigger)\" (mouseleave)=\"resetSubMenu(linksMenuTrigger)\">\r\n <mat-icon>compare_arrows</mat-icon>Collegamenti\r\n</button>\r\n<mat-menu #linksMenu=\"matMenu\" >\r\n @if (!isReference() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti richiamati da questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if ( !isReference() &&(item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti che richiamano questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra giurisprudenza'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra modifiche normative'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 3)\">\r\n Modifiche\r\n </button>\r\n }\r\n</mat-menu>\r\n}\r\n\r\n@if (!isReference() && isReadable()) {\r\n<mat-divider></mat-divider>\r\n\r\n@if (item() ? item().isRead === true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead ===\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come da leggere'\" (click)=\"parent()?.setRead(false, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>outlined_flag</mat-icon>Segna come da leggere\r\n</button>\r\n}\r\n@if (item() ? item().isRead !== true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead !==\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come gi\u00E0 letto'\" (click)=\"parent()?.setRead(true, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>flag</mat-icon>Segna come gi\u00E0 letto\r\n</button>\r\n}\r\n}\r\n\r\n@if ((isLawInForce() || isDeadline()) && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Mostra report utilizzo'\"\r\n (click)=\"parent().report(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>assignment</mat-icon>Report\r\n</button>\r\n}\r\n\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<mat-divider></mat-divider>\r\n}\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<button mat-menu-item matTooltip=\"Registro & Scadenzario\" [attr.aria-label]=\"'Opzioni di Registro & Scadenzario'\"\r\n [matMenuTriggerFor]=\"rsMenu\" #rsMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(rsMenuTrigger)\" (mouseleave)=\"resetSubMenu(rsMenuTrigger)\">\r\n <mat-icon>alarm_on</mat-icon>\r\n Registro e scadenzario\r\n</button>\r\n<mat-menu #rsMenu=\"matMenu\">\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova legge'\" (click)=\"parent().RS_newLaw([item()])\">\r\n Nuova legge\r\n </button>\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova attivit\u00E0'\" (click)=\"parent().RS_newActivity(item())\">\r\n Nuova attivit\u00E0\r\n </button>\r\n }\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Report utilizzo norma'\" (click)=\"parent().RS_usageReport(item())\">\r\n Report utilizzo norma\r\n </button>\r\n }\r\n</mat-menu>\r\n}", styles: [""], 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.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: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.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: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
90
  }
89
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ClipperDocumentMenuComponent, decorators: [{
90
92
  type: Component,
91
93
  args: [{ selector: 'clipper-document-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FlexModule, MatMenuModule, MatIconModule, MatDividerModule, MatTooltipModule], template: "@if (selectionSource() && selectionSource() !== 'none') {\r\n@if (selectionSource() === 'selection') {\r\n<button mat-menu-item (click)=\"parent().selection?.clear()\" [attr.aria-label]=\"'Deseleziona tutti'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>clear</mat-icon>Deseleziona tutti\r\n</button>\r\n} @else if (selectionSource() === 'bag') {\r\n<button mat-menu-item (click)=\"parent().openBag()\" [attr.aria-label]=\"'Gestisci documenti di lavoro'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Gestisci documenti di lavoro\r\n</button>\r\n}\r\n<mat-divider></mat-divider>\r\n}\r\n@if (item() || (selection()?.length === 1)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Apri documento'\" (mouseenter)=\"showSubMenu()\"\r\n (click)=\"parent().open(item() ? item().documentId : selection()[0].documentId)\">\r\n <mat-icon></mat-icon>Apri\r\n</button>\r\n}\r\n@if (selectionSource() !== 'bag') {\r\n<button mat-menu-item [attr.aria-label]=\"'Aggiungi ai documenti di lavoro'\"\r\n (click)=\"parent().addItemsToBag(item() ? [item()] : selection())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Aggiungi ai documenti di lavoro\r\n</button>\r\n}\r\n@if(canPrint()) {\r\n<button mat-menu-item (click)=\"parent()?.print()\" [attr.aria-label]=\"'Stampa documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>print</mat-icon>\r\n <div>Stampa</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+P</div>\r\n </div>\r\n</button>\r\n}\r\n@if(canFind()) {\r\n<button mat-menu-item (click)=\"parent()?.find()\" [attr.aria-label]=\"'Trova nel documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>find_in_page</mat-icon>\r\n <div>Trova nel documento</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+F</div>\r\n </div>\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length > 1))) {\r\n<button mat-menu-item (click)=\"parent().sendItemsTo(item() ? [item()] : selection())\"\r\n [attr.aria-label]=\"'Invia documento per email'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>send</mat-icon>Invia per email\r\n</button>\r\n}\r\n@if (((item() && item().model != 11) || (selection()?.length === 1 && selection()[0].model != 11))) {\r\n<button mat-menu-item (click)=\"parent().exportPdf(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\"\r\n [attr.aria-label]=\"'Salva documento in pdf'\">\r\n <mat-icon>save_alt</mat-icon>Salva in pdf\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Genera un link permanente da utilizzare esternamente'\"\r\n (click)=\"parent().showLink(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>link</mat-icon>Link\r\n</button>\r\n}\r\n@if (!isReference() && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [matMenuTriggerFor]=\"linksMenu\" #linksMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(linksMenuTrigger)\" (mouseleave)=\"resetSubMenu(linksMenuTrigger)\">\r\n <mat-icon>compare_arrows</mat-icon>Collegamenti\r\n</button>\r\n<mat-menu #linksMenu=\"matMenu\" >\r\n @if (!isReference() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti richiamati da questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if ( !isReference() &&(item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti che richiamano questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra giurisprudenza'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra modifiche normative'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 3)\">\r\n Modifiche\r\n </button>\r\n }\r\n</mat-menu>\r\n}\r\n\r\n@if (!isReference() && isReadable()) {\r\n<mat-divider></mat-divider>\r\n\r\n@if (item() ? item().isRead === true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead ===\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come da leggere'\" (click)=\"parent()?.setRead(false, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>outlined_flag</mat-icon>Segna come da leggere\r\n</button>\r\n}\r\n@if (item() ? item().isRead !== true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead !==\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come gi\u00E0 letto'\" (click)=\"parent()?.setRead(true, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>flag</mat-icon>Segna come gi\u00E0 letto\r\n</button>\r\n}\r\n}\r\n\r\n@if ((isLawInForce() || isDeadline()) && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Mostra report utilizzo'\"\r\n (click)=\"parent().report(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>assignment</mat-icon>Report\r\n</button>\r\n}\r\n\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<mat-divider></mat-divider>\r\n}\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<button mat-menu-item matTooltip=\"Registro & Scadenzario\" [attr.aria-label]=\"'Opzioni di Registro & Scadenzario'\"\r\n [matMenuTriggerFor]=\"rsMenu\" #rsMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(rsMenuTrigger)\" (mouseleave)=\"resetSubMenu(rsMenuTrigger)\">\r\n <mat-icon>alarm_on</mat-icon>\r\n Registro e scadenzario\r\n</button>\r\n<mat-menu #rsMenu=\"matMenu\">\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova legge'\" (click)=\"parent().RS_newLaw([item()])\">\r\n Nuova legge\r\n </button>\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova attivit\u00E0'\" (click)=\"parent().RS_newActivity(item())\">\r\n Nuova attivit\u00E0\r\n </button>\r\n }\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Report utilizzo norma'\" (click)=\"parent().RS_usageReport(item())\">\r\n Report utilizzo norma\r\n </button>\r\n }\r\n</mat-menu>\r\n}" }]
92
- }], propDecorators: { rsMenuTrigger: [{
93
- type: ViewChild,
94
- args: ['rsMenuTrigger']
95
- }], linksMenuTrigger: [{
96
- type: ViewChild,
97
- args: ['linksMenuTrigger']
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvY2xpcHBlci51aS91aS9kb2N1bWVudC1tZW51L2RvY3VtZW50LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIudWkvdWkvZG9jdW1lbnQtbWVudS9kb2N1bWVudC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFXbkQsTUFBTSxPQUFPLDRCQUE0QjtJQVR6QztRQWFVLG9CQUFlLEdBQXFCO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsSUFBSSxDQUFDLGFBQWE7U0FDbkIsQ0FBQTtRQUNPLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEMsa0JBQWEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdEMsb0JBQWUsR0FBRyxLQUFLLENBQXNDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hFLGNBQVMsR0FBa0MsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNqRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixRQUFRLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO29CQUMvQixLQUFLLEtBQUs7d0JBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM1QyxLQUFLLFdBQVc7d0JBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQztnQkFDekMsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO1FBQ0gsV0FBTSxHQUFHLEtBQUssRUFBOEIsQ0FBQztRQUM3QyxTQUFJLEdBQUcsS0FBSyxFQUF1QixDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDbEMsZUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsWUFBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztLQWdEakM7SUE3Q0M7OztNQUdFO0lBQ1EsV0FBVyxDQUFDLFVBQTBCLElBQUk7UUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDekMsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVksQ0FBQyxPQUF1QjtRQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQ7OztPQUdHO0lBQ08sTUFBTTtRQUNkLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLGVBQWUsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQzNELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsT0FBTyxjQUFjLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7T0FHRztJQUNPLE9BQU8sQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBN0VVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHN1RENsQnpDLHMrTkFnSkMseUREaklXLFVBQVUsdTZFQUFFLGFBQWEsNnZCQUFFLGFBQWEsbUxBQUUsZ0JBQWdCLGtJQUFFLGdCQUFnQjs7MkZBRzNFLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDRSx1QkFBdUIsY0FHckIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7OEJBSzNELGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDSyxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgUmVuZGVyZXIyLCBTaWduYWwsIFZpZXdDaGlsZCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgQ2xpcHBlckRvY3VtZW50SW5mbyB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY2xpcHBlci5jb21tb24nO1xyXG5pbXBvcnQgeyBDbGlwcGVyU2VhcmNoUmVzdWx0TWFuYWdlciB9IGZyb20gJy4uL3NlYXJjaC1yZXN1bHQtbWFuYWdlci9zZWFyY2gtcmVzdWx0LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBGbGV4TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2xpcHBlci1kb2N1bWVudC1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtbWVudS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW0ZsZXhNb2R1bGUsIE1hdE1lbnVNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdERpdmlkZXJNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGVdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlckRvY3VtZW50TWVudUNvbXBvbmVudCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3JzTWVudVRyaWdnZXInKSByc01lbnVUcmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XHJcbiAgQFZpZXdDaGlsZCgnbGlua3NNZW51VHJpZ2dlcicpIGxpbmtzTWVudVRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcclxuICBwcml2YXRlIGFsbE1lbnVUcmlnZ2VyczogTWF0TWVudVRyaWdnZXJbXSA9IFtcclxuICAgIHRoaXMubGlua3NNZW51VHJpZ2dlcixcclxuICAgIHRoaXMucnNNZW51VHJpZ2dlclxyXG4gIF1cclxuICBwcml2YXRlIHJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xyXG5cclxuICB1c2VTZWxlY3Rpb25zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNlbGVjdGlvblNvdXJjZSA9IGlucHV0PCdiYWcnIHwgJ3NlbGVjdGlvbicgfCAnbm9uZScgfCBudWxsPignc2VsZWN0aW9uJyk7XHJcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbjogU2lnbmFsPENsaXBwZXJEb2N1bWVudEluZm9bXT4gPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy51c2VTZWxlY3Rpb25zKCkpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGlvblNvdXJjZSgpKSB7XHJcbiAgICAgICAgY2FzZSAnYmFnJzpcclxuICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudCgpLmNsaXBwZXJTZXJ2aWNlLmJhZygpO1xyXG4gICAgICAgIGNhc2UgJ3NlbGVjdGlvbic6XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQoKT8uc2VsZWN0aW9uPy5hbGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBbXTtcclxuICB9KTtcclxuICBwYXJlbnQgPSBpbnB1dDxDbGlwcGVyU2VhcmNoUmVzdWx0TWFuYWdlcj4oKTtcclxuICBpdGVtID0gaW5wdXQ8Q2xpcHBlckRvY3VtZW50SW5mbz4oKTtcclxuICBpc1JlZmVyZW5jZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBpc1JlYWRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgaXNEZWFkbGluZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBpc0xhd0luRm9yY2UgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgaXNMYXcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgY2FuUHJpbnQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgY2FuRmluZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblxyXG4gIC8qKiBcclxuICAgKiBTaG93IGFuZCBoaWRlIHN1YiBtZW51c1xyXG4gICAqIEBwYXJhbSB0cmlnZ2VyOiB0aGUgdHJpZ2dlciB0byB1c2Ugb3IgbnVsbCB0byBkZXNlbGVjdFxyXG4gICovXHJcbiAgcHJvdGVjdGVkIHNob3dTdWJNZW51KHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyID0gbnVsbCkge1xyXG4gICAgdGhpcy5hbGxNZW51VHJpZ2dlcnMuZm9yRWFjaChtZW51VHJpZ2dlciA9PiB7XHJcbiAgICAgIGlmIChtZW51VHJpZ2dlci5tZW51T3Blbikge1xyXG4gICAgICAgIG1lbnVUcmlnZ2VyLmNsb3NlTWVudSgpO1xyXG4gICAgICAgIHRoaXMucmVzZXRTdWJNZW51KG1lbnVUcmlnZ2VyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0cmlnZ2VyPy5vcGVuTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXQgc3ViIG1lbnVcclxuICAgKiBAcGFyYW0gdHJpZ2dlcjogdGhlIHRyaWdnZXIgdG8gdXNlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHJlc2V0U3ViTWVudSh0cmlnZ2VyOiBNYXRNZW51VHJpZ2dlcikge1xyXG4gICAgdGhpcy5yZW5kZXJlcjIucmVtb3ZlQ2xhc3ModHJpZ2dlclsnX2VsZW1lbnQnXS5uYXRpdmVFbGVtZW50LCAnY2RrLWZvY3VzZWQnKTtcclxuICAgIHRoaXMucmVuZGVyZXIyLnJlbW92ZUNsYXNzKHRyaWdnZXJbJ19lbGVtZW50J10ubmF0aXZlRWxlbWVudCwgJ2Nkay1wcm9ncmFtLWZvY3VzZWQnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgaXRlbSBvciBzZWxlY3Rpb24gaXMgcmVhZFxyXG4gICAqIEByZXR1cm5zIDAgaWYgbm90IHJlYWQsIDEgaWYgcmVhZCwgMiBpZiB1bmtub3duXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGlzUmVhZCgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMuaXRlbSgpKSByZXR1cm4gdGhpcy5pdGVtKCkuaXNSZWFkID09PSB0cnVlID8gMSA6IDA7XHJcbiAgICBpZiAodGhpcy5wYXJlbnQoKT8uaGFzQW55U2VsZWN0aW9uKCkpIHJldHVybiAyO1xyXG4gICAgY29uc3QgZmlyc3RTZWxlY3Rpb24gPSB0aGlzLnBhcmVudCgpPy5nZXRTaW5nbGVTZWxlY3Rpb24oKTtcclxuICAgIGlmIChmaXJzdFNlbGVjdGlvbikge1xyXG4gICAgICByZXR1cm4gZmlyc3RTZWxlY3Rpb24uaXNSZWFkID09PSB0cnVlID8gMSA6IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgaXMgcmVhZCBmbGFnIHZhbHVlXHJcbiAgICogQHBhcmFtIHZhbHVlOiB0cnVlIG9yIGZhbHNlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldFJlYWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucGFyZW50KCk/LnNldFJlYWQodmFsdWUsIHRoaXMuaXRlbSgpKTtcclxuICB9XHJcblxyXG59XHJcbiIsIkBpZiAoc2VsZWN0aW9uU291cmNlKCkgJiYgc2VsZWN0aW9uU291cmNlKCkgIT09ICdub25lJykge1xyXG5AaWYgKHNlbGVjdGlvblNvdXJjZSgpID09PSAnc2VsZWN0aW9uJykge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInBhcmVudCgpLnNlbGVjdGlvbj8uY2xlYXIoKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Rlc2VsZXppb25hIHR1dHRpJ1wiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPkRlc2VsZXppb25hIHR1dHRpXHJcbjwvYnV0dG9uPlxyXG59IEBlbHNlIGlmIChzZWxlY3Rpb25Tb3VyY2UoKSA9PT0gJ2JhZycpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwYXJlbnQoKS5vcGVuQmFnKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidHZXN0aXNjaSBkb2N1bWVudGkgZGkgbGF2b3JvJ1wiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8bWF0LWljb24+d29ya19vdXRsaW5lPC9tYXQtaWNvbj5HZXN0aXNjaSBkb2N1bWVudGkgZGkgbGF2b3JvXHJcbjwvYnV0dG9uPlxyXG59XHJcbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG59XHJcbkBpZiAoaXRlbSgpIHx8IChzZWxlY3Rpb24oKT8ubGVuZ3RoID09PSAxKSkge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInQXByaSBkb2N1bWVudG8nXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiXHJcbiAgKGNsaWNrKT1cInBhcmVudCgpLm9wZW4oaXRlbSgpID8gaXRlbSgpLmRvY3VtZW50SWQgOiBzZWxlY3Rpb24oKVswXS5kb2N1bWVudElkKVwiPlxyXG4gIDxtYXQtaWNvbj48L21hdC1pY29uPkFwcmlcclxuPC9idXR0b24+XHJcbn1cclxuQGlmIChzZWxlY3Rpb25Tb3VyY2UoKSAhPT0gJ2JhZycpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FnZ2l1bmdpIGFpIGRvY3VtZW50aSBkaSBsYXZvcm8nXCJcclxuICAoY2xpY2spPVwicGFyZW50KCkuYWRkSXRlbXNUb0JhZyhpdGVtKCkgPyBbaXRlbSgpXSA6IHNlbGVjdGlvbigpKVwiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8bWF0LWljb24+d29ya19vdXRsaW5lPC9tYXQtaWNvbj5BZ2dpdW5naSBhaSBkb2N1bWVudGkgZGkgbGF2b3JvXHJcbjwvYnV0dG9uPlxyXG59XHJcbkBpZihjYW5QcmludCgpKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGFyZW50KCk/LnByaW50KClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidTdGFtcGEgZG9jdW1lbnRvJ1wiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIyMHB4XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmlsbD5cclxuICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0PVwicm93XCIgZnhGaWxsIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cclxuICAgICAgPG1hdC1pY29uPnByaW50PC9tYXQtaWNvbj5cclxuICAgICAgPGRpdj5TdGFtcGE8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFjY2VudCBzbWFsbCBib2xkXCI+Q1RSTCtQPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYnV0dG9uPlxyXG59XHJcbkBpZihjYW5GaW5kKCkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwYXJlbnQoKT8uZmluZCgpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInVHJvdmEgbmVsIGRvY3VtZW50bydcIiAobW91c2VlbnRlcik9XCJzaG93U3ViTWVudSgpXCI+XHJcbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMjBweFwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeEZpbGw+XHJcbiAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeExheW91dD1cInJvd1wiIGZ4RmlsbCBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtaWNvbj5maW5kX2luX3BhZ2U8L21hdC1pY29uPlxyXG4gICAgICA8ZGl2PlRyb3ZhIG5lbCBkb2N1bWVudG88L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFjY2VudCBzbWFsbCBib2xkXCI+Q1RSTCtGPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYnV0dG9uPlxyXG59XHJcbkBpZiAoKGl0ZW0oKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA+IDEpKSkge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInBhcmVudCgpLnNlbmRJdGVtc1RvKGl0ZW0oKSA/IFtpdGVtKCldIDogc2VsZWN0aW9uKCkpXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsXT1cIidJbnZpYSBkb2N1bWVudG8gcGVyIGVtYWlsJ1wiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8bWF0LWljb24+c2VuZDwvbWF0LWljb24+SW52aWEgcGVyIGVtYWlsXHJcbjwvYnV0dG9uPlxyXG59XHJcbkBpZiAoKChpdGVtKCkgJiYgaXRlbSgpLm1vZGVsICE9IDExKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA9PT0gMSAmJiBzZWxlY3Rpb24oKVswXS5tb2RlbCAhPSAxMSkpKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGFyZW50KCkuZXhwb3J0UGRmKGl0ZW0oKSA/IGl0ZW0oKSA6IHNlbGVjdGlvbigpWzBdKVwiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIlxyXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NhbHZhIGRvY3VtZW50byBpbiBwZGYnXCI+XHJcbiAgPG1hdC1pY29uPnNhdmVfYWx0PC9tYXQtaWNvbj5TYWx2YSBpbiBwZGZcclxuPC9idXR0b24+XHJcbn1cclxuQGlmICgoaXRlbSgpIHx8IChzZWxlY3Rpb24oKT8ubGVuZ3RoID09PSAxKSkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0dlbmVyYSB1biBsaW5rIHBlcm1hbmVudGUgZGEgdXRpbGl6emFyZSBlc3Rlcm5hbWVudGUnXCJcclxuICAoY2xpY2spPVwicGFyZW50KCkuc2hvd0xpbmsoaXRlbSgpID8gaXRlbSgpIDogc2VsZWN0aW9uKClbMF0pXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiPlxyXG4gIDxtYXQtaWNvbj5saW5rPC9tYXQtaWNvbj5MaW5rXHJcbjwvYnV0dG9uPlxyXG59XHJcbkBpZiAoIWlzUmVmZXJlbmNlKCkgJiYgKGl0ZW0oKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA9PT0gMSkpKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGlua3NNZW51XCIgI2xpbmtzTWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KGxpbmtzTWVudVRyaWdnZXIpXCIgKG1vdXNlbGVhdmUpPVwicmVzZXRTdWJNZW51KGxpbmtzTWVudVRyaWdnZXIpXCI+XHJcbiAgPG1hdC1pY29uPmNvbXBhcmVfYXJyb3dzPC9tYXQtaWNvbj5Db2xsZWdhbWVudGlcclxuPC9idXR0b24+XHJcbjxtYXQtbWVudSAjbGlua3NNZW51PVwibWF0TWVudVwiID5cclxuICBAaWYgKCFpc1JlZmVyZW5jZSgpICYmIChpdGVtKCkgfHwgKHNlbGVjdGlvbigpPy5sZW5ndGggPT09IDEpKSkge1xyXG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidNb3N0cmEgaSBkb2N1bWVudGkgcmljaGlhbWF0aSBkYSBxdWVzdG8nXCJcclxuICAgIChjbGljayk9XCJwYXJlbnQoKS5vcGVuUmVmZXJlbmNlcyhpdGVtKCkgPyBpdGVtKCkuZG9jdW1lbnRJZCA6IHNlbGVjdGlvbigpWzBdLmRvY3VtZW50SWQsIDEpXCI+XHJcbiAgICBEb2N1bWVudGkgcmljaGlhbWF0aVxyXG4gIDwvYnV0dG9uPlxyXG4gIH1cclxuICBAaWYgKCAhaXNSZWZlcmVuY2UoKSAmJihpdGVtKCkgfHwgKHNlbGVjdGlvbigpPy5sZW5ndGggPT09IDEpKSkge1xyXG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidNb3N0cmEgaSBkb2N1bWVudGkgY2hlIHJpY2hpYW1hbm8gcXVlc3RvJ1wiXHJcbiAgICAoY2xpY2spPVwicGFyZW50KCkub3BlblJlZmVyZW5jZXMoaXRlbSgpID8gaXRlbSgpLmRvY3VtZW50SWQgOiBzZWxlY3Rpb24oKVswXS5kb2N1bWVudElkLCAyKVwiPlxyXG4gICAgRG9jdW1lbnRpIGNoZSByaWNoaWFtYW5vXHJcbiAgPC9idXR0b24+XHJcbiAgfVxyXG4gIEBpZiAoIWlzUmVmZXJlbmNlKCkgJiYgaXNMYXdJbkZvcmNlKCkgJiYgKGl0ZW0oKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA9PT0gMSkpKSB7XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01vc3RyYSBnaXVyaXNwcnVkZW56YSdcIlxyXG4gICAgKGNsaWNrKT1cInBhcmVudCgpLm9wZW5SZWZlcmVuY2VzKGl0ZW0oKSA/IGl0ZW0oKS5kb2N1bWVudElkIDogc2VsZWN0aW9uKClbMF0uZG9jdW1lbnRJZCwgNClcIj5cclxuICAgIEp1cmlzXHJcbiAgPC9idXR0b24+XHJcbiAgfVxyXG4gIEBpZiAoIWlzUmVmZXJlbmNlKCkgJiYgaXNMYXdJbkZvcmNlKCkgJiYgKGl0ZW0oKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA9PT0gMSkpKSB7XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01vc3RyYSBtb2RpZmljaGUgbm9ybWF0aXZlJ1wiXHJcbiAgICAoY2xpY2spPVwicGFyZW50KCkub3BlblJlZmVyZW5jZXMoaXRlbSgpID8gaXRlbSgpLmRvY3VtZW50SWQgOiBzZWxlY3Rpb24oKVswXS5kb2N1bWVudElkLCAzKVwiPlxyXG4gICAgTW9kaWZpY2hlXHJcbiAgPC9idXR0b24+XHJcbiAgfVxyXG48L21hdC1tZW51PlxyXG59XHJcblxyXG5AaWYgKCFpc1JlZmVyZW5jZSgpICYmIGlzUmVhZGFibGUoKSkge1xyXG48bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuXHJcbkBpZiAoaXRlbSgpID8gaXRlbSgpLmlzUmVhZCA9PT0gdHJ1ZSA6IChwYXJlbnQoKT8uc2VsZWN0aW9uPy5hbGwubGVuZ3RoICE9IDEgfHwgcGFyZW50KCk/LnNlbGVjdGlvbj8uYWxsWzBdLmlzUmVhZCA9PT1cclxudHJ1ZSkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlZ25hIGNvbWUgZGEgbGVnZ2VyZSdcIiAoY2xpY2spPVwicGFyZW50KCk/LnNldFJlYWQoZmFsc2UsIGl0ZW0oKSlcIiAobW91c2VlbnRlcik9XCJzaG93U3ViTWVudSgpXCI+XHJcbiAgPG1hdC1pY29uPm91dGxpbmVkX2ZsYWc8L21hdC1pY29uPlNlZ25hIGNvbWUgZGEgbGVnZ2VyZVxyXG48L2J1dHRvbj5cclxufVxyXG5AaWYgKGl0ZW0oKSA/IGl0ZW0oKS5pc1JlYWQgIT09IHRydWUgOiAocGFyZW50KCk/LnNlbGVjdGlvbj8uYWxsLmxlbmd0aCAhPSAxIHx8IHBhcmVudCgpPy5zZWxlY3Rpb24/LmFsbFswXS5pc1JlYWQgIT09XHJcbnRydWUpKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidTZWduYSBjb21lIGdpw6AgbGV0dG8nXCIgKGNsaWNrKT1cInBhcmVudCgpPy5zZXRSZWFkKHRydWUsIGl0ZW0oKSlcIiAobW91c2VlbnRlcik9XCJzaG93U3ViTWVudSgpXCI+XHJcbiAgPG1hdC1pY29uPmZsYWc8L21hdC1pY29uPlNlZ25hIGNvbWUgZ2nDoCBsZXR0b1xyXG48L2J1dHRvbj5cclxufVxyXG59XHJcblxyXG5AaWYgKChpc0xhd0luRm9yY2UoKSB8fCBpc0RlYWRsaW5lKCkpICYmIChpdGVtKCkgfHwgKHNlbGVjdGlvbigpPy5sZW5ndGggPT09IDEpKSkge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInTW9zdHJhIHJlcG9ydCB1dGlsaXp6bydcIlxyXG4gIChjbGljayk9XCJwYXJlbnQoKS5yZXBvcnQoaXRlbSgpID8gaXRlbSgpIDogc2VsZWN0aW9uKClbMF0pXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiPlxyXG4gIDxtYXQtaWNvbj5hc3NpZ25tZW50PC9tYXQtaWNvbj5SZXBvcnRcclxuPC9idXR0b24+XHJcbn1cclxuXHJcbkBpZiAoKGl0ZW0oKSB8fCBzZWxlY3Rpb24/Lmxlbmd0aCA+IDApICYmIHBhcmVudCgpLlJTX2VuYWJsZWQoaXRlbSgpID8gW2l0ZW0oKV0gOiBzZWxlY3Rpb24oKSkgJiYgIXVzZVNlbGVjdGlvbnMoKSkge1xyXG48bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxufVxyXG5AaWYgKChpdGVtKCkgfHwgc2VsZWN0aW9uPy5sZW5ndGggPiAwKSAmJiBwYXJlbnQoKS5SU19lbmFibGVkKGl0ZW0oKSA/IFtpdGVtKCldIDogc2VsZWN0aW9uKCkpICYmICF1c2VTZWxlY3Rpb25zKCkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIG1hdFRvb2x0aXA9XCJSZWdpc3RybyAmIFNjYWRlbnphcmlvXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInT3B6aW9uaSBkaSBSZWdpc3RybyAmIFNjYWRlbnphcmlvJ1wiXHJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInJzTWVudVwiICNyc01lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIiAobW91c2VlbnRlcik9XCJzaG93U3ViTWVudShyc01lbnVUcmlnZ2VyKVwiIChtb3VzZWxlYXZlKT1cInJlc2V0U3ViTWVudShyc01lbnVUcmlnZ2VyKVwiPlxyXG4gIDxtYXQtaWNvbj5hbGFybV9vbjwvbWF0LWljb24+XHJcbiAgUmVnaXN0cm8gZSBzY2FkZW56YXJpb1xyXG48L2J1dHRvbj5cclxuPG1hdC1tZW51ICNyc01lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ051b3ZhIGxlZ2dlJ1wiIChjbGljayk9XCJwYXJlbnQoKS5SU19uZXdMYXcoW2l0ZW0oKV0pXCI+XHJcbiAgICBOdW92YSBsZWdnZVxyXG4gIDwvYnV0dG9uPlxyXG4gIEBpZiAoaXRlbSgpIHx8IHNlbGVjdGlvbj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ051b3ZhIGF0dGl2aXTDoCdcIiAoY2xpY2spPVwicGFyZW50KCkuUlNfbmV3QWN0aXZpdHkoaXRlbSgpKVwiPlxyXG4gICAgTnVvdmEgYXR0aXZpdMOgXHJcbiAgPC9idXR0b24+XHJcbiAgfVxyXG4gIEBpZiAoaXRlbSgpIHx8IHNlbGVjdGlvbj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlcG9ydCB1dGlsaXp6byBub3JtYSdcIiAoY2xpY2spPVwicGFyZW50KCkuUlNfdXNhZ2VSZXBvcnQoaXRlbSgpKVwiPlxyXG4gICAgUmVwb3J0IHV0aWxpenpvIG5vcm1hXHJcbiAgPC9idXR0b24+XHJcbiAgfVxyXG48L21hdC1tZW51PlxyXG59Il19
94
+ }] });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvY2xpcHBlci51aS91aS9kb2N1bWVudC1tZW51L2RvY3VtZW50LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIudWkvdWkvZG9jdW1lbnQtbWVudS9kb2N1bWVudC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFXbkQsTUFBTSxPQUFPLDRCQUE0QjtJQVR6QztRQVdVLGtCQUFhLEdBQTJCLFNBQVMsQ0FBaUIsZUFBZSxDQUFDLENBQUM7UUFDbkYscUJBQWdCLEdBQTJCLFNBQVMsQ0FBaUIsa0JBQWtCLENBQUMsQ0FBQztRQUN6RixvQkFBZSxHQUE4QjtZQUNuRCxJQUFJLENBQUMsZ0JBQWdCO1lBQ3JCLElBQUksQ0FBQyxhQUFhO1NBQ25CLENBQUE7UUFDTyxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLGtCQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsS0FBSyxDQUFzQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxjQUFTLEdBQWtDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsUUFBUSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztvQkFDL0IsS0FBSyxLQUFLO3dCQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDNUMsS0FBSyxXQUFXO3dCQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztRQUNILFdBQU0sR0FBRyxLQUFLLEVBQThCLENBQUM7UUFDN0MsU0FBSSxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNwQyxlQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsaUJBQVksR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDckMsVUFBSyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM5QixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7S0FnRGpDO0lBN0NDOzs7TUFHRTtJQUNRLFdBQVcsQ0FBQyxVQUEwQixJQUFJO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQzVCLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDTyxZQUFZLENBQUMsT0FBdUI7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVEOzs7T0FHRztJQUNPLE1BQU07UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxlQUFlLEVBQUU7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sY0FBYyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7O09BR0c7SUFDTyxPQUFPLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQTdFVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qixzd0RDbEJ6QyxzK05BZ0pDLHlERGpJVyxVQUFVLHU2RUFBRSxhQUFhLDZ2QkFBRSxhQUFhLG1MQUFFLGdCQUFnQixrSUFBRSxnQkFBZ0I7OzJGQUczRSw0QkFBNEI7a0JBVHhDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBR3JCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgUmVuZGVyZXIyLCBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgQ2xpcHBlckRvY3VtZW50SW5mbyB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY2xpcHBlci5jb21tb24nO1xyXG5pbXBvcnQgeyBDbGlwcGVyU2VhcmNoUmVzdWx0TWFuYWdlciB9IGZyb20gJy4uL3NlYXJjaC1yZXN1bHQtbWFuYWdlci9zZWFyY2gtcmVzdWx0LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBGbGV4TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2xpcHBlci1kb2N1bWVudC1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtbWVudS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW0ZsZXhNb2R1bGUsIE1hdE1lbnVNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdERpdmlkZXJNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGVdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlckRvY3VtZW50TWVudUNvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgcnNNZW51VHJpZ2dlcjogU2lnbmFsPE1hdE1lbnVUcmlnZ2VyPiA9IHZpZXdDaGlsZDxNYXRNZW51VHJpZ2dlcj4oJ3JzTWVudVRyaWdnZXInKTtcclxuICBwcml2YXRlIGxpbmtzTWVudVRyaWdnZXI6IFNpZ25hbDxNYXRNZW51VHJpZ2dlcj4gPSB2aWV3Q2hpbGQ8TWF0TWVudVRyaWdnZXI+KCdsaW5rc01lbnVUcmlnZ2VyJyk7XHJcbiAgcHJpdmF0ZSBhbGxNZW51VHJpZ2dlcnM6IFNpZ25hbDxNYXRNZW51VHJpZ2dlcj5bXSAgPSBbXHJcbiAgICB0aGlzLmxpbmtzTWVudVRyaWdnZXIsXHJcbiAgICB0aGlzLnJzTWVudVRyaWdnZXJcclxuICBdXHJcbiAgcHJpdmF0ZSByZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuXHJcbiAgdXNlU2VsZWN0aW9ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBzZWxlY3Rpb25Tb3VyY2UgPSBpbnB1dDwnYmFnJyB8ICdzZWxlY3Rpb24nIHwgJ25vbmUnIHwgbnVsbD4oJ3NlbGVjdGlvbicpO1xyXG4gIHByb3RlY3RlZCBzZWxlY3Rpb246IFNpZ25hbDxDbGlwcGVyRG9jdW1lbnRJbmZvW10+ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudXNlU2VsZWN0aW9ucygpKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb25Tb3VyY2UoKSkge1xyXG4gICAgICAgIGNhc2UgJ2JhZyc6XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQoKS5jbGlwcGVyU2VydmljZS5iYWcoKTtcclxuICAgICAgICBjYXNlICdzZWxlY3Rpb24nOlxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50KCk/LnNlbGVjdGlvbj8uYWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW107XHJcbiAgfSk7XHJcbiAgcGFyZW50ID0gaW5wdXQ8Q2xpcHBlclNlYXJjaFJlc3VsdE1hbmFnZXI+KCk7XHJcbiAgaXRlbSA9IGlucHV0PENsaXBwZXJEb2N1bWVudEluZm8+KCk7XHJcbiAgaXNSZWZlcmVuY2UgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgaXNSZWFkYWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIGlzRGVhZGxpbmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgaXNMYXdJbkZvcmNlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGlzTGF3ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGNhblByaW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGNhbkZpbmQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cclxuICAvKiogXHJcbiAgICogU2hvdyBhbmQgaGlkZSBzdWIgbWVudXNcclxuICAgKiBAcGFyYW0gdHJpZ2dlcjogdGhlIHRyaWdnZXIgdG8gdXNlIG9yIG51bGwgdG8gZGVzZWxlY3RcclxuICAqL1xyXG4gIHByb3RlY3RlZCBzaG93U3ViTWVudSh0cmlnZ2VyOiBNYXRNZW51VHJpZ2dlciA9IG51bGwpIHtcclxuICAgIHRoaXMuYWxsTWVudVRyaWdnZXJzLmZvckVhY2gobWVudVRyaWdnZXIgPT4ge1xyXG4gICAgICBpZiAobWVudVRyaWdnZXIoKT8ubWVudU9wZW4pIHtcclxuICAgICAgICBtZW51VHJpZ2dlcigpLmNsb3NlTWVudSgpO1xyXG4gICAgICAgIHRoaXMucmVzZXRTdWJNZW51KG1lbnVUcmlnZ2VyKCkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRyaWdnZXI/Lm9wZW5NZW51KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCBzdWIgbWVudVxyXG4gICAqIEBwYXJhbSB0cmlnZ2VyOiB0aGUgdHJpZ2dlciB0byB1c2VcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVzZXRTdWJNZW51KHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyMi5yZW1vdmVDbGFzcyh0cmlnZ2VyWydfZWxlbWVudCddLm5hdGl2ZUVsZW1lbnQsICdjZGstZm9jdXNlZCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlcjIucmVtb3ZlQ2xhc3ModHJpZ2dlclsnX2VsZW1lbnQnXS5uYXRpdmVFbGVtZW50LCAnY2RrLXByb2dyYW0tZm9jdXNlZCcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY3VycmVudCBpdGVtIG9yIHNlbGVjdGlvbiBpcyByZWFkXHJcbiAgICogQHJldHVybnMgMCBpZiBub3QgcmVhZCwgMSBpZiByZWFkLCAyIGlmIHVua25vd25cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaXNSZWFkKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5pdGVtKCkpIHJldHVybiB0aGlzLml0ZW0oKS5pc1JlYWQgPT09IHRydWUgPyAxIDogMDtcclxuICAgIGlmICh0aGlzLnBhcmVudCgpPy5oYXNBbnlTZWxlY3Rpb24oKSkgcmV0dXJuIDI7XHJcbiAgICBjb25zdCBmaXJzdFNlbGVjdGlvbiA9IHRoaXMucGFyZW50KCk/LmdldFNpbmdsZVNlbGVjdGlvbigpO1xyXG4gICAgaWYgKGZpcnN0U2VsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBmaXJzdFNlbGVjdGlvbi5pc1JlYWQgPT09IHRydWUgPyAxIDogMDtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBpcyByZWFkIGZsYWcgdmFsdWVcclxuICAgKiBAcGFyYW0gdmFsdWU6IHRydWUgb3IgZmFsc2VcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0UmVhZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wYXJlbnQoKT8uc2V0UmVhZCh2YWx1ZSwgdGhpcy5pdGVtKCkpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiQGlmIChzZWxlY3Rpb25Tb3VyY2UoKSAmJiBzZWxlY3Rpb25Tb3VyY2UoKSAhPT0gJ25vbmUnKSB7XHJcbkBpZiAoc2VsZWN0aW9uU291cmNlKCkgPT09ICdzZWxlY3Rpb24nKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGFyZW50KCkuc2VsZWN0aW9uPy5jbGVhcigpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInRGVzZWxlemlvbmEgdHV0dGknXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiPlxyXG4gIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+RGVzZWxlemlvbmEgdHV0dGlcclxuPC9idXR0b24+XHJcbn0gQGVsc2UgaWYgKHNlbGVjdGlvblNvdXJjZSgpID09PSAnYmFnJykge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInBhcmVudCgpLm9wZW5CYWcoKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0dlc3Rpc2NpIGRvY3VtZW50aSBkaSBsYXZvcm8nXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiPlxyXG4gIDxtYXQtaWNvbj53b3JrX291dGxpbmU8L21hdC1pY29uPkdlc3Rpc2NpIGRvY3VtZW50aSBkaSBsYXZvcm9cclxuPC9idXR0b24+XHJcbn1cclxuPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbn1cclxuQGlmIChpdGVtKCkgfHwgKHNlbGVjdGlvbigpPy5sZW5ndGggPT09IDEpKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHJpIGRvY3VtZW50bydcIiAobW91c2VlbnRlcik9XCJzaG93U3ViTWVudSgpXCJcclxuICAoY2xpY2spPVwicGFyZW50KCkub3BlbihpdGVtKCkgPyBpdGVtKCkuZG9jdW1lbnRJZCA6IHNlbGVjdGlvbigpWzBdLmRvY3VtZW50SWQpXCI+XHJcbiAgPG1hdC1pY29uPjwvbWF0LWljb24+QXByaVxyXG48L2J1dHRvbj5cclxufVxyXG5AaWYgKHNlbGVjdGlvblNvdXJjZSgpICE9PSAnYmFnJykge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInQWdnaXVuZ2kgYWkgZG9jdW1lbnRpIGRpIGxhdm9ybydcIlxyXG4gIChjbGljayk9XCJwYXJlbnQoKS5hZGRJdGVtc1RvQmFnKGl0ZW0oKSA/IFtpdGVtKCldIDogc2VsZWN0aW9uKCkpXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiPlxyXG4gIDxtYXQtaWNvbj53b3JrX291dGxpbmU8L21hdC1pY29uPkFnZ2l1bmdpIGFpIGRvY3VtZW50aSBkaSBsYXZvcm9cclxuPC9idXR0b24+XHJcbn1cclxuQGlmKGNhblByaW50KCkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwYXJlbnQoKT8ucHJpbnQoKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1N0YW1wYSBkb2N1bWVudG8nXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjIwcHhcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhGaWxsPlxyXG4gICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeEZpbGwgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxyXG4gICAgICA8bWF0LWljb24+cHJpbnQ8L21hdC1pY29uPlxyXG4gICAgICA8ZGl2PlN0YW1wYTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWNjZW50IHNtYWxsIGJvbGRcIj5DVFJMK1A8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9idXR0b24+XHJcbn1cclxuQGlmKGNhbkZpbmQoKSkge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInBhcmVudCgpPy5maW5kKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidUcm92YSBuZWwgZG9jdW1lbnRvJ1wiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIyMHB4XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmlsbD5cclxuICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0PVwicm93XCIgZnhGaWxsIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cclxuICAgICAgPG1hdC1pY29uPmZpbmRfaW5fcGFnZTwvbWF0LWljb24+XHJcbiAgICAgIDxkaXY+VHJvdmEgbmVsIGRvY3VtZW50bzwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWNjZW50IHNtYWxsIGJvbGRcIj5DVFJMK0Y8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9idXR0b24+XHJcbn1cclxuQGlmICgoaXRlbSgpIHx8IChzZWxlY3Rpb24oKT8ubGVuZ3RoID4gMSkpKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGFyZW50KCkuc2VuZEl0ZW1zVG8oaXRlbSgpID8gW2l0ZW0oKV0gOiBzZWxlY3Rpb24oKSlcIlxyXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0ludmlhIGRvY3VtZW50byBwZXIgZW1haWwnXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiPlxyXG4gIDxtYXQtaWNvbj5zZW5kPC9tYXQtaWNvbj5JbnZpYSBwZXIgZW1haWxcclxuPC9idXR0b24+XHJcbn1cclxuQGlmICgoKGl0ZW0oKSAmJiBpdGVtKCkubW9kZWwgIT0gMTEpIHx8IChzZWxlY3Rpb24oKT8ubGVuZ3RoID09PSAxICYmIHNlbGVjdGlvbigpWzBdLm1vZGVsICE9IDExKSkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwYXJlbnQoKS5leHBvcnRQZGYoaXRlbSgpID8gaXRlbSgpIDogc2VsZWN0aW9uKClbMF0pXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoKVwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2FsdmEgZG9jdW1lbnRvIGluIHBkZidcIj5cclxuICA8bWF0LWljb24+c2F2ZV9hbHQ8L21hdC1pY29uPlNhbHZhIGluIHBkZlxyXG48L2J1dHRvbj5cclxufVxyXG5AaWYgKChpdGVtKCkgfHwgKHNlbGVjdGlvbigpPy5sZW5ndGggPT09IDEpKSkge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInR2VuZXJhIHVuIGxpbmsgcGVybWFuZW50ZSBkYSB1dGlsaXp6YXJlIGVzdGVybmFtZW50ZSdcIlxyXG4gIChjbGljayk9XCJwYXJlbnQoKS5zaG93TGluayhpdGVtKCkgPyBpdGVtKCkgOiBzZWxlY3Rpb24oKVswXSlcIiAobW91c2VlbnRlcik9XCJzaG93U3ViTWVudSgpXCI+XHJcbiAgPG1hdC1pY29uPmxpbms8L21hdC1pY29uPkxpbmtcclxuPC9idXR0b24+XHJcbn1cclxuQGlmICghaXNSZWZlcmVuY2UoKSAmJiAoaXRlbSgpIHx8IChzZWxlY3Rpb24oKT8ubGVuZ3RoID09PSAxKSkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaW5rc01lbnVcIiAjbGlua3NNZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCIgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUobGlua3NNZW51VHJpZ2dlcilcIiAobW91c2VsZWF2ZSk9XCJyZXNldFN1Yk1lbnUobGlua3NNZW51VHJpZ2dlcilcIj5cclxuICA8bWF0LWljb24+Y29tcGFyZV9hcnJvd3M8L21hdC1pY29uPkNvbGxlZ2FtZW50aVxyXG48L2J1dHRvbj5cclxuPG1hdC1tZW51ICNsaW5rc01lbnU9XCJtYXRNZW51XCIgPlxyXG4gIEBpZiAoIWlzUmVmZXJlbmNlKCkgJiYgKGl0ZW0oKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA9PT0gMSkpKSB7XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01vc3RyYSBpIGRvY3VtZW50aSByaWNoaWFtYXRpIGRhIHF1ZXN0bydcIlxyXG4gICAgKGNsaWNrKT1cInBhcmVudCgpLm9wZW5SZWZlcmVuY2VzKGl0ZW0oKSA/IGl0ZW0oKS5kb2N1bWVudElkIDogc2VsZWN0aW9uKClbMF0uZG9jdW1lbnRJZCwgMSlcIj5cclxuICAgIERvY3VtZW50aSByaWNoaWFtYXRpXHJcbiAgPC9idXR0b24+XHJcbiAgfVxyXG4gIEBpZiAoICFpc1JlZmVyZW5jZSgpICYmKGl0ZW0oKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA9PT0gMSkpKSB7XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01vc3RyYSBpIGRvY3VtZW50aSBjaGUgcmljaGlhbWFubyBxdWVzdG8nXCJcclxuICAgIChjbGljayk9XCJwYXJlbnQoKS5vcGVuUmVmZXJlbmNlcyhpdGVtKCkgPyBpdGVtKCkuZG9jdW1lbnRJZCA6IHNlbGVjdGlvbigpWzBdLmRvY3VtZW50SWQsIDIpXCI+XHJcbiAgICBEb2N1bWVudGkgY2hlIHJpY2hpYW1hbm9cclxuICA8L2J1dHRvbj5cclxuICB9XHJcbiAgQGlmICghaXNSZWZlcmVuY2UoKSAmJiBpc0xhd0luRm9yY2UoKSAmJiAoaXRlbSgpIHx8IChzZWxlY3Rpb24oKT8ubGVuZ3RoID09PSAxKSkpIHtcclxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInTW9zdHJhIGdpdXJpc3BydWRlbnphJ1wiXHJcbiAgICAoY2xpY2spPVwicGFyZW50KCkub3BlblJlZmVyZW5jZXMoaXRlbSgpID8gaXRlbSgpLmRvY3VtZW50SWQgOiBzZWxlY3Rpb24oKVswXS5kb2N1bWVudElkLCA0KVwiPlxyXG4gICAgSnVyaXNcclxuICA8L2J1dHRvbj5cclxuICB9XHJcbiAgQGlmICghaXNSZWZlcmVuY2UoKSAmJiBpc0xhd0luRm9yY2UoKSAmJiAoaXRlbSgpIHx8IChzZWxlY3Rpb24oKT8ubGVuZ3RoID09PSAxKSkpIHtcclxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInTW9zdHJhIG1vZGlmaWNoZSBub3JtYXRpdmUnXCJcclxuICAgIChjbGljayk9XCJwYXJlbnQoKS5vcGVuUmVmZXJlbmNlcyhpdGVtKCkgPyBpdGVtKCkuZG9jdW1lbnRJZCA6IHNlbGVjdGlvbigpWzBdLmRvY3VtZW50SWQsIDMpXCI+XHJcbiAgICBNb2RpZmljaGVcclxuICA8L2J1dHRvbj5cclxuICB9XHJcbjwvbWF0LW1lbnU+XHJcbn1cclxuXHJcbkBpZiAoIWlzUmVmZXJlbmNlKCkgJiYgaXNSZWFkYWJsZSgpKSB7XHJcbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG5cclxuQGlmIChpdGVtKCkgPyBpdGVtKCkuaXNSZWFkID09PSB0cnVlIDogKHBhcmVudCgpPy5zZWxlY3Rpb24/LmFsbC5sZW5ndGggIT0gMSB8fCBwYXJlbnQoKT8uc2VsZWN0aW9uPy5hbGxbMF0uaXNSZWFkID09PVxyXG50cnVlKSkge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInU2VnbmEgY29tZSBkYSBsZWdnZXJlJ1wiIChjbGljayk9XCJwYXJlbnQoKT8uc2V0UmVhZChmYWxzZSwgaXRlbSgpKVwiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8bWF0LWljb24+b3V0bGluZWRfZmxhZzwvbWF0LWljb24+U2VnbmEgY29tZSBkYSBsZWdnZXJlXHJcbjwvYnV0dG9uPlxyXG59XHJcbkBpZiAoaXRlbSgpID8gaXRlbSgpLmlzUmVhZCAhPT0gdHJ1ZSA6IChwYXJlbnQoKT8uc2VsZWN0aW9uPy5hbGwubGVuZ3RoICE9IDEgfHwgcGFyZW50KCk/LnNlbGVjdGlvbj8uYWxsWzBdLmlzUmVhZCAhPT1cclxudHJ1ZSkpIHtcclxuPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlZ25hIGNvbWUgZ2nDoCBsZXR0bydcIiAoY2xpY2spPVwicGFyZW50KCk/LnNldFJlYWQodHJ1ZSwgaXRlbSgpKVwiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KClcIj5cclxuICA8bWF0LWljb24+ZmxhZzwvbWF0LWljb24+U2VnbmEgY29tZSBnacOgIGxldHRvXHJcbjwvYnV0dG9uPlxyXG59XHJcbn1cclxuXHJcbkBpZiAoKGlzTGF3SW5Gb3JjZSgpIHx8IGlzRGVhZGxpbmUoKSkgJiYgKGl0ZW0oKSB8fCAoc2VsZWN0aW9uKCk/Lmxlbmd0aCA9PT0gMSkpKSB7XHJcbjxidXR0b24gbWF0LW1lbnUtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidNb3N0cmEgcmVwb3J0IHV0aWxpenpvJ1wiXHJcbiAgKGNsaWNrKT1cInBhcmVudCgpLnJlcG9ydChpdGVtKCkgPyBpdGVtKCkgOiBzZWxlY3Rpb24oKVswXSlcIiAobW91c2VlbnRlcik9XCJzaG93U3ViTWVudSgpXCI+XHJcbiAgPG1hdC1pY29uPmFzc2lnbm1lbnQ8L21hdC1pY29uPlJlcG9ydFxyXG48L2J1dHRvbj5cclxufVxyXG5cclxuQGlmICgoaXRlbSgpIHx8IHNlbGVjdGlvbj8ubGVuZ3RoID4gMCkgJiYgcGFyZW50KCkuUlNfZW5hYmxlZChpdGVtKCkgPyBbaXRlbSgpXSA6IHNlbGVjdGlvbigpKSAmJiAhdXNlU2VsZWN0aW9ucygpKSB7XHJcbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG59XHJcbkBpZiAoKGl0ZW0oKSB8fCBzZWxlY3Rpb24/Lmxlbmd0aCA+IDApICYmIHBhcmVudCgpLlJTX2VuYWJsZWQoaXRlbSgpID8gW2l0ZW0oKV0gOiBzZWxlY3Rpb24oKSkgJiYgIXVzZVNlbGVjdGlvbnMoKSkge1xyXG48YnV0dG9uIG1hdC1tZW51LWl0ZW0gbWF0VG9vbHRpcD1cIlJlZ2lzdHJvICYgU2NhZGVuemFyaW9cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidPcHppb25pIGRpIFJlZ2lzdHJvICYgU2NhZGVuemFyaW8nXCJcclxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwicnNNZW51XCIgI3JzTWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIChtb3VzZWVudGVyKT1cInNob3dTdWJNZW51KHJzTWVudVRyaWdnZXIpXCIgKG1vdXNlbGVhdmUpPVwicmVzZXRTdWJNZW51KHJzTWVudVRyaWdnZXIpXCI+XHJcbiAgPG1hdC1pY29uPmFsYXJtX29uPC9tYXQtaWNvbj5cclxuICBSZWdpc3RybyBlIHNjYWRlbnphcmlvXHJcbjwvYnV0dG9uPlxyXG48bWF0LW1lbnUgI3JzTWVudT1cIm1hdE1lbnVcIj5cclxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInTnVvdmEgbGVnZ2UnXCIgKGNsaWNrKT1cInBhcmVudCgpLlJTX25ld0xhdyhbaXRlbSgpXSlcIj5cclxuICAgIE51b3ZhIGxlZ2dlXHJcbiAgPC9idXR0b24+XHJcbiAgQGlmIChpdGVtKCkgfHwgc2VsZWN0aW9uPy5sZW5ndGggPT09IDEpIHtcclxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInTnVvdmEgYXR0aXZpdMOgJ1wiIChjbGljayk9XCJwYXJlbnQoKS5SU19uZXdBY3Rpdml0eShpdGVtKCkpXCI+XHJcbiAgICBOdW92YSBhdHRpdml0w6BcclxuICA8L2J1dHRvbj5cclxuICB9XHJcbiAgQGlmIChpdGVtKCkgfHwgc2VsZWN0aW9uPy5sZW5ndGggPT09IDEpIHtcclxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInUmVwb3J0IHV0aWxpenpvIG5vcm1hJ1wiIChjbGljayk9XCJwYXJlbnQoKS5SU191c2FnZVJlcG9ydChpdGVtKCkpXCI+XHJcbiAgICBSZXBvcnQgdXRpbGl6em8gbm9ybWFcclxuICA8L2J1dHRvbj5cclxuICB9XHJcbjwvbWF0LW1lbnU+XHJcbn0iXX0=
@@ -1,7 +1,7 @@
1
1
  import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
2
2
  import { NgClass, NgStyle } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { inject, Renderer2, input, computed, Component, ChangeDetectionStrategy, ViewChild, EventEmitter, ChangeDetectorRef, Output, signal } from '@angular/core';
4
+ import { viewChild, inject, Renderer2, input, computed, Component, ChangeDetectionStrategy, EventEmitter, ChangeDetectorRef, Output, signal, ViewChild } from '@angular/core';
5
5
  import * as i3$3 from '@angular/forms';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import * as i9 from '@angular/material/badge';
@@ -61,6 +61,8 @@ import { MatSelectModule } from '@angular/material/select';
61
61
 
62
62
  class ClipperDocumentMenuComponent {
63
63
  constructor() {
64
+ this.rsMenuTrigger = viewChild('rsMenuTrigger');
65
+ this.linksMenuTrigger = viewChild('linksMenuTrigger');
64
66
  this.allMenuTriggers = [
65
67
  this.linksMenuTrigger,
66
68
  this.rsMenuTrigger
@@ -95,9 +97,9 @@ class ClipperDocumentMenuComponent {
95
97
  */
96
98
  showSubMenu(trigger = null) {
97
99
  this.allMenuTriggers.forEach(menuTrigger => {
98
- if (menuTrigger.menuOpen) {
99
- menuTrigger.closeMenu();
100
- this.resetSubMenu(menuTrigger);
100
+ if (menuTrigger()?.menuOpen) {
101
+ menuTrigger().closeMenu();
102
+ this.resetSubMenu(menuTrigger());
101
103
  }
102
104
  });
103
105
  trigger?.openMenu();
@@ -133,18 +135,12 @@ class ClipperDocumentMenuComponent {
133
135
  this.parent()?.setRead(value, this.item());
134
136
  }
135
137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ClipperDocumentMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ClipperDocumentMenuComponent, isStandalone: true, selector: "clipper-document-menu", inputs: { useSelections: { classPropertyName: "useSelections", publicName: "useSelections", isSignal: true, isRequired: false, transformFunction: null }, selectionSource: { classPropertyName: "selectionSource", publicName: "selectionSource", isSignal: true, isRequired: false, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isReference: { classPropertyName: "isReference", publicName: "isReference", isSignal: true, isRequired: false, transformFunction: null }, isReadable: { classPropertyName: "isReadable", publicName: "isReadable", isSignal: true, isRequired: false, transformFunction: null }, isDeadline: { classPropertyName: "isDeadline", publicName: "isDeadline", isSignal: true, isRequired: false, transformFunction: null }, isLawInForce: { classPropertyName: "isLawInForce", publicName: "isLawInForce", isSignal: true, isRequired: false, transformFunction: null }, isLaw: { classPropertyName: "isLaw", publicName: "isLaw", isSignal: true, isRequired: false, transformFunction: null }, canPrint: { classPropertyName: "canPrint", publicName: "canPrint", isSignal: true, isRequired: false, transformFunction: null }, canFind: { classPropertyName: "canFind", publicName: "canFind", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "rsMenuTrigger", first: true, predicate: ["rsMenuTrigger"], descendants: true }, { propertyName: "linksMenuTrigger", first: true, predicate: ["linksMenuTrigger"], descendants: true }], ngImport: i0, template: "@if (selectionSource() && selectionSource() !== 'none') {\r\n@if (selectionSource() === 'selection') {\r\n<button mat-menu-item (click)=\"parent().selection?.clear()\" [attr.aria-label]=\"'Deseleziona tutti'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>clear</mat-icon>Deseleziona tutti\r\n</button>\r\n} @else if (selectionSource() === 'bag') {\r\n<button mat-menu-item (click)=\"parent().openBag()\" [attr.aria-label]=\"'Gestisci documenti di lavoro'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Gestisci documenti di lavoro\r\n</button>\r\n}\r\n<mat-divider></mat-divider>\r\n}\r\n@if (item() || (selection()?.length === 1)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Apri documento'\" (mouseenter)=\"showSubMenu()\"\r\n (click)=\"parent().open(item() ? item().documentId : selection()[0].documentId)\">\r\n <mat-icon></mat-icon>Apri\r\n</button>\r\n}\r\n@if (selectionSource() !== 'bag') {\r\n<button mat-menu-item [attr.aria-label]=\"'Aggiungi ai documenti di lavoro'\"\r\n (click)=\"parent().addItemsToBag(item() ? [item()] : selection())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Aggiungi ai documenti di lavoro\r\n</button>\r\n}\r\n@if(canPrint()) {\r\n<button mat-menu-item (click)=\"parent()?.print()\" [attr.aria-label]=\"'Stampa documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>print</mat-icon>\r\n <div>Stampa</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+P</div>\r\n </div>\r\n</button>\r\n}\r\n@if(canFind()) {\r\n<button mat-menu-item (click)=\"parent()?.find()\" [attr.aria-label]=\"'Trova nel documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>find_in_page</mat-icon>\r\n <div>Trova nel documento</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+F</div>\r\n </div>\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length > 1))) {\r\n<button mat-menu-item (click)=\"parent().sendItemsTo(item() ? [item()] : selection())\"\r\n [attr.aria-label]=\"'Invia documento per email'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>send</mat-icon>Invia per email\r\n</button>\r\n}\r\n@if (((item() && item().model != 11) || (selection()?.length === 1 && selection()[0].model != 11))) {\r\n<button mat-menu-item (click)=\"parent().exportPdf(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\"\r\n [attr.aria-label]=\"'Salva documento in pdf'\">\r\n <mat-icon>save_alt</mat-icon>Salva in pdf\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Genera un link permanente da utilizzare esternamente'\"\r\n (click)=\"parent().showLink(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>link</mat-icon>Link\r\n</button>\r\n}\r\n@if (!isReference() && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [matMenuTriggerFor]=\"linksMenu\" #linksMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(linksMenuTrigger)\" (mouseleave)=\"resetSubMenu(linksMenuTrigger)\">\r\n <mat-icon>compare_arrows</mat-icon>Collegamenti\r\n</button>\r\n<mat-menu #linksMenu=\"matMenu\" >\r\n @if (!isReference() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti richiamati da questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if ( !isReference() &&(item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti che richiamano questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra giurisprudenza'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra modifiche normative'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 3)\">\r\n Modifiche\r\n </button>\r\n }\r\n</mat-menu>\r\n}\r\n\r\n@if (!isReference() && isReadable()) {\r\n<mat-divider></mat-divider>\r\n\r\n@if (item() ? item().isRead === true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead ===\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come da leggere'\" (click)=\"parent()?.setRead(false, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>outlined_flag</mat-icon>Segna come da leggere\r\n</button>\r\n}\r\n@if (item() ? item().isRead !== true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead !==\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come gi\u00E0 letto'\" (click)=\"parent()?.setRead(true, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>flag</mat-icon>Segna come gi\u00E0 letto\r\n</button>\r\n}\r\n}\r\n\r\n@if ((isLawInForce() || isDeadline()) && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Mostra report utilizzo'\"\r\n (click)=\"parent().report(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>assignment</mat-icon>Report\r\n</button>\r\n}\r\n\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<mat-divider></mat-divider>\r\n}\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<button mat-menu-item matTooltip=\"Registro & Scadenzario\" [attr.aria-label]=\"'Opzioni di Registro & Scadenzario'\"\r\n [matMenuTriggerFor]=\"rsMenu\" #rsMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(rsMenuTrigger)\" (mouseleave)=\"resetSubMenu(rsMenuTrigger)\">\r\n <mat-icon>alarm_on</mat-icon>\r\n Registro e scadenzario\r\n</button>\r\n<mat-menu #rsMenu=\"matMenu\">\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova legge'\" (click)=\"parent().RS_newLaw([item()])\">\r\n Nuova legge\r\n </button>\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova attivit\u00E0'\" (click)=\"parent().RS_newActivity(item())\">\r\n Nuova attivit\u00E0\r\n </button>\r\n }\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Report utilizzo norma'\" (click)=\"parent().RS_usageReport(item())\">\r\n Report utilizzo norma\r\n </button>\r\n }\r\n</mat-menu>\r\n}", styles: [""], 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.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: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.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: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ClipperDocumentMenuComponent, isStandalone: true, selector: "clipper-document-menu", inputs: { useSelections: { classPropertyName: "useSelections", publicName: "useSelections", isSignal: true, isRequired: false, transformFunction: null }, selectionSource: { classPropertyName: "selectionSource", publicName: "selectionSource", isSignal: true, isRequired: false, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isReference: { classPropertyName: "isReference", publicName: "isReference", isSignal: true, isRequired: false, transformFunction: null }, isReadable: { classPropertyName: "isReadable", publicName: "isReadable", isSignal: true, isRequired: false, transformFunction: null }, isDeadline: { classPropertyName: "isDeadline", publicName: "isDeadline", isSignal: true, isRequired: false, transformFunction: null }, isLawInForce: { classPropertyName: "isLawInForce", publicName: "isLawInForce", isSignal: true, isRequired: false, transformFunction: null }, isLaw: { classPropertyName: "isLaw", publicName: "isLaw", isSignal: true, isRequired: false, transformFunction: null }, canPrint: { classPropertyName: "canPrint", publicName: "canPrint", isSignal: true, isRequired: false, transformFunction: null }, canFind: { classPropertyName: "canFind", publicName: "canFind", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "rsMenuTrigger", first: true, predicate: ["rsMenuTrigger"], descendants: true, isSignal: true }, { propertyName: "linksMenuTrigger", first: true, predicate: ["linksMenuTrigger"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (selectionSource() && selectionSource() !== 'none') {\r\n@if (selectionSource() === 'selection') {\r\n<button mat-menu-item (click)=\"parent().selection?.clear()\" [attr.aria-label]=\"'Deseleziona tutti'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>clear</mat-icon>Deseleziona tutti\r\n</button>\r\n} @else if (selectionSource() === 'bag') {\r\n<button mat-menu-item (click)=\"parent().openBag()\" [attr.aria-label]=\"'Gestisci documenti di lavoro'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Gestisci documenti di lavoro\r\n</button>\r\n}\r\n<mat-divider></mat-divider>\r\n}\r\n@if (item() || (selection()?.length === 1)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Apri documento'\" (mouseenter)=\"showSubMenu()\"\r\n (click)=\"parent().open(item() ? item().documentId : selection()[0].documentId)\">\r\n <mat-icon></mat-icon>Apri\r\n</button>\r\n}\r\n@if (selectionSource() !== 'bag') {\r\n<button mat-menu-item [attr.aria-label]=\"'Aggiungi ai documenti di lavoro'\"\r\n (click)=\"parent().addItemsToBag(item() ? [item()] : selection())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Aggiungi ai documenti di lavoro\r\n</button>\r\n}\r\n@if(canPrint()) {\r\n<button mat-menu-item (click)=\"parent()?.print()\" [attr.aria-label]=\"'Stampa documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>print</mat-icon>\r\n <div>Stampa</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+P</div>\r\n </div>\r\n</button>\r\n}\r\n@if(canFind()) {\r\n<button mat-menu-item (click)=\"parent()?.find()\" [attr.aria-label]=\"'Trova nel documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>find_in_page</mat-icon>\r\n <div>Trova nel documento</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+F</div>\r\n </div>\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length > 1))) {\r\n<button mat-menu-item (click)=\"parent().sendItemsTo(item() ? [item()] : selection())\"\r\n [attr.aria-label]=\"'Invia documento per email'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>send</mat-icon>Invia per email\r\n</button>\r\n}\r\n@if (((item() && item().model != 11) || (selection()?.length === 1 && selection()[0].model != 11))) {\r\n<button mat-menu-item (click)=\"parent().exportPdf(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\"\r\n [attr.aria-label]=\"'Salva documento in pdf'\">\r\n <mat-icon>save_alt</mat-icon>Salva in pdf\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Genera un link permanente da utilizzare esternamente'\"\r\n (click)=\"parent().showLink(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>link</mat-icon>Link\r\n</button>\r\n}\r\n@if (!isReference() && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [matMenuTriggerFor]=\"linksMenu\" #linksMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(linksMenuTrigger)\" (mouseleave)=\"resetSubMenu(linksMenuTrigger)\">\r\n <mat-icon>compare_arrows</mat-icon>Collegamenti\r\n</button>\r\n<mat-menu #linksMenu=\"matMenu\" >\r\n @if (!isReference() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti richiamati da questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if ( !isReference() &&(item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti che richiamano questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra giurisprudenza'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra modifiche normative'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 3)\">\r\n Modifiche\r\n </button>\r\n }\r\n</mat-menu>\r\n}\r\n\r\n@if (!isReference() && isReadable()) {\r\n<mat-divider></mat-divider>\r\n\r\n@if (item() ? item().isRead === true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead ===\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come da leggere'\" (click)=\"parent()?.setRead(false, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>outlined_flag</mat-icon>Segna come da leggere\r\n</button>\r\n}\r\n@if (item() ? item().isRead !== true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead !==\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come gi\u00E0 letto'\" (click)=\"parent()?.setRead(true, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>flag</mat-icon>Segna come gi\u00E0 letto\r\n</button>\r\n}\r\n}\r\n\r\n@if ((isLawInForce() || isDeadline()) && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Mostra report utilizzo'\"\r\n (click)=\"parent().report(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>assignment</mat-icon>Report\r\n</button>\r\n}\r\n\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<mat-divider></mat-divider>\r\n}\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<button mat-menu-item matTooltip=\"Registro & Scadenzario\" [attr.aria-label]=\"'Opzioni di Registro & Scadenzario'\"\r\n [matMenuTriggerFor]=\"rsMenu\" #rsMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(rsMenuTrigger)\" (mouseleave)=\"resetSubMenu(rsMenuTrigger)\">\r\n <mat-icon>alarm_on</mat-icon>\r\n Registro e scadenzario\r\n</button>\r\n<mat-menu #rsMenu=\"matMenu\">\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova legge'\" (click)=\"parent().RS_newLaw([item()])\">\r\n Nuova legge\r\n </button>\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova attivit\u00E0'\" (click)=\"parent().RS_newActivity(item())\">\r\n Nuova attivit\u00E0\r\n </button>\r\n }\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Report utilizzo norma'\" (click)=\"parent().RS_usageReport(item())\">\r\n Report utilizzo norma\r\n </button>\r\n }\r\n</mat-menu>\r\n}", styles: [""], 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.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: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.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: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
137
139
  }
138
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ClipperDocumentMenuComponent, decorators: [{
139
141
  type: Component,
140
142
  args: [{ selector: 'clipper-document-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FlexModule, MatMenuModule, MatIconModule, MatDividerModule, MatTooltipModule], template: "@if (selectionSource() && selectionSource() !== 'none') {\r\n@if (selectionSource() === 'selection') {\r\n<button mat-menu-item (click)=\"parent().selection?.clear()\" [attr.aria-label]=\"'Deseleziona tutti'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>clear</mat-icon>Deseleziona tutti\r\n</button>\r\n} @else if (selectionSource() === 'bag') {\r\n<button mat-menu-item (click)=\"parent().openBag()\" [attr.aria-label]=\"'Gestisci documenti di lavoro'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Gestisci documenti di lavoro\r\n</button>\r\n}\r\n<mat-divider></mat-divider>\r\n}\r\n@if (item() || (selection()?.length === 1)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Apri documento'\" (mouseenter)=\"showSubMenu()\"\r\n (click)=\"parent().open(item() ? item().documentId : selection()[0].documentId)\">\r\n <mat-icon></mat-icon>Apri\r\n</button>\r\n}\r\n@if (selectionSource() !== 'bag') {\r\n<button mat-menu-item [attr.aria-label]=\"'Aggiungi ai documenti di lavoro'\"\r\n (click)=\"parent().addItemsToBag(item() ? [item()] : selection())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>work_outline</mat-icon>Aggiungi ai documenti di lavoro\r\n</button>\r\n}\r\n@if(canPrint()) {\r\n<button mat-menu-item (click)=\"parent()?.print()\" [attr.aria-label]=\"'Stampa documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>print</mat-icon>\r\n <div>Stampa</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+P</div>\r\n </div>\r\n</button>\r\n}\r\n@if(canFind()) {\r\n<button mat-menu-item (click)=\"parent()?.find()\" [attr.aria-label]=\"'Trova nel documento'\" (mouseenter)=\"showSubMenu()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"row\" fxFill fxLayoutAlign=\"start center\">\r\n <mat-icon>find_in_page</mat-icon>\r\n <div>Trova nel documento</div>\r\n </div>\r\n <div class=\"accent small bold\">CTRL+F</div>\r\n </div>\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length > 1))) {\r\n<button mat-menu-item (click)=\"parent().sendItemsTo(item() ? [item()] : selection())\"\r\n [attr.aria-label]=\"'Invia documento per email'\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>send</mat-icon>Invia per email\r\n</button>\r\n}\r\n@if (((item() && item().model != 11) || (selection()?.length === 1 && selection()[0].model != 11))) {\r\n<button mat-menu-item (click)=\"parent().exportPdf(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\"\r\n [attr.aria-label]=\"'Salva documento in pdf'\">\r\n <mat-icon>save_alt</mat-icon>Salva in pdf\r\n</button>\r\n}\r\n@if ((item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Genera un link permanente da utilizzare esternamente'\"\r\n (click)=\"parent().showLink(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>link</mat-icon>Link\r\n</button>\r\n}\r\n@if (!isReference() && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [matMenuTriggerFor]=\"linksMenu\" #linksMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(linksMenuTrigger)\" (mouseleave)=\"resetSubMenu(linksMenuTrigger)\">\r\n <mat-icon>compare_arrows</mat-icon>Collegamenti\r\n</button>\r\n<mat-menu #linksMenu=\"matMenu\" >\r\n @if (!isReference() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti richiamati da questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if ( !isReference() &&(item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra i documenti che richiamano questo'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra giurisprudenza'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (!isReference() && isLawInForce() && (item() || (selection()?.length === 1))) {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra modifiche normative'\"\r\n (click)=\"parent().openReferences(item() ? item().documentId : selection()[0].documentId, 3)\">\r\n Modifiche\r\n </button>\r\n }\r\n</mat-menu>\r\n}\r\n\r\n@if (!isReference() && isReadable()) {\r\n<mat-divider></mat-divider>\r\n\r\n@if (item() ? item().isRead === true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead ===\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come da leggere'\" (click)=\"parent()?.setRead(false, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>outlined_flag</mat-icon>Segna come da leggere\r\n</button>\r\n}\r\n@if (item() ? item().isRead !== true : (parent()?.selection?.all.length != 1 || parent()?.selection?.all[0].isRead !==\r\ntrue)) {\r\n<button mat-menu-item [attr.aria-label]=\"'Segna come gi\u00E0 letto'\" (click)=\"parent()?.setRead(true, item())\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>flag</mat-icon>Segna come gi\u00E0 letto\r\n</button>\r\n}\r\n}\r\n\r\n@if ((isLawInForce() || isDeadline()) && (item() || (selection()?.length === 1))) {\r\n<button mat-menu-item [attr.aria-label]=\"'Mostra report utilizzo'\"\r\n (click)=\"parent().report(item() ? item() : selection()[0])\" (mouseenter)=\"showSubMenu()\">\r\n <mat-icon>assignment</mat-icon>Report\r\n</button>\r\n}\r\n\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<mat-divider></mat-divider>\r\n}\r\n@if ((item() || selection?.length > 0) && parent().RS_enabled(item() ? [item()] : selection()) && !useSelections()) {\r\n<button mat-menu-item matTooltip=\"Registro & Scadenzario\" [attr.aria-label]=\"'Opzioni di Registro & Scadenzario'\"\r\n [matMenuTriggerFor]=\"rsMenu\" #rsMenuTrigger=\"matMenuTrigger\" (mouseenter)=\"showSubMenu(rsMenuTrigger)\" (mouseleave)=\"resetSubMenu(rsMenuTrigger)\">\r\n <mat-icon>alarm_on</mat-icon>\r\n Registro e scadenzario\r\n</button>\r\n<mat-menu #rsMenu=\"matMenu\">\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova legge'\" (click)=\"parent().RS_newLaw([item()])\">\r\n Nuova legge\r\n </button>\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Nuova attivit\u00E0'\" (click)=\"parent().RS_newActivity(item())\">\r\n Nuova attivit\u00E0\r\n </button>\r\n }\r\n @if (item() || selection?.length === 1) {\r\n <button mat-menu-item [attr.aria-label]=\"'Report utilizzo norma'\" (click)=\"parent().RS_usageReport(item())\">\r\n Report utilizzo norma\r\n </button>\r\n }\r\n</mat-menu>\r\n}" }]
141
- }], propDecorators: { rsMenuTrigger: [{
142
- type: ViewChild,
143
- args: ['rsMenuTrigger']
144
- }], linksMenuTrigger: [{
145
- type: ViewChild,
146
- args: ['linksMenuTrigger']
147
- }] } });
143
+ }] });
148
144
 
149
145
  class ClipperSearchFacetsComponent {
150
146
  constructor() {