@arsedizioni/ars-utils 18.1.70 → 18.1.71

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.
Files changed (39) hide show
  1. package/esm2022/clipper.ui/ui/browser-dialog/browser-dialog.component.mjs +3 -3
  2. package/esm2022/clipper.ui/ui/document/document.component.mjs +3 -3
  3. package/esm2022/clipper.ui/ui/last-15-days/last-15-days.component.mjs +3 -3
  4. package/esm2022/clipper.ui/ui/references/references.component.mjs +3 -3
  5. package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +3 -3
  6. package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +3 -3
  7. package/esm2022/clipper.ui/ui/search-result-item/search-result-item.component.mjs +3 -3
  8. package/esm2022/help/components/help-viewer/help-viewer.component.mjs +130 -218
  9. package/esm2022/support.ui/ui/notifications-browser/notification/notification.component.mjs +3 -3
  10. package/esm2022/support.ui/ui/notifications-browser/notifications-browser.component.mjs +3 -3
  11. package/esm2022/ui/ui/dialogs/busy/busy-dialog.component.mjs +3 -3
  12. package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +3 -3
  13. package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +3 -3
  14. package/esm2022/ui/ui/dialogs/info/info-dialog.component.mjs +3 -3
  15. package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +3 -3
  16. package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +3 -3
  17. package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +3 -3
  18. package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +3 -3
  19. package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +3 -3
  20. package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +3 -3
  21. package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +3 -3
  22. package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +3 -3
  23. package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +3 -3
  24. package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +7 -4
  25. package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +3 -3
  26. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +14 -14
  27. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  28. package/fesm2022/arsedizioni-ars-utils-help.mjs +134 -321
  29. package/fesm2022/arsedizioni-ars-utils-help.mjs.map +1 -1
  30. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +4 -4
  31. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
  32. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +22 -19
  33. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
  34. package/fesm2022/arsedizioni-ars-utils-ui.mjs +12 -12
  35. package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
  36. package/help/components/help-viewer/help-viewer.component.d.ts +55 -89
  37. package/package.json +12 -12
  38. package/styles/ui.scss +18 -0
  39. package/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.d.ts +4 -3
