@arsedizioni/ars-utils 18.1.74 → 18.1.76

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 (113) hide show
  1. package/clipper.common/common/common.module.d.ts +1 -2
  2. package/clipper.common/common/definitions.d.ts +317 -0
  3. package/clipper.common/common/interceptors/auth.interceptor.d.ts +2 -5
  4. package/clipper.common/common/messages.d.ts +4 -0
  5. package/clipper.common/common/services/clipper.service.d.ts +12 -36
  6. package/clipper.ui/{ui/document/documents.d.ts → documents.d.ts} +2 -6
  7. package/clipper.ui/public_api.d.ts +6 -5
  8. package/clipper.ui/ui/browser-dialog/browser-dialog.component.d.ts +30 -143
  9. package/clipper.ui/ui/clipper.scss +270 -106
  10. package/clipper.ui/ui/document/document.component.d.ts +64 -118
  11. package/clipper.ui/ui/document-index/document-index.component.d.ts +34 -0
  12. package/clipper.ui/ui/document-manager/document-manager.d.ts +126 -0
  13. package/clipper.ui/ui/document-menu/document-menu.component.d.ts +28 -0
  14. package/clipper.ui/ui/references/references.component.d.ts +39 -73
  15. package/clipper.ui/ui/search-calendar/search-calendar.component.d.ts +40 -0
  16. package/clipper.ui/ui/search-dialog/search-dialog.component.d.ts +37 -40
  17. package/clipper.ui/ui/search-facets/search-facets.component.d.ts +22 -70
  18. package/clipper.ui/ui/search-free-text-help/search-free-text-help.component.d.ts +0 -1
  19. package/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.d.ts +8 -12
  20. package/clipper.ui/ui/search-result-item/search-result-item.component.d.ts +6 -4
  21. package/clipper.ui/ui/search-result-manager/search-result-manager.d.ts +147 -0
  22. package/esm2022/clipper.common/common/common.module.mjs +2 -3
  23. package/esm2022/clipper.common/common/definitions.mjs +1536 -0
  24. package/esm2022/clipper.common/common/interceptors/auth.interceptor.mjs +15 -15
  25. package/esm2022/clipper.common/common/messages.mjs +6 -1
  26. package/esm2022/clipper.common/common/services/clipper.service.mjs +65 -65
  27. package/esm2022/clipper.ui/documents.mjs +51 -0
  28. package/esm2022/clipper.ui/public_api.mjs +7 -6
  29. package/esm2022/clipper.ui/ui/browser-dialog/browser-dialog.component.mjs +320 -785
  30. package/esm2022/clipper.ui/ui/document/document.component.mjs +213 -320
  31. package/esm2022/clipper.ui/ui/document-index/document-index.component.mjs +121 -0
  32. package/esm2022/clipper.ui/ui/document-manager/document-manager.mjs +431 -0
  33. package/esm2022/clipper.ui/ui/document-menu/document-menu.component.mjs +56 -0
  34. package/esm2022/clipper.ui/ui/references/references.component.mjs +244 -438
  35. package/esm2022/clipper.ui/ui/search-calendar/search-calendar.component.mjs +116 -0
  36. package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +216 -205
  37. package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +157 -209
  38. package/esm2022/clipper.ui/ui/search-free-text-help/search-free-text-help.component.mjs +7 -8
  39. package/esm2022/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.mjs +22 -23
  40. package/esm2022/clipper.ui/ui/search-result-item/search-result-item.component.mjs +12 -10
  41. package/esm2022/clipper.ui/ui/search-result-manager/search-result-manager.mjs +462 -0
  42. package/esm2022/help/components/help-viewer/help-viewer.component.mjs +25 -28
  43. package/esm2022/support.common/common/definitions.mjs +21 -0
  44. package/esm2022/support.common/common/services/support.service.mjs +9 -7
  45. package/esm2022/support.common/public_api.mjs +2 -2
  46. package/esm2022/support.ui/ui/notifications-browser/notification/notification.component.mjs +3 -3
  47. package/esm2022/support.ui/ui/notifications-browser/notifications-browser.component.mjs +4 -5
  48. package/esm2022/ui/ui/dialogs/busy/busy-dialog.component.mjs +3 -3
  49. package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +3 -3
  50. package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +3 -3
  51. package/esm2022/ui/ui/dialogs/info/info-dialog.component.mjs +3 -3
  52. package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +3 -3
  53. package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +3 -3
  54. package/esm2022/ui.application/public_api.mjs +4 -1
  55. package/esm2022/ui.application/ui/components/button-selector/button-selector.component.mjs +163 -0
  56. package/esm2022/ui.application/ui/components/button-toggle/button-toggle.component.mjs +47 -0
  57. package/esm2022/ui.application/ui/components/chips-selector/chips-selector.component.mjs +239 -0
  58. package/esm2022/ui.application/ui/components/file-preview/file-preview.component.mjs +23 -24
  59. package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +3 -3
  60. package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +3 -3
  61. package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +3 -3
  62. package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +3 -3
  63. package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +3 -3
  64. package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +3 -3
  65. package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +3 -3
  66. package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +3 -3
  67. package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +3 -3
  68. package/esm2022/ui.application/ui/messages.mjs +3 -3
  69. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +1608 -1507
  70. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
  71. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +2283 -2407
  72. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  73. package/fesm2022/arsedizioni-ars-utils-help.mjs +25 -28
  74. package/fesm2022/arsedizioni-ars-utils-help.mjs.map +1 -1
  75. package/fesm2022/arsedizioni-ars-utils-support.common.mjs +8 -6
  76. package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
  77. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +5 -6
  78. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
  79. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +450 -47
  80. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
  81. package/fesm2022/arsedizioni-ars-utils-ui.mjs +12 -12
  82. package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
  83. package/help/components/help-viewer/help-viewer.component.d.ts +6 -10
  84. package/package.json +13 -13
  85. package/styles/ui.scss +140 -0
  86. package/support.common/common/services/support.service.d.ts +2 -2
  87. package/support.common/public_api.d.ts +1 -1
  88. package/ui.application/public_api.d.ts +3 -0
  89. package/ui.application/ui/components/button-selector/button-selector.component.d.ts +49 -0
  90. package/ui.application/ui/components/button-toggle/button-toggle.component.d.ts +26 -0
  91. package/ui.application/ui/components/chips-selector/chips-selector.component.d.ts +70 -0
  92. package/ui.application/ui/components/file-preview/file-preview.component.d.ts +4 -8
  93. package/ui.application/ui/messages.d.ts +2 -2
  94. package/clipper.common/common/clipper.d.ts +0 -119
  95. package/clipper.common/common/search.d.ts +0 -49
  96. package/clipper.ui/ui/document/base/document-base.component.d.ts +0 -38
  97. package/clipper.ui/ui/document/document-index/document-index.component.d.ts +0 -38
  98. package/clipper.ui/ui/document/document-menu/document-menu.component.d.ts +0 -30
  99. package/clipper.ui/ui/last-15-days/last-15-days.component.d.ts +0 -41
  100. package/esm2022/clipper.common/common/clipper.mjs +0 -1371
  101. package/esm2022/clipper.common/common/search.mjs +0 -69
  102. package/esm2022/clipper.ui/ui/document/base/document-base.component.mjs +0 -194
  103. package/esm2022/clipper.ui/ui/document/document-index/document-index.component.mjs +0 -121
  104. package/esm2022/clipper.ui/ui/document/document-menu/document-menu.component.mjs +0 -88
  105. package/esm2022/clipper.ui/ui/document/documents.mjs +0 -49
  106. package/esm2022/clipper.ui/ui/last-15-days/last-15-days.component.mjs +0 -107
  107. package/esm2022/help/components/help-search-query-builder/help-search-query-builder.component.mjs +0 -114
  108. package/esm2022/support.common/common/support.mjs +0 -21
  109. package/esm2022/ui.oauth/ui/components/login/loginOAuth.component.mjs +0 -198
  110. package/help/components/help-search-query-builder/help-search-query-builder.component.d.ts +0 -29
  111. package/help/help.scss +0 -72
  112. package/ui.oauth/ui/components/login/loginOAuth.component.d.ts +0 -38
  113. /package/support.common/common/{support.d.ts → definitions.d.ts} +0 -0
