@esfaenza/core 15.2.41 → 15.2.42-beta2

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 (162) hide show
  1. package/assets/fontawesome/css/all.css +27093 -0
  2. package/assets/fontawesome/css/all.min.css +9 -0
  3. package/assets/fontawesome/css/brands.css +1522 -0
  4. package/assets/fontawesome/css/brands.min.css +6 -0
  5. package/assets/fontawesome/css/duotone.css +12491 -0
  6. package/assets/fontawesome/css/duotone.min.css +6 -0
  7. package/assets/fontawesome/css/fontawesome.css +12984 -0
  8. package/assets/fontawesome/css/fontawesome.min.css +9 -0
  9. package/assets/fontawesome/css/light.css +19 -0
  10. package/assets/fontawesome/css/light.min.css +6 -0
  11. package/assets/fontawesome/css/regular.css +19 -0
  12. package/assets/fontawesome/css/regular.min.css +6 -0
  13. package/assets/fontawesome/css/sharp-regular.css +19 -0
  14. package/assets/fontawesome/css/sharp-regular.min.css +6 -0
  15. package/assets/fontawesome/css/sharp-solid.css +19 -0
  16. package/assets/fontawesome/css/sharp-solid.min.css +6 -0
  17. package/assets/fontawesome/css/solid.css +19 -0
  18. package/assets/fontawesome/css/solid.min.css +6 -0
  19. package/assets/fontawesome/css/svg-with-js.css +638 -0
  20. package/assets/fontawesome/css/svg-with-js.min.css +6 -0
  21. package/assets/fontawesome/css/thin.css +19 -0
  22. package/assets/fontawesome/css/thin.min.css +6 -0
  23. package/assets/fontawesome/css/v4-font-face.css +26 -0
  24. package/assets/fontawesome/css/v4-font-face.min.css +6 -0
  25. package/assets/fontawesome/css/v4-shims.css +2194 -0
  26. package/assets/fontawesome/css/v4-shims.min.css +6 -0
  27. package/assets/fontawesome/css/v5-font-face.css +34 -0
  28. package/assets/fontawesome/css/v5-font-face.min.css +6 -0
  29. package/assets/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  30. package/assets/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  31. package/assets/fontawesome/webfonts/fa-duotone-900.ttf +0 -0
  32. package/assets/fontawesome/webfonts/fa-duotone-900.woff2 +0 -0
  33. package/assets/fontawesome/webfonts/fa-light-300.ttf +0 -0
  34. package/assets/fontawesome/webfonts/fa-light-300.woff2 +0 -0
  35. package/assets/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  36. package/assets/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  37. package/assets/fontawesome/webfonts/fa-sharp-regular-400.ttf +0 -0
  38. package/assets/fontawesome/webfonts/fa-sharp-regular-400.woff2 +0 -0
  39. package/assets/fontawesome/webfonts/fa-sharp-solid-900.ttf +0 -0
  40. package/assets/fontawesome/webfonts/fa-sharp-solid-900.woff2 +0 -0
  41. package/assets/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  42. package/assets/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  43. package/assets/fontawesome/webfonts/fa-thin-100.ttf +0 -0
  44. package/assets/fontawesome/webfonts/fa-thin-100.woff2 +0 -0
  45. package/assets/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
  46. package/assets/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  47. package/components/components.module.d.ts +22 -16
  48. package/components/page-structure/breadcrumb/breadcrumb.component.d.ts +23 -0
  49. package/components/{navbar → page-structure/navbar}/navbar.component.d.ts +6 -16
  50. package/components/{sidebar → page-structure/sidebar}/sidebar.component.d.ts +32 -5
  51. package/components/public-api.d.ts +20 -15
  52. package/components/search/es-filters/es-filters.component.d.ts +27 -0
  53. package/components/search/es-filters/es-filters.service.d.ts +6 -0
  54. package/components/search/filters-sidebar/filters-sidebar.component.d.ts +20 -0
  55. package/components/search/filters-sidebar-item/filters-sidebar-item.component.d.ts +16 -0
  56. package/components/search/filters-sidebar-section/filters-sidebar-section.component.d.ts +9 -0
  57. package/components/search/filters-topbar/filters-topbar.component.d.ts +38 -0
  58. package/domain/models/decorators/decorators.d.ts +1 -0
  59. package/domain/models/jace/ActiveModuleView.d.ts +8 -8
  60. package/domain/models/user/ChangePasswordDto.d.ts +9 -0
  61. package/domain/models/user/ChangeProfilePictureDto.d.ts +4 -0
  62. package/domain/models/user/UpdateAccountRecoverySettingsDto.d.ts +6 -0
  63. package/domain/public-api.d.ts +4 -0
  64. package/esm2020/components/components.module.mjs +74 -20
  65. package/esm2020/components/page-structure/back-top/back-top.component.mjs +43 -0
  66. package/esm2020/components/page-structure/base/base.component.mjs +55 -0
  67. package/esm2020/components/page-structure/base/reactive.component.mjs +26 -0
  68. package/esm2020/components/page-structure/breadcrumb/breadcrumb.component.mjs +70 -0
  69. package/esm2020/components/page-structure/error/404/pagenotfound.component.mjs +30 -0
  70. package/esm2020/components/page-structure/error/500/servererror.component.mjs +39 -0
  71. package/esm2020/components/page-structure/error/Angular/angularerror.component.mjs +55 -0
  72. package/esm2020/components/page-structure/external-page/external_pages.component.mjs +47 -0
  73. package/esm2020/components/{jace-login → page-structure/jace-login}/jace-login.component.mjs +1 -1
  74. package/esm2020/components/page-structure/jace-resource/jace-resource.component.mjs +65 -0
  75. package/esm2020/components/page-structure/navbar/modules-board/jace-modules-board.component.mjs +40 -0
  76. package/esm2020/components/page-structure/navbar/navbar.component.loc.mjs +36 -0
  77. package/esm2020/components/page-structure/navbar/navbar.component.mjs +161 -0
  78. package/esm2020/components/page-structure/page/pages.component.mjs +60 -0
  79. package/esm2020/components/page-structure/redirecter/redirecter.component.mjs +53 -0
  80. package/esm2020/components/page-structure/sidebar/sidebar.component.mjs +302 -0
  81. package/esm2020/components/public-api.mjs +21 -16
  82. package/esm2020/components/search/es-filters/es-filters.component.mjs +56 -0
  83. package/esm2020/components/search/es-filters/es-filters.service.mjs +19 -0
  84. package/esm2020/components/search/filters-sidebar/filters-sidebar.component.mjs +65 -0
  85. package/esm2020/components/search/filters-sidebar-item/filters-sidebar-item.component.mjs +39 -0
  86. package/esm2020/components/search/filters-sidebar-section/filters-sidebar-section.component.mjs +22 -0
  87. package/esm2020/components/search/filters-topbar/filters-topbar.component.mjs +94 -0
  88. package/esm2020/domain/models/decorators/decorators.mjs +6 -0
  89. package/esm2020/domain/models/jace/ActiveModuleView.mjs +1 -1
  90. package/esm2020/domain/models/user/ChangePasswordDto.mjs +11 -0
  91. package/esm2020/domain/models/user/ChangeProfilePictureDto.mjs +6 -0
  92. package/esm2020/domain/models/user/UpdateAccountRecoverySettingsDto.mjs +8 -0
  93. package/esm2020/domain/public-api.mjs +5 -1
  94. package/esm2020/lib/app.component.mjs +3 -3
  95. package/esm2020/lib/core.module.mjs +1 -1
  96. package/esm2020/services/classes/preferences/user/app.userpreferences.base.mjs +76 -0
  97. package/esm2020/services/public-api.mjs +2 -1
  98. package/fesm2015/esfaenza-core-components.mjs +532 -161
  99. package/fesm2015/esfaenza-core-components.mjs.map +1 -1
  100. package/fesm2015/esfaenza-core-domain.mjs +32 -1
  101. package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
  102. package/fesm2015/esfaenza-core-services.mjs +85 -5
  103. package/fesm2015/esfaenza-core-services.mjs.map +1 -1
  104. package/fesm2015/esfaenza-core.mjs +2 -2
  105. package/fesm2015/esfaenza-core.mjs.map +1 -1
  106. package/fesm2020/esfaenza-core-components.mjs +527 -160
  107. package/fesm2020/esfaenza-core-components.mjs.map +1 -1
  108. package/fesm2020/esfaenza-core-domain.mjs +32 -1
  109. package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
  110. package/fesm2020/esfaenza-core-services.mjs +72 -5
  111. package/fesm2020/esfaenza-core-services.mjs.map +1 -1
  112. package/fesm2020/esfaenza-core.mjs +2 -2
  113. package/fesm2020/esfaenza-core.mjs.map +1 -1
  114. package/lib/core.module.d.ts +2 -1
  115. package/package.json +2 -2
  116. package/services/classes/preferences/user/app.userpreferences.base.d.ts +23 -0
  117. package/services/public-api.d.ts +1 -0
  118. package/theme/styles/_base.scss +8 -23
  119. package/theme/styles/_bootstrap-override.scss +36 -62
  120. package/theme/styles/_libs-override.scss +43 -6
  121. package/theme/styles/_project-override.scss +66 -0
  122. package/theme/styles/_variables.scss +14 -42
  123. package/theme/styles/skins/enuma.scss +60 -0
  124. package/theme/styles/skins/etnograph.scss +52 -0
  125. package/theme/styles/skins/jace.scss +63 -0
  126. package/assets/fonts/fontawesome/FontAwesome.otf +0 -0
  127. package/assets/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  128. package/assets/fonts/fontawesome/fontawesome-webfont.svg +0 -2671
  129. package/assets/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  130. package/assets/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  131. package/assets/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
  132. package/assets/styles/font-awesome.min.css +0 -2929
  133. package/components/breadcrumb/breadcrumb.component.d.ts +0 -19
  134. package/esm2020/components/back-top/back-top.component.mjs +0 -43
  135. package/esm2020/components/base/base.component.mjs +0 -55
  136. package/esm2020/components/base/reactive.component.mjs +0 -26
  137. package/esm2020/components/breadcrumb/breadcrumb.component.mjs +0 -60
  138. package/esm2020/components/error/404/pagenotfound.component.mjs +0 -30
  139. package/esm2020/components/error/500/servererror.component.mjs +0 -39
  140. package/esm2020/components/error/Angular/angularerror.component.mjs +0 -55
  141. package/esm2020/components/external-page/external_pages.component.mjs +0 -47
  142. package/esm2020/components/jace-resource/jace-resource.component.mjs +0 -65
  143. package/esm2020/components/navbar/modules-board/jace-modules-board.component.mjs +0 -40
  144. package/esm2020/components/navbar/navbar.component.loc.mjs +0 -36
  145. package/esm2020/components/navbar/navbar.component.mjs +0 -208
  146. package/esm2020/components/page/pages.component.mjs +0 -60
  147. package/esm2020/components/redirecter/redirecter.component.mjs +0 -53
  148. package/esm2020/components/sidebar/sidebar.component.mjs +0 -210
  149. package/theme/styles/skins/_blue.scss +0 -16
  150. /package/components/{back-top → page-structure/back-top}/back-top.component.d.ts +0 -0
  151. /package/components/{base → page-structure/base}/base.component.d.ts +0 -0
  152. /package/components/{base → page-structure/base}/reactive.component.d.ts +0 -0
  153. /package/components/{error → page-structure/error}/404/pagenotfound.component.d.ts +0 -0
  154. /package/components/{error → page-structure/error}/500/servererror.component.d.ts +0 -0
  155. /package/components/{error → page-structure/error}/Angular/angularerror.component.d.ts +0 -0
  156. /package/components/{external-page → page-structure/external-page}/external_pages.component.d.ts +0 -0
  157. /package/components/{jace-login → page-structure/jace-login}/jace-login.component.d.ts +0 -0
  158. /package/components/{jace-resource → page-structure/jace-resource}/jace-resource.component.d.ts +0 -0
  159. /package/components/{navbar → page-structure/navbar}/modules-board/jace-modules-board.component.d.ts +0 -0
  160. /package/components/{navbar → page-structure/navbar}/navbar.component.loc.d.ts +0 -0
  161. /package/components/{page → page-structure/page}/pages.component.d.ts +0 -0
  162. /package/components/{redirecter → page-structure/redirecter}/redirecter.component.d.ts +0 -0
