@esfaenza/core 15.2.0

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 (180) hide show
  1. package/README.md +24 -0
  2. package/components/back-top/back-top.component.d.ts +12 -0
  3. package/components/breadcrumb/breadcrumb.component.d.ts +15 -0
  4. package/components/components.module.d.ts +25 -0
  5. package/components/error/404/pagenotfound.component.d.ts +13 -0
  6. package/components/error/500/servererror.component.d.ts +17 -0
  7. package/components/error/Angular/angularerror.component.d.ts +24 -0
  8. package/components/external-page/external_pages.component.d.ts +21 -0
  9. package/components/index.d.ts +5 -0
  10. package/components/jace-login/jace-login.component.d.ts +7 -0
  11. package/components/navbar/modules-board/jace-modules-board.component.d.ts +13 -0
  12. package/components/navbar/navbar.component.d.ts +60 -0
  13. package/components/navbar/navbar.component.loc.d.ts +8 -0
  14. package/components/page/pages.component.d.ts +23 -0
  15. package/components/public-api.d.ts +13 -0
  16. package/components/redirecter/redirecter.component.d.ts +19 -0
  17. package/components/sidebar/sidebar.component.d.ts +39 -0
  18. package/components/sidebar/sidebar.component.service.d.ts +27 -0
  19. package/directives/directives.module.d.ts +9 -0
  20. package/directives/draggable/draggable.directive.d.ts +13 -0
  21. package/directives/index.d.ts +5 -0
  22. package/directives/public-api.d.ts +4 -0
  23. package/directives/slim-scroll/slim-scroll.directive.d.ts +15 -0
  24. package/directives/widget/widget.directive.d.ts +9 -0
  25. package/domain/index.d.ts +5 -0
  26. package/domain/models/core/classes/ApplicationMenu.d.ts +16 -0
  27. package/domain/models/core/classes/EnvOptions.d.ts +14 -0
  28. package/domain/models/jace/classes/AccountScope.d.ts +9 -0
  29. package/domain/models/jace/classes/ActiveModuleView.d.ts +15 -0
  30. package/domain/models/jace/classes/JaceAccount.d.ts +26 -0
  31. package/domain/models/jace/classes/JaceIdentity.d.ts +17 -0
  32. package/domain/models/jace/classes/JaceModule.d.ts +6 -0
  33. package/domain/models/jace/classes/JacePermission.d.ts +9 -0
  34. package/domain/models/jace/classes/JaceRole.d.ts +11 -0
  35. package/domain/models/jace/classes/User.d.ts +4 -0
  36. package/domain/public-api.d.ts +11 -0
  37. package/domain/tokens.d.ts +16 -0
  38. package/esm2020/components/back-top/back-top.component.mjs +43 -0
  39. package/esm2020/components/breadcrumb/breadcrumb.component.mjs +55 -0
  40. package/esm2020/components/components.module.mjs +74 -0
  41. package/esm2020/components/error/404/pagenotfound.component.mjs +27 -0
  42. package/esm2020/components/error/500/servererror.component.mjs +35 -0
  43. package/esm2020/components/error/Angular/angularerror.component.mjs +50 -0
  44. package/esm2020/components/esfaenza-core-components.mjs +5 -0
  45. package/esm2020/components/external-page/external_pages.component.mjs +46 -0
  46. package/esm2020/components/jace-login/jace-login.component.mjs +17 -0
  47. package/esm2020/components/navbar/modules-board/jace-modules-board.component.mjs +40 -0
  48. package/esm2020/components/navbar/navbar.component.loc.mjs +36 -0
  49. package/esm2020/components/navbar/navbar.component.mjs +179 -0
  50. package/esm2020/components/page/pages.component.mjs +57 -0
  51. package/esm2020/components/public-api.mjs +14 -0
  52. package/esm2020/components/redirecter/redirecter.component.mjs +53 -0
  53. package/esm2020/components/sidebar/sidebar.component.mjs +179 -0
  54. package/esm2020/components/sidebar/sidebar.component.service.mjs +58 -0
  55. package/esm2020/directives/directives.module.mjs +18 -0
  56. package/esm2020/directives/draggable/draggable.directive.mjs +48 -0
  57. package/esm2020/directives/esfaenza-core-directives.mjs +5 -0
  58. package/esm2020/directives/public-api.mjs +5 -0
  59. package/esm2020/directives/slim-scroll/slim-scroll.directive.mjs +40 -0
  60. package/esm2020/directives/widget/widget.directive.mjs +36 -0
  61. package/esm2020/domain/esfaenza-core-domain.mjs +5 -0
  62. package/esm2020/domain/models/core/classes/ApplicationMenu.mjs +26 -0
  63. package/esm2020/domain/models/core/classes/EnvOptions.mjs +4 -0
  64. package/esm2020/domain/models/jace/classes/AccountScope.mjs +8 -0
  65. package/esm2020/domain/models/jace/classes/ActiveModuleView.mjs +9 -0
  66. package/esm2020/domain/models/jace/classes/JaceAccount.mjs +5 -0
  67. package/esm2020/domain/models/jace/classes/JaceIdentity.mjs +16 -0
  68. package/esm2020/domain/models/jace/classes/JaceModule.mjs +3 -0
  69. package/esm2020/domain/models/jace/classes/JacePermission.mjs +3 -0
  70. package/esm2020/domain/models/jace/classes/JaceRole.mjs +3 -0
  71. package/esm2020/domain/models/jace/classes/User.mjs +3 -0
  72. package/esm2020/domain/public-api.mjs +12 -0
  73. package/esm2020/domain/tokens.mjs +11 -0
  74. package/esm2020/esfaenza-core.mjs +5 -0
  75. package/esm2020/helpers/classes/ResizeListener.mjs +38 -0
  76. package/esm2020/helpers/esfaenza-core-helpers.mjs +5 -0
  77. package/esm2020/helpers/public-api.mjs +2 -0
  78. package/esm2020/lib/app.component.mjs +26 -0
  79. package/esm2020/lib/core.module.mjs +227 -0
  80. package/esm2020/modules/classes/_base.module.mjs +27 -0
  81. package/esm2020/modules/classes/t_c.module.mjs +85 -0
  82. package/esm2020/modules/esfaenza-core-modules.mjs +5 -0
  83. package/esm2020/modules/public-api.mjs +3 -0
  84. package/esm2020/pipes/esfaenza-core-pipes.mjs +5 -0
  85. package/esm2020/pipes/included_in/included_in.pipe.mjs +17 -0
  86. package/esm2020/pipes/pipes.module.mjs +20 -0
  87. package/esm2020/pipes/public-api.mjs +7 -0
  88. package/esm2020/pipes/safe_html/safe_html.pipe.mjs +18 -0
  89. package/esm2020/pipes/safe_script/safe_script.pipe.mjs +18 -0
  90. package/esm2020/pipes/safe_style/safe_style.pipe.mjs +18 -0
  91. package/esm2020/pipes/safe_url/safe_url.pipe.mjs +18 -0
  92. package/esm2020/public-api.mjs +4 -0
  93. package/esm2020/services/classes/app.accesstoken.mjs +51 -0
  94. package/esm2020/services/classes/app.errorhandler.mjs +41 -0
  95. package/esm2020/services/classes/app.event.mjs +27 -0
  96. package/esm2020/services/classes/app.httpextensions.loc.mjs +15 -0
  97. package/esm2020/services/classes/app.httpextensions.mjs +90 -0
  98. package/esm2020/services/classes/app.routeguard.mjs +22 -0
  99. package/esm2020/services/classes/app.session.mjs +33 -0
  100. package/esm2020/services/classes/app.state.mjs +172 -0
  101. package/esm2020/services/classes/preferences/app.cache.persistor.mjs +94 -0
  102. package/esm2020/services/classes/preferences/app.preference.persistor.mjs +94 -0
  103. package/esm2020/services/esfaenza-core-services.mjs +5 -0
  104. package/esm2020/services/public-api.mjs +10 -0
  105. package/fesm2015/esfaenza-core-components.mjs +870 -0
  106. package/fesm2015/esfaenza-core-components.mjs.map +1 -0
  107. package/fesm2015/esfaenza-core-directives.mjs +138 -0
  108. package/fesm2015/esfaenza-core-directives.mjs.map +1 -0
  109. package/fesm2015/esfaenza-core-domain.mjs +99 -0
  110. package/fesm2015/esfaenza-core-domain.mjs.map +1 -0
  111. package/fesm2015/esfaenza-core-helpers.mjs +44 -0
  112. package/fesm2015/esfaenza-core-helpers.mjs.map +1 -0
  113. package/fesm2015/esfaenza-core-modules.mjs +112 -0
  114. package/fesm2015/esfaenza-core-modules.mjs.map +1 -0
  115. package/fesm2015/esfaenza-core-pipes.mjs +97 -0
  116. package/fesm2015/esfaenza-core-pipes.mjs.map +1 -0
  117. package/fesm2015/esfaenza-core-services.mjs +598 -0
  118. package/fesm2015/esfaenza-core-services.mjs.map +1 -0
  119. package/fesm2015/esfaenza-core.mjs +251 -0
  120. package/fesm2015/esfaenza-core.mjs.map +1 -0
  121. package/fesm2020/esfaenza-core-components.mjs +863 -0
  122. package/fesm2020/esfaenza-core-components.mjs.map +1 -0
  123. package/fesm2020/esfaenza-core-directives.mjs +138 -0
  124. package/fesm2020/esfaenza-core-directives.mjs.map +1 -0
  125. package/fesm2020/esfaenza-core-domain.mjs +98 -0
  126. package/fesm2020/esfaenza-core-domain.mjs.map +1 -0
  127. package/fesm2020/esfaenza-core-helpers.mjs +44 -0
  128. package/fesm2020/esfaenza-core-helpers.mjs.map +1 -0
  129. package/fesm2020/esfaenza-core-modules.mjs +112 -0
  130. package/fesm2020/esfaenza-core-modules.mjs.map +1 -0
  131. package/fesm2020/esfaenza-core-pipes.mjs +97 -0
  132. package/fesm2020/esfaenza-core-pipes.mjs.map +1 -0
  133. package/fesm2020/esfaenza-core-services.mjs +595 -0
  134. package/fesm2020/esfaenza-core-services.mjs.map +1 -0
  135. package/fesm2020/esfaenza-core.mjs +251 -0
  136. package/fesm2020/esfaenza-core.mjs.map +1 -0
  137. package/helpers/classes/ResizeListener.d.ts +12 -0
  138. package/helpers/index.d.ts +5 -0
  139. package/helpers/public-api.d.ts +1 -0
  140. package/index.d.ts +5 -0
  141. package/lib/app.component.d.ts +12 -0
  142. package/lib/core.module.d.ts +82 -0
  143. package/modules/classes/_base.module.d.ts +4 -0
  144. package/modules/classes/t_c.module.d.ts +19 -0
  145. package/modules/index.d.ts +5 -0
  146. package/modules/public-api.d.ts +2 -0
  147. package/package.json +115 -0
  148. package/pipes/included_in/included_in.pipe.d.ts +7 -0
  149. package/pipes/index.d.ts +5 -0
  150. package/pipes/pipes.module.d.ts +11 -0
  151. package/pipes/public-api.d.ts +6 -0
  152. package/pipes/safe_html/safe_html.pipe.d.ts +10 -0
  153. package/pipes/safe_script/safe_script.pipe.d.ts +10 -0
  154. package/pipes/safe_style/safe_style.pipe.d.ts +10 -0
  155. package/pipes/safe_url/safe_url.pipe.d.ts +10 -0
  156. package/public-api.d.ts +3 -0
  157. package/services/classes/app.accesstoken.d.ts +15 -0
  158. package/services/classes/app.errorhandler.d.ts +11 -0
  159. package/services/classes/app.event.d.ts +10 -0
  160. package/services/classes/app.httpextensions.d.ts +34 -0
  161. package/services/classes/app.httpextensions.loc.d.ts +8 -0
  162. package/services/classes/app.routeguard.d.ts +10 -0
  163. package/services/classes/app.session.d.ts +14 -0
  164. package/services/classes/app.state.d.ts +59 -0
  165. package/services/classes/preferences/app.cache.persistor.d.ts +25 -0
  166. package/services/classes/preferences/app.preference.persistor.d.ts +25 -0
  167. package/services/index.d.ts +5 -0
  168. package/services/public-api.d.ts +9 -0
  169. package/theme/initial.scss +48 -0
  170. package/theme/styles/_base.scss +257 -0
  171. package/theme/styles/_bootstrap-override.scss +1624 -0
  172. package/theme/styles/_font.scss +86 -0
  173. package/theme/styles/_fullcalendar-override.scss +86 -0
  174. package/theme/styles/_libs-override.scss +97 -0
  175. package/theme/styles/_material-override.scss +231 -0
  176. package/theme/styles/_mixins.scss +50 -0
  177. package/theme/styles/_preloader.scss +119 -0
  178. package/theme/styles/_project-override.scss +2383 -0
  179. package/theme/styles/_variables.scss +52 -0
  180. package/theme/styles/skins/_blue.scss +16 -0