@@ -1,49 +0,0 @@
1
- import { ClipperDocumentComponent } from './document.component';
2
- export class ClipperDocumentsUtils {
3
- /**
4
- * Open a document
5
- * @param dialog : the dialog service
6
- * @param clipper : the clipper service
7
- * @param documentId : the document id
8
- * @param query : the query for highlight
9
- * @param selectionMode : the selection mode (1 = single, 2 = multiple, 3 = any selection)
10
- */
11
- static openDocument($dialog, $clipper, documentId, query = null, selectionMode = null) {
12
- if (!documentId) {
13
- $dialog.error("Documento non valido.");
14
- }
15
- if (!$clipper.loggedIn) {
16
- $dialog.error("Clipper non è disponibile in questo momento. Verifica la connessione.");
17
- return null;
18
- }
19
- return $dialog.open(ClipperDocumentComponent, {
20
- ariaLabel: 'documento',
21
- autoFocus: false,
22
- restoreFocus: false,
23
- disableClose: false,
24
- data: {
25
- id: documentId,
26
- query: query,
27
- selectionMode: selectionMode
28
- },
29
- panelClass: 'document-container',
30
- minWidth: '375px',
31
- maxWidth: '1400px',
32
- width: '99%',
33
- height: '99%'
34
- });
35
- }
36
- /**
37
- * Extract document title
38
- * @param title : the full document title
39
- */
40
- static parseDocumentTitle(title) {
41
- if (!title)
42
- return title;
43
- let p = title.indexOf('[');
44
- if (p !== -1)
45
- return title.substring(0, p);
46
- return title;
47
- }
48
- }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIudWkvdWkvZG9jdW1lbnQvZG9jdW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE1BQU0sT0FBTyxxQkFBcUI7SUFDbEM7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQ2YsT0FBc0IsRUFDdEIsUUFBd0IsRUFDeEIsVUFBa0IsRUFDbEIsUUFBZ0IsSUFBSSxFQUNwQixnQkFBd0IsSUFBSTtRQUM5QixJQUFJLENBQUMsVUFBVSxFQUFDLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUM1QyxTQUFTLEVBQUUsV0FBVztZQUN0QixTQUFTLEVBQUUsS0FBSztZQUNoQixZQUFZLEVBQUUsS0FBSztZQUNuQixZQUFZLEVBQUUsS0FBSztZQUNuQixJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osYUFBYSxFQUFFLGFBQWE7YUFDN0I7WUFDRCxVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy91aSc7XHJcbmltcG9ydCB7XHJcbiAgQ2xpcHBlclNlcnZpY2VcclxufSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NsaXBwZXIuY29tbW9uJztcclxuaW1wb3J0IHsgQ2xpcHBlckRvY3VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9kb2N1bWVudC5jb21wb25lbnQnO1xyXG5cclxuICBleHBvcnQgY2xhc3MgQ2xpcHBlckRvY3VtZW50c1V0aWxzIHtcclxuICAvKipcclxuICAgKiBPcGVuIGEgZG9jdW1lbnRcclxuICAgKiBAcGFyYW0gZGlhbG9nIDogdGhlIGRpYWxvZyBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGNsaXBwZXIgOiB0aGUgY2xpcHBlciBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWQgOiB0aGUgZG9jdW1lbnQgaWQgICBcclxuICAgKiBAcGFyYW0gcXVlcnkgOiB0aGUgcXVlcnkgZm9yIGhpZ2hsaWdodFxyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25Nb2RlIDogdGhlIHNlbGVjdGlvbiBtb2RlICgxID0gc2luZ2xlLCAyID0gbXVsdGlwbGUsIDMgPSBhbnkgc2VsZWN0aW9uKVxyXG4gICAqL1xyXG4gIHN0YXRpYyBvcGVuRG9jdW1lbnQoXHJcbiAgICAgICRkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICRjbGlwcGVyOiBDbGlwcGVyU2VydmljZSxcclxuICAgICAgZG9jdW1lbnRJZDogc3RyaW5nLCAgICAgXHJcbiAgICAgIHF1ZXJ5OiBzdHJpbmcgPSBudWxsLFxyXG4gICAgICBzZWxlY3Rpb25Nb2RlOiBudW1iZXIgPSBudWxsKTogTWF0RGlhbG9nUmVmPENsaXBwZXJEb2N1bWVudENvbXBvbmVudD4gIHtcclxuICAgIGlmICghZG9jdW1lbnRJZCl7XHJcbiAgICAgICRkaWFsb2cuZXJyb3IoXCJEb2N1bWVudG8gbm9uIHZhbGlkby5cIik7XHJcbiAgICB9XHJcbiAgICBpZiAoISRjbGlwcGVyLmxvZ2dlZEluKSB7XHJcbiAgICAgICRkaWFsb2cuZXJyb3IoXCJDbGlwcGVyIG5vbiDDqCBkaXNwb25pYmlsZSBpbiBxdWVzdG8gbW9tZW50by4gVmVyaWZpY2EgbGEgY29ubmVzc2lvbmUuXCIpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiAkZGlhbG9nLm9wZW4oQ2xpcHBlckRvY3VtZW50Q29tcG9uZW50LCB7XHJcbiAgICAgIGFyaWFMYWJlbDogJ2RvY3VtZW50bycsXHJcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogZmFsc2UsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpZDogZG9jdW1lbnRJZCxcclxuICAgICAgICBxdWVyeTogcXVlcnksXHJcbiAgICAgICAgc2VsZWN0aW9uTW9kZTogc2VsZWN0aW9uTW9kZVxyXG4gICAgICB9LFxyXG4gICAgICBwYW5lbENsYXNzOiAnZG9jdW1lbnQtY29udGFpbmVyJyxcclxuICAgICAgbWluV2lkdGg6ICczNzVweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnMTQwMHB4JyxcclxuICAgICAgd2lkdGg6ICc5OSUnLFxyXG4gICAgICBoZWlnaHQ6ICc5OSUnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4dHJhY3QgZG9jdW1lbnQgdGl0bGVcclxuICAgKiBAcGFyYW0gdGl0bGUgOiB0aGUgZnVsbCBkb2N1bWVudCB0aXRsZVxyXG4gICAqL1xyXG4gIHN0YXRpYyBwYXJzZURvY3VtZW50VGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aXRsZSkgcmV0dXJuIHRpdGxlO1xyXG4gICAgbGV0IHAgPSB0aXRsZS5pbmRleE9mKCdbJyk7XHJcbiAgICBpZiAocCAhPT0gLTEpIHJldHVybiB0aXRsZS5zdWJzdHJpbmcoMCwgcCk7XHJcbiAgICByZXR1cm4gdGl0bGU7XHJcbiAgfVxyXG5cclxufSJdfQ==
@@ -1,107 +0,0 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { MatAccordion, MatExpansionModule } from '@angular/material/expansion';
3
- import { Subject } from 'rxjs';
4
- import { ClipperDocumentBaseComponent } from '../document/base/document-base.component';
5
- import { ClipperDocumentsUtils } from '../document/documents';
6
- import { MatButtonModule } from '@angular/material/button';
7
- import { FlexModule } from '@ngbracket/ngx-layout/flex';
8
- import { MatTooltipModule } from '@angular/material/tooltip';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@arsedizioni/ars-utils/ui";
11
- import * as i2 from "@arsedizioni/ars-utils/clipper.common";
12
- import * as i3 from "@angular/material/tooltip";
13
- import * as i4 from "@ngbracket/ngx-layout/flex";
14
- import * as i5 from "@angular/material/button";
15
- import * as i6 from "@angular/material/expansion";
16
- export class ClipperLast15DaysComponent extends ClipperDocumentBaseComponent {
17
- constructor($dialog, $clipper) {
18
- super($dialog, $clipper);
19
- this.$dialog = $dialog;
20
- this.$clipper = $clipper;
21
- this.__d$ = new Subject();
22
- this.daysExpanded = 0;
23
- this.daysLoaded = false;
24
- this.showHeader = true;
25
- }
26
- ngOnInit() {
27
- if (this.$clipper.loggedIn) {
28
- this.fetch();
29
- }
30
- }
31
- ngOnDestroy() {
32
- this.__d$.next();
33
- this.__d$.complete();
34
- }
35
- /**
36
- * Open an item
37
- * @param documentId : the document id
38
- * @param newWindow: true if the document must be open into a new window
39
- */
40
- open(documentId, newWindow = false) {
41
- if (!newWindow)
42
- this.openDocument(documentId);
43
- else
44
- window.open('/documento/' + documentId, '_blank');
45
- }
46
- /**
47
- * Open a document
48
- * @param documentId : the document id
49
- */
50
- openDocument(documentId) {
51
- if (!documentId)
52
- return;
53
- ClipperDocumentsUtils.openDocument(this.$dialog, this.$clipper, documentId, null, null);
54
- }
55
- /**
56
- * Load home personalized contents
57
- */
58
- fetch() {
59
- if (!this.$clipper.loggedIn)
60
- return;
61
- if (this.daysLoaded || !this.$clipper.loggedIn)
62
- return;
63
- this.$dialog.busy('Preparazione contenuti personalizzati...');
64
- this.$clipper.home()
65
- .subscribe({
66
- next: (r) => {
67
- if (!r.success) {
68
- this.$dialog.error(r.message);
69
- }
70
- else {
71
- let days = [];
72
- r.value.items.forEach((n) => {
73
- if (n.items && n.items.length > 0)
74
- days.push(n);
75
- });
76
- this.days = days;
77
- this.daysLoaded = true;
78
- }
79
- },
80
- complete: () => {
81
- this.$dialog.clearBusy();
82
- }
83
- });
84
- }
85
- /**
86
- * Expand or collapse home days view
87
- * @param collapse
88
- */
89
- expand(collapse = false) {
90
- if (collapse)
91
- this.daysAccordion.closeAll();
92
- else
93
- this.daysAccordion.openAll();
94
- }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ClipperLast15DaysComponent, deps: [{ token: i1.DialogService }, { token: i2.ClipperService }], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: ClipperLast15DaysComponent, isStandalone: true, selector: "clipper-last-15-days", inputs: { showHeader: "showHeader" }, viewQueries: [{ propertyName: "daysAccordion", first: true, predicate: MatAccordion, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (showHeader) {\r\n<div class=\"dialog-title form-column\">\r\n <p>Ecco cosa \u00E8 successo negli ultimi 15 giorni in base alla tua configurazione.</p>\r\n <p>Per modificare la tua\r\n configurazione devi accedere a <a class=\"link\" href=\"https://clipper.arsedizioni.it\"\r\n matTooltip=\"Apri Clipper in un nuovo tab\" target=\"_blank\">Clipper</a>.</p>\r\n <div fxLayout=\"row\" fxLayoutGap='10px' fxFill>\r\n <div fxFlexAlign=\"center\">\r\n <button mat-button matTooltip=\"Espandi tutto\" [attr.aria-label]=\"'Espandi tutto \\ comprimi tutto'\" color=\"primary\"\r\n (click)=\"expand()\">\r\n Espandi tutto\r\n </button>\r\n <button mat-button matTooltip=\"Comprimi tutto\" [attr.aria-label]=\"'Comprimi tutto'\" color=\"primary\"\r\n (click)=\"expand(true)\">\r\n Comprimi tutto\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n<div>\r\n <mat-accordion #daysAccordion displayMode=\"flat\" multi=\"true\">\r\n @for (d of days; track d; let i = $index) {\r\n <mat-expansion-panel class=\"mat-elevation-z0\" [expanded]=\"i == 0\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span class=\"item-greyed-2\">{{d.label}} &nbsp;({{d.count}})</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n @for (g of d.items; track g; let j = $index) {\r\n <div style=\"padding-left: 15px;\">\r\n <div class=\"item-accent\" style=\"padding-top: 8px;\">{{g.label}} &nbsp;({{g.items.length}})</div>\r\n @for (item of g.items; track item; let k = $index) {\r\n <div style=\"padding-left: 15px;\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"30px\" fxFlexAlign=\"center\">{{k + 1}}.</div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n <div fxLayout=\"column\" fxFill class=\"item\" style=\"padding: 4px 8px; cursor: pointer\"\r\n [attr.aria-label]=\"'Apri documento'\" (click)=\"open(item.documentId)\">\r\n @if (item.author && item.origin === 'LR') {\r\n<div class=\"item-line item-line-3 item-line-read item-greyed-1 uppercase\"\r\n >\r\n {{item.author}}</div>\r\n}\r\n <div class=\"item-line item-line-2 item-line-read\">\r\n @if (item.title1) {\r\n<span><b>{{item.title1}}\r\n @if (item.part > 0) {\r\n<span class=\"item-badge\">PARTE\r\n {{item.part}}</span>\r\n}</b></span>\r\n}\r\n </div>\r\n @if (item.title2) {\r\n<div class=\"item-line item-line-2 item-line-read\">{{item.title2}}\r\n </div>\r\n}\r\n @if (item.originDescription ) {\r\n<div class=\"item-line item-line-3 item-line-read item-greyed-2\">\r\n {{item.originDescription}}\r\n </div>\r\n}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n </div>\r\n}\r\n </mat-expansion-panel>\r\n}\r\n </mat-accordion>\r\n</div>\r\n", 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}}.item{min-height:50px!important;border-bottom:1px dotted #eee!important;line-height:18px}.item:hover{background-color:#fff8e1}.item-cell{padding:5px 0}.item-line{padding-top:1px;padding-bottom:1px}.item-line .command a{text-decoration:none;color:#2a91e0;font-weight:500;cursor:pointer!important}.item-line .command a:hover{opacity:.7}.item-line>a{color:#2a91e0!important;opacity:1!important;cursor:pointer}.item-line>a:hover{opacity:.7!important}.item-line-1{font-weight:500;font-size:1em;color:#000}.item-line-2{font-size:.9em;color:#000}.item-line-3{font-size:.8em;color:#000}.item-line-4{font-size:.7em;color:#000}.item-line-block-title{font-size:.8em;font-weight:500}.item-line-block{margin-top:4px;margin-bottom:4px;margin-left:10px;padding-left:10px;border-left:2px solid #009688}.item-line-read{font-weight:400!important}.item-line-read .command,.item-line-read a{color:#2a91e0;cursor:pointer!important;opacity:1!important}.item-line-read .command:hover,.item-line-read a:hover{opacity:.7!important}.item-line-red-badge{background-color:red;color:#fff;padding:2px 4px;border-radius:3px;border:1px solid red}.items-group-title{line-height:24px;padding:20px 10px 10px 20px;font-weight:500;font-size:19.2px}.items-footer{padding-top:10px}.sidenav-title-container{min-height:64px!important;padding-left:15px;margin-bottom:4px}.sidenav-title{color:#009688;font-weight:500;font-size:19.2px}.item-greyed-1{color:#607d8b}.item-greyed-2{color:#90a4ae}.item-accent{color:#0d7066}.item-primary{color:#009688}.item-badge{margin-left:10px;margin-bottom:5px;padding:0 4px;height:12px;line-height:12px;border-radius:3px;font-size:x-small;font-weight:500;text-align:center;background-color:orange;color:#000}\n"], dependencies: [{ 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: FlexModule }, { kind: "directive", type: i4.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: i4.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: i4.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i4.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: i4.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: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i6.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i6.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i6.MatExpansionPanelTitle, selector: "mat-panel-title" }] }); }
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ClipperLast15DaysComponent, decorators: [{
99
- type: Component,
100
- args: [{ selector: 'clipper-last-15-days', standalone: true, imports: [MatTooltipModule, FlexModule, MatButtonModule, MatExpansionModule], template: "@if (showHeader) {\r\n<div class=\"dialog-title form-column\">\r\n <p>Ecco cosa \u00E8 successo negli ultimi 15 giorni in base alla tua configurazione.</p>\r\n <p>Per modificare la tua\r\n configurazione devi accedere a <a class=\"link\" href=\"https://clipper.arsedizioni.it\"\r\n matTooltip=\"Apri Clipper in un nuovo tab\" target=\"_blank\">Clipper</a>.</p>\r\n <div fxLayout=\"row\" fxLayoutGap='10px' fxFill>\r\n <div fxFlexAlign=\"center\">\r\n <button mat-button matTooltip=\"Espandi tutto\" [attr.aria-label]=\"'Espandi tutto \\ comprimi tutto'\" color=\"primary\"\r\n (click)=\"expand()\">\r\n Espandi tutto\r\n </button>\r\n <button mat-button matTooltip=\"Comprimi tutto\" [attr.aria-label]=\"'Comprimi tutto'\" color=\"primary\"\r\n (click)=\"expand(true)\">\r\n Comprimi tutto\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n<div>\r\n <mat-accordion #daysAccordion displayMode=\"flat\" multi=\"true\">\r\n @for (d of days; track d; let i = $index) {\r\n <mat-expansion-panel class=\"mat-elevation-z0\" [expanded]=\"i == 0\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span class=\"item-greyed-2\">{{d.label}} &nbsp;({{d.count}})</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n @for (g of d.items; track g; let j = $index) {\r\n <div style=\"padding-left: 15px;\">\r\n <div class=\"item-accent\" style=\"padding-top: 8px;\">{{g.label}} &nbsp;({{g.items.length}})</div>\r\n @for (item of g.items; track item; let k = $index) {\r\n <div style=\"padding-left: 15px;\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"30px\" fxFlexAlign=\"center\">{{k + 1}}.</div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n <div fxLayout=\"column\" fxFill class=\"item\" style=\"padding: 4px 8px; cursor: pointer\"\r\n [attr.aria-label]=\"'Apri documento'\" (click)=\"open(item.documentId)\">\r\n @if (item.author && item.origin === 'LR') {\r\n<div class=\"item-line item-line-3 item-line-read item-greyed-1 uppercase\"\r\n >\r\n {{item.author}}</div>\r\n}\r\n <div class=\"item-line item-line-2 item-line-read\">\r\n @if (item.title1) {\r\n<span><b>{{item.title1}}\r\n @if (item.part > 0) {\r\n<span class=\"item-badge\">PARTE\r\n {{item.part}}</span>\r\n}</b></span>\r\n}\r\n </div>\r\n @if (item.title2) {\r\n<div class=\"item-line item-line-2 item-line-read\">{{item.title2}}\r\n </div>\r\n}\r\n @if (item.originDescription ) {\r\n<div class=\"item-line item-line-3 item-line-read item-greyed-2\">\r\n {{item.originDescription}}\r\n </div>\r\n}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n </div>\r\n}\r\n </mat-expansion-panel>\r\n}\r\n </mat-accordion>\r\n</div>\r\n", 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}}.item{min-height:50px!important;border-bottom:1px dotted #eee!important;line-height:18px}.item:hover{background-color:#fff8e1}.item-cell{padding:5px 0}.item-line{padding-top:1px;padding-bottom:1px}.item-line .command a{text-decoration:none;color:#2a91e0;font-weight:500;cursor:pointer!important}.item-line .command a:hover{opacity:.7}.item-line>a{color:#2a91e0!important;opacity:1!important;cursor:pointer}.item-line>a:hover{opacity:.7!important}.item-line-1{font-weight:500;font-size:1em;color:#000}.item-line-2{font-size:.9em;color:#000}.item-line-3{font-size:.8em;color:#000}.item-line-4{font-size:.7em;color:#000}.item-line-block-title{font-size:.8em;font-weight:500}.item-line-block{margin-top:4px;margin-bottom:4px;margin-left:10px;padding-left:10px;border-left:2px solid #009688}.item-line-read{font-weight:400!important}.item-line-read .command,.item-line-read a{color:#2a91e0;cursor:pointer!important;opacity:1!important}.item-line-read .command:hover,.item-line-read a:hover{opacity:.7!important}.item-line-red-badge{background-color:red;color:#fff;padding:2px 4px;border-radius:3px;border:1px solid red}.items-group-title{line-height:24px;padding:20px 10px 10px 20px;font-weight:500;font-size:19.2px}.items-footer{padding-top:10px}.sidenav-title-container{min-height:64px!important;padding-left:15px;margin-bottom:4px}.sidenav-title{color:#009688;font-weight:500;font-size:19.2px}.item-greyed-1{color:#607d8b}.item-greyed-2{color:#90a4ae}.item-accent{color:#0d7066}.item-primary{color:#009688}.item-badge{margin-left:10px;margin-bottom:5px;padding:0 4px;height:12px;line-height:12px;border-radius:3px;font-size:x-small;font-weight:500;text-align:center;background-color:orange;color:#000}\n"] }]
101
- }], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.ClipperService }], propDecorators: { daysAccordion: [{
102
- type: ViewChild,
103
- args: [MatAccordion]
104
- }], showHeader: [{
105
- type: Input
106
- }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC0xNS1kYXlzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9jbGlwcGVyLnVpL3VpL2xhc3QtMTUtZGF5cy9sYXN0LTE1LWRheXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIudWkvdWkvbGFzdC0xNS1kYXlzL2xhc3QtMTUtZGF5cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBVTdELE1BQU0sT0FBTywwQkFDWCxTQUFRLDRCQUE0QjtJQWNwQyxZQUNTLE9BQXNCLEVBQ3RCLFFBQXdCO1FBRS9CLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFIbEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQVZ6QixTQUFJLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFHbEQsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZUFB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QUUsa0JBQWtCLENBQUM7K0dBTXRELGFBQWE7c0JBQXJDLFNBQVM7dUJBQUMsWUFBWTtnQkFTZCxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRBY2NvcmRpb24sIE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDbGlwcGVyU2VydmljZVxyXG59IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY2xpcHBlci5jb21tb24nO1xyXG5pbXBvcnQgeyBDbGlwcGVyRG9jdW1lbnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZG9jdW1lbnQvYmFzZS9kb2N1bWVudC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL3VpJztcclxuaW1wb3J0IHsgQ2xpcHBlckRvY3VtZW50c1V0aWxzIH0gZnJvbSAnLi4vZG9jdW1lbnQvZG9jdW1lbnRzJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dC9mbGV4JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbGlwcGVyLWxhc3QtMTUtZGF5cycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGFzdC0xNS1kYXlzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2xhc3QtMTUtZGF5cy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFsgTWF0VG9vbHRpcE1vZHVsZSwgRmxleE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRFeHBhbnNpb25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGlwcGVyTGFzdDE1RGF5c0NvbXBvbmVudFxyXG4gIGV4dGVuZHMgQ2xpcHBlckRvY3VtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKE1hdEFjY29yZGlvbikgZGF5c0FjY29yZGlvbiE6IE1hdEFjY29yZGlvbjtcclxuXHJcblxyXG4gIHByaXZhdGUgX19kJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGRheXM6IGFueTtcclxuICBkYXlzRXhwYW5kZWQ6IG51bWJlciA9IDA7XHJcbiAgZGF5c0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIEBJbnB1dCgpIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyAkZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHVibGljICRjbGlwcGVyOiBDbGlwcGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoJGRpYWxvZywgJGNsaXBwZXIpO1xyXG4gIH1cclxuXHJcbiBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICBpZiAodGhpcy4kY2xpcHBlci5sb2dnZWRJbikge1xyXG4gICAgdGhpcy5mZXRjaCgpO1xyXG4gIH1cclxuIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9fZCQubmV4dCgpO1xyXG4gICAgdGhpcy5fX2QkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGFuIGl0ZW1cclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZCA6IHRoZSBkb2N1bWVudCBpZFxyXG4gICAqIEBwYXJhbSBuZXdXaW5kb3c6IHRydWUgaWYgdGhlIGRvY3VtZW50IG11c3QgYmUgb3BlbiBpbnRvIGEgbmV3IHdpbmRvd1xyXG4gICAqL1xyXG4gIG9wZW4oZG9jdW1lbnRJZDogc3RyaW5nLCBuZXdXaW5kb3c6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgaWYgKCFuZXdXaW5kb3cpIHRoaXMub3BlbkRvY3VtZW50KGRvY3VtZW50SWQpO1xyXG4gICAgZWxzZSB3aW5kb3cub3BlbignL2RvY3VtZW50by8nICsgZG9jdW1lbnRJZCwgJ19ibGFuaycpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbiBhIGRvY3VtZW50XHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWQgOiB0aGUgZG9jdW1lbnQgaWRcclxuICAgKi9cclxuICBwcml2YXRlIG9wZW5Eb2N1bWVudChkb2N1bWVudElkOiBzdHJpbmcpIHtcclxuICAgIGlmICghZG9jdW1lbnRJZCkgcmV0dXJuO1xyXG4gICAgQ2xpcHBlckRvY3VtZW50c1V0aWxzLm9wZW5Eb2N1bWVudChcclxuICAgICAgdGhpcy4kZGlhbG9nLFxyXG4gICAgICB0aGlzLiRjbGlwcGVyLFxyXG4gICAgICBkb2N1bWVudElkLFxyXG4gICAgICBudWxsLFxyXG4gICAgICBudWxsKTsgICBcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBMb2FkIGhvbWUgcGVyc29uYWxpemVkIGNvbnRlbnRzXHJcbiAgICovXHJcbiAgZmV0Y2goKSB7XHJcbiAgICBpZiAoIXRoaXMuJGNsaXBwZXIubG9nZ2VkSW4pIHJldHVybjtcclxuICAgIGlmICh0aGlzLmRheXNMb2FkZWQgfHwgIXRoaXMuJGNsaXBwZXIubG9nZ2VkSW4pIHJldHVybjtcclxuICAgIHRoaXMuJGRpYWxvZy5idXN5KCdQcmVwYXJhemlvbmUgY29udGVudXRpIHBlcnNvbmFsaXp6YXRpLi4uJyk7XHJcbiAgICB0aGlzLiRjbGlwcGVyLmhvbWUoKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocjogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLiRkaWFsb2cuZXJyb3Ioci5tZXNzYWdlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBkYXlzOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgci52YWx1ZS5pdGVtcy5mb3JFYWNoKChuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAobi5pdGVtcyAmJiBuLml0ZW1zLmxlbmd0aCA+IDApIGRheXMucHVzaChuKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGF5cyA9IGRheXM7XHJcbiAgICAgICAgICAgIHRoaXMuZGF5c0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kZGlhbG9nLmNsZWFyQnVzeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHBhbmQgb3IgY29sbGFwc2UgaG9tZSBkYXlzIHZpZXdcclxuICAgKiBAcGFyYW0gY29sbGFwc2VcclxuICAgKi9cclxuICBleHBhbmQoY29sbGFwc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgaWYgKGNvbGxhcHNlKSB0aGlzLmRheXNBY2NvcmRpb24uY2xvc2VBbGwoKTtcclxuICAgIGVsc2UgdGhpcy5kYXlzQWNjb3JkaW9uLm9wZW5BbGwoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCJAaWYgKHNob3dIZWFkZXIpIHtcclxuPGRpdiBjbGFzcz1cImRpYWxvZy10aXRsZSBmb3JtLWNvbHVtblwiPlxyXG4gIDxwPkVjY28gY29zYSDDqCBzdWNjZXNzbyBuZWdsaSB1bHRpbWkgMTUgZ2lvcm5pIGluIGJhc2UgYWxsYSB0dWEgY29uZmlndXJhemlvbmUuPC9wPlxyXG4gIDxwPlBlciBtb2RpZmljYXJlIGxhIHR1YVxyXG4gICAgY29uZmlndXJhemlvbmUgZGV2aSBhY2NlZGVyZSBhIDxhIGNsYXNzPVwibGlua1wiIGhyZWY9XCJodHRwczovL2NsaXBwZXIuYXJzZWRpemlvbmkuaXRcIlxyXG4gICAgICBtYXRUb29sdGlwPVwiQXByaSBDbGlwcGVyIGluIHVuIG51b3ZvIHRhYlwiIHRhcmdldD1cIl9ibGFua1wiPkNsaXBwZXI8L2E+LjwvcD5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9JzEwcHgnIGZ4RmlsbD5cclxuICAgIDxkaXYgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdFRvb2x0aXA9XCJFc3BhbmRpIHR1dHRvXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInRXNwYW5kaSB0dXR0byBcXCBjb21wcmltaSB0dXR0bydcIiBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgIChjbGljayk9XCJleHBhbmQoKVwiPlxyXG4gICAgICAgIEVzcGFuZGkgdHV0dG9cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXRUb29sdGlwPVwiQ29tcHJpbWkgdHV0dG9cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidDb21wcmltaSB0dXR0bydcIiBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgIChjbGljayk9XCJleHBhbmQodHJ1ZSlcIj5cclxuICAgICAgICBDb21wcmltaSB0dXR0b1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxufVxyXG48ZGl2PlxyXG4gIDxtYXQtYWNjb3JkaW9uICNkYXlzQWNjb3JkaW9uIGRpc3BsYXlNb2RlPVwiZmxhdFwiIG11bHRpPVwidHJ1ZVwiPlxyXG4gICAgQGZvciAoZCBvZiBkYXlzOyB0cmFjayBkOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MFwiIFtleHBhbmRlZF09XCJpID09IDBcIj5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tZ3JleWVkLTJcIj57e2QubGFiZWx9fSAmbmJzcDsoe3tkLmNvdW50fX0pPC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICBAZm9yIChnIG9mIGQuaXRlbXM7IHRyYWNrIGc7IGxldCBqID0gJGluZGV4KSB7XHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1hY2NlbnRcIiBzdHlsZT1cInBhZGRpbmctdG9wOiA4cHg7XCI+e3tnLmxhYmVsfX0gJm5ic3A7KHt7Zy5pdGVtcy5sZW5ndGh9fSk8L2Rpdj5cclxuICAgICAgICBAZm9yIChpdGVtIG9mIGcuaXRlbXM7IHRyYWNrIGl0ZW07IGxldCBrID0gJGluZGV4KSB7XHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDtcIj5cclxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMzBweFwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+e3trICsgMX19LjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjEwMFwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbCBjbGFzcz1cIml0ZW1cIiBzdHlsZT1cInBhZGRpbmc6IDRweCA4cHg7IGN1cnNvcjogcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHJpIGRvY3VtZW50bydcIiAoY2xpY2spPVwib3BlbihpdGVtLmRvY3VtZW50SWQpXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uYXV0aG9yICYmIGl0ZW0ub3JpZ2luID09PSAnTFInKSB7XHJcbjxkaXYgY2xhc3M9XCJpdGVtLWxpbmUgaXRlbS1saW5lLTMgaXRlbS1saW5lLXJlYWQgaXRlbS1ncmV5ZWQtMSB1cHBlcmNhc2VcIlxyXG4gICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3tpdGVtLmF1dGhvcn19PC9kaXY+XHJcbn1cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWxpbmUgaXRlbS1saW5lLTIgaXRlbS1saW5lLXJlYWRcIj5cclxuICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnRpdGxlMSkge1xyXG48c3Bhbj48Yj57e2l0ZW0udGl0bGUxfX1cclxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5wYXJ0ID4gMCkge1xyXG48c3BhbiBjbGFzcz1cIml0ZW0tYmFkZ2VcIj5QQVJURVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ucGFydH19PC9zcGFuPlxyXG59PC9iPjwvc3Bhbj5cclxufVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUyKSB7XHJcbjxkaXYgY2xhc3M9XCJpdGVtLWxpbmUgaXRlbS1saW5lLTIgaXRlbS1saW5lLXJlYWRcIj57e2l0ZW0udGl0bGUyfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG59XHJcbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0ub3JpZ2luRGVzY3JpcHRpb24gICkge1xyXG48ZGl2IGNsYXNzPVwiaXRlbS1saW5lIGl0ZW0tbGluZS0zIGl0ZW0tbGluZS1yZWFkIGl0ZW0tZ3JleWVkLTJcIj5cclxuICAgICAgICAgICAgICAgICAge3tpdGVtLm9yaWdpbkRlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG59XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbn1cclxuICAgICAgPC9kaXY+XHJcbn1cclxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxufVxyXG4gIDwvbWF0LWFjY29yZGlvbj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,114 +0,0 @@
1
- import { Component, Output, EventEmitter } from '@angular/core';
2
- import { MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogClose } from '@angular/material/dialog';
3
- import { SystemUtils } from '@arsedizioni/ars-utils/core';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MatButtonModule } from '@angular/material/button';
6
- import { MatInputModule } from '@angular/material/input';
7
- import { MatFormFieldModule } from '@angular/material/form-field';
8
- import { FlexModule } from '@ngbracket/ngx-layout/flex';
9
- import { FormsModule } from '@angular/forms';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@arsedizioni/ars-utils/ui";
12
- import * as i2 from "@angular/material/dialog";
13
- import * as i3 from "@angular/forms";
14
- import * as i4 from "@ngbracket/ngx-layout/flex";
15
- import * as i5 from "@angular/material/form-field";
16
- import * as i6 from "@angular/material/input";
17
- import * as i7 from "@angular/material/button";
18
- import * as i8 from "@angular/material/icon";
19
- export class HelpSearchQueryBuilderComponent {
20
- constructor($dialog, dialog) {
21
- this.$dialog = $dialog;
22
- this.dialog = dialog;
23
- this.done = new EventEmitter();
24
- this.queryAnd = '';
25
- this.queryOr = '';
26
- this.queryNot = '';
27
- this.queryPhrase = '';
28
- this.queryStart = '';
29
- }
30
- ngOnInit() { }
31
- /**
32
- * Clear
33
- */
34
- clear() {
35
- this.queryAnd = null;
36
- this.queryOr = null;
37
- this.queryNot = null;
38
- this.queryPhrase = null;
39
- this.queryStart = null;
40
- }
41
- /**
42
- * Submit search
43
- */
44
- ok() {
45
- let query = '';
46
- // Phrase
47
- if (this.queryPhrase.length > 0) {
48
- if (query.length > 0)
49
- query += ' ';
50
- query += '+"';
51
- query += this.queryPhrase.replace('"', '').trim();
52
- query += '"';
53
- query += ' ';
54
- }
55
- // And
56
- if (this.queryAnd.length > 0) {
57
- let parts = this.queryAnd.split(',');
58
- for (let i = 0; i < parts.length; i++) {
59
- if (query.length > 0)
60
- query += ' ';
61
- query += '+';
62
- query += parts[i].replace('"', '').trim();
63
- }
64
- query += ' ';
65
- }
66
- // Or
67
- if (this.queryOr.length > 0) {
68
- let parts = this.queryOr.split(',');
69
- for (let i = 0; i < parts.length; i++) {
70
- if (query.length > 0)
71
- query += ' ';
72
- query += parts[i].replace('"', '').trim();
73
- }
74
- query += ' ';
75
- }
76
- // Start with
77
- if (this.queryStart.length > 0) {
78
- if (query.length > 0)
79
- query += ' ';
80
- query += '+';
81
- query += this.queryStart.replace('"', '').trim();
82
- query += '*';
83
- query += ' ';
84
- }
85
- // Not
86
- if (this.queryNot.length > 0) {
87
- if (query.length === 0) {
88
- // Invalid query
89
- this.$dialog.error("L'operatore di esclusione funziona solo se prima è stato inserito un valore in almeno uno degli altri quattro campi.");
90
- return;
91
- }
92
- let parts = this.queryNot.split(',');
93
- for (let i = 0; i < parts.length; i++) {
94
- if (query.length > 0)
95
- query += ' ';
96
- query += '-';
97
- query += parts[i].replace('"', '').trim();
98
- }
99
- query += ' ';
100
- }
101
- // Notify
102
- if (query.length > 0)
103
- this.done.emit({ query: query });
104
- }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpSearchQueryBuilderComponent, deps: [{ token: i1.DialogService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
106
- 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: i4.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: i4.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: i4.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: i4.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i4.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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.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"] }] }); }
107
- }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HelpSearchQueryBuilderComponent, decorators: [{
109
- type: Component,
110
- 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>" }]
111
- }], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.MatDialog }], propDecorators: { done: [{
112
- type: Output
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC1zZWFyY2gtcXVlcnktYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvaGVscC9jb21wb25lbnRzL2hlbHAtc2VhcmNoLXF1ZXJ5LWJ1aWxkZXIvaGVscC1zZWFyY2gtcXVlcnktYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvaGVscC9jb21wb25lbnRzL2hlbHAtc2VhcmNoLXF1ZXJ5LWJ1aWxkZXIvaGVscC1zZWFyY2gtcXVlcnktYnVpbGRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFhLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQWM3QyxNQUFNLE9BQU8sK0JBQStCO0lBUzFDLFlBQW9CLE9BQXNCLEVBQVMsTUFBaUI7UUFBaEQsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUFTLFdBQU0sR0FBTixNQUFN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QW9FTSwwREQvQ1EsY0FBYywrSEFBRSxnQkFBZ0Isd0dBQUUsV0FBVywwc0NBQUUsVUFBVSx1NkVBQUUsa0JBQWtCLG1nQkFBRSxjQUFjLDBXQUFHLGVBQWUsZ1ZBQUUsYUFBYSxvTEFBRSxnQkFBZ0IsNEhBQUUsY0FBYzs7MkZBRWpLLCtCQUErQjtrQkFQM0MsU0FBUzsyQkFDQSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsY0FHaEMsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFHLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDOzBHQUduSyxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dUaXRsZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy91aSc7XHJcbmltcG9ydCB7IFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQvZmxleCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWxwUXVlcnlQYXJhbXMge1xyXG4gIHF1ZXJ5OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hlbHAtc2VhcmNoLXF1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vaGVscC1zZWFyY2gtcXVlcnktYnVpbGRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXREaWFsb2dUaXRsZSwgTWF0RGlhbG9nQ29udGVudCwgRm9ybXNNb2R1bGUsIEZsZXhNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsICBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVscFNlYXJjaFF1ZXJ5QnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpIGRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPEhlbHBRdWVyeVBhcmFtcz4oKTtcclxuXHJcbiAgcXVlcnlBbmQ6IHN0cmluZyA9ICcnO1xyXG4gIHF1ZXJ5T3I6IHN0cmluZyA9ICcnO1xyXG4gIHF1ZXJ5Tm90OiBzdHJpbmcgPSAnJztcclxuICBxdWVyeVBocmFzZTogc3RyaW5nID0gJyc7XHJcbiAgcXVlcnlTdGFydDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgJGRpYWxvZzogRGlhbG9nU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyXHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnF1ZXJ5QW5kID0gbnVsbDtcclxuICAgIHRoaXMucXVlcnlPciA9IG51bGw7XHJcbiAgICB0aGlzLnF1ZXJ5Tm90ID0gbnVsbDtcclxuICAgIHRoaXMucXVlcnlQaHJhc2UgPSBudWxsO1xyXG4gICAgdGhpcy5xdWVyeVN0YXJ0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1Ym1pdCBzZWFyY2hcclxuICAgKi9cclxuICBvaygpIHtcclxuICAgIGxldCBxdWVyeSA9ICcnO1xyXG4gICAgLy8gUGhyYXNlXHJcbiAgICBpZiAodGhpcy5xdWVyeVBocmFzZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChxdWVyeS5sZW5ndGggPiAwKSBxdWVyeSArPSAnICc7XHJcbiAgICAgIHF1ZXJ5ICs9ICcrXCInO1xyXG4gICAgICBxdWVyeSArPSB0aGlzLnF1ZXJ5UGhyYXNlLnJlcGxhY2UoJ1wiJywgJycpLnRyaW0oKTtcclxuICAgICAgcXVlcnkgKz0gJ1wiJztcclxuICAgICAgcXVlcnkgKz0gJyAnO1xyXG4gICAgfVxyXG4gICAgLy8gQW5kXHJcbiAgICBpZiAodGhpcy5xdWVyeUFuZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBwYXJ0cyA9IHRoaXMucXVlcnlBbmQuc3BsaXQoJywnKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChxdWVyeS5sZW5ndGggPiAwKSBxdWVyeSArPSAnICc7XHJcbiAgICAgICAgcXVlcnkgKz0gJysnO1xyXG4gICAgICAgIHF1ZXJ5ICs9IHBhcnRzW2ldLnJlcGxhY2UoJ1wiJywgJycpLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBxdWVyeSArPSAnICc7XHJcbiAgICB9XHJcbiAgICAvLyBPclxyXG4gICAgaWYgKHRoaXMucXVlcnlPci5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBwYXJ0cyA9IHRoaXMucXVlcnlPci5zcGxpdCgnLCcpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHF1ZXJ5Lmxlbmd0aCA+IDApIHF1ZXJ5ICs9ICcgJztcclxuICAgICAgICBxdWVyeSArPSBwYXJ0c1tpXS5yZXBsYWNlKCdcIicsICcnKS50cmltKCk7XHJcbiAgICAgIH1cclxuICAgICAgcXVlcnkgKz0gJyAnO1xyXG4gICAgfVxyXG4gICAgLy8gU3RhcnQgd2l0aFxyXG4gICAgaWYgKHRoaXMucXVlcnlTdGFydC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChxdWVyeS5sZW5ndGggPiAwKSBxdWVyeSArPSAnICc7XHJcbiAgICAgIHF1ZXJ5ICs9ICcrJztcclxuICAgICAgcXVlcnkgKz0gdGhpcy5xdWVyeVN0YXJ0LnJlcGxhY2UoJ1wiJywgJycpLnRyaW0oKTtcclxuICAgICAgcXVlcnkgKz0gJyonO1xyXG4gICAgICBxdWVyeSArPSAnICc7XHJcbiAgICB9XHJcbiAgICAvLyBOb3RcclxuICAgIGlmICh0aGlzLnF1ZXJ5Tm90Lmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHF1ZXJ5Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIC8vIEludmFsaWQgcXVlcnlcclxuICAgICAgICB0aGlzLiRkaWFsb2cuZXJyb3IoXHJcbiAgICAgICAgICBcIkwnb3BlcmF0b3JlIGRpIGVzY2x1c2lvbmUgZnVuemlvbmEgc29sbyBzZSBwcmltYSDDqCBzdGF0byBpbnNlcml0byB1biB2YWxvcmUgaW4gYWxtZW5vIHVubyBkZWdsaSBhbHRyaSBxdWF0dHJvIGNhbXBpLlwiXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHBhcnRzID0gdGhpcy5xdWVyeU5vdC5zcGxpdCgnLCcpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHF1ZXJ5Lmxlbmd0aCA+IDApIHF1ZXJ5ICs9ICcgJztcclxuICAgICAgICBxdWVyeSArPSAnLSc7XHJcbiAgICAgICAgcXVlcnkgKz0gcGFydHNbaV0ucmVwbGFjZSgnXCInLCAnJykudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHF1ZXJ5ICs9ICcgJztcclxuICAgIH1cclxuXHJcbiAgICAvLyBOb3RpZnlcclxuICAgIGlmIChxdWVyeS5sZW5ndGggPiAwKSB0aGlzLmRvbmUuZW1pdCh7IHF1ZXJ5OiBxdWVyeSB9KTtcclxuICB9XHJcbn1cclxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+VHJvdmEgZ2xpIGVsZW1lbnRpIGNoZSBjb250ZW5nb25vLi4uPC9oMj5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGZvcm0gbmFtZT1cImZvcm1cIiAjZj1cIm5nRm9ybVwiIChrZXl1cC5FbnRlcik9XCIhZi5mb3JtLmludmFsaWQgPyBvaygpIDogbnVsbFwiIG5vdmFsaWRhdGU+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPlF1ZXN0YSBlc2F0dGEgcGFyb2xhIG8gZnJhc2U8L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cInF1ZXJ5UGhyYXNlXCIgWyhuZ01vZGVsKV09XCJxdWVyeVBocmFzZVwiIG1heGxlbmd0aD1cIjIwMFwiIC8+XHJcbiAgICAgICAgQGlmIChxdWVyeVBocmFzZSkge1xyXG48YSAgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQXp6ZXJhXCJcclxuICAgICAgICAgIChjbGljayk9XCJxdWVyeVBocmFzZT0nJ1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2E+XHJcbn1cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+VHV0dGUgcXVlc3RlIHBhcm9sZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwicXVlcnlBbmRcIiBbKG5nTW9kZWwpXT1cInF1ZXJ5QW5kXCIgbWF4bGVuZ3RoPVwiMjAwXCIgLz5cclxuICAgICAgICBAaWYgKHF1ZXJ5QW5kKSB7XHJcbjxhICBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJBenplcmFcIiAoY2xpY2spPVwicXVlcnlBbmQ9JydcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9hPlxyXG59XHJcbiAgICAgICAgPG1hdC1oaW50PlNlcGFyYXRlIGRhIHZpcmdvbGE8L21hdC1oaW50PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD5VbmEgcXVhbHVucXVlIGRpIHF1ZXN0ZSBwYXJvbGU8L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cInF1ZXJ5T3JcIiBbKG5nTW9kZWwpXT1cInF1ZXJ5T3JcIiBtYXhsZW5ndGg9XCIyMDBcIiAvPlxyXG4gICAgICAgIEBpZiAocXVlcnlPcikge1xyXG48YSAgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQXp6ZXJhXCIgKGNsaWNrKT1cInF1ZXJ5T3I9JydcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9hPlxyXG59XHJcbiAgICAgICAgPG1hdC1oaW50PlNlcGFyYXRlIGRhIHZpcmdvbGE8L21hdC1oaW50PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD5QYXJvbGUgY2hlIGluaXppYW5vIGNvbjwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwicXVlcnlTdGFydFwiIFsobmdNb2RlbCldPVwicXVlcnlTdGFydFwiIG1heGxlbmd0aD1cIjIwMFwiIC8+XHJcbiAgICAgICAgQGlmIChxdWVyeVN0YXJ0KSB7XHJcbjxhICBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJBenplcmFcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInF1ZXJ5U3RhcnQ9JydcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9hPlxyXG59XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPk5lc3N1bmEgcXVhbHVucXVlIGRpIHF1ZXN0ZSBwYXJvbGU8L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cInF1ZXJ5Tm90XCIgWyhuZ01vZGVsKV09XCJxdWVyeU5vdFwiIG1heGxlbmd0aD1cIjIwMFwiIC8+XHJcbiAgICAgICAgQGlmIChxdWVyeU5vdCkge1xyXG48YSAgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQXp6ZXJhXCIgKGNsaWNrKT1cInF1ZXJ5Tm90PScnXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYT5cclxufVxyXG4gICAgICAgIDxtYXQtaGludD5TZXBhcmF0ZSBkYSB2aXJnb2xhLiBMJ29wZXJhdG9yZSBkaSBlc2NsdXNpb25lIGZ1bnppb25hIHNvbG8gc2UgcHJpbWEgw6ggc3RhdG8gaW5zZXJpdG8gdW4gdmFsb3JlIGluXHJcbiAgICAgICAgICBhbG1lbm8gdW5vIGRlZ2xpIGFsdHJpIHF1YXR0cm8gY2FtcGkuIDwvbWF0LWhpbnQ+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsPlxyXG4gICAgPGRpdiBmeEZsZXg9XCIzMFwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydFwiPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIChjbGljayk9XCJjbGVhcigpXCIgY29sb3I9XCJwcmltYXJ5XCI+UFVMSVNDSTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4RmxleD1cIjcwXCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib2soKVwiPk9LPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ0cnVlXCIgY29sb3I9XCJwcmltYXJ5XCI+Q0hJVURJPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,21 +0,0 @@
1
- export var SupportProduct;
2
- (function (SupportProduct) {
3
- SupportProduct[SupportProduct["Clipper"] = 1] = "Clipper";
4
- SupportProduct[SupportProduct["Evolution"] = 2] = "Evolution";
5
- SupportProduct[SupportProduct["DGInfo"] = 4] = "DGInfo";
6
- })(SupportProduct || (SupportProduct = {}));
7
- export var SupportProductModule;
8
- (function (SupportProductModule) {
9
- SupportProductModule[SupportProductModule["EvoFormazione"] = 1] = "EvoFormazione";
10
- SupportProductModule[SupportProductModule["EvoDPI"] = 2] = "EvoDPI";
11
- SupportProductModule[SupportProductModule["EvoSorveglianzaSanitaria"] = 4] = "EvoSorveglianzaSanitaria";
12
- SupportProductModule[SupportProductModule["EvoRegistroEScadenzario"] = 8] = "EvoRegistroEScadenzario";
13
- SupportProductModule[SupportProductModule["EvoAttrezzatureEImpianti"] = 16] = "EvoAttrezzatureEImpianti";
14
- SupportProductModule[SupportProductModule["EvoMonitoraggio"] = 32] = "EvoMonitoraggio";
15
- SupportProductModule[SupportProductModule["EvoBollettino"] = 64] = "EvoBollettino";
16
- SupportProductModule[SupportProductModule["DgiADR"] = 128] = "DgiADR";
17
- SupportProductModule[SupportProductModule["DgiRID"] = 256] = "DgiRID";
18
- SupportProductModule[SupportProductModule["DgiIMDG"] = 512] = "DgiIMDG";
19
- SupportProductModule[SupportProductModule["DgiCLP"] = 1024] = "DgiCLP";
20
- })(SupportProductModule || (SupportProductModule = {}));
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LmNvbW1vbi9jb21tb24vc3VwcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLHlEQUFXLENBQUE7SUFDWCw2REFBa0IsQ0FBQTtJQUNsQix1REFBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQVlYO0FBWkQsV0FBWSxvQkFBb0I7SUFDOUIsaUZBQWlCLENBQUE7SUFDakIsbUVBQWUsQ0FBQTtJQUNmLHVHQUFpQyxDQUFBO0lBQ2pDLHFHQUFnQyxDQUFBO0lBQ2hDLHdHQUFpQyxDQUFBO0lBQ2pDLHNGQUF3QixDQUFBO0lBQ3hCLGtGQUFzQixDQUFBO0lBQ3RCLHFFQUFlLENBQUE7SUFDZixxRUFBZSxDQUFBO0lBQ2YsdUVBQWdCLENBQUE7SUFDaEIsc0VBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQVpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFZL0IiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0Tm90aWZpY2F0aW9uc1NlYXJjaFBhcmFtcyB7XHJcbiAgYW55Pzogc3RyaW5nIHwgbnVsbDtcclxuICBwcm9kdWN0cz86IG51bWJlciB8IG51bGw7XHJcbiAgcHJvZHVjdE1vZHVsZXM/OiBudW1iZXIgfCBudWxsO1xyXG4gIGZpcnN0PzogbnVtYmVyIHwgbnVsbDtcclxuICBjb3VudD86IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydE5vdGlmaWNhdGlvbnNJbmZvIHtcclxuICB1bnJlYWQ/OiBudW1iZXIgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdXBwb3J0UHJvZHVjdCB7XHJcbiAgQ2xpcHBlciA9IDEsXHJcbiAgRXZvbHV0aW9uID0gMSA8PCAxLFxyXG4gIERHSW5mbyA9IDEgPDwgMlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdXBwb3J0UHJvZHVjdE1vZHVsZSB7XHJcbiAgRXZvRm9ybWF6aW9uZSA9IDEsXHJcbiAgRXZvRFBJID0gMSA8PCAxLFxyXG4gIEV2b1NvcnZlZ2xpYW56YVNhbml0YXJpYSA9IDEgPDwgMixcclxuICBFdm9SZWdpc3Ryb0VTY2FkZW56YXJpbyA9IDEgPDwgMyxcclxuICBFdm9BdHRyZXp6YXR1cmVFSW1waWFudGkgPSAxIDw8IDQsXHJcbiAgRXZvTW9uaXRvcmFnZ2lvID0gMSA8PCA1LFxyXG4gIEV2b0JvbGxldHRpbm8gPSAxIDw8IDYsXHJcbiAgRGdpQURSID0gMSA8PCA3LFxyXG4gIERnaVJJRCA9IDEgPDwgOCxcclxuICBEZ2lJTURHID0gMSA8PCA5LFxyXG4gIERnaUNMUCA9IDEgPDwgMTAsXHJcbn1cclxuIl19