@@ -7,26 +7,32 @@ import { FormsModule } from "@angular/forms";
7
7
  // Es faenza
8
8
  import { LocalizationModule } from "@esfaenza/localizations";
9
9
  import { EsTableModule } from "@esfaenza/es-table";
10
+ import { FormsAndValidationsModule } from "@esfaenza/forms-and-validations";
10
11
  // Libs
11
12
  import { ProgressbarModule } from "ngx-bootstrap/progressbar";
12
13
  import { BsDropdownModule } from "ngx-bootstrap/dropdown";
13
14
  import { ModalModule } from "ngx-bootstrap/modal";
14
15
  // Componenti
15
- import { BackTop } from "./back-top/back-top.component";
16
- import { Breadcrumb } from "./breadcrumb/breadcrumb.component";
17
- import { PageNotFoundComponent } from "./error/404/pagenotfound.component";
18
- import { ServerErrorComponent } from "./error/500/servererror.component";
19
- import { AngularErrorComponent } from "./error/Angular/angularerror.component";
20
- import { PagesComponent } from "./page/pages.component";
21
- import { ExternalPagesComponent } from "./external-page/external_pages.component";
22
- import { JaceLoginComponent } from "./jace-login/jace-login.component";
23
- import { JaceModulesBoardComponent } from "./navbar/modules-board/jace-modules-board.component";
24
- import { Navbar } from "./navbar/navbar.component";
25
- import { JaceResourceComponent } from "./jace-resource/jace-resource.component";
26
- import { RedirecterComponent } from "./redirecter/redirecter.component";
27
- import { Sidebar } from "./sidebar/sidebar.component";
16
+ import { BackTop } from "./page-structure/back-top/back-top.component";
17
+ import { Breadcrumb } from "./page-structure/breadcrumb/breadcrumb.component";
18
+ import { PageNotFoundComponent } from "./page-structure/error/404/pagenotfound.component";
19
+ import { ServerErrorComponent } from "./page-structure/error/500/servererror.component";
20
+ import { AngularErrorComponent } from "./page-structure/error/Angular/angularerror.component";
21
+ import { PagesComponent } from "./page-structure/page/pages.component";
22
+ import { ExternalPagesComponent } from "./page-structure/external-page/external_pages.component";
23
+ import { JaceLoginComponent } from "./page-structure/jace-login/jace-login.component";
24
+ import { JaceModulesBoardComponent } from "./page-structure/navbar/modules-board/jace-modules-board.component";
25
+ import { Navbar } from "./page-structure/navbar/navbar.component";
26
+ import { JaceResourceComponent } from "./page-structure/jace-resource/jace-resource.component";
27
+ import { RedirecterComponent } from "./page-structure/redirecter/redirecter.component";
28
+ import { Sidebar } from "./page-structure/sidebar/sidebar.component";
28
29
  import { EsModalComponent } from "./es-modal/es-modal.component";
29
30
  import { EsModalHeadComponent } from "./es-modal/es-modal-head/es-modal-head.component";
31
+ import { FiltersHorizontalComponent } from "./search/filters-topbar/filters-topbar.component";
32
+ import { FiltersVerticalComponent } from "./search/filters-sidebar/filters-sidebar.component";
33
+ import { FiltersVerticalSectionComponent } from "./search/filters-sidebar-section/filters-sidebar-section.component";
34
+ import { FiltersVerticalItemComponent } from "./search/filters-sidebar-item/filters-sidebar-item.component";
35
+ import { EsFiltersComponent } from "./search/es-filters/es-filters.component";
30
36
  // Core
31
37
  import { DirectivesModule } from "@esfaenza/core/directives";
32
38
  import * as i0 from "@angular/core";
@@ -45,12 +51,27 @@ const COMPONENTS = [
45
51
  Sidebar,
46
52
  JaceResourceComponent,
47
53
  EsModalComponent,
48
- EsModalHeadComponent
54
+ EsModalHeadComponent,
55
+ FiltersHorizontalComponent,
56
+ FiltersVerticalComponent,
57
+ FiltersVerticalSectionComponent,
58
+ FiltersVerticalItemComponent,
59
+ EsFiltersComponent
49
60
  ];
50
61
  export class ComponentsModule {
51
62
  }
52
63
  ComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
53
- ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, BackTop,
64
+ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
65
+ RouterModule,
66
+ FormsModule,
67
+ DirectivesModule,
68
+ LocalizationModule,
69
+ ProgressbarModule,
70
+ MatSlideToggleModule,
71
+ BsDropdownModule,
72
+ EsTableModule,
73
+ ModalModule,
74
+ FormsAndValidationsModule, BackTop,
54
75
  Breadcrumb,
55
76
  PageNotFoundComponent,
56
77
  ServerErrorComponent,
@@ -64,7 +85,12 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
64
85
  Sidebar,
65
86
  JaceResourceComponent,
66
87
  EsModalComponent,
67
- EsModalHeadComponent], exports: [BackTop,
88
+ EsModalHeadComponent,
89
+ FiltersHorizontalComponent,
90
+ FiltersVerticalComponent,
91
+ FiltersVerticalSectionComponent,
92
+ FiltersVerticalItemComponent,
93
+ EsFiltersComponent], exports: [BackTop,
68
94
  Breadcrumb,
69
95
  PageNotFoundComponent,
70
96
  ServerErrorComponent,
@@ -78,13 +104,41 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
78
104
  Sidebar,
79
105
  JaceResourceComponent,
80
106
  EsModalComponent,
81
- EsModalHeadComponent] });
82
- ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, COMPONENTS] });
107
+ EsModalHeadComponent,
108
+ FiltersHorizontalComponent,
109
+ FiltersVerticalComponent,
110
+ FiltersVerticalSectionComponent,
111
+ FiltersVerticalItemComponent,
112
+ EsFiltersComponent] });
113
+ ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
114
+ RouterModule,
115
+ FormsModule,
116
+ DirectivesModule,
117
+ LocalizationModule,
118
+ ProgressbarModule,
119
+ MatSlideToggleModule,
120
+ BsDropdownModule,
121
+ EsTableModule,
122
+ ModalModule,
123
+ FormsAndValidationsModule, COMPONENTS] });
83
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
84
125
  type: NgModule,
85
126
  args: [{
86
- imports: [CommonModule, RouterModule, FormsModule, DirectivesModule, LocalizationModule, ProgressbarModule, MatSlideToggleModule, BsDropdownModule, EsTableModule, ModalModule, ...COMPONENTS],
127
+ imports: [
128
+ CommonModule,
129
+ RouterModule,
130
+ FormsModule,
131
+ DirectivesModule,
132
+ LocalizationModule,
133
+ ProgressbarModule,
134
+ MatSlideToggleModule,
135
+ BsDropdownModule,
136
+ EsTableModule,
137
+ ModalModule,
138
+ FormsAndValidationsModule,
139
+ ...COMPONENTS
140
+ ],
87
141
  exports: [...COMPONENTS]
88
142
  }]