@@ -0,0 +1,179 @@
1
+ // Angular
2
+ import { ChangeDetectionStrategy, Component, HostListener, Inject, Optional, ViewChild, ViewEncapsulation } from "@angular/core";
3
+ import { NavigationEnd } from "@angular/router";
4
+ // Applicazione
5
+ import { SidebarService } from "./sidebar.component.service";
6
+ import { MENU_LOCALIZATION } from "@esfaenza/core/domain";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@esfaenza/localizations";
9
+ import * as i2 from "@angular/router";
10
+ import * as i3 from "@esfaenza/core/services";
11
+ import * as i4 from "./sidebar.component.service";
12
+ import * as i5 from "@angular/common";
13
+ import * as i6 from "@esfaenza/core/directives";
14
+ export class Sidebar {
15
+ constructor(lc, lcMenu, cdr, _elementRef, _router, _state, _sidebarService, zone) {
16
+ this.lc = lc;
17
+ this.cdr = cdr;
18
+ this._elementRef = _elementRef;
19
+ this._router = _router;
20
+ this._state = _state;
21
+ this._sidebarService = _sidebarService;
22
+ this.zone = zone;
23
+ this.isMenuCollapsed = false;
24
+ this.isMenuShouldCollapsed = false;
25
+ this._state.subscribe("menu.isCollapsed", (isCollapsed) => {
26
+ this.isMenuCollapsed = isCollapsed;
27
+ this.cdr.markForCheck();
28
+ });
29
+ this._state.subscribe("application.DeployAvailable", (available) => {
30
+ if (available)
31
+ this.ngOnInit();
32
+ });
33
+ this._router.events.subscribe(event => {
34
+ if (event instanceof NavigationEnd) {
35
+ let width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
36
+ if (width <= 768) {
37
+ this._state.notifyDataChanged("menu.isCollapsed", true);
38
+ }
39
+ window.scrollTo(0, 0);
40
+ }
41
+ });
42
+ this.lc = this.lc.generateFromType(lcMenu);
43
+ }
44
+ ngOnInit() {
45
+ // Ivnentarsi una sorta di refresh
46
+ this.init();
47
+ }
48
+ init() {
49
+ var mi = this._sidebarService.getMenuItems();
50
+ ;
51
+ for (let i = 0; i < mi.length; i++)
52
+ this.assignLevel(mi[i], 1);
53
+ this.menuItems = mi;
54
+ if (this._shouldMenuCollapse())
55
+ this.menuCollapse();
56
+ this.updateSidebarHeight();
57
+ this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);
58
+ }
59
+ assignLevel(menuItem, level) {
60
+ menuItem.level = level;
61
+ if (!menuItem.subMenu)
62
+ return;
63
+ for (let i = 0; i < menuItem.subMenu.length; i++)
64
+ this.assignLevel(menuItem.subMenu[i], level + 1);
65
+ }
66
+ onWindowResize() {
67
+ var isMenuShouldCollapsed = this._shouldMenuCollapse();
68
+ if (this.isMenuShouldCollapsed !== isMenuShouldCollapsed) {
69
+ this.menuCollapseStateChange(isMenuShouldCollapsed);
70
+ }
71
+ this.isMenuShouldCollapsed = isMenuShouldCollapsed;
72
+ this.updateSidebarHeight();
73
+ }
74
+ _shouldMenuCollapse() {
75
+ return window.innerWidth <= 768;
76
+ }
77
+ menuCollapse() {
78
+ this.menuCollapseStateChange(true);
79
+ this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);
80
+ }
81
+ menuCollapseStateChange(isCollapsed) {
82
+ this.isMenuCollapsed = isCollapsed;
83
+ this._state.notifyDataChanged("menu.isCollapsed", this.isMenuCollapsed);
84
+ }
85
+ menuExpand() {
86
+ this.menuCollapseStateChange(false);
87
+ this._state.setSidebarWidth(this.sidebar.nativeElement.offsetWidth);
88
+ }
89
+ hoverItem($event) {
90
+ this.showHoverElem = true;
91
+ this.hoverElemHeight = $event.currentTarget.clientHeight;
92
+ this.hoverElemTop = $event.currentTarget.getBoundingClientRect().top - 60;
93
+ $(".sidebar-hover-elem").css("top", this.hoverElemTop + "px");
94
+ $(".sidebar-hover-elem").css("height", this.hoverElemHeight + "px");
95
+ $(".sidebar-hover-elem").addClass("show-hover-elem");
96
+ }
97
+ sendAwayHoverElement() {
98
+ this.hoverElemTop = -200;
99
+ $(".sidebar-hover-elem").css("top", this.hoverElemTop + "px");
100
+ }
101
+ updateSidebarHeight() {
102
+ this.menuHeight = this._elementRef.nativeElement.children[0].clientHeight - 60;
103
+ }
104
+ //Nonostante questa funzione sia collegata con (click.out-zone) per qualche motivo angular le esegue comunque nella sua zone
105
+ //generando un po' di irresponsivit� iniziale... succede solo col click... boh
106
+ collapseMenu($event, item) {
107
+ if (this.isMenuCollapsed)
108
+ this.menuExpand();
109
+ if (!item.level)
110
+ console.warn("Livello non presente in un oggetto del menu!");
111
+ //N.B: Tutte le funzioni di JQuery le esguo fuori da Angular dato che c'� una buona probabilit� che siano eventi asincroni
112
+ this.zone.runOutsideAngular(() => { this.outsideAngularClickHandler($event, item); });
113
+ return false;
114
+ }
115
+ outsideAngularClickHandler($event, item) {
116
+ let levelClass = item.level ? "level-" + (item.level) : "";
117
+ let levelClassPlusOne = item.level ? "level-" + (item.level + 1) : "";
118
+ let slidePeriod = 400;
119
+ var link = jQuery($event.currentTarget);
120
+ //Se l'elemento non � espanso
121
+ if (!link.closest(".sidebar-item-expanded" + "_" + levelClass).length) {
122
+ //Tiro su tutti gli elementi dello stesso livello espansi e li chiudo
123
+ //Se ho compresso un menu vado a vedere se c'� anche un altro menu di livello pi� basso da richiudere
124
+ jQuery("ul.nav-sidebar li" + "." + (levelClassPlusOne)).each(function () {
125
+ let closestLi = jQuery(this).closest("li");
126
+ if (closestLi.children("ul").length && closestLi.hasClass("sidebar-item-expanded")) {
127
+ closestLi.children("ul").slideUp(slidePeriod);
128
+ //Le uso sempre entrambe insieme. La prima � la classe per la logica, la seconda per le animazioni
129
+ closestLi.removeClass("sidebar-item-expanded" + "_" + (levelClassPlusOne));
130
+ closestLi.removeClass("sidebar-item-expanded");
131
+ }
132
+ });
133
+ //Dopodich� richiudo tutti quelli del mio livello attuale
134
+ jQuery("ul.nav-sidebar li" + "." + levelClass).each(function () {
135
+ let closestLi = jQuery(this).closest("li");
136
+ if (closestLi.children("ul").length && closestLi.hasClass("sidebar-item-expanded")) {
137
+ closestLi.children("ul").slideUp(slidePeriod);
138
+ //Le uso sempre entrambe insieme. La prima � la classe per la logica, la seconda per le animazioni
139
+ closestLi.removeClass("sidebar-item-expanded" + "_" + levelClass);
140
+ closestLi.removeClass("sidebar-item-expanded");
141
+ }
142
+ });
143
+ //Dopodich� espando quello attuale
144
+ link.next().slideDown(slidePeriod);
145
+ if (item.subMenu) {
146
+ //Le uso sempre entrambe insieme. La prima � la classe per la logica, la seconda per le animazioni
147
+ link.closest("li").addClass("sidebar-item-expanded" + "_" + levelClass);
148
+ link.closest("li").addClass("sidebar-item-expanded");
149
+ }
150
+ }
151
+ else {
152
+ //Altrimenti, se l'elemento � gi� espanso lo chiudo
153
+ if (item.subMenu) {
154
+ //Le uso sempre entrambe insieme. La prima � la classe per la logica, la seconda per le animazioni
155
+ link.closest("li").removeClass("sidebar-item-expanded" + "_" + levelClass);
156
+ link.closest("li").removeClass("sidebar-item-expanded");
157
+ }
158
+ link.next().slideUp(slidePeriod);
159
+ }
160
+ }
161
+ }
162
+ Sidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Sidebar, deps: [{ token: i1.LocalizationService }, { token: MENU_LOCALIZATION, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i2.Router }, { token: i3.AppState }, { token: i4.SidebarService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
163
+ Sidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: Sidebar, selector: "sidebar", host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [SidebarService], viewQueries: [{ propertyName: "sidebar", first: true, predicate: ["sidebar"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"app-sidebar\" #sidebar [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\" style=\"position:relative; zoom:1\">\r\n\r\n <li *ngFor=\"let item of menuItems\" class=\"sidebar-list-item level-{{item.level}}\" [ngClass]=\"{'has-sub-menu': item.subMenu, 'sidebar-item-expanded': item.expanded}\" [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"sidebar-hover-elem\"></div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>", styles: [".app-sidebar{background:#344154;height:100%;min-height:100%;position:fixed;width:230px;overflow:hidden;display:block;z-index:9;margin-top:60px}.app-sidebar.menu-collapsed{width:50px}.app-sidebar.menu-collapsed a.sidebar-list-link b{display:none}.app-sidebar.menu-collapsed .sidebar-sublist{position:absolute;top:-1px;left:52px;width:0;display:block;overflow:hidden}.sidebar-list-item{display:block;position:relative;float:none;padding:0;border-bottom:1px solid rgba(36,45,58,.5);box-shadow:0 1px #ffffff1a}.sidebar-item-wip{cursor:default}.sidebar-item-wip a{color:#999!important}a.sidebar-list-link{display:block;height:42px;padding-left:18px!important;padding-top:0!important;text-shadow:none;font-size:13px;letter-spacing:.02em;text-decoration:none;color:#fff;line-height:42px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .2s ease}a.sidebar-list-link i{margin-right:16px;width:16px;display:inline-block}a.sidebar-list-link b{display:block;opacity:1;width:14px;height:14px;line-height:14px;text-shadow:none;font-size:18px;position:absolute;right:10px;top:14px;padding:0;text-align:center;color:#fff;transition:transform .2s linear}a.sidebar-list-link:hover{background-color:#242d3a}.sidebar-list-item.sidebar-item-expanded>.sidebar-list-link b,.sidebar-sublist-item.sidebar-item-expanded>.sidebar-list-link b{transform:rotate(180deg)}.sidebar-sublist{display:none;padding:0;list-style:none;position:relative;background-color:#242d3a80}.sidebar-sublist li{display:block;float:none;padding:0;border-bottom:none;position:relative;border-bottom:1px solid rgba(36,45,58,.7)}.sidebar-sublist li:last-child{border-bottom:none}.sidebar-sublist li a{display:block;text-shadow:none;font-size:13px;text-decoration:none;color:#fff;padding-left:40px!important;height:42px;line-height:42px}.sidebar-sublist li a:before{font-family:FontAwesome;content:\"\\f1db\";margin-right:10px;font-size:10px}.sidebar-sublist li a:hover{background-color:#242d3a}.sidebar-sublist .subitem-submenu-list li{border-top:1px solid rgba(36,45,58,.7)}.sidebar-item-expanded>ul.sidebar-sublist{display:block;background-color:#242d3a80}.subitem-submenu-link .fa{top:14px}.sidebar-hover-elem{width:4px;background:#637CA0;position:absolute;top:-150px;left:226px;transition:all .2s ease;transition-property:top,height;height:36px;display:block}.sidebar.menu-collapsed .sidebar-hover-elem{left:46px}.active-link{background-color:#637ca0}@media (max-width: 544px){.sidebar.menu-collapsed{width:0}.sidebar-hover-elem,.sidebar-select-elem{display:none}}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i6.SlimScroll, selector: "[slim-scroll]", inputs: ["slimScrollOptions"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Sidebar, decorators: [{
165
+ type: Component,
166
+ args: [{ selector: "sidebar", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [SidebarService], template: "<div class=\"app-sidebar\" #sidebar [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\" (mouseleave.out-zone)=\"sendAwayHoverElement();\">\r\n <ul class=\"nav nav-sidebar flex-column flex-nowrap\" slim-scroll [slimScrollOptions]=\"{height: menuHeight}\" style=\"position:relative; zoom:1\">\r\n\r\n <li *ngFor=\"let item of menuItems\" class=\"sidebar-list-item level-{{item.level}}\" [ngClass]=\"{'has-sub-menu': item.subMenu, 'sidebar-item-expanded': item.expanded}\" [class.sidebar-item-wip]=\"item.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"sidebar-hover-elem\"></div>\r\n</div>\r\n\r\n<ng-template #menuItem let-item>\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"(!item.routerLink && !item.subMenu) || item.wip\" [href]=\"item.link ? item.link : '#'\" (click)=\"item.wip && $event.preventDefault()\" target=\"_blank\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.routerLink && !item.subMenu && !item.wip\" class=\"sidebar-list-link {{item.cssClass || ''}}\" [routerLink]=\"[item.routerLink]\" [queryParams]=\"item.queryParams\" routerLinkActive=\"active-link\" (click.out-zone)=\"collapseMenu($event, item)\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n </a>\r\n\r\n <a [attr.style.padding_left]=\"item.padding_left\" *ngIf=\"item.subMenu && !item.wip\" (click.out-zone)=\"collapseMenu($event, item)\" [attr.href]=\"''\" class=\"sidebar-list-link {{item.cssClass || ''}}\" (mouseenter.out-zone)=\"hoverItem($event)\">\r\n <i *ngIf=\"item.icon\" class=\"{{ item.icon }}\"></i><span>{{ item.title | localize : lc }}</span>\r\n <b class=\"fa fa-angle-down\"></b>\r\n </a>\r\n\r\n <ul *ngIf=\"item.subMenu\" class=\"sidebar-sublist\">\r\n <li *ngFor=\"let subitem of item.subMenu\" class=\"sidebar-sublist-item level-{{subitem.level}}\" [class.sidebar-item-wip]=\"subitem.wip\">\r\n <ng-container *ngTemplateOutlet=\"menuItem; context : {$implicit: subitem}\"></ng-container>\r\n </li>\r\n </ul>\r\n</ng-template>", styles: [".app-sidebar{background:#344154;height:100%;min-height:100%;position:fixed;width:230px;overflow:hidden;display:block;z-index:9;margin-top:60px}.app-sidebar.menu-collapsed{width:50px}.app-sidebar.menu-collapsed a.sidebar-list-link b{display:none}.app-sidebar.menu-collapsed .sidebar-sublist{position:absolute;top:-1px;left:52px;width:0;display:block;overflow:hidden}.sidebar-list-item{display:block;position:relative;float:none;padding:0;border-bottom:1px solid rgba(36,45,58,.5);box-shadow:0 1px #ffffff1a}.sidebar-item-wip{cursor:default}.sidebar-item-wip a{color:#999!important}a.sidebar-list-link{display:block;height:42px;padding-left:18px!important;padding-top:0!important;text-shadow:none;font-size:13px;letter-spacing:.02em;text-decoration:none;color:#fff;line-height:42px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .2s ease}a.sidebar-list-link i{margin-right:16px;width:16px;display:inline-block}a.sidebar-list-link b{display:block;opacity:1;width:14px;height:14px;line-height:14px;text-shadow:none;font-size:18px;position:absolute;right:10px;top:14px;padding:0;text-align:center;color:#fff;transition:transform .2s linear}a.sidebar-list-link:hover{background-color:#242d3a}.sidebar-list-item.sidebar-item-expanded>.sidebar-list-link b,.sidebar-sublist-item.sidebar-item-expanded>.sidebar-list-link b{transform:rotate(180deg)}.sidebar-sublist{display:none;padding:0;list-style:none;position:relative;background-color:#242d3a80}.sidebar-sublist li{display:block;float:none;padding:0;border-bottom:none;position:relative;border-bottom:1px solid rgba(36,45,58,.7)}.sidebar-sublist li:last-child{border-bottom:none}.sidebar-sublist li a{display:block;text-shadow:none;font-size:13px;text-decoration:none;color:#fff;padding-left:40px!important;height:42px;line-height:42px}.sidebar-sublist li a:before{font-family:FontAwesome;content:\"\\f1db\";margin-right:10px;font-size:10px}.sidebar-sublist li a:hover{background-color:#242d3a}.sidebar-sublist .subitem-submenu-list li{border-top:1px solid rgba(36,45,58,.7)}.sidebar-item-expanded>ul.sidebar-sublist{display:block;background-color:#242d3a80}.subitem-submenu-link .fa{top:14px}.sidebar-hover-elem{width:4px;background:#637CA0;position:absolute;top:-150px;left:226px;transition:all .2s ease;transition-property:top,height;height:36px;display:block}.sidebar.menu-collapsed .sidebar-hover-elem{left:46px}.active-link{background-color:#637ca0}@media (max-width: 544px){.sidebar.menu-collapsed{width:0}.sidebar-hover-elem,.sidebar-select-elem{display:none}}\n"] }]
167
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Type, decorators: [{
168
+ type: Optional
169
+ }, {
170
+ type: Inject,
171
+ args: [MENU_LOCALIZATION]
172
+ }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i2.Router }, { type: i3.AppState }, { type: i4.SidebarService }, { type: i0.NgZone }]; }, propDecorators: { sidebar: [{
173
+ type: ViewChild,
174
+ args: ["sidebar", { static: true }]
175
+ }], onWindowResize: [{
176
+ type: HostListener,
177
+ args: ["window:resize"]
178
+ }] } });
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBb0IsUUFBUSxFQUFRLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4TCxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFLeEQsZUFBZTtBQUNmLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFjMUQsTUFBTSxPQUFPLE9BQU87SUFZaEIsWUFBbUIsRUFBdUIsRUFBeUMsTUFBaUMsRUFBVSxHQUFzQixFQUFVLFdBQXVCLEVBQVUsT0FBZSxFQUFTLE1BQWdCLEVBQVUsZUFBK0IsRUFBVSxJQUFZO1FBQW5SLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQW9GLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFUL1Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBUzFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGtC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RCxPQUFPO2tCQVJuQixTQUFTOytCQUNJLFNBQVMsaUJBQ0osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsQ0FBQzs7MEJBZ0JrQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjttTUFGekMsT0FBTztzQkFBOUMsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQXdEL0IsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIE9wdGlvbmFsLCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IFNpZGViYXJTZXJ2aWNlIH0gZnJvbSBcIi4vc2lkZWJhci5jb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNRU5VX0xPQ0FMSVpBVElPTiB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuaW1wb3J0IHsgQXBwU3RhdGUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGpRdWVyeTtcclxuZGVjbGFyZSB2YXIgJDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwic2lkZWJhclwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbU2lkZWJhclNlcnZpY2VdLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL3NpZGViYXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3NpZGViYXIuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZWJhciB7XHJcbiAgICBwdWJsaWMgbWVudUl0ZW1zOiBBcnJheTxhbnk+O1xyXG4gICAgcHVibGljIG1lbnVIZWlnaHQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpc01lbnVDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc01lbnVTaG91bGRDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgc2hvd0hvdmVyRWxlbTogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBob3ZlckVsZW1IZWlnaHQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBob3ZlckVsZW1Ub3A6IG51bWJlcjtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwic2lkZWJhclwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBzaWRlYmFyOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgQE9wdGlvbmFsKCkgQEluamVjdChNRU5VX0xPQ0FMSVpBVElPTikgbGNNZW51OiBUeXBlPExvY2FsaXphdGlvblNlcnZpY2U+LCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLCBwdWJsaWMgX3N0YXRlOiBBcHBTdGF0ZSwgcHJpdmF0ZSBfc2lkZWJhclNlcnZpY2U6IFNpZGViYXJTZXJ2aWNlLCBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcIm1lbnUuaXNDb2xsYXBzZWRcIiwgKGlzQ29sbGFwc2VkKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNNZW51Q29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9zdGF0ZS5zdWJzY3JpYmUoXCJhcHBsaWNhdGlvbi5EZXBsb3lBdmFpbGFibGVcIiwgKGF2YWlsYWJsZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYXZhaWxhYmxlKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCA+IDApID8gd2luZG93LmlubmVyV2lkdGggOiBzY3JlZW4ud2lkdGg7XHJcbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPD0gNzY4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGUubm90aWZ5RGF0YUNoYW5nZWQoXCJtZW51LmlzQ29sbGFwc2VkXCIsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMubGMgPSB0aGlzLmxjLmdlbmVyYXRlRnJvbVR5cGUobGNNZW51KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gSXZuZW50YXJzaSB1bmEgc29ydGEgZGkgcmVmcmVzaFxyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgdmFyIG1pID0gdGhpcy5fc2lkZWJhclNlcnZpY2UuZ2V0TWVudUl0ZW1zKCk7O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWkubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHRoaXMuYXNzaWduTGV2ZWwobWlbaV0sIDEpO1xyXG5cclxuICAgICAgICB0aGlzLm1lbnVJdGVtcyA9IG1pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc2hvdWxkTWVudUNvbGxhcHNlKCkpXHJcbiAgICAgICAgICAgIHRoaXMubWVudUNvbGxhcHNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlU2lkZWJhckhlaWdodCgpO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnNldFNpZGViYXJXaWR0aCh0aGlzLnNpZGViYXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXNzaWduTGV2ZWwobWVudUl0ZW06IGFueSwgbGV2ZWwpIHtcclxuICAgICAgICBtZW51SXRlbS5sZXZlbCA9IGxldmVsO1xyXG5cclxuICAgICAgICBpZiAoIW1lbnVJdGVtLnN1Yk1lbnUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbS5zdWJNZW51Lmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB0aGlzLmFzc2lnbkxldmVsKG1lbnVJdGVtLnN1Yk1lbnVbaV0sIGxldmVsICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcclxuICAgIHB1YmxpYyBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcclxuICAgICAgICB2YXIgaXNNZW51U2hvdWxkQ29sbGFwc2VkID0gdGhpcy5fc2hvdWxkTWVudUNvbGxhcHNlKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzTWVudVNob3VsZENvbGxhcHNlZCAhPT0gaXNNZW51U2hvdWxkQ29sbGFwc2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVudUNvbGxhcHNlU3RhdGVDaGFuZ2UoaXNNZW51U2hvdWxkQ29sbGFwc2VkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc01lbnVTaG91bGRDb2xsYXBzZWQgPSBpc01lbnVTaG91bGRDb2xsYXBzZWQ7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTaWRlYmFySGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvdWxkTWVudUNvbGxhcHNlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA3Njg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1lbnVDb2xsYXBzZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1lbnVDb2xsYXBzZVN0YXRlQ2hhbmdlKHRydWUpO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnNldFNpZGViYXJXaWR0aCh0aGlzLnNpZGViYXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1lbnVDb2xsYXBzZVN0YXRlQ2hhbmdlKGlzQ29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc01lbnVDb2xsYXBzZWQgPSBpc0NvbGxhcHNlZDtcclxuICAgICAgICB0aGlzLl9zdGF0ZS5ub3RpZnlEYXRhQ2hhbmdlZChcIm1lbnUuaXNDb2xsYXBzZWRcIiwgdGhpcy5pc01lbnVDb2xsYXBzZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtZW51RXhwYW5kKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubWVudUNvbGxhcHNlU3RhdGVDaGFuZ2UoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnNldFNpZGViYXJXaWR0aCh0aGlzLnNpZGViYXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhvdmVySXRlbSgkZXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dIb3ZlckVsZW0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaG92ZXJFbGVtSGVpZ2h0ID0gJGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuaG92ZXJFbGVtVG9wID0gJGV2ZW50LmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gNjA7XHJcblxyXG4gICAgICAgICQoXCIuc2lkZWJhci1ob3Zlci1lbGVtXCIpLmNzcyhcInRvcFwiLCB0aGlzLmhvdmVyRWxlbVRvcCArIFwicHhcIik7XHJcbiAgICAgICAgJChcIi5zaWRlYmFyLWhvdmVyLWVsZW1cIikuY3NzKFwiaGVpZ2h0XCIsIHRoaXMuaG92ZXJFbGVtSGVpZ2h0ICsgXCJweFwiKTtcclxuICAgICAgICAkKFwiLnNpZGViYXItaG92ZXItZWxlbVwiKS5hZGRDbGFzcyhcInNob3ctaG92ZXItZWxlbVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VuZEF3YXlIb3ZlckVsZW1lbnQoKSB7XHJcbiAgICAgICAgdGhpcy5ob3ZlckVsZW1Ub3AgPSAtMjAwO1xyXG5cclxuICAgICAgICAkKFwiLnNpZGViYXItaG92ZXItZWxlbVwiKS5jc3MoXCJ0b3BcIiwgdGhpcy5ob3ZlckVsZW1Ub3AgKyBcInB4XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVTaWRlYmFySGVpZ2h0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubWVudUhlaWdodCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQgLSA2MDtcclxuICAgIH1cclxuXHJcbiAgICAvL05vbm9zdGFudGUgcXVlc3RhIGZ1bnppb25lIHNpYSBjb2xsZWdhdGEgY29uIChjbGljay5vdXQtem9uZSkgcGVyIHF1YWxjaGUgbW90aXZvIGFuZ3VsYXIgbGUgZXNlZ3VlIGNvbXVucXVlIG5lbGxhIHN1YSB6b25lXHJcbiAgICAvL2dlbmVyYW5kbyB1biBwbycgZGkgaXJyZXNwb25zaXZpdO+/vSBpbml6aWFsZS4uLiBzdWNjZWRlIHNvbG8gY29sIGNsaWNrLi4uIGJvaFxyXG4gICAgcHVibGljIGNvbGxhcHNlTWVudSgkZXZlbnQsIGl0ZW0pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc01lbnVDb2xsYXBzZWQpXHJcbiAgICAgICAgICAgIHRoaXMubWVudUV4cGFuZCgpO1xyXG5cclxuICAgICAgICBpZiAoIWl0ZW0ubGV2ZWwpXHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkxpdmVsbG8gbm9uIHByZXNlbnRlIGluIHVuIG9nZ2V0dG8gZGVsIG1lbnUhXCIpO1xyXG5cclxuICAgICAgICAvL04uQjogVHV0dGUgbGUgZnVuemlvbmkgZGkgSlF1ZXJ5IGxlIGVzZ3VvIGZ1b3JpIGRhIEFuZ3VsYXIgZGF0byBjaGUgYyfvv70gdW5hIGJ1b25hIHByb2JhYmlsaXTvv70gY2hlIHNpYW5vIGV2ZW50aSBhc2luY3JvbmlcclxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4geyB0aGlzLm91dHNpZGVBbmd1bGFyQ2xpY2tIYW5kbGVyKCRldmVudCwgaXRlbSk7IH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvdXRzaWRlQW5ndWxhckNsaWNrSGFuZGxlcigkZXZlbnQsIGl0ZW0pIHtcclxuICAgICAgICBsZXQgbGV2ZWxDbGFzcyA9IGl0ZW0ubGV2ZWwgPyBcImxldmVsLVwiICsgKGl0ZW0ubGV2ZWwpIDogXCJcIjtcclxuICAgICAgICBsZXQgbGV2ZWxDbGFzc1BsdXNPbmUgPSBpdGVtLmxldmVsID8gXCJsZXZlbC1cIiArIChpdGVtLmxldmVsICsgMSkgOiBcIlwiO1xyXG4gICAgICAgIGxldCBzbGlkZVBlcmlvZCA9IDQwMDtcclxuXHJcbiAgICAgICAgdmFyIGxpbmsgPSBqUXVlcnkoJGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xyXG5cclxuICAgICAgICAvL1NlIGwnZWxlbWVudG8gbm9uIO+/vSBlc3BhbnNvXHJcbiAgICAgICAgaWYgKCFsaW5rLmNsb3Nlc3QoXCIuc2lkZWJhci1pdGVtLWV4cGFuZGVkXCIgKyBcIl9cIiArIGxldmVsQ2xhc3MpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAvL1Rpcm8gc3UgdHV0dGkgZ2xpIGVsZW1lbnRpIGRlbGxvIHN0ZXNzbyBsaXZlbGxvIGVzcGFuc2kgZSBsaSBjaGl1ZG9cclxuXHJcbiAgICAgICAgICAgIC8vU2UgaG8gY29tcHJlc3NvIHVuIG1lbnUgdmFkbyBhIHZlZGVyZSBzZSBjJ++/vSBhbmNoZSB1biBhbHRybyBtZW51IGRpIGxpdmVsbG8gcGnvv70gYmFzc28gZGEgcmljaGl1ZGVyZVxyXG4gICAgICAgICAgICBqUXVlcnkoXCJ1bC5uYXYtc2lkZWJhciBsaVwiICsgXCIuXCIgKyAobGV2ZWxDbGFzc1BsdXNPbmUpKS5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGxldCBjbG9zZXN0TGkgPSBqUXVlcnkodGhpcykuY2xvc2VzdChcImxpXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNsb3Nlc3RMaS5jaGlsZHJlbihcInVsXCIpLmxlbmd0aCAmJiBjbG9zZXN0TGkuaGFzQ2xhc3MoXCJzaWRlYmFyLWl0ZW0tZXhwYW5kZWRcIikpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZXN0TGkuY2hpbGRyZW4oXCJ1bFwiKS5zbGlkZVVwKHNsaWRlUGVyaW9kKTtcclxuICAgICAgICAgICAgICAgICAgICAvL0xlIHVzbyBzZW1wcmUgZW50cmFtYmUgaW5zaWVtZS4gTGEgcHJpbWEg77+9IGxhIGNsYXNzZSBwZXIgbGEgbG9naWNhLCBsYSBzZWNvbmRhIHBlciBsZSBhbmltYXppb25pXHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VzdExpLnJlbW92ZUNsYXNzKFwic2lkZWJhci1pdGVtLWV4cGFuZGVkXCIgKyBcIl9cIiArIChsZXZlbENsYXNzUGx1c09uZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RMaS5yZW1vdmVDbGFzcyhcInNpZGViYXItaXRlbS1leHBhbmRlZFwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvL0RvcG9kaWNo77+9IHJpY2hpdWRvIHR1dHRpIHF1ZWxsaSBkZWwgbWlvIGxpdmVsbG8gYXR0dWFsZVxyXG4gICAgICAgICAgICBqUXVlcnkoXCJ1bC5uYXYtc2lkZWJhciBsaVwiICsgXCIuXCIgKyBsZXZlbENsYXNzKS5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGxldCBjbG9zZXN0TGkgPSBqUXVlcnkodGhpcykuY2xvc2VzdChcImxpXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNsb3Nlc3RMaS5jaGlsZHJlbihcInVsXCIpLmxlbmd0aCAmJiBjbG9zZXN0TGkuaGFzQ2xhc3MoXCJzaWRlYmFyLWl0ZW0tZXhwYW5kZWRcIikpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZXN0TGkuY2hpbGRyZW4oXCJ1bFwiKS5zbGlkZVVwKHNsaWRlUGVyaW9kKTtcclxuICAgICAgICAgICAgICAgICAgICAvL0xlIHVzbyBzZW1wcmUgZW50cmFtYmUgaW5zaWVtZS4gTGEgcHJpbWEg77+9IGxhIGNsYXNzZSBwZXIgbGEgbG9naWNhLCBsYSBzZWNvbmRhIHBlciBsZSBhbmltYXppb25pXHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VzdExpLnJlbW92ZUNsYXNzKFwic2lkZWJhci1pdGVtLWV4cGFuZGVkXCIgKyBcIl9cIiArIGxldmVsQ2xhc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RMaS5yZW1vdmVDbGFzcyhcInNpZGViYXItaXRlbS1leHBhbmRlZFwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvL0RvcG9kaWNo77+9IGVzcGFuZG8gcXVlbGxvIGF0dHVhbGVcclxuICAgICAgICAgICAgbGluay5uZXh0KCkuc2xpZGVEb3duKHNsaWRlUGVyaW9kKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpdGVtLnN1Yk1lbnUpIHtcclxuICAgICAgICAgICAgICAgIC8vTGUgdXNvIHNlbXByZSBlbnRyYW1iZSBpbnNpZW1lLiBMYSBwcmltYSDvv70gbGEgY2xhc3NlIHBlciBsYSBsb2dpY2EsIGxhIHNlY29uZGEgcGVyIGxlIGFuaW1hemlvbmlcclxuICAgICAgICAgICAgICAgIGxpbmsuY2xvc2VzdChcImxpXCIpLmFkZENsYXNzKFwic2lkZWJhci1pdGVtLWV4cGFuZGVkXCIgKyBcIl9cIiArIGxldmVsQ2xhc3MpO1xyXG4gICAgICAgICAgICAgICAgbGluay5jbG9zZXN0KFwibGlcIikuYWRkQ2xhc3MoXCJzaWRlYmFyLWl0ZW0tZXhwYW5kZWRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvL0FsdHJpbWVudGksIHNlIGwnZWxlbWVudG8g77+9IGdp77+9IGVzcGFuc28gbG8gY2hpdWRvXHJcbiAgICAgICAgICAgIGlmIChpdGVtLnN1Yk1lbnUpIHtcclxuICAgICAgICAgICAgICAgIC8vTGUgdXNvIHNlbXByZSBlbnRyYW1iZSBpbnNpZW1lLiBMYSBwcmltYSDvv70gbGEgY2xhc3NlIHBlciBsYSBsb2dpY2EsIGxhIHNlY29uZGEgcGVyIGxlIGFuaW1hemlvbmlcclxuICAgICAgICAgICAgICAgIGxpbmsuY2xvc2VzdChcImxpXCIpLnJlbW92ZUNsYXNzKFwic2lkZWJhci1pdGVtLWV4cGFuZGVkXCIgKyBcIl9cIiArIGxldmVsQ2xhc3MpO1xyXG4gICAgICAgICAgICAgICAgbGluay5jbG9zZXN0KFwibGlcIikucmVtb3ZlQ2xhc3MoXCJzaWRlYmFyLWl0ZW0tZXhwYW5kZWRcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxpbmsubmV4dCgpLnNsaWRlVXAoc2xpZGVQZXJpb2QpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJhcHAtc2lkZWJhclwiICNzaWRlYmFyIFtuZ0NsYXNzXT1cInsnbWVudS1jb2xsYXBzZWQnOiBpc01lbnVDb2xsYXBzZWR9XCIgKG1vdXNlbGVhdmUub3V0LXpvbmUpPVwic2VuZEF3YXlIb3ZlckVsZW1lbnQoKTtcIj5cclxuICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtc2lkZWJhciBmbGV4LWNvbHVtbiBmbGV4LW5vd3JhcFwiIHNsaW0tc2Nyb2xsIFtzbGltU2Nyb2xsT3B0aW9uc109XCJ7aGVpZ2h0OiBtZW51SGVpZ2h0fVwiIHN0eWxlPVwicG9zaXRpb246cmVsYXRpdmU7IHpvb206MVwiPlxyXG5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudUl0ZW1zXCIgY2xhc3M9XCJzaWRlYmFyLWxpc3QtaXRlbSBsZXZlbC17e2l0ZW0ubGV2ZWx9fVwiIFtuZ0NsYXNzXT1cInsnaGFzLXN1Yi1tZW51JzogaXRlbS5zdWJNZW51LCAnc2lkZWJhci1pdGVtLWV4cGFuZGVkJzogaXRlbS5leHBhbmRlZH1cIiBbY2xhc3Muc2lkZWJhci1pdGVtLXdpcF09XCJpdGVtLndpcFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudUl0ZW07IGNvbnRleHQgOiB7JGltcGxpY2l0OiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWhvdmVyLWVsZW1cIj48L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI21lbnVJdGVtIGxldC1pdGVtPlxyXG4gICAgPGEgW2F0dHIuc3R5bGUucGFkZGluZ19sZWZ0XT1cIml0ZW0ucGFkZGluZ19sZWZ0XCIgKm5nSWY9XCIoIWl0ZW0ucm91dGVyTGluayAmJiAhaXRlbS5zdWJNZW51KSB8fCBpdGVtLndpcFwiIFtocmVmXT1cIml0ZW0ubGluayA/IGl0ZW0ubGluayA6ICcjJ1wiIChjbGljayk9XCJpdGVtLndpcCAmJiAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwic2lkZWJhci1saXN0LWxpbmsge3tpdGVtLmNzc0NsYXNzIHx8ICcnfX1cIiAobW91c2VlbnRlci5vdXQtem9uZSk9XCJob3Zlckl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgIDxpICpuZ0lmPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX1cIj48L2k+PHNwYW4+e3sgaXRlbS50aXRsZSB8IGxvY2FsaXplIDogbGMgfX08L3NwYW4+XHJcbiAgICA8L2E+XHJcblxyXG4gICAgPGEgW2F0dHIuc3R5bGUucGFkZGluZ19sZWZ0XT1cIml0ZW0ucGFkZGluZ19sZWZ0XCIgKm5nSWY9XCJpdGVtLnJvdXRlckxpbmsgJiYgIWl0ZW0uc3ViTWVudSAmJiAhaXRlbS53aXBcIiBjbGFzcz1cInNpZGViYXItbGlzdC1saW5rIHt7aXRlbS5jc3NDbGFzcyB8fCAnJ319XCIgW3JvdXRlckxpbmtdPVwiW2l0ZW0ucm91dGVyTGlua11cIiBbcXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmUtbGlua1wiIChjbGljay5vdXQtem9uZSk9XCJjb2xsYXBzZU1lbnUoJGV2ZW50LCBpdGVtKVwiIChtb3VzZWVudGVyLm91dC16b25lKT1cImhvdmVySXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJpdGVtLmljb25cIiBjbGFzcz1cInt7IGl0ZW0uaWNvbiB9fVwiPjwvaT48c3Bhbj57eyBpdGVtLnRpdGxlIHwgbG9jYWxpemUgOiBsYyB9fTwvc3Bhbj5cclxuICAgIDwvYT5cclxuXHJcbiAgICA8YSBbYXR0ci5zdHlsZS5wYWRkaW5nX2xlZnRdPVwiaXRlbS5wYWRkaW5nX2xlZnRcIiAqbmdJZj1cIml0ZW0uc3ViTWVudSAmJiAhaXRlbS53aXBcIiAoY2xpY2sub3V0LXpvbmUpPVwiY29sbGFwc2VNZW51KCRldmVudCwgaXRlbSlcIiBbYXR0ci5ocmVmXT1cIicnXCIgY2xhc3M9XCJzaWRlYmFyLWxpc3QtbGluayB7e2l0ZW0uY3NzQ2xhc3MgfHwgJyd9fVwiIChtb3VzZWVudGVyLm91dC16b25lKT1cImhvdmVySXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJpdGVtLmljb25cIiBjbGFzcz1cInt7IGl0ZW0uaWNvbiB9fVwiPjwvaT48c3Bhbj57eyBpdGVtLnRpdGxlIHwgbG9jYWxpemUgOiBsYyB9fTwvc3Bhbj5cclxuICAgICAgICA8YiBjbGFzcz1cImZhIGZhLWFuZ2xlLWRvd25cIj48L2I+XHJcbiAgICA8L2E+XHJcblxyXG4gICAgPHVsICpuZ0lmPVwiaXRlbS5zdWJNZW51XCIgY2xhc3M9XCJzaWRlYmFyLXN1Ymxpc3RcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHN1Yml0ZW0gb2YgaXRlbS5zdWJNZW51XCIgY2xhc3M9XCJzaWRlYmFyLXN1Ymxpc3QtaXRlbSBsZXZlbC17e3N1Yml0ZW0ubGV2ZWx9fVwiIFtjbGFzcy5zaWRlYmFyLWl0ZW0td2lwXT1cInN1Yml0ZW0ud2lwXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51SXRlbTsgY29udGV4dCA6IHskaW1wbGljaXQ6IHN1Yml0ZW19XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -0,0 +1,58 @@
1
+ // Angular
2
+ import { Inject, Injectable } from "@angular/core";
3
+ // Applicazione
4
+ import { MENU } from "@esfaenza/core/domain";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@esfaenza/extensions";
7
+ import * as i2 from "@esfaenza/access-control";
8
+ export class SidebarService {
9
+ constructor(utiExts, aac, menuItems) {
10
+ this.utiExts = utiExts;
11
+ this.aac = aac;
12
+ this.menuItems = menuItems;
13
+ this.custom_permissions = [];
14
+ }
15
+ getMenuItems() {
16
+ var items = [];
17
+ var itemsTMP = this.utiExts.deepClone(this.menuItems);
18
+ itemsTMP.forEach(t => {
19
+ if (!t.ac || this.aac.has(t.ac)) {
20
+ if (!t.subMenu || t.subMenu.length == 0)
21
+ items.push(t);
22
+ else {
23
+ var toPush = this.checkSubMenuOverClaims(t);
24
+ items.push(toPush);
25
+ }
26
+ }
27
+ // Calcolo qui per non doverlo calcolare lato HTML
28
+ t.padding_left = t.level > 2 ? (65 + ((t.level - 3) * 15) + 'px !important') : null;
29
+ });
30
+ return items;
31
+ }
32
+ checkSubMenuOverClaims(menuItem) {
33
+ var menuTMP = this.utiExts.deepClone(menuItem);
34
+ menuTMP.subMenu = [];
35
+ menuItem.subMenu.forEach(t => {
36
+ if (!t.ac || this.aac.has(t.ac)) {
37
+ if (!t.subMenu || t.subMenu.length == 0)
38
+ menuTMP.subMenu.push(t);
39
+ else {
40
+ var toPush = this.checkSubMenuOverClaims(t);
41
+ menuTMP.subMenu.push(toPush);
42
+ }
43
+ }
44
+ });
45
+ return menuTMP;
46
+ }
47
+ }
48
+ SidebarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SidebarService, deps: [{ token: i1.UtilityService }, { token: i2.AccessControlService }, { token: MENU }], target: i0.ɵɵFactoryTarget.Injectable });
49
+ SidebarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SidebarService });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SidebarService, decorators: [{
51
+ type: Injectable
52
+ }], ctorParameters: function () { return [{ type: i1.UtilityService }, { type: i2.AccessControlService }, { type: undefined, decorators: [{
53
+ type: Inject,
54
+ args: [MENU]
55
+ }] }]; } });
56
+ class MenuItem {
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU1uRCxlQUFlO0FBQ2YsT0FBTyxFQUFFLElBQUksRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUc5RCxNQUFNLE9BQU8sY0FBYztJQUV2QixZQUFvQixPQUF1QixFQUFVLEdBQXlCLEVBQXdCLFNBQTRCO1FBQTlHLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFBd0IsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFEbEksdUJBQWtCLEdBQVEsRUFBRSxDQUFDO0lBQ3lHLENBQUM7SUFFaEksWUFBWTtRQUNmLElBQUksS0FBSyxHQUFlLEVBQUUsQ0FBQztRQUMzQixJQUFJLFFBQVEsR0FBZSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7b0JBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ2I7b0JBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN0QjthQUNKO1lBRUQsa0RBQWtEO1lBQzVDLENBQUUsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsUUFBa0I7UUFDckMsSUFBSSxPQUFPLEdBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsT0FBTyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFckIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDO29CQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDdkI7b0JBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDaEM7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7MkdBekNRLGNBQWMsb0ZBRWlFLElBQUk7K0dBRm5GLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBRzBFLE1BQU07MkJBQUMsSUFBSTs7QUEwQ2hHLE1BQU0sUUFBUTtDQVViIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgTUVOVSwgQXBwbGljYXRpb25NZW51IH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2lkZWJhclNlcnZpY2Uge1xyXG4gICAgY3VzdG9tX3Blcm1pc3Npb25zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdXRpRXh0czogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgYWFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQEluamVjdChNRU5VKSBwcml2YXRlIG1lbnVJdGVtczogQXBwbGljYXRpb25NZW51W10pIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRNZW51SXRlbXMoKTogQXJyYXk8T2JqZWN0PiB7XHJcbiAgICAgICAgdmFyIGl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcbiAgICAgICAgdmFyIGl0ZW1zVE1QOiBNZW51SXRlbVtdID0gdGhpcy51dGlFeHRzLmRlZXBDbG9uZSh0aGlzLm1lbnVJdGVtcyk7XHJcblxyXG4gICAgICAgIGl0ZW1zVE1QLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdC5hYyB8fCB0aGlzLmFhYy5oYXModC5hYykpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdC5zdWJNZW51IHx8IHQuc3ViTWVudS5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHQpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRvUHVzaCA9IHRoaXMuY2hlY2tTdWJNZW51T3ZlckNsYWltcyh0KTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHRvUHVzaCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIENhbGNvbG8gcXVpIHBlciBub24gZG92ZXJsbyBjYWxjb2xhcmUgbGF0byBIVE1MXHJcbiAgICAgICAgICAgICg8YW55PnQpLnBhZGRpbmdfbGVmdCA9IHQubGV2ZWwgPiAyID8gKDY1ICsgKCh0LmxldmVsIC0gMykgKiAxNSkgKyAncHggIWltcG9ydGFudCcpIDogbnVsbDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrU3ViTWVudU92ZXJDbGFpbXMobWVudUl0ZW06IE1lbnVJdGVtKTogTWVudUl0ZW0ge1xyXG4gICAgICAgIHZhciBtZW51VE1QOiBNZW51SXRlbSA9IHRoaXMudXRpRXh0cy5kZWVwQ2xvbmUobWVudUl0ZW0pO1xyXG4gICAgICAgIG1lbnVUTVAuc3ViTWVudSA9IFtdO1xyXG5cclxuICAgICAgICBtZW51SXRlbS5zdWJNZW51LmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdC5hYyB8fCB0aGlzLmFhYy5oYXModC5hYykpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdC5zdWJNZW51IHx8IHQuc3ViTWVudS5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgICAgICAgICBtZW51VE1QLnN1Yk1lbnUucHVzaCh0KTtcclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0b1B1c2ggPSB0aGlzLmNoZWNrU3ViTWVudU92ZXJDbGFpbXModCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudVRNUC5zdWJNZW51LnB1c2godG9QdXNoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbWVudVRNUDtcclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgTWVudUl0ZW0ge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGFjOiBzdHJpbmc7XHJcbiAgICByb3V0ZXJMaW5rOiBzdHJpbmc7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICAgIGV4cGFuZGVkOiBib29sZWFuO1xyXG4gICAgbGV2ZWw6IG51bWJlcjtcclxuICAgIHF1ZXJ5UGFyYW1zOiBhbnk7XHJcbiAgICBzdWJNZW51OiBNZW51SXRlbVtdO1xyXG59Il19
@@ -0,0 +1,18 @@
1
+ // Angular
2
+ import { NgModule } from "@angular/core";
3
+ // Pipe
4
+ import { Draggable } from "./draggable/draggable.directive";
5
+ import { SlimScroll } from "./slim-scroll/slim-scroll.directive";
6
+ import { Widget } from "./widget/widget.directive";
7
+ import * as i0 from "@angular/core";
8
+ const DIRECTIVES = [Draggable, SlimScroll, Widget];
9
+ export class DirectivesModule {
10
+ }
11
+ DirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ DirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DirectivesModule, declarations: [Draggable, SlimScroll, Widget], exports: [Draggable, SlimScroll, Widget] });
13
+ DirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DirectivesModule });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DirectivesModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{ imports: [], declarations: [...DIRECTIVES], exports: [...DIRECTIVES] }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvc3JjL2RpcmVjdGl2ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbkQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBR25ELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFIVCxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBN0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNOzhHQUdwQyxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsUUFBUTttQkFBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBQaXBlXHJcbmltcG9ydCB7IERyYWdnYWJsZSB9IGZyb20gXCIuL2RyYWdnYWJsZS9kcmFnZ2FibGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IFNsaW1TY3JvbGwgfSBmcm9tIFwiLi9zbGltLXNjcm9sbC9zbGltLXNjcm9sbC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgV2lkZ2V0IH0gZnJvbSBcIi4vd2lkZ2V0L3dpZGdldC5kaXJlY3RpdmVcIjtcclxuXHJcbmNvbnN0IERJUkVDVElWRVMgPSBbRHJhZ2dhYmxlLCBTbGltU2Nyb2xsLCBXaWRnZXRdO1xyXG5cclxuQE5nTW9kdWxlKHsgaW1wb3J0czogW10sIGRlY2xhcmF0aW9uczogWy4uLkRJUkVDVElWRVNdLCBleHBvcnRzOiBbLi4uRElSRUNUSVZFU10gfSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGl2ZXNNb2R1bGUgeyB9Il19
@@ -0,0 +1,48 @@
1
+ // Angular
2
+ import { Directive, Input } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@esfaenza/core/services";
5
+ export class Draggable {
6
+ constructor(_elementRef, zone, _state) {
7
+ this._elementRef = _elementRef;
8
+ this.zone = zone;
9
+ this._state = _state;
10
+ }
11
+ ngOnInit() {
12
+ this.zone.runOutsideAngular(() => {
13
+ var handle = this.handlerSelector || '.modal-header';
14
+ jQuery(this._elementRef.nativeElement).children(':first-child').draggable({
15
+ handle,
16
+ helper: function (event, ui) {
17
+ var oBody = $(document).find('body');
18
+ var containmentDiv = $('<div id="div_containment"></div>');
19
+ containmentDiv
20
+ .css('z-index', "-99999")
21
+ .css('top', "0")
22
+ .css('left', "0")
23
+ .css('width', "100%")
24
+ .css('height', "100%")
25
+ .css('position', 'absolute');
26
+ containmentDiv.appendTo(oBody);
27
+ return this;
28
+ },
29
+ stop: function (event, ui) {
30
+ $(document).filter('body').find('#div_containment').remove();
31
+ },
32
+ containment: this._state.Embedded ? "#div_containment" : null
33
+ });
34
+ });
35
+ }
36
+ }
37
+ Draggable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Draggable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.AppState }], target: i0.ɵɵFactoryTarget.Directive });
38
+ Draggable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: Draggable, selector: "[emaDraggable]", inputs: { handlerSelector: ["emaDraggable", "handlerSelector"] }, ngImport: i0 });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Draggable, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ selector: "[emaDraggable]"
43
+ }]
44
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.AppState }]; }, propDecorators: { handlerSelector: [{
45
+ type: Input,
46
+ args: ['emaDraggable']
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9zcmMvZHJhZ2dhYmxlL2RyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFXckUsTUFBTSxPQUFPLFNBQVM7SUFHbEIsWUFBb0IsV0FBdUIsRUFBVSxJQUFZLEVBQVUsTUFBZ0I7UUFBdkUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVTtJQUFJLENBQUM7SUFFaEcsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQzdCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksZUFBZSxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RFLE1BQU07Z0JBQ04sTUFBTSxFQUFFLFVBQVUsS0FBSyxFQUFFLEVBQUU7b0JBQ3ZCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3JDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO29CQUMzRCxjQUFjO3lCQUNULEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDO3lCQUN4QixHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQzt5QkFDZixHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQzt5QkFDaEIsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7eUJBQ3BCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO3lCQUNyQixHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNqQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvQixPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQztnQkFDRCxJQUFJLEVBQUUsVUFBVSxLQUFLLEVBQUUsRUFBRTtvQkFDckIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakUsQ0FBQztnQkFDRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ2hFLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7c0dBN0JRLFNBQVM7MEZBQVQsU0FBUzsyRkFBVCxTQUFTO2tCQUhyQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzdCOzZJQUUwQixlQUFlO3NCQUFyQyxLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nWm9uZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgalF1ZXJ5O1xyXG5kZWNsYXJlIHZhciAkO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbZW1hRHJhZ2dhYmxlXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmFnZ2FibGUge1xyXG4gICAgQElucHV0KCdlbWFEcmFnZ2FibGUnKSBoYW5kbGVyU2VsZWN0b3I6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSBfc3RhdGU6IEFwcFN0YXRlKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgaGFuZGxlID0gdGhpcy5oYW5kbGVyU2VsZWN0b3IgfHwgJy5tb2RhbC1oZWFkZXInO1xyXG4gICAgICAgICAgICBqUXVlcnkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5jaGlsZHJlbignOmZpcnN0LWNoaWxkJykuZHJhZ2dhYmxlKHtcclxuICAgICAgICAgICAgICAgIGhhbmRsZSxcclxuICAgICAgICAgICAgICAgIGhlbHBlcjogZnVuY3Rpb24gKGV2ZW50LCB1aSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBvQm9keSA9ICQoZG9jdW1lbnQpLmZpbmQoJ2JvZHknKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY29udGFpbm1lbnREaXYgPSAkKCc8ZGl2IGlkPVwiZGl2X2NvbnRhaW5tZW50XCI+PC9kaXY+Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbm1lbnREaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygnei1pbmRleCcsIFwiLTk5OTk5XCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3RvcCcsIFwiMFwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCdsZWZ0JywgXCIwXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3dpZHRoJywgXCIxMDAlXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ2hlaWdodCcsIFwiMTAwJVwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5tZW50RGl2LmFwcGVuZFRvKG9Cb2R5KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdG9wOiBmdW5jdGlvbiAoZXZlbnQsIHVpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkuZmlsdGVyKCdib2R5JykuZmluZCgnI2Rpdl9jb250YWlubWVudCcpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5tZW50OiB0aGlzLl9zdGF0ZS5FbWJlZGRlZCA/IFwiI2Rpdl9jb250YWlubWVudFwiIDogbnVsbFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtY29yZS1kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL3NyYy9lc2ZhZW56YS1jb3JlLWRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './draggable/draggable.directive';
2
+ export * from './slim-scroll/slim-scroll.directive';
3
+ export * from './widget/widget.directive';
4
+ export * from './directives.module';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcmFnZ2FibGUvZHJhZ2dhYmxlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpbS1zY3JvbGwvc2xpbS1zY3JvbGwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQvd2lkZ2V0LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy5tb2R1bGUnOyJdfQ==
@@ -0,0 +1,40 @@
1
+ // Angular
2
+ import { Directive, Input } from "@angular/core";
3
+ // Direttive, Componenti, Librerie
4
+ import "jquery-slimscroll";
5
+ import * as i0 from "@angular/core";
6
+ export class SlimScroll {
7
+ constructor(_elementRef, zone) {
8
+ this._elementRef = _elementRef;
9
+ this.zone = zone;
10
+ }
11
+ ngOnChanges(changes) {
12
+ this._scroll();
13
+ }
14
+ _scroll() {
15
+ this._destroy();
16
+ this._init();
17
+ }
18
+ //Stacco slimscroll da Angular dato che registra dei listener sull'oggetto in cui viene creato che spammerebbero la change detection
19
+ _init() {
20
+ this.zone.runOutsideAngular(() => {
21
+ jQuery(this._elementRef.nativeElement).slimScroll(this.slimScrollOptions);
22
+ });
23
+ }
24
+ _destroy() {
25
+ this.zone.runOutsideAngular(() => {
26
+ jQuery(this._elementRef.nativeElement).slimScroll({ destroy: true });
27
+ });
28
+ }
29
+ }
30
+ SlimScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SlimScroll, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
31
+ SlimScroll.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SlimScroll, selector: "[slim-scroll]", inputs: { slimScrollOptions: "slimScrollOptions" }, usesOnChanges: true, ngImport: i0 });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SlimScroll, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: "[slim-scroll]"
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { slimScrollOptions: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpbS1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL3NyYy9zbGltLXNjcm9sbC9zbGltLXNjcm9sbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLGtDQUFrQztBQUNsQyxPQUFPLG1CQUFtQixDQUFDOztBQU8zQixNQUFNLE9BQU8sVUFBVTtJQUduQixZQUFvQixXQUF1QixFQUFVLElBQVk7UUFBN0MsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTztRQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sT0FBTztRQUNYLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELG9JQUFvSTtJQUM1SCxLQUFLO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFFBQVE7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VHQTFCUSxVQUFVOzJGQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFIdEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtpQkFDNUI7c0hBRW1CLGlCQUFpQjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgTmdab25lIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IFwianF1ZXJ5LXNsaW1zY3JvbGxcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGpRdWVyeTtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW3NsaW0tc2Nyb2xsXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGltU2Nyb2xsIHtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzbGltU2Nyb2xsT3B0aW9uczogT2JqZWN0O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgem9uZTogTmdab25lKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlcykge1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Njcm9sbCgpIHtcclxuICAgICAgICB0aGlzLl9kZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5faW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vU3RhY2NvIHNsaW1zY3JvbGwgZGEgQW5ndWxhciBkYXRvIGNoZSByZWdpc3RyYSBkZWkgbGlzdGVuZXIgc3VsbCdvZ2dldHRvIGluIGN1aSB2aWVuZSBjcmVhdG8gY2hlIHNwYW1tZXJlYmJlcm8gbGEgY2hhbmdlIGRldGVjdGlvblxyXG4gICAgcHJpdmF0ZSBfaW5pdCgpIHtcclxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICBqUXVlcnkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5zbGltU2Nyb2xsKHRoaXMuc2xpbVNjcm9sbE9wdGlvbnMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2Rlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgalF1ZXJ5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuc2xpbVNjcm9sbCh7IGRlc3Ryb3k6IHRydWUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,36 @@
1
+ // Angular
2
+ import { Directive } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ export class Widget {
5
+ constructor(el) {
6
+ this.$el = jQuery(el.nativeElement);
7
+ jQuery.fn.widgster.Constructor.DEFAULTS.bodySelector = ".widget-body";
8
+ /*
9
+ When widget is closed remove its parent if it is .col-*
10
+ */
11
+ jQuery(document).on("close.widgster", (e) => {
12
+ let $colWrap = jQuery(e.target).closest(' [class*="col-"]:not(.widget-container)');
13
+ // remove colWrap only if there are no more widgets inside
14
+ if (!$colWrap.find(".widget").not(e.target).length) {
15
+ $colWrap.remove();
16
+ }
17
+ });
18
+ jQuery(document).on("fullscreened.widgster", (e) => {
19
+ jQuery(e.target).find("div.widget-body").addClass("scrolling");
20
+ }).on("restored.widgster", (e) => {
21
+ jQuery(e.target).find("div.widget-body").removeClass("scrolling");
22
+ });
23
+ }
24
+ ngOnInit() {
25
+ this.$el.widgster();
26
+ }
27
+ }
28
+ Widget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Widget, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
29
+ Widget.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: Widget, selector: "[widget]", ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Widget, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ selector: "[widget]"
34
+ }]
35
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9zcmMvd2lkZ2V0L3dpZGdldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQU0sZUFBZSxDQUFDOztBQU85RCxNQUFNLE9BQU8sTUFBTTtJQUdmLFlBQVksRUFBYztRQUN0QixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1FBRXRFOztXQUVHO1FBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFFbkYsMERBQTBEO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNoRCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDckI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3QixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDOzttR0E1QlEsTUFBTTt1RkFBTixNQUFNOzJGQUFOLE1BQU07a0JBSGxCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5kZWNsYXJlIHZhciBqUXVlcnk7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIlt3aWRnZXRdXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICAkZWw6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xyXG4gICAgICAgIHRoaXMuJGVsID0galF1ZXJ5KGVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIGpRdWVyeS5mbi53aWRnc3Rlci5Db25zdHJ1Y3Rvci5ERUZBVUxUUy5ib2R5U2VsZWN0b3IgPSBcIi53aWRnZXQtYm9keVwiO1xyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICBXaGVuIHdpZGdldCBpcyBjbG9zZWQgcmVtb3ZlIGl0cyBwYXJlbnQgaWYgaXQgaXMgLmNvbC0qXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KS5vbihcImNsb3NlLndpZGdzdGVyXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCAkY29sV3JhcCA9IGpRdWVyeShlLnRhcmdldCkuY2xvc2VzdCgnIFtjbGFzcyo9XCJjb2wtXCJdOm5vdCgud2lkZ2V0LWNvbnRhaW5lciknKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHJlbW92ZSBjb2xXcmFwIG9ubHkgaWYgdGhlcmUgYXJlIG5vIG1vcmUgd2lkZ2V0cyBpbnNpZGVcclxuICAgICAgICAgICAgaWYgKCEkY29sV3JhcC5maW5kKFwiLndpZGdldFwiKS5ub3QoZS50YXJnZXQpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgJGNvbFdyYXAucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KS5vbihcImZ1bGxzY3JlZW5lZC53aWRnc3RlclwiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICBqUXVlcnkoZS50YXJnZXQpLmZpbmQoXCJkaXYud2lkZ2V0LWJvZHlcIikuYWRkQ2xhc3MoXCJzY3JvbGxpbmdcIik7XHJcbiAgICAgICAgfSkub24oXCJyZXN0b3JlZC53aWRnc3RlclwiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICBqUXVlcnkoZS50YXJnZXQpLmZpbmQoXCJkaXYud2lkZ2V0LWJvZHlcIikucmVtb3ZlQ2xhc3MoXCJzY3JvbGxpbmdcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy4kZWwud2lkZ3N0ZXIoKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtY29yZS1kb21haW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RvbWFpbi9zcmMvZXNmYWVuemEtY29yZS1kb21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ export class ApplicationMenu {
2
+ constructor(title, link, routerLink, icon, ac, wip, subMenu, queryParams) {
3
+ this.title = title;
4
+ this.link = link;
5
+ this.routerLink = routerLink;
6
+ this.icon = icon;
7
+ this.ac = ac;
8
+ this.wip = wip;
9
+ this.subMenu = subMenu;
10
+ this.queryParams = queryParams;
11
+ }
12
+ static Group(title, icon, ac, wip, subMenu) {
13
+ return new ApplicationMenu(title, null, null, icon, ac, wip, subMenu);
14
+ }
15
+ static TopItem(title, icon, routerLink, ac, queryParams, wip) {
16
+ return new ApplicationMenu(title, null, routerLink, icon, ac, wip, null, queryParams);
17
+ }
18
+ static Item(title, routerLink, ac, queryParams, wip) {
19
+ return new ApplicationMenu(title, null, routerLink, null, ac, !routerLink && !ac && !queryParams ? true : wip, null, queryParams);
20
+ }
21
+ static Link(title, link) {
22
+ return new ApplicationMenu(title, link);
23
+ }
24
+ }
25
+ ApplicationMenu.ignoreStorage = { ignoreStorage: true };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25NZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kb21haW4vc3JjL21vZGVscy9jb3JlL2NsYXNzZXMvQXBwbGljYXRpb25NZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxlQUFlO0lBQ3hCLFlBQ1csS0FBYSxFQUNiLElBQWEsRUFDYixVQUFtQixFQUNuQixJQUFhLEVBQ2IsRUFBVyxFQUNYLEdBQWEsRUFDYixPQUEyQixFQUMzQixXQUFnQjtRQVBoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNiLGVBQVUsR0FBVixVQUFVLENBQVM7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNiLE9BQUUsR0FBRixFQUFFLENBQVM7UUFDWCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7SUFBSSxDQUFDO0lBRWhDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBYSxFQUFFLElBQVksRUFBRSxFQUFVLEVBQUUsR0FBWSxFQUFFLE9BQTBCO1FBQzFGLE9BQU8sSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLElBQVksRUFBRSxVQUFtQixFQUFFLEVBQVcsRUFBRSxXQUFnQixFQUFFLEdBQWE7UUFDekcsT0FBTyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBYSxFQUFFLFVBQW1CLEVBQUUsRUFBVyxFQUFFLFdBQWdCLEVBQUUsR0FBYTtRQUN4RixPQUFPLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFhLEVBQUUsSUFBYTtRQUNwQyxPQUFPLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQUVNLDZCQUFhLEdBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXBwbGljYXRpb25NZW51IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBsaW5rPzogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyByb3V0ZXJMaW5rPzogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBpY29uPzogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhYz86IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgd2lwPzogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgc3ViTWVudT86IEFwcGxpY2F0aW9uTWVudVtdLFxyXG4gICAgICAgIHB1YmxpYyBxdWVyeVBhcmFtcz86IHt9KSB7IH1cclxuXHJcbiAgICBzdGF0aWMgR3JvdXAodGl0bGU6IHN0cmluZywgaWNvbjogc3RyaW5nLCBhYzogc3RyaW5nLCB3aXA6IGJvb2xlYW4sIHN1Yk1lbnU6IEFwcGxpY2F0aW9uTWVudVtdKTogQXBwbGljYXRpb25NZW51IHtcclxuICAgICAgICByZXR1cm4gbmV3IEFwcGxpY2F0aW9uTWVudSh0aXRsZSwgbnVsbCwgbnVsbCwgaWNvbiwgYWMsIHdpcCwgc3ViTWVudSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIFRvcEl0ZW0odGl0bGU6IHN0cmluZywgaWNvbjogc3RyaW5nLCByb3V0ZXJMaW5rPzogc3RyaW5nLCBhYz86IHN0cmluZywgcXVlcnlQYXJhbXM/OiB7fSwgd2lwPzogYm9vbGVhbik6IEFwcGxpY2F0aW9uTWVudSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBcHBsaWNhdGlvbk1lbnUodGl0bGUsIG51bGwsIHJvdXRlckxpbmssIGljb24sIGFjLCB3aXAsIG51bGwsIHF1ZXJ5UGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgSXRlbSh0aXRsZTogc3RyaW5nLCByb3V0ZXJMaW5rPzogc3RyaW5nLCBhYz86IHN0cmluZywgcXVlcnlQYXJhbXM/OiB7fSwgd2lwPzogYm9vbGVhbik6IEFwcGxpY2F0aW9uTWVudSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBcHBsaWNhdGlvbk1lbnUodGl0bGUsIG51bGwsIHJvdXRlckxpbmssIG51bGwsIGFjLCAhcm91dGVyTGluayAmJiAhYWMgJiYgIXF1ZXJ5UGFyYW1zID8gdHJ1ZSA6IHdpcCwgbnVsbCwgcXVlcnlQYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBMaW5rKHRpdGxlOiBzdHJpbmcsIGxpbms/OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gbmV3IEFwcGxpY2F0aW9uTWVudSh0aXRsZSwgbGluayk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlnbm9yZVN0b3JhZ2U6IGFueSA9IHsgaWdub3JlU3RvcmFnZTogdHJ1ZSB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export class EnvOptions {
2
+ }
3
+ ;
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52T3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZG9tYWluL3NyYy9tb2RlbHMvY29yZS9jbGFzc2VzL0Vudk9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFRLFVBQVU7Q0FVdkI7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzICBFbnZPcHRpb25zIHtcclxuICAgIC8vUHJvcHJpZXTDoCBkaSBjb25maWd1cmF6aW9uZVxyXG4gICAgQXBwRGF0YTogeyBNb2R1bGVJZDogc3RyaW5nLCBNb2R1bGVEZWZJZDogbnVtYmVyLCBDb21wb25lbnRFbnZpcm9ubWVudDogbnVtYmVyLCBDb21wb25lbnRWZXJzaW9uOiBzdHJpbmcsIE1vZHVsZURlc2NyaXB0aW9uOiBzdHJpbmcgfTtcclxuICAgIEF1dGhVcmw/OiBzdHJpbmc7XHJcbiAgICBDbGllbnQ/OiBzdHJpbmc7XHJcbiAgICBKYWNlRGFzaGJvYXJkVXJsPzogc3RyaW5nO1xyXG4gICAgVHJhbnNhY3Rpb25UaW1lb3V0U2Vjb25kczogbnVtYmVyO1xyXG5cclxuICAgIC8vUHJvcHJpZXTDoCBkaSBzaXN0ZW1hXHJcbiAgICByZWRpcmVjdEluUHJvZ3Jlc3M/OiBib29sZWFuO1xyXG59OyJdfQ==
@@ -0,0 +1,8 @@
1
+ export class AccountScope {
2
+ constructor(modules = [], roles = [], permissions = []) {
3
+ this.modules = modules;
4
+ this.roles = roles;
5
+ this.permissions = permissions;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjb3VudFNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kb21haW4vc3JjL21vZGVscy9qYWNlL2NsYXNzZXMvQWNjb3VudFNjb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQW1CLFVBQXdCLEVBQUUsRUFBUyxRQUFvQixFQUFFLEVBQVMsY0FBZ0MsRUFBRTtRQUFwRyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO0lBQUksQ0FBQztDQUMvSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEphY2VNb2R1bGUgfSBmcm9tIFwiLi9KYWNlTW9kdWxlXCI7XHJcbmltcG9ydCB7IEphY2VQZXJtaXNzaW9uIH0gZnJvbSBcIi4vSmFjZVBlcm1pc3Npb25cIjtcclxuaW1wb3J0IHsgSmFjZVJvbGUgfSBmcm9tIFwiLi9KYWNlUm9sZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFjY291bnRTY29wZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kdWxlczogSmFjZU1vZHVsZVtdID0gW10sIHB1YmxpYyByb2xlczogSmFjZVJvbGVbXSA9IFtdLCBwdWJsaWMgcGVybWlzc2lvbnM6IEphY2VQZXJtaXNzaW9uW10gPSBbXSkgeyB9XHJcbn0iXX0=
@@ -0,0 +1,9 @@
1
+ export class ActiveModuleView {
2
+ }
3
+ export class CategoriesWithModules {
4
+ constructor(module) {
5
+ this.category = module?.category?.toUpperCase();
6
+ this.module_rows = [[module]];
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWN0aXZlTW9kdWxlVmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZG9tYWluL3NyYy9tb2RlbHMvamFjZS9jbGFzc2VzL0FjdGl2ZU1vZHVsZVZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGdCQUFnQjtDQVU1QjtBQUVELE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsWUFBWSxNQUF3QjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQWN0aXZlTW9kdWxlVmlld1xyXG57XHJcbiAgICBpZG1vZHVsZTogbnVtYmVyO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgYWx0bmFtZTogc3RyaW5nO1xyXG4gICAgY2F0ZWdvcnk6IHN0cmluZztcclxuICAgIHRlbmFudDogc3RyaW5nO1xyXG4gICAgdWl1cmw6IHN0cmluZztcclxuICAgIGVudmlyb25tZW50OiBzdHJpbmc7XHJcbiAgICBocmVmOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYXRlZ29yaWVzV2l0aE1vZHVsZXMge1xyXG4gICAgY29uc3RydWN0b3IobW9kdWxlOiBBY3RpdmVNb2R1bGVWaWV3KSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeSA9IG1vZHVsZT8uY2F0ZWdvcnk/LnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgICAgdGhpcy5tb2R1bGVfcm93cyA9IFtbbW9kdWxlXV07XHJcbiAgICB9XHJcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xyXG4gICAgbW9kdWxlX3Jvd3M6IEFjdGl2ZU1vZHVsZVZpZXdbXVtdO1xyXG59Il19
@@ -0,0 +1,5 @@
1
+ export class JaceAccount {
2
+ }
3
+ export class JaceUser {
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFjZUFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RvbWFpbi9zcmMvbW9kZWxzL2phY2UvY2xhc3Nlcy9KYWNlQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBVztDQWtCdkI7QUFFRCxNQUFNLE9BQU8sUUFBUTtDQVFwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBKYWNlQWNjb3VudCB7XHJcbiAgICBpZGFjY291bnQ6IG51bWJlcjtcclxuICAgIGlkdXNlcjogbnVtYmVyO1xyXG4gICAgaWR0ZW5hbnQ6IHN0cmluZztcclxuICAgIGRzdXNlcm5hbWU6IHN0cmluZztcclxuICAgIGRzcGFzc3dvcmQ6IHN0cmluZztcclxuICAgIGR0dmFsaWRmcm9tOiBEYXRlO1xyXG4gICAgZHR2YWxpZHRvOiBEYXRlO1xyXG4gICAgc3lkYXRhaW5zOiBEYXRlO1xyXG4gICAgc3lkYXRhdXBkOiBEYXRlO1xyXG4gICAgZHRsb2NrZG93bjogRGF0ZTtcclxuICAgIHN5dXNlcnVwZDogc3RyaW5nO1xyXG4gICAgc3l1c2VyaW5zOiBzdHJpbmc7XHJcbiAgICBkc3JlYXNvbmxvY2tkb3duOiBzdHJpbmc7XHJcbiAgICBjbmF0dGVtcHRzOiBudW1iZXI7XHJcblxyXG4gICAgLy9Tb2xvIFVJXHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSmFjZVVzZXIge1xyXG4gICAgaWR1c2VyOiBudW1iZXI7XHJcbiAgICBkc25vbWU6IHN0cmluZztcclxuICAgIGRzY29nbm9tZTogc3RyaW5nO1xyXG4gICAgc3lkYXRhaW5zOiBEYXRlO1xyXG4gICAgc3l1c2VyaW5zOiBzdHJpbmc7XHJcbiAgICBzeWRhdGF1cGQ6IERhdGU7XHJcbiAgICBzeXVzZXJ1cGQ6IHN0cmluZztcclxufSJdfQ==
@@ -0,0 +1,16 @@
1
+ export class BaseIdentity {
2
+ }
3
+ export class JaceIdentity extends BaseIdentity {
4
+ constructor(scope = null) {
5
+ super();
6
+ this.Roles = [];
7
+ this.Modules = [];
8
+ this.Permissions = [];
9
+ if (scope) {
10
+ this.Roles = scope.roles.map(x => x.idrolealt);
11
+ this.Permissions = scope.permissions.map(x => x.idpermissionalt);
12
+ this.Modules = scope.modules.map(x => x.idmodule);
13
+ }
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFjZUlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kb21haW4vc3JjL21vZGVscy9qYWNlL2NsYXNzZXMvSmFjZUlkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxZQUFZO0NBU3hCO0FBQ0QsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0lBQzFDLFlBQVksUUFBdUIsSUFBSTtRQUNuQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUcsS0FBSyxFQUFDO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxFQUFFLENBQUEsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBLEVBQUUsQ0FBQSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkQ7SUFDTCxDQUFDO0NBSUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50U2NvcGUgfSBmcm9tIFwiLi9BY2NvdW50U2NvcGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlSWRlbnRpdHl7XHJcbiAgICBFeHBpcmVkOiBib29sZWFuO1xyXG4gICAgSWRBY2NvdW50OiBudW1iZXI7XHJcbiAgICBJZFVzZXI6IG51bWJlcjtcclxuICAgIERzVXNlcjogc3RyaW5nO1xyXG4gICAgRnVsbE5hbWU6IHN0cmluZztcclxuICAgIElkdGVuYW50OiBzdHJpbmc7XHJcbiAgICBUZW5hbnROYW1lOiBzdHJpbmc7XHJcbiAgICBFeHBpcmF0aW9uVGltZTogRGF0ZTtcclxufVxyXG5leHBvcnQgY2xhc3MgSmFjZUlkZW50aXR5IGV4dGVuZHMgQmFzZUlkZW50aXR5IHtcclxuICAgIGNvbnN0cnVjdG9yKHNjb3BlIDogQWNjb3VudFNjb3BlID0gbnVsbCl7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLlJvbGVzID0gW107XHJcbiAgICAgICAgdGhpcy5Nb2R1bGVzID0gW107XHJcbiAgICAgICAgdGhpcy5QZXJtaXNzaW9ucyA9IFtdO1xyXG4gICAgICAgIGlmKHNjb3BlKXtcclxuICAgICAgICAgICAgdGhpcy5Sb2xlcyA9IHNjb3BlLnJvbGVzLm1hcCh4PT54Lmlkcm9sZWFsdCk7XHJcbiAgICAgICAgICAgIHRoaXMuUGVybWlzc2lvbnMgPSBzY29wZS5wZXJtaXNzaW9ucy5tYXAoeD0+eC5pZHBlcm1pc3Npb25hbHQpO1xyXG4gICAgICAgICAgICB0aGlzLk1vZHVsZXMgPSBzY29wZS5tb2R1bGVzLm1hcCh4PT54LmlkbW9kdWxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBSb2xlczogc3RyaW5nW107XHJcbiAgICBNb2R1bGVzOiBudW1iZXJbXTtcclxuICAgIFBlcm1pc3Npb25zOiBzdHJpbmdbXTtcclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export class JaceModule {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFjZU1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZG9tYWluL3NyYy9tb2RlbHMvamFjZS9jbGFzc2VzL0phY2VNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7Q0FNdEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSmFjZU1vZHVsZVxyXG57XHJcbiAgIGlkbW9kdWxlOiBudW1iZXI7XHJcbiAgIGRzbmFtZTogc3RyaW5nO1xyXG4gICBkc2NhdGVnb3J5OiBzdHJpbmc7XHJcbiAgIGlkbW9kdWxlYWx0OiBzdHJpbmc7XHJcbn1cclxuIl19