@@ -1,137 +1,35 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Output, Injectable, ViewEncapsulation, Inject, ViewChild, NgModule } from '@angular/core';
2
+ import { Injectable, inject, signal, computed, Component, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
3
+ import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
3
4
  import { FlatTreeControl } from '@angular/cdk/tree';
4
- import * as i2$1 from '@angular/material/dialog';
5
- import { MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogClose, MAT_DIALOG_DATA } from '@angular/material/dialog';
6
- import * as i11 from '@angular/material/sidenav';
5
+ import { NgStyle, NgClass } from '@angular/common';
6
+ import * as i2 from '@angular/material/button';
7
+ import { MatButtonModule } from '@angular/material/button';
8
+ import { MatDialogRef, MAT_DIALOG_DATA, MatDialogContent } from '@angular/material/dialog';
9
+ import * as i4 from '@angular/material/icon';
10
+ import { MatIconModule } from '@angular/material/icon';
11
+ import * as i5 from '@angular/material/progress-bar';
12
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
13
+ import * as i7 from '@angular/material/sidenav';
7
14
  import { MatSidenavModule } from '@angular/material/sidenav';
8
- import * as i12 from '@angular/material/tree';
15
+ import * as i3 from '@angular/material/tooltip';
16
+ import { MatTooltipModule } from '@angular/material/tooltip';
17
+ import * as i8 from '@angular/material/tree';
9
18
  import { MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular/material/tree';
10
19
  import { SystemUtils, SafeHtmlPipe } from '@arsedizioni/ars-utils/core';
11
- import { BehaviorSubject, Subject, of, fromEvent } from 'rxjs';
12
- import { takeUntil } from 'rxjs/operators';
13
- import * as i8 from '@angular/material/icon';
14
- import { MatIconModule } from '@angular/material/icon';
15
- import * as i7 from '@angular/material/button';
16
- import { MatButtonModule } from '@angular/material/button';
17
- import * as i6 from '@angular/material/input';
18
- import { MatInputModule } from '@angular/material/input';
19
- import * as i5$1 from '@angular/material/form-field';
20
- import { MatFormFieldModule } from '@angular/material/form-field';
21
- import * as i5 from '@ngbracket/ngx-layout/flex';
22
- import { FlexModule } from '@ngbracket/ngx-layout/flex';
23
- import * as i3 from '@angular/forms';
24
- import { FormsModule } from '@angular/forms';
25
- import * as i2 from '@arsedizioni/ars-utils/ui';
26
- import * as i10 from '@ngbracket/ngx-layout/extended';
20
+ import * as i2$1 from '@arsedizioni/ars-utils/ui';
21
+ import { DialogService } from '@arsedizioni/ars-utils/ui';
22
+ import * as i6 from '@ngbracket/ngx-layout/extended';
27
23
  import { ExtendedModule } from '@ngbracket/ngx-layout/extended';
28
- import * as i9 from '@angular/material/progress-bar';
29
- import { MatProgressBarModule } from '@angular/material/progress-bar';
30
- import { NgStyle, NgClass } from '@angular/common';
31
- import * as i7$1 from '@angular/material/tooltip';
32
- import { MatTooltipModule } from '@angular/material/tooltip';
33
- import * as i1 from '@ngbracket/ngx-layout';
24
+ import * as i1 from '@ngbracket/ngx-layout/flex';
25
+ import { FlexModule } from '@ngbracket/ngx-layout/flex';
26
+ import { BehaviorSubject, Subject, of, fromEvent } from 'rxjs';
27
+ import { takeUntil, debounceTime } from 'rxjs/operators';
34
28
  import * as i1$1 from '@angular/common/http';
35
29
 
36
- class HelpSearchQueryBuilderComponent {
37
- constructor($dialog, dialog) {
38
- this.$dialog = $dialog;
39
- this.dialog = dialog;
40
- this.done = new EventEmitter();
41
- this.queryAnd = '';
42
- this.queryOr = '';
43
- this.queryNot = '';
44
- this.queryPhrase = '';
45
- this.queryStart = '';
46
- }
47
- ngOnInit() { }
48
- /**
49
- * Clear
50
- */
51
- clear() {
52
- this.queryAnd = null;
53
- this.queryOr = null;
54
- this.queryNot = null;
55
- this.queryPhrase = null;
56
- this.queryStart = null;
57
- }
58
- /**
59
- * Submit search
60
- */
61
- ok() {
62
- let query = '';
63
- // Phrase
64
- if (this.queryPhrase.length > 0) {
65
- if (query.length > 0)
66
- query += ' ';
67
- query += '+"';
68
- query += this.queryPhrase.replace('"', '').trim();
69
- query += '"';
70
- query += ' ';
71
- }
72
- // And
73
- if (this.queryAnd.length > 0) {
74
- let parts = this.queryAnd.split(',');
75
- for (let i = 0; i < parts.length; i++) {
76
- if (query.length > 0)
77
- query += ' ';
78
- query += '+';
79
- query += parts[i].replace('"', '').trim();
80
- }
81
- query += ' ';
82
- }
83
- // Or
84
- if (this.queryOr.length > 0) {
85
- let parts = this.queryOr.split(',');
86
- for (let i = 0; i < parts.length; i++) {
87
- if (query.length > 0)
88
- query += ' ';
89
- query += parts[i].replace('"', '').trim();
90
- }
91
- query += ' ';
92
- }
93
- // Start with
94
- if (this.queryStart.length > 0) {
95
- if (query.length > 0)
96
- query += ' ';
97
- query += '+';
98
- query += this.queryStart.replace('"', '').trim();
99
- query += '*';
100
- query += ' ';
101
- }
102
- // Not
103
- if (this.queryNot.length > 0) {
104
- if (query.length === 0) {
105
- // Invalid query
106
- this.$dialog.error("L'operatore di esclusione funziona solo se prima è stato inserito un valore in almeno uno degli altri quattro campi.");
107
- return;
108
- }
109
- let parts = this.queryNot.split(',');
110
- for (let i = 0; i < parts.length; i++) {
111
- if (query.length > 0)
112
- query += ' ';
113
- query += '-';
114
- query += parts[i].replace('"', '').trim();
115
- }
116
- query += ' ';
117
- }
118
- // Notify
119
- if (query.length > 0)
120
- this.done.emit({ query: query });
121
- }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpSearchQueryBuilderComponent, deps: [{ token: i2.DialogService }, { token: i2$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: HelpSearchQueryBuilderComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<h2 mat-dialog-title>Trova gli elementi che contengono...</h2>\r\n<div mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"!f.form.invalid ? ok() : null\" novalidate>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-label>Questa esatta parola o frase</mat-label>\r\n <input matInput name=\"queryPhrase\" [(ngModel)]=\"queryPhrase\" maxlength=\"200\" />\r\n @if (queryPhrase) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\"\r\n (click)=\"queryPhrase=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tutte queste parole</mat-label>\r\n <input matInput name=\"queryAnd\" [(ngModel)]=\"queryAnd\" maxlength=\"200\" />\r\n @if (queryAnd) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryAnd=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Una qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryOr\" [(ngModel)]=\"queryOr\" maxlength=\"200\" />\r\n @if (queryOr) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryOr=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Parole che iniziano con</mat-label>\r\n <input matInput name=\"queryStart\" [(ngModel)]=\"queryStart\" maxlength=\"200\" />\r\n @if (queryStart) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\"\r\n (click)=\"queryStart=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Nessuna qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryNot\" [(ngModel)]=\"queryNot\" maxlength=\"200\" />\r\n @if (queryNot) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryNot=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\r\n almeno uno degli altri quattro campi. </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\r\n <button type=\"button\" mat-button (click)=\"clear()\" color=\"primary\">PULISCI</button>\r\n </div>\r\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\">OK</button>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">CHIUDI</button>\r\n </div>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i5.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: i5.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: i5.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: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i5.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: MatFormFieldModule }, { kind: "component", type: i5$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] }); }
124
- }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpSearchQueryBuilderComponent, decorators: [{
126
- type: Component,
127
- args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, imports: [MatDialogTitle, MatDialogContent, FormsModule, FlexModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, MatDialogActions, MatDialogClose], template: "<h2 mat-dialog-title>Trova gli elementi che contengono...</h2>\r\n<div mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"!f.form.invalid ? ok() : null\" novalidate>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-label>Questa esatta parola o frase</mat-label>\r\n <input matInput name=\"queryPhrase\" [(ngModel)]=\"queryPhrase\" maxlength=\"200\" />\r\n @if (queryPhrase) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\"\r\n (click)=\"queryPhrase=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tutte queste parole</mat-label>\r\n <input matInput name=\"queryAnd\" [(ngModel)]=\"queryAnd\" maxlength=\"200\" />\r\n @if (queryAnd) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryAnd=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Una qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryOr\" [(ngModel)]=\"queryOr\" maxlength=\"200\" />\r\n @if (queryOr) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryOr=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Parole che iniziano con</mat-label>\r\n <input matInput name=\"queryStart\" [(ngModel)]=\"queryStart\" maxlength=\"200\" />\r\n @if (queryStart) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\"\r\n (click)=\"queryStart=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Nessuna qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryNot\" [(ngModel)]=\"queryNot\" maxlength=\"200\" />\r\n @if (queryNot) {\r\n<a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryNot=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n}\r\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\r\n almeno uno degli altri quattro campi. </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\r\n <button type=\"button\" mat-button (click)=\"clear()\" color=\"primary\">PULISCI</button>\r\n </div>\r\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\">OK</button>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">CHIUDI</button>\r\n </div>\r\n </div>\r\n</div>" }]
128
- }], ctorParameters: () => [{ type: i2.DialogService }, { type: i2$1.MatDialog }], propDecorators: { done: [{
129
- type: Output
130
- }] } });
131
-
132
- class FolderInfo {
30
+ class IndexInfo {
133
31
  }
134
- class FolderNode extends FolderInfo {
32
+ class IndexNode extends IndexInfo {
135
33
  constructor(item, level) {
136
34
  super();
137
35
  // Flattened implementation
@@ -144,13 +42,13 @@ class FolderNode extends FolderInfo {
144
42
  this.parent = item.parent;
145
43
  }
146
44
  }
147
- class FolderTree {
148
- get data() {
149
- return this.dataChange.value;
150
- }
45
+ class IndexTreeDataSource {
151
46
  constructor() {
152
47
  this.dataChange = new BehaviorSubject([]);
153
48
  }
49
+ get data() {
50
+ return this.dataChange.value;
51
+ }
154
52
  ngOnDestroy() {
155
53
  this.dataChange.unsubscribe();
156
54
  }
@@ -241,83 +139,86 @@ class FolderTree {
241
139
  update() {
242
140
  this.dataChange.next(this.data);
243
141
  }
244
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FolderTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
245
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FolderTree }); }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IndexTreeDataSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IndexTreeDataSource }); }
246
144
  }
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FolderTree, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IndexTreeDataSource, decorators: [{
248
146
  type: Injectable
249
- }], ctorParameters: () => [] });
147
+ }] });
250
148
  class HelpViewerComponent {
251
- constructor(media, tree, $dialog, $help, dialogRef, _data) {
252
- this.media = media;
253
- this.tree = tree;
254
- this.$dialog = $dialog;
255
- this.$help = $help;
256
- this.dialogRef = dialogRef;
257
- this.__d$ = new Subject();
258
- this.dialogTab = 1;
259
- this.busy = false;
260
- this.id = null;
261
- this.title = 'Guida';
262
- this.page = null;
263
- this.history = [];
264
- this.sidenavMode = 'side';
265
- this.sidenavClosed = false;
266
- this.sidenavVisible = false;
267
- this.searchText = null;
268
- this.hits = 0;
269
- this.hit = 0;
270
- this.mq = '';
271
- this.contentHeight = null;
272
- this.currentFolder = null;
273
- this.folders = null;
149
+ constructor() {
150
+ this.unsubscribe = new Subject();
151
+ this.dialogRef = inject((MatDialogRef));
152
+ this.dialogData = inject(MAT_DIALOG_DATA) ?? { id: "1" };
153
+ this.dialogService = inject(DialogService);
154
+ this.helpService = inject(HelpService);
155
+ this.breakpointObserver = inject(BreakpointObserver);
156
+ this.busy = signal(false);
157
+ this.page = signal(null);
158
+ this.indexId = null;
159
+ this.indexPaneClosed = false;
160
+ this.indexNode = null;
161
+ this.history = signal([]);
162
+ this.canGoBack = computed(() => {
163
+ return this.history()?.length > 1;
164
+ });
165
+ this.height = signal(-1);
166
+ this.tree = inject(IndexTreeDataSource);
274
167
  /**
275
168
  * Manage flat tree view
276
169
  */
277
- this._getChildren = (node) => of(node.subFolders);
278
- this._getLevel = (node) => node.level;
279
- this._isExpandable = (node) => node.expandable;
170
+ this.folders = null;
171
+ this.getChildren = (node) => of(node.subFolders);
172
+ this.getLevel = (node) => node.level;
173
+ this.isExpandable = (node) => node.expandable;
280
174
  this.hasChild = (_, _node) => _node.expandable;
281
175
  this.transformer = (item, level) => {
282
- return new FolderNode(item, level);
176
+ return new IndexNode(item, level);
283
177
  };
284
- this.id = _data && _data.id ? _data.id : '1';
178
+ }
179
+ ngOnInit() {
285
180
  // Setup tree structure
286
- this.treeFlattener = new MatTreeFlattener(this.transformer, this._getLevel, this._isExpandable, this._getChildren);
287
- this.treeControl = new FlatTreeControl(this._getLevel, this._isExpandable);
181
+ this.treeFlattener = new MatTreeFlattener(this.transformer, this.getLevel, this.isExpandable, this.getChildren);
182
+ this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
288
183
  this.treeData = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
289
184
  // Subscribe data change
290
- tree.dataChange
291
- .pipe(takeUntil(this.__d$))
185
+ this.tree.dataChange
186
+ .pipe(takeUntil(this.unsubscribe))
292
187
  .subscribe(data => (this.treeData.data = data));
293
- }
294
- ngOnInit() {
295
- // Initialize sidenav visibility
296
- if (this.sidenav)
297
- this.sidenav.opened =
298
- this.mq !== 'xs' && this.mq !== 'sm';
299
- // React to media query changes
300
- this.media
301
- .asObservable()
302
- .pipe(takeUntil(this.__d$))
303
- .subscribe((changes) => {
304
- this.updateSidenavVisibilty(changes[0].mqAlias);
188
+ // Observe layout changes
189
+ this.breakpointObserver
190
+ .observe([
191
+ Breakpoints.XSmall,
192
+ Breakpoints.Small,
193
+ Breakpoints.Medium,
194
+ Breakpoints.Large,
195
+ Breakpoints.XLarge,
196
+ ])
197
+ .pipe(takeUntil(this.unsubscribe))
198
+ .subscribe((result) => {
199
+ for (const query of Object.keys(result.breakpoints)) {
200
+ if (result.breakpoints[query]) {
201
+ this.handleFilterPaneVisibility();
202
+ }
203
+ }
305
204
  });
306
205
  // React to window size change
307
206
  fromEvent(window, 'resize')
308
- .pipe(takeUntil(this.__d$))
207
+ .pipe(takeUntil(this.unsubscribe), debounceTime(500))
309
208
  .subscribe(() => {
310
209
  // Update view
311
210
  this.updateView();
312
211
  });
313
212
  this.adjustView();
314
213
  this.getToc();
315
- if (this.id)
316
- this.getChapter(this.id);
214
+ this.indexId = this.dialogData.indexId;
215
+ if (this.indexId) {
216
+ this.getChapter(this.indexId);
217
+ }
317
218
  }
318
219
  ngOnDestroy() {
319
- this.__d$.next();
320
- this.__d$.complete();
220
+ this.unsubscribe.next();
221
+ this.unsubscribe.complete();
321
222
  }
322
223
  /**
323
224
  * Adjust view
@@ -325,7 +226,7 @@ class HelpViewerComponent {
325
226
  adjustView() {
326
227
  setTimeout(() => {
327
228
  this.updateView();
328
- }, 50);
229
+ }, 100);
329
230
  }
330
231
  /**
331
232
  * Update view
@@ -339,51 +240,33 @@ class HelpViewerComponent {
339
240
  let hb = b[0].clientHeight;
340
241
  if (hb === 0)
341
242
  this.adjustView();
342
- this.contentHeight = a - (hb + 50);
343
- }
344
- /**
345
- * Update sidenav visibility
346
- * @param mq : the current media query
347
- */
348
- updateSidenavVisibilty(mq = null) {
349
- if (!mq)
350
- mq = this.mq;
351
- if (mq === 'xs' || mq === 'sm') {
352
- this.sidenavVisible = false;
353
- //this.sidenavMode = 'over';
354
- if (this.sidenav && this.sidenav.opened)
355
- this.sidenav.close();
356
- }
357
- else {
358
- //this.sidenavMode = 'side';
359
- if (this.sidenav && !this.sidenavClosed) {
360
- this.sidenav.toggle(true);
361
- this.sidenavVisible = true;
243
+ this.height.set(a - (hb + 50));
244
+ }
245
+ /**
246
+ * Handle filter pane visibility
247
+ */
248
+ handleFilterPaneVisibility() {
249
+ if (this.indexPane) {
250
+ if (this.breakpointObserver.isMatched(Breakpoints.XSmall) ||
251
+ this.breakpointObserver.isMatched(Breakpoints.Small) ||
252
+ this.breakpointObserver.isMatched(Breakpoints.Medium)) {
253
+ if (this.indexPane.opened) {
254
+ this.indexPane.close();
255
+ }
256
+ }
257
+ else {
258
+ if (!this.indexPane.opened && !this.indexPaneClosed) {
259
+ this.indexPane.open();
260
+ }
362
261
  }
363
262
  }
364
263
  }
365
264
  /**
366
- * Open sidebar
265
+ * Show hide index pane manually
367
266
  */
368
- sidenavOpen() {
369
- this.sidenavClosed = false;
370
- this.sidenav.open();
371
- }
372
- /**
373
- * Close sidebar
374
- */
375
- sidenavClose() {
376
- this.sidenavClosed = true;
377
- this.sidenav.close();
378
- }
379
- /**
380
- * Toggle sidenav
381
- */
382
- sidenavToggle() {
383
- if (this.sidenavClosed || !this.sidenav.opened)
384
- this.sidenavOpen();
385
- else
386
- this.sidenavClose();
267
+ toggleIndexPane() {
268
+ this.indexPaneClosed = !this.indexPaneClosed;
269
+ this.indexPane?.toggle();
387
270
  }
388
271
  /**
389
272
  * Close dialog
@@ -395,13 +278,13 @@ class HelpViewerComponent {
395
278
  * Get the toc
396
279
  */
397
280
  getToc() {
398
- this.busy = true;
399
- this.$help
281
+ this.busy.set(true);
282
+ this.helpService
400
283
  .getToc()
401
284
  .subscribe({
402
285
  next: (r) => {
403
286
  if (!r.success) {
404
- this.$dialog.error(r.message);
287
+ this.dialogService.error(r.message);
405
288
  }
406
289
  else {
407
290
  this.folders = r.value.subFolders;
@@ -409,7 +292,7 @@ class HelpViewerComponent {
409
292
  }
410
293
  },
411
294
  complete: () => {
412
- this.busy = false;
295
+ this.busy.set(false);
413
296
  }
414
297
  });
415
298
  }
@@ -456,11 +339,11 @@ class HelpViewerComponent {
456
339
  * Expand current fodler node
457
340
  */
458
341
  expandCurrentFolder() {
459
- if (this.currentFolder) {
460
- this.treeControl.expand(SystemUtils.arrayFindByKey(this.treeControl.dataNodes, 'id', this.currentFolder.id));
461
- if (this.currentFolder.parent) {
342
+ if (this.indexNode) {
343
+ this.treeControl.expand(SystemUtils.arrayFindByKey(this.treeControl.dataNodes, 'id', this.indexNode.id));
344
+ if (this.indexNode.parent) {
462
345
  // Apply previous selection
463
- let n = this.currentFolder.parent;
346
+ let n = this.indexNode.parent;
464
347
  while (n) {
465
348
  this.treeControl.expand(SystemUtils.arrayFindByKey(this.treeControl.dataNodes, 'id', n.id));
466
349
  n = n.parent;
@@ -482,26 +365,23 @@ class HelpViewerComponent {
482
365
  id = id.substring(0, p);
483
366
  }
484
367
  if (id !== '.') {
485
- this.busy = true;
486
- this.$help.getChapter(id, this.searchText)
368
+ this.busy.set(true);
369
+ this.helpService.getChapter(id)
487
370
  .subscribe({
488
371
  next: (r) => {
489
372
  let found = false;
490
373
  if (!r.success) {
491
- this.$dialog.error("Capitolo non trovato.");
374
+ this.dialogService.error("Capitolo non trovato.");
492
375
  }
493
376
  else {
494
377
  if (!position)
495
- this.history.push({ id: this.id, position: this.getPosition() });
496
- this.id = id;
497
- this.title = r.value.chapter?.name;
498
- this.page = r.value.data;
499
- this.hits = r.value.hits;
500
- this.hit = 0;
501
- found = this.title?.length > 0;
378
+ this.history().push({ id: this.indexId, position: this.getPosition() });
379
+ this.indexId = id;
380
+ this.page.set(r.value.data);
381
+ found = r.value.chapter?.name?.length > 0;
502
382
  if (found) {
503
383
  // Update folder
504
- this.currentFolder = this.findFolder(id);
384
+ this.indexNode = this.findFolder(id);
505
385
  this.expandCurrentFolder();
506
386
  // Handle positioning
507
387
  this.gotoPosition(anchor, position);
@@ -512,13 +392,13 @@ class HelpViewerComponent {
512
392
  }
513
393
  },
514
394
  complete: () => {
515
- this.busy = false;
395
+ this.busy.set(false);
516
396
  }
517
397
  });
518
398
  }
519
399
  else {
520
400
  if (!position)
521
- this.history.push({ id: this.id, position: this.getPosition() });
401
+ this.history().push({ id: this.indexId, position: this.getPosition() });
522
402
  // Move on the same chapter
523
403
  this.gotoPosition(anchor, position);
524
404
  }
@@ -571,86 +451,19 @@ class HelpViewerComponent {
571
451
  back() {
572
452
  if (!this.history || this.history.length === 0)
573
453
  return;
574
- let n = this.history.pop();
454
+ let n = this.history().pop();
575
455
  this.getChapter(n.id, n.position + 1);
576
456
  }
577
- /**
578
- * Compose a free text search query
579
- */
580
- composeSearch() {
581
- let d = this.$dialog.open(HelpSearchQueryBuilderComponent, {
582
- ariaLabel: 'costruisci ricerca',
583
- autoFocus: false,
584
- restoreFocus: true,
585
- disableClose: false,
586
- minWidth: '375px',
587
- maxWidth: '600px',
588
- width: '99%'
589
- });
590
- d.componentInstance.done.subscribe((r) => {
591
- this.searchText = r.query;
592
- // Finished
593
- d.close();
594
- });
595
- }
596
- /**
597
- * Perform search
598
- */
599
- search() {
600
- this.busy = true;
601
- this.$help.search({ text: this.searchText })
602
- .subscribe({
603
- next: (r) => {
604
- if (!r.success) {
605
- this.$dialog.error("Errore di sintassi.");
606
- }
607
- else {
608
- this.searchResult = r.value;
609
- }
610
- },
611
- complete: () => {
612
- this.busy = false;
613
- }
614
- });
615
- }
616
- /**
617
- * Goto next relevant item
618
- */
619
- nextHit() {
620
- const i = this.hit + 1;
621
- if (i <= this.hits) {
622
- let elms = document.getElementsByClassName('help-word-hit-' + i);
623
- if (elms) {
624
- this.setPosition(elms[0].offsetTop - 50);
625
- this.hit++;
626
- }
627
- }
628
- }
629
- /**
630
- * Goto previous relevant item
631
- */
632
- previousHit() {
633
- const i = this.hit - 1;
634
- if (i > 0) {
635
- let elms = document.getElementsByClassName('help-word-hit-' + i);
636
- if (elms) {
637
- this.setPosition(elms[0].offsetTop - 50);
638
- this.hit--;
639
- }
640
- }
641
- }
642
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpViewerComponent, deps: [{ token: i1.MediaObserver }, { token: FolderTree }, { token: i2.DialogService }, { token: HelpService }, { token: i2$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
643
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: HelpViewerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, providers: [FolderTree], viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }], ngImport: i0, template: "<div class=\"help-viewer-fixed\">\r\n <div class=\"help-viewer-header\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlexAlign=\"center\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"sidenavToggle()\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n <h2 class=\"mat-dialog-title truncated\">\r\n <div>Guida</div>\r\n </h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\">\r\n @if (history && history.length > 1) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\"\r\n color=\"primary\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\"\r\n color=\"primary\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:5px\">\r\n @if (busy) {\r\n <mat-progress-bar class=\"sidenav-loader\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n</div>\r\n<div mat-dialog-content [ngStyle]=\"{'min-height.px': contentHeight}\" style=\"padding: 0 0 0 24px\">\r\n <mat-sidenav-container [ngStyle]=\"{'height.px': contentHeight}\">\r\n <mat-sidenav #sidenav [mode]=\"sidenavMode\" [autoFocus]=\"false\" class=\"sidenav sidenav-help\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" class=\"scrollbox\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"scrollable-content tree\"\r\n style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\"\r\n [ngClass]=\"{'tree-node-activated': currentFolder && currentFolder.id === node.id}\" [disabled]=\"busy\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"text-transform:uppercase; \">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': currentFolder && currentFolder.id === node.id }\"\r\n (click)=\"getChapter(node.id)\" [disabled]=\"busy\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"text-transform:uppercase; \">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-sidenav>\r\n <mat-sidenav-content id=\"help-page-container\">\r\n <div [ngStyle]=\"{'height.px': contentHeight }\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div style=\"padding: 0 15px;\" (click)=\"gotoChapter($event)\" [innerHtml]=\"(page ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>", styles: [":root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #7894ae;--ars-color-accent-low: #456179;--ars-color-primary: #00a293;--ars-color-primary-low: #006a60;--ars-color-primary-hi: #12c0ae;--ars-color-secondary: #4a635f;--ars-color-secondary-low: #27403c;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #388E3C;--ars-color-ok-low: #29692c;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #eaecef;--ars-item-selected-background-color: #ced1d2;--ars-item-opaque-background-color: rgba(255, 255, 255, .75);--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #adcae6;--ars-color-accent-low: #5e7a93;--ars-color-primary: #53dbc9;--ars-color-primary-low: #008679;--ars-color-primary-hi: #74f8e5;--ars-color-secondary: #b1ccc6;--ars-color-secondary-low: #627c77;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #4CAF50;--ars-color-ok-low: #3f8f41;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #262a29;--ars-item-selected-background-color: #3f4342;--ars-item-opaque-background-color: rgba(0, 0, 0, .65);--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}a.help-link,.help-link>a{text-decoration:none;color:#2a91e0}.help-title-2,.help-title-1{font-weight:600!important}.help-word-hit{font-size:inherit;background-color:#ff0;border:1px solid silver;padding:0 4px}.help-hint{margin:10px;padding:5px 20px;background-color:#fafad2;border-radius:12px}.help-summary{margin:10px;padding:5px 20px;background-color:#e6e6fa;border-radius:12px}.help-img{display:flex;align-items:center;justify-content:center;margin:10px}.help-img-200,.help-img-300,.help-img-400,.help-img-500,.help-img-700,.help-img-800{width:100%}.help-img-200{max-width:200px}.help-img-300{max-width:300px}.help-img-400{max-width:400px}.help-img-500{max-width:500px}.help-img-600{max-width:600px}.help-img-700{max-width:700px}.help-img-800{max-width:800px}.help-filter-box{background-color:#f9fbe7;border-radius:12px;padding:6px;display:inline-block;margin:0 0 8px 10px}.sidenav-help{width:320px}.tree-node-style:hover{background-color:#f8f8f8!important}::ng-deep .sidenav-help>.mat-drawer-inner-container{overflow-x:hidden!important}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i5.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: i5.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: i5.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: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i5.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i5.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: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i9.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ExtendedModule }, { kind: "directive", type: i10.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i10.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i11.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i11.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i11.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i12.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i12.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i12.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i12.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i12.MatTreeNode, selector: "mat-tree-node", inputs: ["disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], encapsulation: i0.ViewEncapsulation.None }); }
457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
458
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: HelpViewerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, providers: [IndexTreeDataSource], viewQueries: [{ propertyName: "indexPane", first: true, predicate: ["indexPane"], descendants: true }], ngImport: i0, template: "<div class=\"help-viewer-fixed\">\r\n <div class=\"help-viewer-header\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"dialog-menu\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"toggleIndexPane()\" >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"100\" >\r\n <h2 class=\"mat-dialog-title truncated\">\r\n <div>Guida</div>\r\n </h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\" class=\"dialog-close\">\r\n @if (canGoBack()) {\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:5px\">\r\n @if (busy()) {\r\n <mat-progress-bar z-index=\"11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n</div>\r\n<div mat-dialog-content [ngStyle]=\"{'min-height.px': height()}\" style=\"padding: 0 0 0 24px\">\r\n <mat-sidenav-container [ngStyle]=\"{'height.px': height()}\">\r\n <mat-sidenav #indexPane mode=\"side\" [autoFocus]=\"false\" class=\"helpbrowser-index \">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" class=\"scroll-hidden\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"scroll-auto tree \"\r\n style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id}\" [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id }\"\r\n (click)=\"getChapter(node.id)\" [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-sidenav>\r\n <mat-sidenav-content id=\"help-page-container\">\r\n <div [ngStyle]=\"{'height.px': height() }\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div style=\"padding: 0 15px;\" (click)=\"gotoChapter($event)\" [innerHtml]=\"(page() ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>", styles: [":root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #7894ae;--ars-color-accent-low: #456179;--ars-color-primary: #00a293;--ars-color-primary-low: #006a60;--ars-color-primary-hi: #12c0ae;--ars-color-secondary: #4a635f;--ars-color-secondary-low: #27403c;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #388E3C;--ars-color-ok-low: #29692c;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #eaecef;--ars-item-selected-background-color: #ced1d2;--ars-item-opaque-background-color: rgba(255, 255, 255, .75);--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.scroll-auto{overflow:auto}.scroll-hidden{overflow:hidden}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #adcae6;--ars-color-accent-low: #5e7a93;--ars-color-primary: #53dbc9;--ars-color-primary-low: #008679;--ars-color-primary-hi: #74f8e5;--ars-color-secondary: #b1ccc6;--ars-color-secondary-low: #627c77;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #4CAF50;--ars-color-ok-low: #3f8f41;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #262a29;--ars-item-selected-background-color: #3f4342;--ars-item-opaque-background-color: rgba(0, 0, 0, .65);--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}a.help-link,.help-link>a{text-decoration:none;color:#2a91e0}.help-title-2,.help-title-1{font-weight:600!important}.help-word-hit{font-size:inherit;background-color:#ff0;border:1px solid silver;padding:0 4px}.help-hint{margin:10px;padding:5px 20px;background-color:#fafad2;border-radius:12px}.help-summary{margin:10px;padding:5px 20px;background-color:#e6e6fa;border-radius:12px}.help-img{display:flex;align-items:center;justify-content:center;margin:10px}.help-img-200,.help-img-300,.help-img-400,.help-img-500,.help-img-700,.help-img-800{width:100%}.help-img-200{max-width:200px}.help-img-300{max-width:300px}.help-img-400{max-width:400px}.help-img-500{max-width:500px}.help-img-600{max-width:600px}.help-img-700{max-width:700px}.help-img-800{max-width:800px}.help-filter-box{background-color:#f9fbe7;border-radius:12px;padding:6px;display:inline-block;margin:0 0 8px 10px}.helpbrowser-index{width:320px}.helpbrowser-index>.mat-drawer-inner-container{overflow-x:hidden!important}.tree{overflow-x:hidden}.tree-node{min-height:36px!important;padding-right:12px;margin-right:0}.tree-node .small-icon-button{width:2rem!important;height:2rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.tree-node .small-icon-button .mat-mdc-button-touch-target{width:2rem!important;height:2rem!important}.tree-node:hover{cursor:pointer;background-color:var(--mat-menu-item-hover-state-layer-color, transparent);border-radius:24px}.tree-node-simple,.tree-node-simple>div{min-height:36px!important}.tree-node-activated,.tree-node-activated>div{min-height:36px!important;font-weight:700!important}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ExtendedModule }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i6.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i7.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i7.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i7.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i8.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i8.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i8.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i8.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i8.MatTreeNode, selector: "mat-tree-node", inputs: ["disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
644
459
  }
645
460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpViewerComponent, decorators: [{
646
461
  type: Component,
647
- args: [{ host: { 'Bind': SystemUtils.generateUUID() }, encapsulation: ViewEncapsulation.None, providers: [FolderTree], standalone: true, imports: [FlexModule, MatButtonModule, MatTooltipModule, MatIconModule, MatProgressBarModule, MatDialogContent, NgStyle, ExtendedModule, MatSidenavModule, MatTreeModule, NgClass, SafeHtmlPipe], template: "<div class=\"help-viewer-fixed\">\r\n <div class=\"help-viewer-header\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlexAlign=\"center\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"sidenavToggle()\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n <h2 class=\"mat-dialog-title truncated\">\r\n <div>Guida</div>\r\n </h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\">\r\n @if (history && history.length > 1) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\"\r\n color=\"primary\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\"\r\n color=\"primary\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:5px\">\r\n @if (busy) {\r\n <mat-progress-bar class=\"sidenav-loader\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n</div>\r\n<div mat-dialog-content [ngStyle]=\"{'min-height.px': contentHeight}\" style=\"padding: 0 0 0 24px\">\r\n <mat-sidenav-container [ngStyle]=\"{'height.px': contentHeight}\">\r\n <mat-sidenav #sidenav [mode]=\"sidenavMode\" [autoFocus]=\"false\" class=\"sidenav sidenav-help\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" class=\"scrollbox\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"scrollable-content tree\"\r\n style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\"\r\n [ngClass]=\"{'tree-node-activated': currentFolder && currentFolder.id === node.id}\" [disabled]=\"busy\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"text-transform:uppercase; \">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': currentFolder && currentFolder.id === node.id }\"\r\n (click)=\"getChapter(node.id)\" [disabled]=\"busy\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"text-transform:uppercase; \">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-sidenav>\r\n <mat-sidenav-content id=\"help-page-container\">\r\n <div [ngStyle]=\"{'height.px': contentHeight }\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div style=\"padding: 0 15px;\" (click)=\"gotoChapter($event)\" [innerHtml]=\"(page ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>", styles: [":root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #7894ae;--ars-color-accent-low: #456179;--ars-color-primary: #00a293;--ars-color-primary-low: #006a60;--ars-color-primary-hi: #12c0ae;--ars-color-secondary: #4a635f;--ars-color-secondary-low: #27403c;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #388E3C;--ars-color-ok-low: #29692c;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #eaecef;--ars-item-selected-background-color: #ced1d2;--ars-item-opaque-background-color: rgba(255, 255, 255, .75);--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #adcae6;--ars-color-accent-low: #5e7a93;--ars-color-primary: #53dbc9;--ars-color-primary-low: #008679;--ars-color-primary-hi: #74f8e5;--ars-color-secondary: #b1ccc6;--ars-color-secondary-low: #627c77;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #4CAF50;--ars-color-ok-low: #3f8f41;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #262a29;--ars-item-selected-background-color: #3f4342;--ars-item-opaque-background-color: rgba(0, 0, 0, .65);--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}a.help-link,.help-link>a{text-decoration:none;color:#2a91e0}.help-title-2,.help-title-1{font-weight:600!important}.help-word-hit{font-size:inherit;background-color:#ff0;border:1px solid silver;padding:0 4px}.help-hint{margin:10px;padding:5px 20px;background-color:#fafad2;border-radius:12px}.help-summary{margin:10px;padding:5px 20px;background-color:#e6e6fa;border-radius:12px}.help-img{display:flex;align-items:center;justify-content:center;margin:10px}.help-img-200,.help-img-300,.help-img-400,.help-img-500,.help-img-700,.help-img-800{width:100%}.help-img-200{max-width:200px}.help-img-300{max-width:300px}.help-img-400{max-width:400px}.help-img-500{max-width:500px}.help-img-600{max-width:600px}.help-img-700{max-width:700px}.help-img-800{max-width:800px}.help-filter-box{background-color:#f9fbe7;border-radius:12px;padding:6px;display:inline-block;margin:0 0 8px 10px}.sidenav-help{width:320px}.tree-node-style:hover{background-color:#f8f8f8!important}::ng-deep .sidenav-help>.mat-drawer-inner-container{overflow-x:hidden!important}\n"] }]
648
- }], ctorParameters: () => [{ type: i1.MediaObserver }, { type: FolderTree }, { type: i2.DialogService }, { type: HelpService }, { type: i2$1.MatDialogRef }, { type: undefined, decorators: [{
649
- type: Inject,
650
- args: [MAT_DIALOG_DATA]
651
- }] }], propDecorators: { sidenav: [{
462
+ args: [{ host: { 'Bind': SystemUtils.generateUUID() }, changeDetection: ChangeDetectionStrategy.OnPush, providers: [IndexTreeDataSource], standalone: true, imports: [FlexModule, MatButtonModule, MatTooltipModule, MatIconModule, MatProgressBarModule, MatDialogContent,
463
+ NgStyle, ExtendedModule, MatSidenavModule, MatTreeModule, NgClass, SafeHtmlPipe], template: "<div class=\"help-viewer-fixed\">\r\n <div class=\"help-viewer-header\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"dialog-menu\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Mostra menu\" [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"toggleIndexPane()\" >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"100\" >\r\n <h2 class=\"mat-dialog-title truncated\">\r\n <div>Guida</div>\r\n </h2>\r\n </div>\r\n <div fxFlex=\"100px\" fxLayoutAlign=\"end\" class=\"dialog-close\">\r\n @if (canGoBack()) {\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:5px\">\r\n @if (busy()) {\r\n <mat-progress-bar z-index=\"11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n</div>\r\n<div mat-dialog-content [ngStyle]=\"{'min-height.px': height()}\" style=\"padding: 0 0 0 24px\">\r\n <mat-sidenav-container [ngStyle]=\"{'height.px': height()}\">\r\n <mat-sidenav #indexPane mode=\"side\" [autoFocus]=\"false\" class=\"helpbrowser-index \">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" class=\"scroll-hidden\">\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\" class=\"scroll-auto tree \"\r\n style=\"max-width:310px\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple tree-node-style\"\r\n (click)=\"getChapter(node.id);\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id}\" [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding [matTreeNodePaddingIndent]=\"20\"\r\n class=\"tree-node tree-node-simple tree-node-style\"\r\n [ngClass]=\"{'tree-node-activated': indexNode && indexNode.id === node.id }\"\r\n (click)=\"getChapter(node.id)\" [disabled]=\"busy()\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill class=\"small uppercase\">\r\n <button type=\"button\" fxFlexAlign=\"center\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'Apri/chiudi ' + node.name\" class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">{{node.name}}</div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n </mat-sidenav>\r\n <mat-sidenav-content id=\"help-page-container\">\r\n <div [ngStyle]=\"{'height.px': height() }\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div style=\"padding: 0 15px;\" (click)=\"gotoChapter($event)\" [innerHtml]=\"(page() ?? '') | safeHtml\"></div>\r\n </div>\r\n </div>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</div>", styles: [":root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #7894ae;--ars-color-accent-low: #456179;--ars-color-primary: #00a293;--ars-color-primary-low: #006a60;--ars-color-primary-hi: #12c0ae;--ars-color-secondary: #4a635f;--ars-color-secondary-low: #27403c;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #388E3C;--ars-color-ok-low: #29692c;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #eaecef;--ars-item-selected-background-color: #ced1d2;--ars-item-opaque-background-color: rgba(255, 255, 255, .75);--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.scroll-auto{overflow:auto}.scroll-hidden{overflow:hidden}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-color-link: #03A9F4;--ars-color-link-low: #0288D1;--ars-color-accent: #adcae6;--ars-color-accent-low: #5e7a93;--ars-color-primary: #53dbc9;--ars-color-primary-low: #008679;--ars-color-primary-hi: #74f8e5;--ars-color-secondary: #b1ccc6;--ars-color-secondary-low: #627c77;--ars-color-error: #ff5449;--ars-color-error-low: #a80710;--ars-color-ok: #4CAF50;--ars-color-ok-low: #3f8f41;--ars-color-warning: #FFC107;--ars-color-warning-low: #FFA000;--ars-item-hover-background-color: #262a29;--ars-item-selected-background-color: #3f4342;--ars-item-opaque-background-color: rgba(0, 0, 0, .65);--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}a.help-link,.help-link>a{text-decoration:none;color:#2a91e0}.help-title-2,.help-title-1{font-weight:600!important}.help-word-hit{font-size:inherit;background-color:#ff0;border:1px solid silver;padding:0 4px}.help-hint{margin:10px;padding:5px 20px;background-color:#fafad2;border-radius:12px}.help-summary{margin:10px;padding:5px 20px;background-color:#e6e6fa;border-radius:12px}.help-img{display:flex;align-items:center;justify-content:center;margin:10px}.help-img-200,.help-img-300,.help-img-400,.help-img-500,.help-img-700,.help-img-800{width:100%}.help-img-200{max-width:200px}.help-img-300{max-width:300px}.help-img-400{max-width:400px}.help-img-500{max-width:500px}.help-img-600{max-width:600px}.help-img-700{max-width:700px}.help-img-800{max-width:800px}.help-filter-box{background-color:#f9fbe7;border-radius:12px;padding:6px;display:inline-block;margin:0 0 8px 10px}.helpbrowser-index{width:320px}.helpbrowser-index>.mat-drawer-inner-container{overflow-x:hidden!important}.tree{overflow-x:hidden}.tree-node{min-height:36px!important;padding-right:12px;margin-right:0}.tree-node .small-icon-button{width:2rem!important;height:2rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.tree-node .small-icon-button .mat-mdc-button-touch-target{width:2rem!important;height:2rem!important}.tree-node:hover{cursor:pointer;background-color:var(--mat-menu-item-hover-state-layer-color, transparent);border-radius:24px}.tree-node-simple,.tree-node-simple>div{min-height:36px!important}.tree-node-activated,.tree-node-activated>div{min-height:36px!important;font-weight:700!important}\n"] }]
464
+ }], propDecorators: { indexPane: [{
652
465
  type: ViewChild,
653
- args: ['sidenav']
466
+ args: ['indexPane']
654
467
  }] } });
655
468
 
656
469
  class HelpService {
@@ -722,7 +535,7 @@ class HelpService {
722
535
  height: '99%'
723
536
  });
724
537
  }
725
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpService, deps: [{ token: i1$1.HttpClient }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
538
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpService, deps: [{ token: i1$1.HttpClient }, { token: i2$1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
726
539
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpService, providedIn: 'root' }); }
727
540
  }
728
541
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpService, decorators: [{
@@ -730,7 +543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
730
543
  args: [{
731
544
  providedIn: 'root'
732
545
  }]
733
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i2.DialogService }] });
546
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i2$1.DialogService }] });
734
547
 
735
548
  class ArsHelpModule {
736
549
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ArsHelpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -749,5 +562,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
749
562
  * Generated bundle index. Do not edit.
750
563
  */
751
564
 
752
- export { ArsHelpModule, FolderInfo, FolderNode, FolderTree, HelpService, HelpViewerComponent };
565
+ export { ArsHelpModule, HelpService, HelpViewerComponent, IndexInfo, IndexNode, IndexTreeDataSource };
753
566
  //# sourceMappingURL=arsedizioni-ars-utils-help.mjs.map