89
143
  }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLFlBQVk7QUFDWixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkQsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxhQUFhO0FBQ2IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUV4RixPQUFPO0FBQ1AsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRTdELE1BQU0sVUFBVSxHQUFHO0lBQ2YsT0FBTztJQUNQLFVBQVU7SUFDVixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsTUFBTTtJQUNOLG1CQUFtQjtJQUNuQixPQUFPO0lBQ1AscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQixvQkFBb0I7Q0FDdkIsQ0FBQztBQU1GLE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixZQUhmLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBbEI5SyxPQUFPO1FBQ1AsVUFBVTtRQUNWLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxzQkFBc0I7UUFDdEIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixNQUFNO1FBQ04sbUJBQW1CO1FBQ25CLE9BQU87UUFDUCxxQkFBcUI7UUFDckIsZ0JBQWdCO1FBQ2hCLG9CQUFvQixhQWRwQixPQUFPO1FBQ1AsVUFBVTtRQUNWLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxzQkFBc0I7UUFDdEIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixNQUFNO1FBQ04sbUJBQW1CO1FBQ25CLE9BQU87UUFDUCxxQkFBcUI7UUFDckIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjs4R0FPWCxnQkFBZ0IsWUFIZixZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFLLFVBQVU7MkZBR3BMLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUM5TCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlXCI7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gRXMgZmFlbnphXHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBFc1RhYmxlTW9kdWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy10YWJsZVwiO1xyXG5cclxuLy8gTGlicyBcclxuaW1wb3J0IHsgUHJvZ3Jlc3NiYXJNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wcm9ncmVzc2JhclwiO1xyXG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcclxuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5cclxuLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBCYWNrVG9wIH0gZnJvbSBcIi4vYmFjay10b3AvYmFjay10b3AuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tIFwiLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBhZ2VOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gXCIuL2Vycm9yLzQwNC9wYWdlbm90Zm91bmQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNlcnZlckVycm9yQ29tcG9uZW50IH0gZnJvbSBcIi4vZXJyb3IvNTAwL3NlcnZlcmVycm9yLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBbmd1bGFyRXJyb3JDb21wb25lbnQgfSBmcm9tIFwiLi9lcnJvci9Bbmd1bGFyL2FuZ3VsYXJlcnJvci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGFnZXNDb21wb25lbnQgfSBmcm9tIFwiLi9wYWdlL3BhZ2VzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFBhZ2VzQ29tcG9uZW50IH0gZnJvbSBcIi4vZXh0ZXJuYWwtcGFnZS9leHRlcm5hbF9wYWdlcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSmFjZUxvZ2luQ29tcG9uZW50IH0gZnJvbSBcIi4vamFjZS1sb2dpbi9qYWNlLWxvZ2luLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBKYWNlTW9kdWxlc0JvYXJkQ29tcG9uZW50IH0gZnJvbSBcIi4vbmF2YmFyL21vZHVsZXMtYm9hcmQvamFjZS1tb2R1bGVzLWJvYXJkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOYXZiYXIgfSBmcm9tIFwiLi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBKYWNlUmVzb3VyY2VDb21wb25lbnQgfSBmcm9tIFwiLi9qYWNlLXJlc291cmNlL2phY2UtcmVzb3VyY2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJlZGlyZWN0ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9yZWRpcmVjdGVyL3JlZGlyZWN0ZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzTW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi9lcy1tb2RhbC9lcy1tb2RhbC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRXNNb2RhbEhlYWRDb21wb25lbnQgfSBmcm9tIFwiLi9lcy1tb2RhbC9lcy1tb2RhbC1oZWFkL2VzLW1vZGFsLWhlYWQuY29tcG9uZW50XCI7XHJcblxyXG4vLyBDb3JlXHJcbmltcG9ydCB7IERpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZGlyZWN0aXZlc1wiO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICAgIEJhY2tUb3AsXHJcbiAgICBCcmVhZGNydW1iLFxyXG4gICAgUGFnZU5vdEZvdW5kQ29tcG9uZW50LFxyXG4gICAgU2VydmVyRXJyb3JDb21wb25lbnQsXHJcbiAgICBBbmd1bGFyRXJyb3JDb21wb25lbnQsXHJcbiAgICBQYWdlc0NvbXBvbmVudCxcclxuICAgIEV4dGVybmFsUGFnZXNDb21wb25lbnQsXHJcbiAgICBKYWNlTG9naW5Db21wb25lbnQsXHJcbiAgICBKYWNlTW9kdWxlc0JvYXJkQ29tcG9uZW50LFxyXG4gICAgTmF2YmFyLFxyXG4gICAgUmVkaXJlY3RlckNvbXBvbmVudCxcclxuICAgIFNpZGViYXIsXHJcbiAgICBKYWNlUmVzb3VyY2VDb21wb25lbnQsXHJcbiAgICBFc01vZGFsQ29tcG9uZW50LFxyXG4gICAgRXNNb2RhbEhlYWRDb21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIEZvcm1zTW9kdWxlLCBEaXJlY3RpdmVzTW9kdWxlLCBMb2NhbGl6YXRpb25Nb2R1bGUsIFByb2dyZXNzYmFyTW9kdWxlLCBNYXRTbGlkZVRvZ2dsZU1vZHVsZSwgQnNEcm9wZG93bk1vZHVsZSwgRXNUYWJsZU1vZHVsZSwgTW9kYWxNb2R1bGUsIC4uLkNPTVBPTkVOVFNdLFxyXG4gICAgZXhwb3J0czogWy4uLkNPTVBPTkVOVFNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHsgfSJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLFlBQVk7QUFDWixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxhQUFhO0FBQ2IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztB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VztRQUNYLHlCQUF5QixFQUN0QixVQUFVOzJGQUdSLGdCQUFnQjtrQkFoQjVCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gseUJBQXlCO3dCQUN6QixHQUFHLFVBQVU7cUJBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBFcyBmYWVuemFcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uTW9kdWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEVzVGFibGVNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2VzLXRhYmxlXCI7XHJcbmltcG9ydCB7IEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2Zvcm1zLWFuZC12YWxpZGF0aW9uc1wiO1xyXG5cclxuLy8gTGlicyBcclxuaW1wb3J0IHsgUHJvZ3Jlc3NiYXJNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wcm9ncmVzc2JhclwiO1xyXG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcclxuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5cclxuLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBCYWNrVG9wIH0gZnJvbSBcIi4vcGFnZS1zdHJ1Y3R1cmUvYmFjay10b3AvYmFjay10b3AuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tIFwiLi9wYWdlLXN0cnVjdHVyZS9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBhZ2VOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gXCIuL3BhZ2Utc3RydWN0dXJlL2Vycm9yLzQwNC9wYWdlbm90Zm91bmQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNlcnZlckVycm9yQ29tcG9uZW50IH0gZnJvbSBcIi4vcGFnZS1zdHJ1Y3R1cmUvZXJyb3IvNTAwL3NlcnZlcmVycm9yLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBbmd1bGFyRXJyb3JDb21wb25lbnQgfSBmcm9tIFwiLi9wYWdlLXN0cnVjdHVyZS9lcnJvci9Bbmd1bGFyL2FuZ3VsYXJlcnJvci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGFnZXNDb21wb25lbnQgfSBmcm9tIFwiLi9wYWdlLXN0cnVjdHVyZS9wYWdlL3BhZ2VzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFBhZ2VzQ29tcG9uZW50IH0gZnJvbSBcIi4vcGFnZS1zdHJ1Y3R1cmUvZXh0ZXJuYWwtcGFnZS9leHRlcm5hbF9wYWdlcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSmFjZUxvZ2luQ29tcG9uZW50IH0gZnJvbSBcIi4vcGFnZS1zdHJ1Y3R1cmUvamFjZS1sb2dpbi9qYWNlLWxvZ2luLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBKYWNlTW9kdWxlc0JvYXJkQ29tcG9uZW50IH0gZnJvbSBcIi4vcGFnZS1zdHJ1Y3R1cmUvbmF2YmFyL21vZHVsZXMtYm9hcmQvamFjZS1tb2R1bGVzLWJvYXJkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOYXZiYXIgfSBmcm9tIFwiLi9wYWdlLXN0cnVjdHVyZS9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBKYWNlUmVzb3VyY2VDb21wb25lbnQgfSBmcm9tIFwiLi9wYWdlLXN0cnVjdHVyZS9qYWNlLXJlc291cmNlL2phY2UtcmVzb3VyY2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJlZGlyZWN0ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9wYWdlLXN0cnVjdHVyZS9yZWRpcmVjdGVyL3JlZGlyZWN0ZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi9wYWdlLXN0cnVjdHVyZS9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzTW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi9lcy1tb2RhbC9lcy1tb2RhbC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRXNNb2RhbEhlYWRDb21wb25lbnQgfSBmcm9tIFwiLi9lcy1tb2RhbC9lcy1tb2RhbC1oZWFkL2VzLW1vZGFsLWhlYWQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpbHRlcnNIb3Jpem9udGFsQ29tcG9uZW50IH0gZnJvbSBcIi4vc2VhcmNoL2ZpbHRlcnMtdG9wYmFyL2ZpbHRlcnMtdG9wYmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaWx0ZXJzVmVydGljYWxDb21wb25lbnQgfSBmcm9tIFwiLi9zZWFyY2gvZmlsdGVycy1zaWRlYmFyL2ZpbHRlcnMtc2lkZWJhci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmlsdGVyc1ZlcnRpY2FsU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL3NlYXJjaC9maWx0ZXJzLXNpZGViYXItc2VjdGlvbi9maWx0ZXJzLXNpZGViYXItc2VjdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmlsdGVyc1ZlcnRpY2FsSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL3NlYXJjaC9maWx0ZXJzLXNpZGViYXItaXRlbS9maWx0ZXJzLXNpZGViYXItaXRlbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRXNGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vc2VhcmNoL2VzLWZpbHRlcnMvZXMtZmlsdGVycy5jb21wb25lbnRcIjtcclxuXHJcbi8vIENvcmVcclxuaW1wb3J0IHsgRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kaXJlY3RpdmVzXCI7XHJcblxyXG5jb25zdCBDT01QT05FTlRTID0gW1xyXG4gICAgQmFja1RvcCxcclxuICAgIEJyZWFkY3J1bWIsXHJcbiAgICBQYWdlTm90Rm91bmRDb21wb25lbnQsXHJcbiAgICBTZXJ2ZXJFcnJvckNvbXBvbmVudCxcclxuICAgIEFuZ3VsYXJFcnJvckNvbXBvbmVudCxcclxuICAgIFBhZ2VzQ29tcG9uZW50LFxyXG4gICAgRXh0ZXJuYWxQYWdlc0NvbXBvbmVudCxcclxuICAgIEphY2VMb2dpbkNvbXBvbmVudCxcclxuICAgIEphY2VNb2R1bGVzQm9hcmRDb21wb25lbnQsXHJcbiAgICBOYXZiYXIsXHJcbiAgICBSZWRpcmVjdGVyQ29tcG9uZW50LFxyXG4gICAgU2lkZWJhcixcclxuICAgIEphY2VSZXNvdXJjZUNvbXBvbmVudCxcclxuICAgIEVzTW9kYWxDb21wb25lbnQsXHJcbiAgICBFc01vZGFsSGVhZENvbXBvbmVudCxcclxuICAgIEZpbHRlcnNIb3Jpem9udGFsQ29tcG9uZW50LFxyXG4gICAgRmlsdGVyc1ZlcnRpY2FsQ29tcG9uZW50LFxyXG4gICAgRmlsdGVyc1ZlcnRpY2FsU2VjdGlvbkNvbXBvbmVudCxcclxuICAgIEZpbHRlcnNWZXJ0aWNhbEl0ZW1Db21wb25lbnQsXHJcbiAgICBFc0ZpbHRlcnNDb21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLCBcclxuICAgICAgICBSb3V0ZXJNb2R1bGUsIFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLCBcclxuICAgICAgICBEaXJlY3RpdmVzTW9kdWxlLCBcclxuICAgICAgICBMb2NhbGl6YXRpb25Nb2R1bGUsIFxyXG4gICAgICAgIFByb2dyZXNzYmFyTW9kdWxlLCBcclxuICAgICAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSwgXHJcbiAgICAgICAgQnNEcm9wZG93bk1vZHVsZSwgXHJcbiAgICAgICAgRXNUYWJsZU1vZHVsZSwgXHJcbiAgICAgICAgTW9kYWxNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNBbmRWYWxpZGF0aW9uc01vZHVsZSxcclxuICAgICAgICAuLi5DT01QT05FTlRTXSxcclxuICAgIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50c01vZHVsZSB7IH0iXX0=
@@ -0,0 +1,43 @@
1
+ // Angular
2
+ import { Component, HostListener, Input, ViewChild, ViewEncapsulation } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ export class BackTop {
5
+ constructor() {
6
+ this.position = 400;
7
+ this.showSpeed = 500;
8
+ this.moveSpeed = 1000;
9
+ }
10
+ ngAfterViewInit() {
11
+ this._onWindowScroll();
12
+ }
13
+ _onClick() {
14
+ $("html, body").animate({ scrollTop: 0 }, { duration: this.moveSpeed });
15
+ return false;
16
+ }
17
+ _onWindowScroll() {
18
+ let el = this._selector.nativeElement;
19
+ window.scrollY > this.position ? $(el).fadeIn(this.showSpeed) : $(el).fadeOut(this.showSpeed);
20
+ }
21
+ }
22
+ BackTop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BackTop, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ BackTop.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: BackTop, isStandalone: true, selector: "back-top", inputs: { position: "position", showSpeed: "showSpeed", moveSpeed: "moveSpeed" }, host: { listeners: { "click": "_onClick()", "window:scroll.out-zone": "_onWindowScroll()" } }, viewQueries: [{ propertyName: "_selector", first: true, predicate: ["backTop"], descendants: true }], ngImport: i0, template: "<i #backTop class=\"fa fa-angle-up back-to-top\" title=\"Back to Top\"></i>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.back-to-top{position:fixed;width:40px;height:40px;cursor:pointer;z-index:9999;display:none;text-decoration:none;right:40px;bottom:40px!important;font-size:30px;text-align:center;opacity:.4;color:#191e29;background-color:#0056b3bf;border-radius:50%;line-height:34px}.back-to-top:hover{opacity:.8}\n"], encapsulation: i0.ViewEncapsulation.None });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BackTop, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: "back-top", encapsulation: ViewEncapsulation.None, standalone: true, template: "<i #backTop class=\"fa fa-angle-up back-to-top\" title=\"Back to Top\"></i>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.back-to-top{position:fixed;width:40px;height:40px;cursor:pointer;z-index:9999;display:none;text-decoration:none;right:40px;bottom:40px!important;font-size:30px;text-align:center;opacity:.4;color:#191e29;background-color:#0056b3bf;border-radius:50%;line-height:34px}.back-to-top:hover{opacity:.8}\n"] }]
27
+ }], propDecorators: { position: [{
28
+ type: Input
29
+ }], showSpeed: [{
30
+ type: Input
31
+ }], moveSpeed: [{
32
+ type: Input
33
+ }], _selector: [{
34
+ type: ViewChild,
35
+ args: ["backTop", { static: false }]
36
+ }], _onClick: [{
37
+ type: HostListener,
38
+ args: ["click"]
39
+ }], _onWindowScroll: [{
40
+ type: HostListener,
41
+ args: ["window:scroll.out-zone"]
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9wYWdlLXN0cnVjdHVyZS9iYWNrLXRvcC9iYWNrLXRvcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3BhZ2Utc3RydWN0dXJlL2JhY2stdG9wL2JhY2stdG9wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVd6RyxNQUFNLE9BQU8sT0FBTztJQVBwQjtRQVFhLGFBQVEsR0FBVyxHQUFHLENBQUM7UUFDdkIsY0FBUyxHQUFXLEdBQUcsQ0FBQztRQUN4QixjQUFTLEdBQVcsSUFBSSxDQUFDO0tBbUJyQztJQWZHLGVBQWU7UUFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELFFBQVE7UUFDSixDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxlQUFlO1FBQ1gsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDdEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEcsQ0FBQzs7b0dBckJRLE9BQU87d0ZBQVAsT0FBTywyVkNacEIsNkVBQXVFOzJGRFkxRCxPQUFPO2tCQVBuQixTQUFTOytCQUNJLFVBQVUsaUJBQ0wsaUJBQWlCLENBQUMsSUFBSSxjQUd6QixJQUFJOzhCQUdQLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUUyQyxTQUFTO3NCQUF6RCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3ZDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxPQUFPO2dCQU9yQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZGVjbGFyZSB2YXIgJDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYmFjay10b3BcIixcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vYmFjay10b3AuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2JhY2stdG9wLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYWNrVG9wIHtcclxuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBudW1iZXIgPSA0MDA7XHJcbiAgICBASW5wdXQoKSBzaG93U3BlZWQ6IG51bWJlciA9IDUwMDtcclxuICAgIEBJbnB1dCgpIG1vdmVTcGVlZDogbnVtYmVyID0gMTAwMDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiYmFja1RvcFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBfc2VsZWN0b3I6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuX29uV2luZG93U2Nyb2xsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXHJcbiAgICBfb25DbGljaygpOiBib29sZWFuIHtcclxuICAgICAgICAkKFwiaHRtbCwgYm9keVwiKS5hbmltYXRlKHsgc2Nyb2xsVG9wOiAwIH0sIHsgZHVyYXRpb246IHRoaXMubW92ZVNwZWVkIH0pO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnNjcm9sbC5vdXQtem9uZVwiKVxyXG4gICAgX29uV2luZG93U2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBlbCA9IHRoaXMuX3NlbGVjdG9yLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgd2luZG93LnNjcm9sbFkgPiB0aGlzLnBvc2l0aW9uID8gJChlbCkuZmFkZUluKHRoaXMuc2hvd1NwZWVkKSA6ICQoZWwpLmZhZGVPdXQodGhpcy5zaG93U3BlZWQpO1xyXG4gICAgfVxyXG59IiwiPGkgI2JhY2tUb3AgY2xhc3M9XCJmYSBmYS1hbmdsZS11cCBiYWNrLXRvLXRvcFwiIHRpdGxlPVwiQmFjayB0byBUb3BcIj48L2k+Il19
@@ -0,0 +1,55 @@
1
+ // Angular
2
+ import { Component } from "@angular/core";
3
+ import { ActivatedRoute, Router } from "@angular/router";
4
+ // Direttive, Componenti, Librerie
5
+ import { takeUntil } from "rxjs/operators";
6
+ // Core
7
+ import { AppState } from "@esfaenza/core/services";
8
+ import { ReactiveComponent } from "./reactive.component";
9
+ import { EMBEDDED_ROUTE, ROUTE } from "@esfaenza/core/domain";
10
+ import * as i0 from "@angular/core";
11
+ export class BaseComponent extends ReactiveComponent {
12
+ constructor(injector) {
13
+ super();
14
+ this.NavigationParameters = null;
15
+ let _activatedRoute = injector.get(ActivatedRoute);
16
+ let _state = injector.get(AppState);
17
+ this._router = injector.get(Router);
18
+ _state.registerNavigationIfMeaningful(_activatedRoute.snapshot);
19
+ // Parametri in maniera "dinamica"
20
+ _activatedRoute.params.pipe(takeUntil(this.destroyed$)).subscribe(t => { this.NavigationParameters = t; });
21
+ // Tutto il resto in maniera statica tanto non cambia
22
+ let segs = _activatedRoute.snapshot._urlSegment.segments;
23
+ this.CompletePath = "/" + segs.map(t => t.path).join('/');
24
+ this.ComponentPath = "/" + segs.filter((t, i) => i != 0).map(t => t.path).join('/');
25
+ this.BasePath = "/" + segs[0].path;
26
+ this.InternalNavigation = _activatedRoute.snapshot.data["internalNavigation"] || false;
27
+ this.NavigationTitle = _activatedRoute.snapshot.data["title"] || "";
28
+ // Per i componenti navigabili non embeddati è inutile mandare il messaggio di navigazione
29
+ // Così come per quelli per cui non esiste un titolo (cioè compoennti verso cui non si è navigato direttamente)
30
+ if (!_state.Embedded || !this.NavigationTitle)
31
+ return;
32
+ // Se sono dentro un iframe risalgo a quello di livello più alto in assoluto
33
+ let tmpWindow = window;
34
+ // Quando il parent non esiste window. parent è un riferimento a se stesso
35
+ while (tmpWindow.parent != tmpWindow)
36
+ tmpWindow = tmpWindow.parent;
37
+ tmpWindow.postMessage({ type: "navigation", url: this.CompletePath, internalNavigation: this.InternalNavigation, title: this.NavigationTitle }, "*");
38
+ }
39
+ navigate(command, extras) {
40
+ let commands = command;
41
+ // Fix della path esattamente come in esRouterLink
42
+ commands = Array.isArray(commands) ? commands : [commands];
43
+ let route = commands[0];
44
+ if (!route.startsWith("/" + EMBEDDED_ROUTE) && !route.startsWith("/" + ROUTE))
45
+ commands[0] = this.BasePath + commands[0];
46
+ this._router.navigate(command, extras);
47
+ }
48
+ }
49
+ BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
50
+ BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: BaseComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ template: '' }]
54
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3BhZ2Utc3RydWN0dXJlL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFFMUUsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPO0FBQ1AsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzlELE1BQU0sT0FBZ0IsYUFBYyxTQUFRLGlCQUFpQjtJQXNCekQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLEVBQUUsQ0FBQztRQVRGLHlCQUFvQixHQUErQixJQUFJLENBQUM7UUFXOUQsSUFBSSxlQUFlLEdBQW1CLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkUsSUFBSSxNQUFNLEdBQWEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoRSxrQ0FBa0M7UUFDbEMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRyxxREFBcUQ7UUFDckQsSUFBSSxJQUFJLEdBQTJCLGVBQWUsQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVEsQ0FBQztRQUNuRixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxLQUFLLENBQUM7UUFDdkYsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFcEUsMEZBQTBGO1FBQzFGLCtHQUErRztRQUMvRyxJQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQ3hDLE9BQU87UUFFWCw0RUFBNEU7UUFDNUUsSUFBSSxTQUFTLEdBQTJDLE1BQU0sQ0FBQztRQUMvRCwwRUFBMEU7UUFDMUUsT0FBTyxTQUFTLENBQUMsTUFBTSxJQUFJLFNBQVM7WUFDaEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFFakMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekosQ0FBQztJQUVTLFFBQVEsQ0FBQyxPQUFjLEVBQUUsTUFBWTtRQUMzQyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsa0RBQWtEO1FBQ2xELFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxLQUFLLEdBQUksUUFBUSxDQUFDLENBQUMsQ0FBWSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztZQUN6RSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7OzBHQW5FaUIsYUFBYTs4RkFBYixhQUFhLDJFQURaLEVBQUU7MkZBQ0gsYUFBYTtrQkFEbEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBVcmxTZWdtZW50R3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQ29yZVxyXG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5cclxuaW1wb3J0IHsgUmVhY3RpdmVDb21wb25lbnQgfSBmcm9tIFwiLi9yZWFjdGl2ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRU1CRURERURfUk9VVEUsIFJPVVRFIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBleHRlbmRzIFJlYWN0aXZlQ29tcG9uZW50IHtcclxuXHJcbiAgICAvKlxyXG4gICAgICogQmxvY2NvIGRpIGluZm9ybWF6aW9uaSBzdWxsYSByb3V0ZSBhdHR1YWxlXHJcbiAgICAgKiAgICAgIFJvdXRlOiAvcGFnZXMvbW9kdWxlL2NvbXBvbmVudDtpZE1vZGVsPTEyM1xyXG4gICAgICogICAgICBcclxuICAgICAqICAgICAgQ29tcGxldGVQYXRoOiAvcGFnZXMvbW9kdWxlL2NvbXBvbmVudFxyXG4gICAgICogICAgICBDb21wb25lbnRQYXRoOiBtb2R1bGUvY29tcG9uZW50XHJcbiAgICAgKiAgICAgIEJhc2VQYXRoOiAvcGFnZXMgKGVxdWl2YWxlbnRlIGEgUk9VVEUgbyBFTUJFRERFRF9ST1VURSlcclxuICAgICAqICAgICAgUGFyYW1ldGVyczogeyBcImlkTW9kZWxcIiA6IFwiMTIzXCIgfVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgQ29tcGxldGVQYXRoOiBzdHJpbmc7XHJcbiAgICBwcm90ZWN0ZWQgQ29tcG9uZW50UGF0aDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIEJhc2VQYXRoOiBzdHJpbmc7XHJcbiAgICBwcm90ZWN0ZWQgTmF2aWdhdGlvblBhcmFtZXRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9ID0gbnVsbDtcclxuXHJcbiAgICAvLyBJbmZvcm1hemlvbmkgcHJlc2UgZGFpIGRhdGkgZXh0cmEgZGVsbGEgcm91dGVcclxuICAgIHByb3RlY3RlZCBJbnRlcm5hbE5hdmlnYXRpb246IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgTmF2aWdhdGlvblRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXI7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIGxldCBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcclxuICAgICAgICBsZXQgX3N0YXRlOiBBcHBTdGF0ZSA9IGluamVjdG9yLmdldChBcHBTdGF0ZSk7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyID0gaW5qZWN0b3IuZ2V0KFJvdXRlcik7XHJcblxyXG4gICAgICAgIF9zdGF0ZS5yZWdpc3Rlck5hdmlnYXRpb25JZk1lYW5pbmdmdWwoX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90KTtcclxuXHJcbiAgICAgICAgLy8gUGFyYW1ldHJpIGluIG1hbmllcmEgXCJkaW5hbWljYVwiXHJcbiAgICAgICAgX2FjdGl2YXRlZFJvdXRlLnBhcmFtcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUodCA9PiB7IHRoaXMuTmF2aWdhdGlvblBhcmFtZXRlcnMgPSB0OyB9KVxyXG5cclxuICAgICAgICAvLyBUdXR0byBpbCByZXN0byBpbiBtYW5pZXJhIHN0YXRpY2EgdGFudG8gbm9uIGNhbWJpYVxyXG4gICAgICAgIGxldCBzZWdzID0gKDxVcmxTZWdtZW50R3JvdXA+KDxhbnk+X2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90KS5fdXJsU2VnbWVudCkuc2VnbWVudHM7XHJcbiAgICAgICAgdGhpcy5Db21wbGV0ZVBhdGggPSBcIi9cIiArIHNlZ3MubWFwKHQgPT4gdC5wYXRoKS5qb2luKCcvJyk7XHJcbiAgICAgICAgdGhpcy5Db21wb25lbnRQYXRoID0gXCIvXCIgKyBzZWdzLmZpbHRlcigodCwgaSkgPT4gaSAhPSAwKS5tYXAodCA9PiB0LnBhdGgpLmpvaW4oJy8nKTtcclxuICAgICAgICB0aGlzLkJhc2VQYXRoID0gXCIvXCIgKyBzZWdzWzBdLnBhdGg7XHJcblxyXG4gICAgICAgIHRoaXMuSW50ZXJuYWxOYXZpZ2F0aW9uID0gX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGFbXCJpbnRlcm5hbE5hdmlnYXRpb25cIl0gfHwgZmFsc2U7XHJcbiAgICAgICAgdGhpcy5OYXZpZ2F0aW9uVGl0bGUgPSBfYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdIHx8IFwiXCI7XHJcblxyXG4gICAgICAgIC8vIFBlciBpIGNvbXBvbmVudGkgbmF2aWdhYmlsaSBub24gZW1iZWRkYXRpIMOoIGludXRpbGUgbWFuZGFyZSBpbCBtZXNzYWdnaW8gZGkgbmF2aWdhemlvbmVcclxuICAgICAgICAvLyBDb3PDrCBjb21lIHBlciBxdWVsbGkgcGVyIGN1aSBub24gZXNpc3RlIHVuIHRpdG9sbyAoY2lvw6ggY29tcG9lbm50aSB2ZXJzbyBjdWkgbm9uIHNpIMOoIG5hdmlnYXRvIGRpcmV0dGFtZW50ZSlcclxuICAgICAgICBpZighX3N0YXRlLkVtYmVkZGVkIHx8ICF0aGlzLk5hdmlnYXRpb25UaXRsZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAvLyBTZSBzb25vIGRlbnRybyB1biBpZnJhbWUgcmlzYWxnbyBhIHF1ZWxsbyBkaSBsaXZlbGxvIHBpw7kgYWx0byBpbiBhc3NvbHV0b1xyXG4gICAgICAgIGxldCB0bXBXaW5kb3cgPSA8eyBwYXJlbnQ6IGFueSwgcG9zdE1lc3NhZ2U6IEZ1bmN0aW9uIH0+d2luZG93O1xyXG4gICAgICAgIC8vIFF1YW5kbyBpbCBwYXJlbnQgbm9uIGVzaXN0ZSB3aW5kb3cuIHBhcmVudCDDqCB1biByaWZlcmltZW50byBhIHNlIHN0ZXNzb1xyXG4gICAgICAgIHdoaWxlICh0bXBXaW5kb3cucGFyZW50ICE9IHRtcFdpbmRvdylcclxuICAgICAgICAgICAgdG1wV2luZG93ID0gdG1wV2luZG93LnBhcmVudDtcclxuXHJcbiAgICAgICAgdG1wV2luZG93LnBvc3RNZXNzYWdlKHsgdHlwZTogXCJuYXZpZ2F0aW9uXCIsIHVybDogdGhpcy5Db21wbGV0ZVBhdGgsIGludGVybmFsTmF2aWdhdGlvbjogdGhpcy5JbnRlcm5hbE5hdmlnYXRpb24sIHRpdGxlOiB0aGlzLk5hdmlnYXRpb25UaXRsZSB9LCBcIipcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG5hdmlnYXRlKGNvbW1hbmQ6IGFueVtdLCBleHRyYXM/OiBhbnkpIHtcclxuICAgICAgICBsZXQgY29tbWFuZHMgPSBjb21tYW5kO1xyXG5cclxuICAgICAgICAvLyBGaXggZGVsbGEgcGF0aCBlc2F0dGFtZW50ZSBjb21lIGluIGVzUm91dGVyTGlua1xyXG4gICAgICAgIGNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShjb21tYW5kcykgPyBjb21tYW5kcyA6IFtjb21tYW5kc107XHJcbiAgICAgICAgbGV0IHJvdXRlID0gKGNvbW1hbmRzWzBdIGFzIHN0cmluZyk7XHJcbiAgICAgICAgaWYgKCFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgRU1CRURERURfUk9VVEUpICYmICFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgUk9VVEUpKVxyXG4gICAgICAgICAgICBjb21tYW5kc1swXSA9IHRoaXMuQmFzZVBhdGggKyBjb21tYW5kc1swXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKGNvbW1hbmQsIGV4dHJhcyk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,26 @@
1
+ // Angular
2
+ import { Component } from "@angular/core";
3
+ // Direttive, Componenti, Librerie
4
+ import { ReplaySubject } from "rxjs";
5
+ import * as i0 from "@angular/core";
6
+ export class ReactiveComponent {
7
+ constructor() {
8
+ this.Subscriptions = [];
9
+ this.destroyed$ = new ReplaySubject(1);
10
+ }
11
+ ngOnDestroy() {
12
+ this.destroyed$.next(true);
13
+ this.destroyed$.complete();
14
+ if (!this.Subscriptions)
15
+ return;
16
+ for (let i = 0; i < this.Subscriptions.length; i++)
17
+ this.Subscriptions[i].unsubscribe();
18
+ }
19
+ }
20
+ ReactiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ ReactiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ReactiveComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReactiveComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ template: '' }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9wYWdlLXN0cnVjdHVyZS9iYXNlL3JlYWN0aXZlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBR25ELE1BQU0sT0FBZ0IsaUJBQWlCO0lBRHZDO1FBR2Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBMkIsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FZdkU7SUFWRyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDbkIsT0FBTztRQUVYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzs4R0FkaUIsaUJBQWlCO2tHQUFqQixpQkFBaUIsb0RBRGhCLEVBQUU7MkZBQ0gsaUJBQWlCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlYWN0aXZlQ29tcG9uZW50IHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICAgIHByb3RlY3RlZCBkZXN0cm95ZWQkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5TdWJzY3JpcHRpb25zKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5TdWJzY3JpcHRpb25zLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB0aGlzLlN1YnNjcmlwdGlvbnNbaV0udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,70 @@
1
+ // Angular
2
+ import { NgFor, NgIf } from "@angular/common";
3
+ import { Component, ViewEncapsulation } from "@angular/core";
4
+ import { NavigationEnd, RouterLink } from "@angular/router";
5
+ // Configurazioni
6
+ import { combineLatest, of } from "rxjs";
7
+ import { filter, map, mergeMap } from "rxjs/operators";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@esfaenza/core/services";
10
+ import * as i2 from "@angular/router";
11
+ import * as i3 from "@angular/platform-browser";
12
+ export class Breadcrumb {
13
+ constructor(_state, router, _activatedRoute, _titleService) {
14
+ this._state = _state;
15
+ this.router = router;
16
+ this._activatedRoute = _activatedRoute;
17
+ this._titleService = _titleService;
18
+ this.MainLink = { title: "Dashboard", routerLink: ["/pages/dashboard"] };
19
+ this.SubLinks = [];
20
+ this.router.events.pipe(filter(event => event instanceof NavigationEnd), map((event) => { return { event: event, route: this._activatedRoute }; }), map((routeWithEvent) => {
21
+ while (routeWithEvent.route.firstChild)
22
+ routeWithEvent.route = routeWithEvent.route.firstChild;
23
+ return routeWithEvent;
24
+ }), mergeMap(routeWithEvent => combineLatest(of(routeWithEvent.event.url).pipe(map(url => this.router.parseUrl(url))), routeWithEvent.route.data))).subscribe((treePlusData) => {
25
+ let data = treePlusData[1];
26
+ let tree = treePlusData[0];
27
+ // true = SUB - dettaglio
28
+ // false = MAIN - ricerca/dashboard
29
+ let internalNavigation = data["InternalNavigation"];
30
+ let title = data["title"];
31
+ if (internalNavigation) {
32
+ this.onSubNavigation(tree, title);
33
+ }
34
+ else {
35
+ this.onMainNavigation(tree, title);
36
+ }
37
+ this._titleService.setTitle(myconfig.AppData.ModuleDescription + " > " + title);
38
+ });
39
+ }
40
+ ngOnInit() { }
41
+ onSubNavigation(tree, title) {
42
+ let index = this.SubLinks.indexOf(this.SubLinks.find(f => f.title == title));
43
+ let difference = this.SubLinks.length - (index + 1);
44
+ if (index != -1 && (index + 1) != this.SubLinks.length) {
45
+ for (let i = 0; i < difference; i++)
46
+ this.SubLinks.pop();
47
+ }
48
+ if (index == -1 && this.MainLink.title != title)
49
+ this.SubLinks.push({ title: title, routerLink: this.getRouterLink(tree) });
50
+ }
51
+ onMainNavigation(tree, title) {
52
+ this.SubLinks = [];
53
+ this.MainLink = { title: title, routerLink: this.getRouterLink(tree) };
54
+ }
55
+ getRouterLink(tree) {
56
+ let segs = tree?.root?.children?.["primary"]?.segments ?? [];
57
+ let route = "/" + segs.map(t => t.path).join('/');
58
+ let params = segs[segs.length - 1]?.parameters;
59
+ return [route, params];
60
+ }
61
+ }
62
+ Breadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Breadcrumb, deps: [{ token: i1.AppState }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.Title }], target: i0.ɵɵFactoryTarget.Component });
63
+ Breadcrumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Breadcrumb, isStandalone: true, selector: "breadcrumb", ngImport: i0, template: "<ol class=\"breadcrumb app-no-selection\">\r\n <li class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"['/pages/dashboard']\">Dashboard</li>\r\n <li *ngIf=\"MainLink?.title != 'Dashboard'\" [routerLink]=\"MainLink.routerLink\" class=\"breadcrumb-item text-uppercase breadcrumb-link\">{{MainLink.title}}</li>\r\n <li *ngFor=\"let link of SubLinks\" class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"link.routerLink\">{{link.title}}</li>\r\n</ol>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.breadcrumb{padding:0;margin:0;background:transparent;color:#344154;font-size:14px}.breadcrumb-item+.breadcrumb-item:before{font-weight:400!important;color:#fff;font-family:\"Font Awesome 6 Pro\";font-size:.6rem;line-height:1.4rem;content:\"\\f054\"}.breadcrumb-item{float:left}.breadcrumb-link{cursor:pointer;font-weight:500;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Breadcrumb, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: "breadcrumb", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf, NgFor, RouterLink], template: "<ol class=\"breadcrumb app-no-selection\">\r\n <li class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"['/pages/dashboard']\">Dashboard</li>\r\n <li *ngIf=\"MainLink?.title != 'Dashboard'\" [routerLink]=\"MainLink.routerLink\" class=\"breadcrumb-item text-uppercase breadcrumb-link\">{{MainLink.title}}</li>\r\n <li *ngFor=\"let link of SubLinks\" class=\"breadcrumb-item text-uppercase breadcrumb-link\" [routerLink]=\"link.routerLink\">{{link.title}}</li>\r\n</ol>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato&family=Sora&display=swap\";.breadcrumb{padding:0;margin:0;background:transparent;color:#344154;font-size:14px}.breadcrumb-item+.breadcrumb-item:before{font-weight:400!important;color:#fff;font-family:\"Font Awesome 6 Pro\";font-size:.6rem;line-height:1.4rem;content:\"\\f054\"}.breadcrumb-item{float:left}.breadcrumb-link{cursor:pointer;font-weight:500;color:#fff!important}\n"] }]
67
+ }], ctorParameters: function () { return [{ type: i1.AppState }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.Title }]; } });
68
+ export class BreadcrumbItem {
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3BhZ2Utc3RydWN0dXJlL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3BhZ2Utc3RydWN0dXJlL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBd0IsYUFBYSxFQUFVLFVBQVUsRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBSW5HLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFZdkQsTUFBTSxPQUFPLFVBQVU7SUFJbkIsWUFBbUIsTUFBZ0IsRUFBVSxNQUFjLEVBQVUsZUFBK0IsRUFBVSxhQUFvQjtRQUEvRyxXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFPO1FBSDNILGFBQVEsR0FBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwRixhQUFRLEdBQXFCLEVBQUUsQ0FBQztRQUduQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25CLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFDL0MsR0FBRyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUN2RixHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNuQixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsVUFBVTtnQkFDbEMsY0FBYyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUMzRCxPQUFPLGNBQWMsQ0FBQztRQUMxQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FDdEIsYUFBYSxDQUNULEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ3hFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQ2pDLENBQ0osQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUE2QixFQUFFLEVBQUU7WUFDMUMsSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUzQix5QkFBeUI7WUFDekIsbUNBQW1DO1lBQ25DLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDcEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLElBQUksa0JBQWtCLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFBRTtpQkFDekQ7Z0JBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUFFO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDO0lBRWQsZUFBZSxDQUFDLElBQWEsRUFBRSxLQUFhO1FBQ3hDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdFLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ25ELElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksS0FBSztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFhLEVBQUUsS0FBYTtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBYTtRQUMvQixJQUFJLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDN0QsSUFBSSxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQztRQUUvQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7O3VHQXhEUSxVQUFVOzJGQUFWLFVBQVUsc0VDdEJ2QixpZkFJSyx5ZURnQlMsSUFBSSw2RkFBRSxLQUFLLG1IQUFFLFVBQVU7MkZBRXhCLFVBQVU7a0JBUnRCLFNBQVM7K0JBQ0ksWUFBWSxpQkFDUCxpQkFBaUIsQ0FBQyxJQUFJLGNBR3pCLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDOztBQTZEdEMsTUFBTSxPQUFPLGNBQWM7Q0FHMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgRGF0YSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJMaW5rLCBVcmxUcmVlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBFbnZPcHRpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJicmVhZGNydW1iXCIsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdGb3IsIFJvdXRlckxpbmtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iIHtcclxuICAgIHB1YmxpYyBNYWluTGluazogQnJlYWRjcnVtYkl0ZW0gPSB7IHRpdGxlOiBcIkRhc2hib2FyZFwiLCByb3V0ZXJMaW5rOiBbXCIvcGFnZXMvZGFzaGJvYXJkXCJdIH07XHJcbiAgICBwdWJsaWMgU3ViTGlua3M6IEJyZWFkY3J1bWJJdGVtW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX3N0YXRlOiBBcHBTdGF0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIF90aXRsZVNlcnZpY2U6IFRpdGxlKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxyXG4gICAgICAgICAgICBtYXAoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7IHJldHVybiB7IGV2ZW50OiBldmVudCwgcm91dGU6IHRoaXMuX2FjdGl2YXRlZFJvdXRlIH0gfSksXHJcbiAgICAgICAgICAgIG1hcCgocm91dGVXaXRoRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChyb3V0ZVdpdGhFdmVudC5yb3V0ZS5maXJzdENoaWxkKVxyXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlV2l0aEV2ZW50LnJvdXRlID0gcm91dGVXaXRoRXZlbnQucm91dGUuZmlyc3RDaGlsZDtcclxuICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZVdpdGhFdmVudDtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKHJvdXRlV2l0aEV2ZW50ID0+XHJcbiAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgICAgICAgICAgICAgIG9mKHJvdXRlV2l0aEV2ZW50LmV2ZW50LnVybCkucGlwZShtYXAodXJsID0+IHRoaXMucm91dGVyLnBhcnNlVXJsKHVybCkpKSxcclxuICAgICAgICAgICAgICAgICAgICByb3V0ZVdpdGhFdmVudC5yb3V0ZS5kYXRhKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKHRyZWVQbHVzRGF0YTogW1VybFRyZWUsIERhdGFdKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gdHJlZVBsdXNEYXRhWzFdO1xyXG4gICAgICAgICAgICBsZXQgdHJlZSA9IHRyZWVQbHVzRGF0YVswXTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRydWUgPSBTVUIgLSBkZXR0YWdsaW9cclxuICAgICAgICAgICAgLy8gZmFsc2UgPSBNQUlOIC0gcmljZXJjYS9kYXNoYm9hcmRcclxuICAgICAgICAgICAgbGV0IGludGVybmFsTmF2aWdhdGlvbiA9IGRhdGFbXCJJbnRlcm5hbE5hdmlnYXRpb25cIl07XHJcbiAgICAgICAgICAgIGxldCB0aXRsZSA9IGRhdGFbXCJ0aXRsZVwiXTtcclxuICAgICAgICAgICAgaWYgKGludGVybmFsTmF2aWdhdGlvbikgeyB0aGlzLm9uU3ViTmF2aWdhdGlvbih0cmVlLCB0aXRsZSk7IH1cclxuICAgICAgICAgICAgZWxzZSB7IHRoaXMub25NYWluTmF2aWdhdGlvbih0cmVlLCB0aXRsZSk7IH1cclxuICAgICAgICAgICAgdGhpcy5fdGl0bGVTZXJ2aWNlLnNldFRpdGxlKG15Y29uZmlnLkFwcERhdGEuTW9kdWxlRGVzY3JpcHRpb24gKyBcIiA+IFwiICsgdGl0bGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkgeyB9XHJcblxyXG4gICAgb25TdWJOYXZpZ2F0aW9uKHRyZWU6IFVybFRyZWUsIHRpdGxlOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLlN1YkxpbmtzLmluZGV4T2YodGhpcy5TdWJMaW5rcy5maW5kKGYgPT4gZi50aXRsZSA9PSB0aXRsZSkpO1xyXG4gICAgICAgIGxldCBkaWZmZXJlbmNlID0gdGhpcy5TdWJMaW5rcy5sZW5ndGggLSAoaW5kZXggKyAxKVxyXG4gICAgICAgIGlmIChpbmRleCAhPSAtMSAmJiAoaW5kZXggKyAxKSAhPSB0aGlzLlN1YkxpbmtzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmZlcmVuY2U7IGkrKylcclxuICAgICAgICAgICAgICAgIHRoaXMuU3ViTGlua3MucG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRleCA9PSAtMSAmJiB0aGlzLk1haW5MaW5rLnRpdGxlICE9IHRpdGxlKVxyXG4gICAgICAgICAgICB0aGlzLlN1YkxpbmtzLnB1c2goeyB0aXRsZTogdGl0bGUsIHJvdXRlckxpbms6IHRoaXMuZ2V0Um91dGVyTGluayh0cmVlKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbk1haW5OYXZpZ2F0aW9uKHRyZWU6IFVybFRyZWUsIHRpdGxlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLlN1YkxpbmtzID0gW107XHJcbiAgICAgICAgdGhpcy5NYWluTGluayA9IHsgdGl0bGU6IHRpdGxlLCByb3V0ZXJMaW5rOiB0aGlzLmdldFJvdXRlckxpbmsodHJlZSkgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFJvdXRlckxpbmsodHJlZTogVXJsVHJlZSkge1xyXG4gICAgICAgIGxldCBzZWdzID0gdHJlZT8ucm9vdD8uY2hpbGRyZW4/LltcInByaW1hcnlcIl0/LnNlZ21lbnRzID8/IFtdO1xyXG4gICAgICAgIGxldCByb3V0ZSA9IFwiL1wiICsgc2Vncy5tYXAodCA9PiB0LnBhdGgpLmpvaW4oJy8nKTtcclxuICAgICAgICBsZXQgcGFyYW1zID0gc2Vnc1tzZWdzLmxlbmd0aCAtIDFdPy5wYXJhbWV0ZXJzO1xyXG5cclxuICAgICAgICByZXR1cm4gW3JvdXRlLCBwYXJhbXNdO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkl0ZW0ge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHJvdXRlckxpbms6IGFueVtdO1xyXG59IiwiPG9sIGNsYXNzPVwiYnJlYWRjcnVtYiBhcHAtbm8tc2VsZWN0aW9uXCI+XHJcbiAgICA8bGkgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW0gdGV4dC11cHBlcmNhc2UgYnJlYWRjcnVtYi1saW5rXCIgW3JvdXRlckxpbmtdPVwiWycvcGFnZXMvZGFzaGJvYXJkJ11cIj5EYXNoYm9hcmQ8L2xpPlxyXG4gICAgPGxpICpuZ0lmPVwiTWFpbkxpbms/LnRpdGxlICE9ICdEYXNoYm9hcmQnXCIgW3JvdXRlckxpbmtdPVwiTWFpbkxpbmsucm91dGVyTGlua1wiIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIHRleHQtdXBwZXJjYXNlIGJyZWFkY3J1bWItbGlua1wiPnt7TWFpbkxpbmsudGl0bGV9fTwvbGk+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGxpbmsgb2YgU3ViTGlua3NcIiBjbGFzcz1cImJyZWFkY3J1bWItaXRlbSB0ZXh0LXVwcGVyY2FzZSBicmVhZGNydW1iLWxpbmtcIiBbcm91dGVyTGlua109XCJsaW5rLnJvdXRlckxpbmtcIj57e2xpbmsudGl0bGV9fTwvbGk+XHJcbjwvb2w+Il19
@@ -0,0 +1,30 @@
1
+ // Angular
2
+ import { Component, ViewEncapsulation } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/router";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@esfaenza/core/services";
7
+ export class PageNotFoundComponent {
8
+ constructor(router, _location, as) {
9
+ this._location = _location;
10
+ this.as = as;
11
+ this.router = router;
12
+ }
13
+ goPreviousPage() {
14
+ this._location.back();
15
+ }
16
+ goDashboard() {
17
+ let url = `/pages/dashboard`;
18
+ if (this.as.Embedded)
19
+ this.as.MainWindow.postMessage({ type: "navigate", url }, "*");
20
+ else
21
+ this.router.navigate([url]);
22
+ }
23
+ }
24
+ PageNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PageNotFoundComponent, deps: [{ token: i1.Router }, { token: i2.Location }, { token: i3.AppState }], target: i0.ɵɵFactoryTarget.Component });
25
+ PageNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PageNotFoundComponent, isStandalone: true, selector: "pagenotfound", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\">404</h1>\r\n <h6 class=\"card-title\">La risorsa richiesta non &egrave; stata trovata ma in futuro potrebbe essere disponibile.</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", encapsulation: i0.ViewEncapsulation.None });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PageNotFoundComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: "pagenotfound", encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\">404</h1>\r\n <h6 class=\"card-title\">La risorsa richiesta non &egrave; stata trovata ma in futuro potrebbe essere disponibile.</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
29
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Location }, { type: i3.AppState }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZW5vdGZvdW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvcGFnZS1zdHJ1Y3R1cmUvZXJyb3IvNDA0L3BhZ2Vub3Rmb3VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3BhZ2Utc3RydWN0dXJlL2Vycm9yLzQwNC9wYWdlbm90Zm91bmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBWTdELE1BQU0sT0FBTyxxQkFBcUI7SUFHOUIsWUFBWSxNQUFjLEVBQVUsU0FBbUIsRUFBVSxFQUFZO1FBQXpDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQ3pFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRO1lBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7O1lBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVwQyxDQUFDOztrSEFsQlEscUJBQXFCO3NHQUFyQixxQkFBcUIsd0VDYmxDLG83QkFnQk07MkZESE8scUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLGNBQWMsaUJBQ1QsaUJBQWlCLENBQUMsSUFBSSxjQUV6QixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbmltcG9ydCB7IEFwcFN0YXRlIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL3NlcnZpY2VzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInBhZ2Vub3Rmb3VuZFwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcGFnZW5vdGZvdW5kLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlTm90Rm91bmRDb21wb25lbnQge1xyXG4gICAgcm91dGVyOiBSb3V0ZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3Iocm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgX2xvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSBhczogQXBwU3RhdGUpIHtcclxuICAgICAgICB0aGlzLnJvdXRlciA9IHJvdXRlcjtcclxuICAgIH1cclxuXHJcbiAgICBnb1ByZXZpb3VzUGFnZSgpIHtcclxuICAgICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ29EYXNoYm9hcmQoKSB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAvcGFnZXMvZGFzaGJvYXJkYDtcclxuICAgICAgICBpZiAodGhpcy5hcy5FbWJlZGRlZClcclxuICAgICAgICAgICAgdGhpcy5hcy5NYWluV2luZG93LnBvc3RNZXNzYWdlKHsgdHlwZTogXCJuYXZpZ2F0ZVwiLCB1cmwgfSwgXCIqXCIpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xyXG5cclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTYgY29sLW1kLTYgY29sLTEwIG9mZnNldC14bC0zIG9mZnNldC1tZC0zIG9mZnNldC14cy0xIHAtdC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cImRpc3BsYXktMVwiPjQwNDwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiY2FyZC10aXRsZVwiPkxhIHJpc29yc2EgcmljaGllc3RhIG5vbiAmZWdyYXZlOyBzdGF0YSB0cm92YXRhIG1hIGluIGZ1dHVybyBwb3RyZWJiZSBlc3NlcmUgZGlzcG9uaWJpbGUuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHB1bGwtcmlnaHRcIiAoY2xpY2spPVwiZ29EYXNoYm9hcmQoKVwiPlZhaSBhbGxhIERhc2hib2FyZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHB1bGwtbGVmdFwiIChjbGljayk9XCJnb1ByZXZpb3VzUGFnZSgpXCI+VG9ybmEgYWxsYSBwYWdpbmEgcHJlY2VkZW50ZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,39 @@
1
+ // Angular
2
+ import { Component, ViewEncapsulation } from "@angular/core";
3
+ import { NgIf } from "@angular/common";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@esfaenza/core/services";
7
+ export class ServerErrorComponent {
8
+ constructor(router, route, as) {
9
+ this.router = router;
10
+ this.route = route;
11
+ this.as = as;
12
+ this.statusCode = this.route.snapshot.params["statusCode"];
13
+ this.statusText = this.b64DecodeUnicode(this.route.snapshot.params["statusText"]);
14
+ this.previousUrl = this.route.snapshot.params["fromUrl"];
15
+ //Dopo 1 secondo considero la sfilza di errori finita
16
+ setTimeout(() => { this.as.handlingError = false; }, 1000);
17
+ }
18
+ b64DecodeUnicode(str) {
19
+ // Going backwards: from bytestream, to percent-encoding, to original string.
20
+ return decodeURIComponent(atob(str).split("").map(c => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2)).join(""));
21
+ }
22
+ goPreviousPage() {
23
+ this.router.navigateByUrl(this.previousUrl);
24
+ }
25
+ goDashboard() {
26
+ let url = `/pages/dashboard`;
27
+ if (this.as.Embedded)
28
+ this.as.MainWindow.postMessage({ type: "navigate", url }, "*");
29
+ else
30
+ this.router.navigate([url]);
31
+ }
32
+ }
33
+ ServerErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ServerErrorComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.AppState }], target: i0.ɵɵFactoryTarget.Component });
34
+ ServerErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ServerErrorComponent, isStandalone: true, selector: "servererror", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\" *ngIf=\"!statusCode\">&nbsp;&nbsp;&nbsp;</h1>\r\n <h1 class=\"display-1\" *ngIf=\"statusCode\">{{statusCode}}</h1>\r\n <h6 class=\"card-title\" *ngIf=\"!statusText\">&nbsp;&nbsp;&nbsp;</h6>\r\n <h6 class=\"card-title\" style=\"word-wrap:break-word; max-height: 500px; overflow: auto\" *ngIf=\"statusText\">{{statusText}}</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ServerErrorComponent, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: "servererror", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 col-md-6 col-10 offset-xl-3 offset-md-3 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-1\" *ngIf=\"!statusCode\">&nbsp;&nbsp;&nbsp;</h1>\r\n <h1 class=\"display-1\" *ngIf=\"statusCode\">{{statusCode}}</h1>\r\n <h6 class=\"card-title\" *ngIf=\"!statusText\">&nbsp;&nbsp;&nbsp;</h6>\r\n <h6 class=\"card-title\" style=\"word-wrap:break-word; max-height: 500px; overflow: auto\" *ngIf=\"statusText\">{{statusText}}</h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-left\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
38
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.AppState }]; } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9wYWdlLXN0cnVjdHVyZS9lcnJvci81MDAvc2VydmVyZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9wYWdlLXN0cnVjdHVyZS9lcnJvci81MDAvc2VydmVyZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBYXZDLE1BQU0sT0FBTyxvQkFBb0I7SUFLN0IsWUFBb0IsTUFBYyxFQUFVLEtBQXFCLEVBQVUsRUFBWTtRQUFuRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQ25GLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpELHFEQUFxRDtRQUNyRCxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHO1FBQ2hCLDZFQUE2RTtRQUM3RSxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRO1lBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7O1lBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDOztpSEE3QlEsb0JBQW9CO3FHQUFwQixvQkFBb0IsdUVDaEJqQywycENBa0JNLDRDREpRLElBQUk7MkZBRUwsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLGFBQWEsaUJBQ1IsaUJBQWlCLENBQUMsSUFBSSxjQUV6QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQXBwU3RhdGUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInNlcnZlcmVycm9yXCIsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zZXJ2ZXJlcnJvci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtOZ0lmXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmVyRXJyb3JDb21wb25lbnQge1xyXG4gICAgc3RhdHVzQ29kZTogc3RyaW5nO1xyXG4gICAgc3RhdHVzVGV4dDogc3RyaW5nO1xyXG4gICAgcHJldmlvdXNVcmw6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBhczogQXBwU3RhdGUpIHtcclxuICAgICAgICB0aGlzLnN0YXR1c0NvZGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1tcInN0YXR1c0NvZGVcIl07XHJcbiAgICAgICAgdGhpcy5zdGF0dXNUZXh0ID0gdGhpcy5iNjREZWNvZGVVbmljb2RlKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zW1wic3RhdHVzVGV4dFwiXSk7XHJcbiAgICAgICAgdGhpcy5wcmV2aW91c1VybCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zW1wiZnJvbVVybFwiXTtcclxuXHJcbiAgICAgICAgLy9Eb3BvIDEgc2Vjb25kbyBjb25zaWRlcm8gbGEgc2ZpbHphIGRpIGVycm9yaSBmaW5pdGFcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5hcy5oYW5kbGluZ0Vycm9yID0gZmFsc2U7IH0sIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIGI2NERlY29kZVVuaWNvZGUoc3RyKSB7XHJcbiAgICAgICAgLy8gR29pbmcgYmFja3dhcmRzOiBmcm9tIGJ5dGVzdHJlYW0sIHRvIHBlcmNlbnQtZW5jb2RpbmcsIHRvIG9yaWdpbmFsIHN0cmluZy5cclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGF0b2Ioc3RyKS5zcGxpdChcIlwiKS5tYXAoYyA9PiBcIiVcIiArIChcIjAwXCIgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikpLmpvaW4oXCJcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGdvUHJldmlvdXNQYWdlKCkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5wcmV2aW91c1VybCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ29EYXNoYm9hcmQoKSB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAvcGFnZXMvZGFzaGJvYXJkYDtcclxuICAgICAgICBpZiAodGhpcy5hcy5FbWJlZGRlZClcclxuICAgICAgICAgICAgdGhpcy5hcy5NYWluV2luZG93LnBvc3RNZXNzYWdlKHsgdHlwZTogXCJuYXZpZ2F0ZVwiLCB1cmwgfSwgXCIqXCIpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtNiBjb2wtbWQtNiBjb2wtMTAgb2Zmc2V0LXhsLTMgb2Zmc2V0LW1kLTMgb2Zmc2V0LXhzLTEgcC10LTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiZGlzcGxheS0xXCIgKm5nSWY9XCIhc3RhdHVzQ29kZVwiPiZuYnNwOyZuYnNwOyZuYnNwOzwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiZGlzcGxheS0xXCIgKm5nSWY9XCJzdGF0dXNDb2RlXCI+e3tzdGF0dXNDb2RlfX08L2gxPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImNhcmQtdGl0bGVcIiAqbmdJZj1cIiFzdGF0dXNUZXh0XCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJjYXJkLXRpdGxlXCIgc3R5bGU9XCJ3b3JkLXdyYXA6YnJlYWstd29yZDsgbWF4LWhlaWdodDogNTAwcHg7IG92ZXJmbG93OiBhdXRvXCIgKm5nSWY9XCJzdGF0dXNUZXh0XCI+e3tzdGF0dXNUZXh0fX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcHVsbC1yaWdodFwiIChjbGljayk9XCJnb0Rhc2hib2FyZCgpXCI+VmFpIGFsbGEgRGFzaGJvYXJkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcHVsbC1sZWZ0XCIgKGNsaWNrKT1cImdvUHJldmlvdXNQYWdlKClcIj5Ub3JuYSBhbGxhIHBhZ2luYSBwcmVjZWRlbnRlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,55 @@
1
+ // Angular
2
+ import { Component, ViewEncapsulation } from "@angular/core";
3
+ import { NgIf } from "@angular/common";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@esfaenza/httpservice";
7
+ import * as i3 from "@esfaenza/core/services";
8
+ export class AngularErrorComponent {
9
+ constructor(router, route, http, bts, as) {
10
+ this.router = router;
11
+ this.route = route;
12
+ this.http = http;
13
+ this.bts = bts;
14
+ this.as = as;
15
+ let identity = this.bts.getJaceIdentity();
16
+ this.previousUrl = this.route.snapshot.params["fromUrl"];
17
+ let calls = (this.http.LastThreeCompletedCalls[0] || "<empty>") + ", " + (this.http.LastThreeCompletedCalls[1] || "<empty>") + ", " + (this.http.LastThreeCompletedCalls[2] || "<empty>");
18
+ this.errorFrom = "From page: " + (this.previousUrl || "<missing>");
19
+ this.errorLastCalls = "Last three calls: " + calls;
20
+ this.identityInfos = "Logged user: " + (identity?.Idtenant || '??') + "-" + (identity?.DsUser || '???????');
21
+ this.errorMessage = this.b64DecodeUnicode(this.route.snapshot.params["errorMessage"]);
22
+ console.error(this.errorMessage);
23
+ }
24
+ ngOnInit() {
25
+ var item = localStorage.getItem("Reload");
26
+ if (item) {
27
+ localStorage.removeItem("Reload");
28
+ this.router.navigateByUrl(item);
29
+ }
30
+ }
31
+ b64DecodeUnicode(str) {
32
+ // Bytestream -> Encoding % -> Stringa originale
33
+ return decodeURIComponent(atob(str).split("").map(c => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2)).join(""));
34
+ }
35
+ goPreviousPage() {
36
+ // Reload per forzare il ricaricamento del javascript (in modo che lo stato dell'applicazione sia a posto)
37
+ // all'onInit la pagina prenderà la root a cui navigare dal localStorage
38
+ localStorage.setItem("Reload", this.previousUrl);
39
+ location.reload();
40
+ }
41
+ goDashboard() {
42
+ let url = `/pages/dashboard`;
43
+ if (this.as.Embedded)
44
+ this.as.MainWindow.postMessage({ type: "navigate", url }, "*");
45
+ else
46
+ this.router.navigate([url]);
47
+ }
48
+ }
49
+ AngularErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AngularErrorComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.HTTPService }, { token: i3.TokenService }, { token: i3.AppState }], target: i0.ɵɵFactoryTarget.Component });
50
+ AngularErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AngularErrorComponent, isStandalone: true, selector: "angularerror", ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-8 col-md-10 col-10 offset-xl-2 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-4\">Qualcosa &egrave; andato storto.</h1>\r\n <h6>\r\n <small>\r\n Si &egrave; verificato un errore interno all'applicazione. Questo non dovrebbe accadere. Prova a ricaricare la pagina precedente e rieffettuare le stesse operazioni, se il problema persiste contatta il service desk allegando una breve descrizione delle operazioni che stavi eseguendo e questo messaggio d'errore:\r\n </small>\r\n </h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"identityInfos\"><em>{{identityInfos}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorFrom\"><em>{{errorFrom}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorLastCalls\"><em>{{errorLastCalls}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorMessage\"><em>{{errorMessage}}</em></h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right app-margin-right-10\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AngularErrorComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: "angularerror", encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-8 col-md-10 col-10 offset-xl-2 offset-xs-1 p-t-10\">\r\n <div class=\"card\">\r\n <div class=\"card-body text-center\">\r\n <h1 class=\"display-4\">Qualcosa &egrave; andato storto.</h1>\r\n <h6>\r\n <small>\r\n Si &egrave; verificato un errore interno all'applicazione. Questo non dovrebbe accadere. Prova a ricaricare la pagina precedente e rieffettuare le stesse operazioni, se il problema persiste contatta il service desk allegando una breve descrizione delle operazioni che stavi eseguendo e questo messaggio d'errore:\r\n </small>\r\n </h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"identityInfos\"><em>{{identityInfos}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorFrom\"><em>{{errorFrom}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorLastCalls\"><em>{{errorLastCalls}}</em></h6>\r\n <h6 class=\"card-title text-danger app-margin-top-10 text-left\" style=\"word-wrap:break-word\" *ngIf=\"errorMessage\"><em>{{errorMessage}}</em></h6>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right\" (click)=\"goDashboard()\">Vai alla Dashboard</button>\r\n <button type=\"button\" class=\"btn btn-secondary pull-right app-margin-right-10\" (click)=\"goPreviousPage()\">Torna alla pagina precedente</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
54
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.HTTPService }, { type: i3.TokenService }, { type: i3.AppState }]; } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcmVycm9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvcGFnZS1zdHJ1Y3R1cmUvZXJyb3IvQW5ndWxhci9hbmd1bGFyZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9wYWdlLXN0cnVjdHVyZS9lcnJvci9Bbmd1bGFyL2FuZ3VsYXJlcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBYXZDLE1BQU0sT0FBTyxxQkFBcUI7SUFROUIsWUFBb0IsTUFBYyxFQUFVLEtBQXFCLEVBQVUsSUFBaUIsRUFBVSxHQUFpQixFQUFVLEVBQVk7UUFBekgsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFVO1FBRXpJLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUMxTCxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxlQUFlLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFFdEYsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxFQUFFO1lBQ04sWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHO1FBQ2hCLGdEQUFnRDtRQUNoRCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQsY0FBYztRQUNWLDBHQUEwRztRQUMxRyx3RUFBd0U7UUFDeEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRO1lBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7O1lBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDOztrSEEvQ1EscUJBQXFCO3NHQUFyQixxQkFBcUIsd0VDaEJsQyx3OURBd0JNLDRDRFZRLElBQUk7MkZBRUwscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNJLGNBQWMsaUJBQ1QsaUJBQWlCLENBQUMsSUFBSSxjQUV6QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFwcFN0YXRlLCBUb2tlblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYW5ndWxhcmVycm9yXCIsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9hbmd1bGFyZXJyb3IuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZl1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJFcnJvckNvbXBvbmVudCB7XHJcblxyXG4gICAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBlcnJvckZyb206IHN0cmluZztcclxuICAgIGVycm9yTGFzdENhbGxzOiBzdHJpbmc7XHJcbiAgICBwcmV2aW91c1VybDogc3RyaW5nO1xyXG4gICAgaWRlbnRpdHlJbmZvczogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIGh0dHA6IEhUVFBTZXJ2aWNlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlLCBwcml2YXRlIGFzOiBBcHBTdGF0ZSkge1xyXG5cclxuICAgICAgICBsZXQgaWRlbnRpdHkgPSB0aGlzLmJ0cy5nZXRKYWNlSWRlbnRpdHkoKTtcclxuICAgICAgICB0aGlzLnByZXZpb3VzVXJsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJmcm9tVXJsXCJdO1xyXG4gICAgICAgIGxldCBjYWxscyA9ICh0aGlzLmh0dHAuTGFzdFRocmVlQ29tcGxldGVkQ2FsbHNbMF0gfHwgXCI8ZW1wdHk+XCIpICsgXCIsIFwiICsgKHRoaXMuaHR0cC5MYXN0VGhyZWVDb21wbGV0ZWRDYWxsc1sxXSB8fCBcIjxlbXB0eT5cIikgKyBcIiwgXCIgKyAodGhpcy5odHRwLkxhc3RUaHJlZUNvbXBsZXRlZENhbGxzWzJdIHx8IFwiPGVtcHR5PlwiKTtcclxuICAgICAgICB0aGlzLmVycm9yRnJvbSA9IFwiRnJvbSBwYWdlOiBcIiArICh0aGlzLnByZXZpb3VzVXJsIHx8IFwiPG1pc3Npbmc+XCIpO1xyXG4gICAgICAgIHRoaXMuZXJyb3JMYXN0Q2FsbHMgPSBcIkxhc3QgdGhyZWUgY2FsbHM6IFwiICsgY2FsbHM7XHJcbiAgICAgICAgdGhpcy5pZGVudGl0eUluZm9zID0gXCJMb2dnZWQgdXNlcjogXCIgKyAoaWRlbnRpdHk/LklkdGVuYW50IHx8ICc/PycpICsgXCItXCIgKyAoaWRlbnRpdHk/LkRzVXNlciB8fCAnPz8/Pz8/PycpO1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5iNjREZWNvZGVVbmljb2RlKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zW1wiZXJyb3JNZXNzYWdlXCJdKTtcclxuXHJcbiAgICAgICAgY29uc29sZS5lcnJvcih0aGlzLmVycm9yTWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdmFyIGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJlbG9hZFwiKTtcclxuICAgICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIlJlbG9hZFwiKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYjY0RGVjb2RlVW5pY29kZShzdHIpIHtcclxuICAgICAgICAvLyBCeXRlc3RyZWFtIC0+IEVuY29kaW5nICUgLT4gU3RyaW5nYSBvcmlnaW5hbGVcclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGF0b2Ioc3RyKS5zcGxpdChcIlwiKS5tYXAoYyA9PiBcIiVcIiArIChcIjAwXCIgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikpLmpvaW4oXCJcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGdvUHJldmlvdXNQYWdlKCkge1xyXG4gICAgICAgIC8vIFJlbG9hZCBwZXIgZm9yemFyZSBpbCByaWNhcmljYW1lbnRvIGRlbCBqYXZhc2NyaXB0IChpbiBtb2RvIGNoZSBsbyBzdGF0byBkZWxsJ2FwcGxpY2F6aW9uZSBzaWEgYSBwb3N0bylcclxuICAgICAgICAvLyBhbGwnb25Jbml0IGxhIHBhZ2luYSBwcmVuZGVyw6AgbGEgcm9vdCBhIGN1aSBuYXZpZ2FyZSBkYWwgbG9jYWxTdG9yYWdlXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJSZWxvYWRcIiwgdGhpcy5wcmV2aW91c1VybCk7XHJcbiAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ29EYXNoYm9hcmQoKSB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAvcGFnZXMvZGFzaGJvYXJkYDtcclxuICAgICAgICBpZiAodGhpcy5hcy5FbWJlZGRlZClcclxuICAgICAgICAgICAgdGhpcy5hcy5NYWluV2luZG93LnBvc3RNZXNzYWdlKHsgdHlwZTogXCJuYXZpZ2F0ZVwiLCB1cmwgfSwgXCIqXCIpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtOCBjb2wtbWQtMTAgY29sLTEwIG9mZnNldC14bC0yIG9mZnNldC14cy0xIHAtdC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cImRpc3BsYXktNFwiPlF1YWxjb3NhICZlZ3JhdmU7IGFuZGF0byBzdG9ydG8uPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpICZlZ3JhdmU7IHZlcmlmaWNhdG8gdW4gZXJyb3JlIGludGVybm8gYWxsJ2FwcGxpY2F6aW9uZS4gUXVlc3RvIG5vbiBkb3ZyZWJiZSBhY2NhZGVyZS4gUHJvdmEgYSByaWNhcmljYXJlIGxhIHBhZ2luYSBwcmVjZWRlbnRlIGUgcmllZmZldHR1YXJlIGxlIHN0ZXNzZSBvcGVyYXppb25pLCBzZSBpbCBwcm9ibGVtYSBwZXJzaXN0ZSBjb250YXR0YSBpbCBzZXJ2aWNlIGRlc2sgYWxsZWdhbmRvIHVuYSBicmV2ZSBkZXNjcml6aW9uZSBkZWxsZSBvcGVyYXppb25pIGNoZSBzdGF2aSBlc2VndWVuZG8gZSBxdWVzdG8gbWVzc2FnZ2lvIGQnZXJyb3JlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiY2FyZC10aXRsZSB0ZXh0LWRhbmdlciBhcHAtbWFyZ2luLXRvcC0xMCB0ZXh0LWxlZnRcIiBzdHlsZT1cIndvcmQtd3JhcDpicmVhay13b3JkXCIgKm5nSWY9XCJpZGVudGl0eUluZm9zXCI+PGVtPnt7aWRlbnRpdHlJbmZvc319PC9lbT48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImNhcmQtdGl0bGUgdGV4dC1kYW5nZXIgYXBwLW1hcmdpbi10b3AtMTAgdGV4dC1sZWZ0XCIgc3R5bGU9XCJ3b3JkLXdyYXA6YnJlYWstd29yZFwiICpuZ0lmPVwiZXJyb3JGcm9tXCI+PGVtPnt7ZXJyb3JGcm9tfX08L2VtPjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiY2FyZC10aXRsZSB0ZXh0LWRhbmdlciBhcHAtbWFyZ2luLXRvcC0xMCB0ZXh0LWxlZnRcIiBzdHlsZT1cIndvcmQtd3JhcDpicmVhay13b3JkXCIgKm5nSWY9XCJlcnJvckxhc3RDYWxsc1wiPjxlbT57e2Vycm9yTGFzdENhbGxzfX08L2VtPjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiY2FyZC10aXRsZSB0ZXh0LWRhbmdlciBhcHAtbWFyZ2luLXRvcC0xMCB0ZXh0LWxlZnRcIiBzdHlsZT1cIndvcmQtd3JhcDpicmVhay13b3JkXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj48ZW0+e3tlcnJvck1lc3NhZ2V9fTwvZW0+PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHB1bGwtcmlnaHRcIiAoY2xpY2spPVwiZ29EYXNoYm9hcmQoKVwiPlZhaSBhbGxhIERhc2hib2FyZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHB1bGwtcmlnaHQgYXBwLW1hcmdpbi1yaWdodC0xMFwiIChjbGljayk9XCJnb1ByZXZpb3VzUGFnZSgpXCI+VG9ybmEgYWxsYSBwYWdpbmEgcHJlY2VkZW50ZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=