@esfaenza/core 16.2.28 → 19.2.2

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 (210) hide show
  1. package/components/back-top/back-top.component.d.ts +12 -12
  2. package/components/base/base.component.d.ts +26 -26
  3. package/components/base/embedding.component.d.ts +22 -22
  4. package/components/base/reactive.component.d.ts +9 -9
  5. package/components/breadcrumb/breadcrumb.component.d.ts +26 -26
  6. package/components/components.module.d.ts +32 -32
  7. package/components/error/404/pagenotfound.component.d.ts +15 -15
  8. package/components/error/500/servererror.component.d.ts +20 -20
  9. package/components/error/Angular/angularerror.component.d.ts +25 -25
  10. package/components/es-image-cropper/es-image-cropper.component.d.ts +25 -25
  11. package/components/es-modal/es-modal-head/es-modal-head.component.d.ts +11 -11
  12. package/components/es-modal/es-modal.component.d.ts +18 -18
  13. package/components/external-page/external_pages.component.d.ts +21 -21
  14. package/components/index.d.ts +5 -5
  15. package/components/jace-login/jace-login.component.d.ts +8 -8
  16. package/components/jace-resource/jace-resource.component.d.ts +25 -25
  17. package/components/labeled-span/labeled-span.component.d.ts +11 -11
  18. package/components/navbar/navbar.component.d.ts +58 -58
  19. package/components/navbar/navbar.component.loc.d.ts +8 -8
  20. package/components/page/pages.component.d.ts +23 -23
  21. package/components/public-api.d.ts +21 -21
  22. package/components/redirecter/redirecter.component.d.ts +23 -23
  23. package/components/sidebar/sidebar.component.d.ts +64 -64
  24. package/components/sidebar/sidebar.component.loc.d.ts +8 -8
  25. package/components/user_infos/user_infos.component.d.ts +50 -50
  26. package/components/user_infos/user_infos.component.loc.d.ts +8 -8
  27. package/directives/componentHost/componentHost.directive.d.ts +12 -12
  28. package/directives/directives.module.d.ts +12 -12
  29. package/directives/draggable/draggable.directive.d.ts +13 -13
  30. package/directives/es-modal/es-modal.directive.d.ts +20 -20
  31. package/directives/es-routerLink/es-routerLink.directive.d.ts +13 -13
  32. package/directives/index.d.ts +5 -5
  33. package/directives/public-api.d.ts +7 -7
  34. package/directives/slim-scroll/slim-scroll.directive.d.ts +15 -15
  35. package/directives/widget/widget.directive.d.ts +9 -9
  36. package/domain/index.d.ts +5 -5
  37. package/domain/models/core/ApplicationJob.d.ts +12 -12
  38. package/domain/models/core/ApplicationMenu.d.ts +16 -16
  39. package/domain/models/core/ApplicationRoutes.d.ts +2 -2
  40. package/domain/models/core/EnvOptions.d.ts +15 -15
  41. package/domain/models/core/GenericItem.d.ts +10 -10
  42. package/domain/models/core/KeyValue.d.ts +5 -5
  43. package/domain/models/global_search/SaerchResultContainer.d.ts +5 -5
  44. package/domain/models/global_search/SearchResult.d.ts +10 -10
  45. package/domain/models/jace/AccountScope.d.ts +9 -9
  46. package/domain/models/jace/ActiveModuleView.d.ts +11 -11
  47. package/domain/models/jace/CategoriesWithModules.d.ts +6 -6
  48. package/domain/models/jace/JaceAccount.d.ts +17 -17
  49. package/domain/models/jace/JaceIdentity.d.ts +17 -17
  50. package/domain/models/jace/JaceModule.d.ts +8 -8
  51. package/domain/models/jace/JacePermission.d.ts +10 -10
  52. package/domain/models/jace/JaceRole.d.ts +13 -13
  53. package/domain/models/jace/JaceUser.d.ts +9 -9
  54. package/domain/models/user/UpdateAccountRecoverySettingsDto.d.ts +5 -5
  55. package/domain/models/user/UpdatePasswordDto.d.ts +9 -9
  56. package/domain/models/user/UpdateProfilePictureDto.d.ts +4 -4
  57. package/domain/models/user/UserAccount.d.ts +23 -23
  58. package/domain/public-api.d.ts +22 -22
  59. package/domain/tokens.d.ts +22 -22
  60. package/fesm2022/esfaenza-core-components.mjs +1492 -1480
  61. package/fesm2022/esfaenza-core-components.mjs.map +1 -1
  62. package/fesm2022/esfaenza-core-directives.mjs +269 -269
  63. package/fesm2022/esfaenza-core-directives.mjs.map +1 -1
  64. package/fesm2022/esfaenza-core-domain.mjs +153 -153
  65. package/fesm2022/esfaenza-core-domain.mjs.map +1 -1
  66. package/fesm2022/esfaenza-core-helpers.mjs +38 -38
  67. package/fesm2022/esfaenza-core-helpers.mjs.map +1 -1
  68. package/fesm2022/esfaenza-core-modules.mjs +128 -134
  69. package/fesm2022/esfaenza-core-modules.mjs.map +1 -1
  70. package/fesm2022/esfaenza-core-pipes.mjs +96 -96
  71. package/fesm2022/esfaenza-core-pipes.mjs.map +1 -1
  72. package/fesm2022/esfaenza-core-services.mjs +1760 -1754
  73. package/fesm2022/esfaenza-core-services.mjs.map +1 -1
  74. package/fesm2022/esfaenza-core.mjs +206 -230
  75. package/fesm2022/esfaenza-core.mjs.map +1 -1
  76. package/helpers/classes/ResizeListener.d.ts +12 -12
  77. package/helpers/index.d.ts +5 -5
  78. package/helpers/public-api.d.ts +1 -1
  79. package/index.d.ts +5 -5
  80. package/lib/app.component.d.ts +13 -13
  81. package/lib/core.module.d.ts +85 -86
  82. package/modules/classes/_base.module.d.ts +4 -4
  83. package/modules/classes/_embedding.module.d.ts +11 -11
  84. package/modules/classes/_shared.module.d.ts +28 -29
  85. package/modules/classes/t_c.module.d.ts +18 -19
  86. package/modules/index.d.ts +5 -5
  87. package/modules/public-api.d.ts +4 -4
  88. package/package.json +84 -104
  89. package/pipes/classes/included_in.pipe.d.ts +7 -7
  90. package/pipes/classes/safe_html.pipe.d.ts +10 -10
  91. package/pipes/classes/safe_script.pipe.d.ts +10 -10
  92. package/pipes/classes/safe_style.pipe.d.ts +10 -10
  93. package/pipes/classes/safe_url.pipe.d.ts +10 -10
  94. package/pipes/index.d.ts +5 -5
  95. package/pipes/pipes.module.d.ts +11 -11
  96. package/pipes/public-api.d.ts +6 -6
  97. package/public-api.d.ts +2 -2
  98. package/services/classes/app.accesstoken.d.ts +17 -17
  99. package/services/classes/app.completedjobredirection.d.ts +12 -12
  100. package/services/classes/app.errorhandler.d.ts +11 -11
  101. package/services/classes/app.event.d.ts +10 -10
  102. package/services/classes/app.globalsearch.d.ts +25 -25
  103. package/services/classes/app.httpextensions.d.ts +34 -34
  104. package/services/classes/app.httpextensions.loc.d.ts +8 -8
  105. package/services/classes/app.menufilter.d.ts +14 -14
  106. package/services/classes/app.routeguard.d.ts +10 -10
  107. package/services/classes/app.session.d.ts +15 -15
  108. package/services/classes/app.state.d.ts +55 -55
  109. package/services/classes/preferences/app.cache.persistor.d.ts +25 -25
  110. package/services/classes/preferences/app.preference.persistor.d.ts +25 -25
  111. package/services/classes/preferences/user/app.userpreferences.base.d.ts +25 -25
  112. package/services/index.d.ts +5 -5
  113. package/services/public-api.d.ts +13 -13
  114. package/theme/initial.scss +17 -7
  115. package/esm2022/components/back-top/back-top.component.mjs +0 -43
  116. package/esm2022/components/base/base.component.mjs +0 -67
  117. package/esm2022/components/base/embedding.component.mjs +0 -64
  118. package/esm2022/components/base/reactive.component.mjs +0 -28
  119. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -80
  120. package/esm2022/components/components.module.mjs +0 -97
  121. package/esm2022/components/error/404/pagenotfound.component.mjs +0 -36
  122. package/esm2022/components/error/500/servererror.component.mjs +0 -47
  123. package/esm2022/components/error/Angular/angularerror.component.mjs +0 -62
  124. package/esm2022/components/es-image-cropper/es-image-cropper.component.mjs +0 -82
  125. package/esm2022/components/es-modal/es-modal-head/es-modal-head.component.mjs +0 -22
  126. package/esm2022/components/es-modal/es-modal.component.mjs +0 -40
  127. package/esm2022/components/esfaenza-core-components.mjs +0 -5
  128. package/esm2022/components/external-page/external_pages.component.mjs +0 -48
  129. package/esm2022/components/jace-login/jace-login.component.mjs +0 -31
  130. package/esm2022/components/jace-resource/jace-resource.component.mjs +0 -68
  131. package/esm2022/components/labeled-span/labeled-span.component.mjs +0 -25
  132. package/esm2022/components/navbar/navbar.component.loc.mjs +0 -41
  133. package/esm2022/components/navbar/navbar.component.mjs +0 -223
  134. package/esm2022/components/page/pages.component.mjs +0 -60
  135. package/esm2022/components/public-api.mjs +0 -22
  136. package/esm2022/components/redirecter/redirecter.component.mjs +0 -65
  137. package/esm2022/components/sidebar/sidebar.component.loc.mjs +0 -39
  138. package/esm2022/components/sidebar/sidebar.component.mjs +0 -286
  139. package/esm2022/components/user_infos/user_infos.component.loc.mjs +0 -43
  140. package/esm2022/components/user_infos/user_infos.component.mjs +0 -148
  141. package/esm2022/directives/componentHost/componentHost.directive.mjs +0 -29
  142. package/esm2022/directives/directives.module.mjs +0 -21
  143. package/esm2022/directives/draggable/draggable.directive.mjs +0 -49
  144. package/esm2022/directives/es-modal/es-modal.directive.mjs +0 -79
  145. package/esm2022/directives/es-routerLink/es-routerLink.directive.mjs +0 -55
  146. package/esm2022/directives/esfaenza-core-directives.mjs +0 -5
  147. package/esm2022/directives/public-api.mjs +0 -8
  148. package/esm2022/directives/slim-scroll/slim-scroll.directive.mjs +0 -41
  149. package/esm2022/directives/widget/widget.directive.mjs +0 -37
  150. package/esm2022/domain/esfaenza-core-domain.mjs +0 -5
  151. package/esm2022/domain/models/core/ApplicationJob.mjs +0 -3
  152. package/esm2022/domain/models/core/ApplicationMenu.mjs +0 -26
  153. package/esm2022/domain/models/core/ApplicationRoutes.mjs +0 -3
  154. package/esm2022/domain/models/core/EnvOptions.mjs +0 -13
  155. package/esm2022/domain/models/core/GenericItem.mjs +0 -12
  156. package/esm2022/domain/models/core/KeyValue.mjs +0 -15
  157. package/esm2022/domain/models/global_search/SaerchResultContainer.mjs +0 -6
  158. package/esm2022/domain/models/global_search/SearchResult.mjs +0 -8
  159. package/esm2022/domain/models/jace/AccountScope.mjs +0 -8
  160. package/esm2022/domain/models/jace/ActiveModuleView.mjs +0 -6
  161. package/esm2022/domain/models/jace/CategoriesWithModules.mjs +0 -7
  162. package/esm2022/domain/models/jace/JaceAccount.mjs +0 -3
  163. package/esm2022/domain/models/jace/JaceIdentity.mjs +0 -15
  164. package/esm2022/domain/models/jace/JaceModule.mjs +0 -10
  165. package/esm2022/domain/models/jace/JacePermission.mjs +0 -3
  166. package/esm2022/domain/models/jace/JaceRole.mjs +0 -9
  167. package/esm2022/domain/models/jace/JaceUser.mjs +0 -3
  168. package/esm2022/domain/models/user/UpdateAccountRecoverySettingsDto.mjs +0 -7
  169. package/esm2022/domain/models/user/UpdatePasswordDto.mjs +0 -11
  170. package/esm2022/domain/models/user/UpdateProfilePictureDto.mjs +0 -6
  171. package/esm2022/domain/models/user/UserAccount.mjs +0 -3
  172. package/esm2022/domain/public-api.mjs +0 -23
  173. package/esm2022/domain/tokens.mjs +0 -17
  174. package/esm2022/esfaenza-core.mjs +0 -5
  175. package/esm2022/helpers/classes/ResizeListener.mjs +0 -38
  176. package/esm2022/helpers/esfaenza-core-helpers.mjs +0 -5
  177. package/esm2022/helpers/public-api.mjs +0 -2
  178. package/esm2022/lib/app.component.mjs +0 -34
  179. package/esm2022/lib/core.module.mjs +0 -258
  180. package/esm2022/modules/classes/_base.module.mjs +0 -32
  181. package/esm2022/modules/classes/_embedding.module.mjs +0 -27
  182. package/esm2022/modules/classes/_shared.module.mjs +0 -47
  183. package/esm2022/modules/classes/t_c.module.mjs +0 -85
  184. package/esm2022/modules/esfaenza-core-modules.mjs +0 -5
  185. package/esm2022/modules/public-api.mjs +0 -5
  186. package/esm2022/pipes/classes/included_in.pipe.mjs +0 -20
  187. package/esm2022/pipes/classes/safe_html.pipe.mjs +0 -21
  188. package/esm2022/pipes/classes/safe_script.pipe.mjs +0 -21
  189. package/esm2022/pipes/classes/safe_style.pipe.mjs +0 -21
  190. package/esm2022/pipes/classes/safe_url.pipe.mjs +0 -21
  191. package/esm2022/pipes/esfaenza-core-pipes.mjs +0 -5
  192. package/esm2022/pipes/pipes.module.mjs +0 -20
  193. package/esm2022/pipes/public-api.mjs +0 -7
  194. package/esm2022/public-api.mjs +0 -3
  195. package/esm2022/services/classes/app.accesstoken.mjs +0 -1042
  196. package/esm2022/services/classes/app.completedjobredirection.mjs +0 -18
  197. package/esm2022/services/classes/app.errorhandler.mjs +0 -41
  198. package/esm2022/services/classes/app.event.mjs +0 -27
  199. package/esm2022/services/classes/app.globalsearch.mjs +0 -34
  200. package/esm2022/services/classes/app.httpextensions.loc.mjs +0 -15
  201. package/esm2022/services/classes/app.httpextensions.mjs +0 -90
  202. package/esm2022/services/classes/app.menufilter.mjs +0 -21
  203. package/esm2022/services/classes/app.routeguard.mjs +0 -23
  204. package/esm2022/services/classes/app.session.mjs +0 -40
  205. package/esm2022/services/classes/app.state.mjs +0 -229
  206. package/esm2022/services/classes/preferences/app.cache.persistor.mjs +0 -94
  207. package/esm2022/services/classes/preferences/app.preference.persistor.mjs +0 -94
  208. package/esm2022/services/classes/preferences/user/app.userpreferences.base.mjs +0 -101
  209. package/esm2022/services/esfaenza-core-services.mjs +0 -5
  210. package/esm2022/services/public-api.mjs +0 -14
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Optional, Inject } from '@angular/core';
2
+ import { Optional, Inject, Injectable } from '@angular/core';
3
3
  import { JaceIdentity, USE_FAKE_ACCESS_TOKEN, ANONYMOUS_MODE, UpdateProfilePictureDto, UpdateAccountRecoverySettingsDto, UpdatePasswordDto } from '@esfaenza/core/domain';
4
4
  import * as i1 from 'ngx-cookie-service';
5
5
  import { of, Subject, filter, firstValueFrom } from 'rxjs';
@@ -27,1776 +27,1782 @@ import { catchError, map } from 'rxjs/operators';
27
27
  import { DomSanitizer } from '@angular/platform-browser';
28
28
  import { HTTPService } from '@esfaenza/httpservice';
29
29
 
30
- // Angular
31
- class TokenService {
32
- constructor(cs, USE_FAKE_ACCESS_TOKEN, ANONYMOUS_MODE) {
33
- this.cs = cs;
34
- this.USE_FAKE_ACCESS_TOKEN = USE_FAKE_ACCESS_TOKEN;
35
- this.ANONYMOUS_MODE = ANONYMOUS_MODE;
36
- if (this.USE_FAKE_ACCESS_TOKEN)
37
- this.accountScope = this.getFakeAccountScope();
38
- }
39
- clearTokens() {
40
- this.cs.delete("access_token");
41
- }
42
- getAccessToken() {
43
- if (this.ANONYMOUS_MODE)
44
- return "";
45
- return this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get("accessToken");
46
- }
47
- getJaceIdentity() {
48
- if (this.ANONYMOUS_MODE)
49
- return null;
50
- let token = this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get("accessToken");
51
- if (!token)
52
- return null;
53
- let base64Url = token.split(".")[1];
54
- let base64 = base64Url.replace("-", "+").replace("_", "/");
55
- let tokenData = JSON.parse(decodeURIComponent(window.atob(base64).split("").map(c => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2)).join("")));
56
- let identity = new JaceIdentity(this.accountScope);
57
- identity.IdActor = tokenData.ACTORID;
58
- identity.IdActorRole = tokenData.ACTORROLEID;
59
- identity.IdAccount = tokenData.ACCOUNTID;
60
- identity.IdUser = tokenData.USERID;
61
- identity.DsUser = tokenData.USERNAME;
62
- identity.FullName = tokenData.USERDESCRIPTION;
63
- identity.Idtenant = tokenData.TENANT;
64
- identity.TenantName = tokenData.TENANTNAME;
65
- identity.ExpirationTime = new Date(tokenData.exp * 1000); //unix-epoch in secondi -> millisecondi
66
- return identity;
67
- }
68
- //Accesstoken fittizio ma valido, per simulare la connession corretta col backend
69
- getFakeToken() {
70
- /* Il Token generato è il seguente:
71
-
72
- {
73
- "nbf": 1590415846,
74
- "exp": 1990420065,
75
- "iss": "http://authapi.jace.energysoftware.priv",
76
- "aud": [ "http://authapi.jace.energysoftware.priv/resources", "authentication" ],
77
- "client_id": "application",
78
- "sub": "1003",
79
- "auth_time": 1590415846,
80
- "idp": "local",
81
- "ACCOUNTID": "1003",
82
- "USERID": "259",
83
- "USERDESCRIPTION": "Test User",
84
- "USERNAME": "TEST",
85
- "TENANT": "FX",
86
- "TENANTNAME": "Fenix Srl",
87
- "jti": "0e5307561606e444e2885b11a3144421",
88
- "scope": [ "auth", "offline_access" ],
89
- "amr": ["password" ],
90
- "iat": 1590416465
91
- }
92
- */
93
- return "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE1OTA0MTU4NDYsImV4cCI6MTk5MDQyMDA2NSwiaXNzIjoiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYiLCJhdWQiOlsiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYvcmVzb3VyY2VzIiwiYXV0aGVudGljYXRpbyJdLCJjbGllbnRfaWQiOiJtZXRlcmluZ3N0YWdpbmciLCJzdWIiOiIxMDAzIiwiYXV0aF90aW1lIjoxNTkwNDE1ODQ2LCJpZHAiOiJsb2NhbCIsIkFDQ09VTlRJRCI6IjEwMDMiLCJVU0VSSUQiOiIyNTkiLCJVU0VSREVTQ1JJUFRJT04iOiJUZXN0IFVzZXIiLCJVU0VSTkFNRSI6IlRFU1QiLCJURU5BTlQiOiJGWCIsIlRFTkFOVE5BTUUiOiJGZW5peCBTcmwiLCJqdGkiOiIwZTUzMDc1NjE2MDZlNDQ0ZTI4ODViMTFhMzE0NDQyMSIsInNjb3BlIjpbImF1dGgiLCJvZmZsaW5lX2FjY2VzcyJdLCJhbXIiOlsicGFzc3dvcmQiXSwiaWF0IjoxNTkwNDE2NDY1fQ.aev_Txa9tIaEZvZ_KWDqb2Ob95Nf-3rqsNyJX4BPKXE";
94
- }
95
- getFakeAccountScope() {
96
- let accountScope = {
97
- "modules": [
98
- {
99
- "idmodule": 36,
100
- "dsname": "Auth",
101
- "dscategory": "Infrastructure",
102
- "idmodulealt": "auth"
103
- },
104
- {
105
- "idmodule": 14,
106
- "dsname": "Compliance Dati Catastali",
107
- "dscategory": "Compliance",
108
- "idmodulealt": "complianceade"
109
- },
110
- {
111
- "idmodule": 2,
112
- "dsname": "Forecasting & Metering",
113
- "dscategory": "Data Treatment",
114
- "idmodulealt": "mdm"
115
- },
116
- {
117
- "idmodule": 48,
118
- "dsname": "Sales Management",
119
- "dscategory": "Data Treatment",
120
- "idmodulealt": "sales"
121
- },
122
- {
123
- "idmodule": 42,
124
- "dsname": "SII Connector",
125
- "dscategory": "Data Treatment",
126
- "idmodulealt": "sii"
127
- },
128
- {
129
- "idmodule": 5,
130
- "dsname": "Billing",
131
- "dscategory": "Data Treatment",
132
- "idmodulealt": "billing"
133
- },
134
- {
135
- "idmodule": 7,
136
- "dsname": "Cost checking & Reconciliation",
137
- "dscategory": "Data Treatment",
138
- "idmodulealt": "ccr"
139
- },
140
- {
141
- "idmodule": 8,
142
- "dsname": "Compliance REMIT",
143
- "dscategory": "Compliance",
144
- "idmodulealt": "remit"
145
- },
146
- {
147
- "idmodule": 51,
148
- "dsname": "CRM",
149
- "dscategory": "Data Treatment",
150
- "idmodulealt": "crm"
151
- },
152
- {
153
- "idmodule": 11,
154
- "dsname": "Compliance ARERA",
155
- "dscategory": "Compliance",
156
- "idmodulealt": "compliance"
157
- },
158
- {
159
- "idmodule": 54,
160
- "dsname": "Partner Portal",
161
- "dscategory": "Data Treatment",
162
- "idmodulealt": "pp"
163
- },
164
- {
165
- "idmodule": 35,
166
- "dsname": "Scheduler",
167
- "dscategory": "Data Treatment",
168
- "idmodulealt": "scheduler"
169
- },
170
- {
171
- "idmodule": 34,
172
- "dsname": "Jace Dashboard",
173
- "dscategory": "Infrastructure",
174
- "idmodulealt": "jace"
175
- },
176
- {
177
- "idmodule": 1,
178
- "dsname": "Market Data",
179
- "dscategory": "Data Treatment",
180
- "idmodulealt": "marketdata"
181
- },
182
- {
183
- "idmodule": 31,
184
- "dsname": "Toolset",
185
- "dscategory": "Data Treatment",
186
- "idmodulealt": "toolset"
187
- },
188
- {
189
- "idmodule": 32,
190
- "dsname": "Customer Portal Admin",
191
- "dscategory": "Administration",
192
- "idmodulealt": "customerportal"
193
- },
194
- {
195
- "idmodule": 10,
196
- "dsname": "Compliance Dogane",
197
- "dscategory": "Compliance",
198
- "idmodulealt": "dogane"
199
- },
200
- {
201
- "idmodule": 40,
202
- "dsname": "Data Manager",
203
- "dscategory": "Data Treatment",
204
- "idmodulealt": "dmg"
205
- },
206
- {
207
- "idmodule": 12,
208
- "dsname": "Credit Management",
209
- "dscategory": "Data Treatment",
210
- "idmodulealt": "credit"
211
- },
212
- {
213
- "idmodule": 52,
214
- "dsname": "Business Process Manager",
215
- "dscategory": "Data Treatment",
216
- "idmodulealt": "BPM"
217
- },
218
- {
219
- "idmodule": 46,
220
- "dsname": "Logistic",
221
- "dscategory": "Data Treatment",
222
- "idmodulealt": "lgs"
223
- }
224
- ],
225
- "roles": [
226
- {
227
- "idrole": 1,
228
- "idrolealt": "Tenant Admin",
229
- "dsrole": "Tenant Admin",
230
- "dsnote": "Per generici permessi di amministrazione/configurazione di un modulo: Es. Billi",
231
- "idparent": 0,
232
- "sydatains": new Date("2018-05-02T11:03:35+02:00"),
233
- "syuserins": "AUTH"
234
- },
235
- {
236
- "idrole": 9,
237
- "idrolealt": "Tenant Reader",
238
- "dsrole": "Tenant Reader",
239
- "dsnote": "Per generico permesso di lettura su tutti i moduli abilitati del Tenant",
240
- "idparent": 0,
241
- "sydatains": new Date("2018-07-23T16:13:38+02:00"),
242
- "syuserins": "FRANCEM",
243
- "sydataupd": new Date("2018-12-03T19:42:41+01:00"),
244
- "syuserupd": "FRANCEM"
245
- },
246
- {
247
- "idrole": 11,
248
- "idrolealt": "Compl. ARERA Reader",
249
- "dsrole": "Compl. ARERA Reader",
250
- "dsnote": "Permesso di lettura al solo modulo Compl. ARERA",
251
- "idparent": 0,
252
- "sydatains": new Date("2018-07-23T16:22:56+02:00"),
253
- "syuserins": "FRANCEM"
254
- },
255
- {
256
- "idrole": 13,
257
- "idrolealt": "Compl. ARERA Writer L1",
258
- "dsrole": "Compl. ARERA Writer L1",
259
- "dsnote": "Responsabile business del modulo Compl. ARERA: può chiudere indagini",
260
- "idparent": 0,
261
- "sydatains": new Date("2018-07-23T16:23:15+02:00"),
262
- "syuserins": "FRANCEM"
263
- },
264
- {
265
- "idrole": 15,
266
- "idrolealt": "Compl. ARERA Writer L2",
267
- "dsrole": "Compl. ARERA Writer L2",
268
- "dsnote": "Operatore business del modulo Compl. ARERA: può elaborare, ma non chiudere indagini",
269
- "idparent": 0,
270
- "sydatains": new Date("2018-07-23T16:23:27+02:00"),
271
- "syuserins": "FRANCEM"
272
- },
273
- {
274
- "idrole": 28,
275
- "idrolealt": "Jace Admin",
276
- "dsrole": "Jace Admin",
277
- "dsnote": "Amministratore generico per l'intera suite.",
278
- "idparent": 0,
279
- "sydatains": new Date("2018-07-25T17:20:41+02:00"),
280
- "syuserins": "RIVOLAM"
281
- },
282
- {
283
- "idrole": 88,
284
- "idrolealt": "Metering: Reader",
285
- "dsrole": "Metering: Reader",
286
- "dsnote": "Sola lettura",
287
- "idparent": 0,
288
- "sydatains": new Date("2019-04-30T12:29:12+02:00"),
289
- "syuserins": "FERNIAA"
290
- },
291
- {
292
- "idrole": 89,
293
- "idrolealt": "Metering: Writer L1",
294
- "dsrole": "Metering: Writer L1",
295
- "dsnote": "Gestione entità semplici",
296
- "idparent": 0,
297
- "sydatains": new Date("2019-04-30T12:29:17+02:00"),
298
- "syuserins": "FERNIAA"
299
- },
300
- {
301
- "idrole": 90,
302
- "idrolealt": "Metering: Writer L2",
303
- "dsrole": "Metering: Writer L2",
304
- "dsnote": "Gestione entità complesse",
305
- "idparent": 0,
306
- "sydatains": new Date("2019-04-30T12:29:21+02:00"),
307
- "syuserins": "FERNIAA"
308
- },
309
- {
310
- "idrole": 91,
311
- "idrolealt": "Metering: Admin",
312
- "dsrole": "Metering: Admin",
313
- "dsnote": "Customizzazione",
314
- "idparent": 0,
315
- "sydatains": new Date("2019-04-30T12:29:29+02:00"),
316
- "syuserins": "FERNIAA"
317
- },
318
- {
319
- "idrole": 269,
320
- "idrolealt": "dgn_op",
321
- "dsrole": "Dogane Operator",
322
- "dsnote": "Consente di fare operazioni come ad esempio generare un pagamento massivo, una comunicazione massiva o modificare le posizioni / comunicaizoni",
323
- "idparent": 0,
324
- "sydatains": new Date("2020-07-01T12:31:32+02:00"),
325
- "syuserins": "RONDINC"
326
- },
327
- {
328
- "idrole": 349,
329
- "idrolealt": "cost_admin",
330
- "dsrole": "Costchecking Writer L2",
331
- "dsnote": "Ruolo di admin per il costchecking che consente di utilizzare qualunque funzionalità del modulo",
332
- "idparent": 0,
333
- "sydatains": new Date("2020-11-17T09:44:48+01:00"),
334
- "syuserins": "RONDINC"
335
- },
336
- {
337
- "idrole": 370,
338
- "idrolealt": "toolset_reader",
339
- "dsrole": "Toolset Reader",
340
- "idparent": 0,
341
- "sydatains": new Date("2020-11-24T10:48:33+01:00"),
342
- "syuserins": "RONDINC"
343
- },
344
- {
345
- "idrole": 489,
346
- "idrolealt": "lgs_read",
347
- "dsrole": "Logistica Reader",
348
- "idparent": 0,
349
- "sydatains": new Date("2021-03-30T16:50:54+02:00"),
350
- "syuserins": "FERNIAA"
351
- },
352
- {
353
- "idrole": 491,
354
- "idrolealt": "lgs_md_write",
355
- "dsrole": "Logistica Writer Ana",
356
- "idparent": 0,
357
- "sydatains": new Date("2021-03-30T16:51:09+02:00"),
358
- "syuserins": "FERNIAA"
359
- },
360
- {
361
- "idrole": 492,
362
- "idrolealt": "lgs_eap_write",
363
- "dsrole": "Logistica Writer Aggr",
364
- "idparent": 0,
365
- "sydatains": new Date("2021-03-30T16:52:46+02:00"),
366
- "syuserins": "FERNIAA"
367
- },
368
- {
369
- "idrole": 493,
370
- "idrolealt": "lgs_pce",
371
- "dsrole": "Logistica Writer PCE",
372
- "idparent": 0,
373
- "sydatains": new Date("2021-03-30T16:53:09+02:00"),
374
- "syuserins": "FERNIAA"
375
- },
376
- {
377
- "idrole": 494,
378
- "idrolealt": "lgs_ipex",
379
- "dsrole": "Logistica Writer IPEX",
380
- "idparent": 0,
381
- "sydatains": new Date("2021-03-30T16:53:18+02:00"),
382
- "syuserins": "FERNIAA"
383
- },
384
- {
385
- "idrole": 495,
386
- "idrolealt": "lgs_invauth",
387
- "dsrole": "Logistica Writer Benestari GME",
388
- "idparent": 0,
389
- "sydatains": new Date("2021-03-30T16:53:30+02:00"),
390
- "syuserins": "FERNIAA"
391
- },
392
- {
393
- "idrole": 496,
394
- "idrolealt": "lgs_terna",
395
- "dsrole": "Logistica Writer Settlement Terna",
396
- "idparent": 0,
397
- "sydatains": new Date("2021-03-30T16:53:44+02:00"),
398
- "syuserins": "FERNIAA"
399
- },
400
- {
401
- "idrole": 497,
402
- "idrolealt": "lgs_writer_full",
403
- "dsrole": "Logistica Full Writer",
404
- "idparent": 0,
405
- "sydatains": new Date("2021-03-30T16:53:56+02:00"),
406
- "syuserins": "FERNIAA"
407
- },
408
- {
409
- "idrole": 688,
410
- "idrolealt": "blg_business",
411
- "dsrole": "Billing Business",
412
- "idparent": 0,
413
- "sydatains": new Date("2022-09-20T09:26:42+02:00"),
414
- "syuserins": "RONDINC"
415
- },
416
- {
417
- "idrole": 708,
418
- "idrolealt": "cus_admin",
419
- "dsrole": "CustomerPortal Admin",
420
- "dsnote": "Amministrazione utenti CustomerPortal",
421
- "idparent": 0,
422
- "sydatains": new Date("2022-11-16T10:17:01+01:00"),
423
- "syuserins": "TURCHII"
424
- },
425
- {
426
- "idrole": 808,
427
- "idrolealt": "crm_fo_rd",
428
- "dsrole": "CRM FrontOffice Reader",
429
- "idparent": 0,
430
- "sydatains": new Date("2023-07-19T13:18:34+02:00"),
431
- "syuserins": "GHETTIE"
432
- },
433
- {
434
- "idrole": 809,
435
- "idrolealt": "crm_bo_rd",
436
- "dsrole": "CRM BackOffice Reader",
437
- "idparent": 0,
438
- "sydatains": new Date("2023-07-19T13:18:45+02:00"),
439
- "syuserins": "GHETTIE"
440
- },
441
- {
442
- "idrole": 810,
443
- "idrolealt": "crm_bo_wr_l1",
444
- "dsrole": "CRM BackOffice Writer L1",
445
- "idparent": 0,
446
- "sydatains": new Date("2023-07-19T13:18:52+02:00"),
447
- "syuserins": "GHETTIE"
448
- },
449
- {
450
- "idrole": 811,
451
- "idrolealt": "crm_bo_wr_l2",
452
- "dsrole": "CRM BackOffice Writer L2",
453
- "idparent": 0,
454
- "sydatains": new Date("2023-07-19T13:18:59+02:00"),
455
- "syuserins": "GHETTIE"
456
- },
457
- {
458
- "idrole": 812,
459
- "idrolealt": "crm_fo_wr_l1",
460
- "dsrole": "CRM FrontOffice Writer L1",
461
- "idparent": 0,
462
- "sydatains": new Date("2023-07-19T13:19:04+02:00"),
463
- "syuserins": "GHETTIE"
464
- },
465
- {
466
- "idrole": 813,
467
- "idrolealt": "crm_fo_wr_l2",
468
- "dsrole": "CRM FrontOffice Writer L2",
469
- "idparent": 0,
470
- "sydatains": new Date("2023-07-19T13:19:09+02:00"),
471
- "syuserins": "GHETTIE"
472
- }
473
- ],
474
- "permissions": [
475
- {
476
- "idpermission": 51,
477
- "dspermission": "Operazioni massive forecasting su metering",
478
- "idpermissionalt": "mdm_mass_fct",
479
- "sydatains": null
480
- },
481
- {
482
- "idpermission": 134,
483
- "dspermission": "Dogane apri / chiudi posizioni",
484
- "idpermissionalt": "dgn_pos_op",
485
- "sydatains": null
486
- },
487
- {
488
- "idpermission": 211,
489
- "dspermission": "Scarico dati sistemi AMI metering",
490
- "idpermissionalt": "mdm_ami_dl",
491
- "sydatains": null
492
- },
493
- {
494
- "idpermission": 271,
495
- "dspermission": "Dogane Elimina Importazione",
496
- "idpermissionalt": "dgn_flow_delete",
497
- "sydatains": null
498
- },
499
- {
500
- "idpermission": 131,
501
- "dspermission": "Dogane Read",
502
- "idpermissionalt": "dgn_read",
503
- "sydatains": null
504
- },
505
- {
506
- "idpermission": 133,
507
- "dspermission": "Dogane operazioni su rate e pagamenti ",
508
- "idpermissionalt": "dgn_payments_op",
509
- "sydatains": null
510
- },
511
- {
512
- "idpermission": 291,
513
- "dspermission": "Logistica - modifica dati anagrafica",
514
- "idpermissionalt": "lgs_md_write",
515
- "sydatains": null
516
- },
517
- {
518
- "idpermission": 292,
519
- "dspermission": "Logistica - lettura dati PCE",
520
- "idpermissionalt": "lgs_pce_read",
521
- "sydatains": null
522
- },
523
- {
524
- "idpermission": 293,
525
- "dspermission": "Logistica - scrittura dati PCE",
526
- "idpermissionalt": "lgs_pce_write",
527
- "sydatains": null
528
- },
529
- {
530
- "idpermission": 294,
531
- "dspermission": "Logistica - lettura dati IPEX",
532
- "idpermissionalt": "lgs_ipex_read",
533
- "sydatains": null
534
- },
535
- {
536
- "idpermission": 296,
537
- "dspermission": "Logistica - scrittura dati IPEX",
538
- "idpermissionalt": "lgs_ipex_write",
539
- "sydatains": null
540
- },
541
- {
542
- "idpermission": 297,
543
- "dspermission": "Logistica - lettura dati benestari",
544
- "idpermissionalt": "lgs_invauth_read",
545
- "sydatains": null
546
- },
547
- {
548
- "idpermission": 298,
549
- "dspermission": "Logistica - scrittura dati benestari",
550
- "idpermissionalt": "lgs_invauth_write",
551
- "sydatains": null
552
- },
553
- {
554
- "idpermission": 299,
555
- "dspermission": "Logistica - lettura settlement terna",
556
- "idpermissionalt": "lgs_terna_read",
557
- "sydatains": null
558
- },
559
- {
560
- "idpermission": 300,
561
- "dspermission": "Logistica - scrittura settlement terna",
562
- "idpermissionalt": "lgs_terna_write",
563
- "sydatains": null
564
- },
565
- {
566
- "idpermission": 301,
567
- "dspermission": "Logistica - Gestione servizi",
568
- "idpermissionalt": "lgs_gme_services",
569
- "sydatains": null
570
- },
571
- {
572
- "idpermission": 302,
573
- "dspermission": "Logistica - Lettura",
574
- "idpermissionalt": "lgs_read",
575
- "sydatains": null
576
- },
577
- {
578
- "idpermission": 303,
579
- "dspermission": "Logistica - Gestione Programmi aggregati/chiusure",
580
- "idpermissionalt": "lgs_eap_write",
581
- "sydatains": null
582
- },
583
- {
584
- "idpermission": 304,
585
- "dspermission": "Logistica - Gestione Programmi aggregati - riaperture",
586
- "idpermissionalt": "lgs_eap_reopen",
587
- "sydatains": null
588
- },
589
- {
590
- "idpermission": 411,
591
- "dspermission": "Billing - Lettura dati 'Lotti di fatturazione'",
592
- "idpermissionalt": "blg_elblot_read",
593
- "sydatains": null
594
- },
595
- {
596
- "idpermission": 511,
597
- "dspermission": "CRM Cap/Floor",
598
- "idpermissionalt": "crm_capfloor",
599
- "sydatains": null
600
- },
601
- {
602
- "idpermission": 611,
603
- "dspermission": "Crm - Mandati SEDA lettura",
604
- "idpermissionalt": "crm_back_seda_rd",
605
- "sydatains": null
606
- },
607
- {
608
- "idpermission": 613,
609
- "dspermission": "Crm - Mandati SEDA scrittura",
610
- "idpermissionalt": "crm_back_seda_wr",
611
- "sydatains": null
612
- },
613
- {
614
- "idpermission": 172,
615
- "dspermission": "Costchecking Writer L1",
616
- "idpermissionalt": "ccc_writer_l1",
617
- "sydatains": null
618
- },
619
- {
620
- "idpermission": 173,
621
- "dspermission": "Costchecking Writer L2",
622
- "idpermissionalt": "ccc_writer_l2",
623
- "sydatains": null
624
- },
625
- {
626
- "idpermission": 171,
627
- "dspermission": "Costchecking Reader",
628
- "idpermissionalt": "ccc_reader",
629
- "sydatains": null
630
- },
631
- {
632
- "idpermission": 471,
633
- "dspermission": "Crm - Lead lettura",
634
- "idpermissionalt": "crm_lead_rd",
635
- "sydatains": null
636
- },
637
- {
638
- "idpermission": 472,
639
- "dspermission": "Crm - Lead scrittura",
640
- "idpermissionalt": "crm_lead_wr",
641
- "sydatains": null
642
- },
643
- {
644
- "idpermission": 473,
645
- "dspermission": "Crm - Opportunity lettura",
646
- "idpermissionalt": "crm_opp_rd",
647
- "sydatains": null
648
- },
649
- {
650
- "idpermission": 474,
651
- "dspermission": "Crm - Opportunity scrittura",
652
- "idpermissionalt": "crm_opp_wr",
653
- "sydatains": null
654
- },
655
- {
656
- "idpermission": 475,
657
- "dspermission": "Crm - Controparti lettura",
658
- "idpermissionalt": "crm_prt_rd",
659
- "sydatains": null
660
- },
661
- {
662
- "idpermission": 476,
663
- "dspermission": "Crm - Controparti scrittura",
664
- "idpermissionalt": "crm_prt_wr",
665
- "sydatains": null
666
- },
667
- {
668
- "idpermission": 477,
669
- "dspermission": "Crm - Punti lettura",
670
- "idpermissionalt": "crm_sp_rd",
671
- "sydatains": null
672
- },
673
- {
674
- "idpermission": 478,
675
- "dspermission": "Crm - Punti scrittura",
676
- "idpermissionalt": "crm_sp_wr",
677
- "sydatains": null
678
- },
679
- {
680
- "idpermission": 479,
681
- "dspermission": "Crm - Contatti lettura",
682
- "idpermissionalt": "crm_cnt_rd",
683
- "sydatains": null
684
- },
685
- {
686
- "idpermission": 480,
687
- "dspermission": "Crm - Contatti scrittura",
688
- "idpermissionalt": "crm_cnt_wr",
689
- "sydatains": null
690
- },
691
- {
692
- "idpermission": 481,
693
- "dspermission": "Crm - Case lettura",
694
- "idpermissionalt": "crm_cas_rd",
695
- "sydatains": null
696
- },
697
- {
698
- "idpermission": 482,
699
- "dspermission": "Crm - Case scrittura",
700
- "idpermissionalt": "crm_cas_wr",
701
- "sydatains": null
702
- },
703
- {
704
- "idpermission": 483,
705
- "dspermission": "Crm - Richieste lettura",
706
- "idpermissionalt": "crm_bpm_rd",
707
- "sydatains": null
708
- },
709
- {
710
- "idpermission": 484,
711
- "dspermission": "Crm - Richieste scrittura",
712
- "idpermissionalt": "crm_bpm_wr",
713
- "sydatains": null
714
- },
715
- {
716
- "idpermission": 485,
717
- "dspermission": "Crm - Prodotti lettura",
718
- "idpermissionalt": "crm_prd_rd",
719
- "sydatains": null
720
- },
721
- {
722
- "idpermission": 486,
723
- "dspermission": "Crm - Prodotti scrittura",
724
- "idpermissionalt": "crm_prd_wr",
725
- "sydatains": null
726
- },
727
- {
728
- "idpermission": 487,
729
- "dspermission": "Crm - Tipi prodotti lettura",
730
- "idpermissionalt": "crm_tprd_rd",
731
- "sydatains": null
732
- },
733
- {
734
- "idpermission": 488,
735
- "dspermission": "Crm - Tipi prodotti scrittura",
736
- "idpermissionalt": "crm_tprd_wr",
737
- "sydatains": null
738
- },
739
- {
740
- "idpermission": 489,
741
- "dspermission": "Crm - Contratti lettura",
742
- "idpermissionalt": "crm_ctr_rd",
743
- "sydatains": null
744
- },
745
- {
746
- "idpermission": 490,
747
- "dspermission": "Crm - Contratti scrittura",
748
- "idpermissionalt": "crm_ctr_wr",
749
- "sydatains": null
750
- },
751
- {
752
- "idpermission": 491,
753
- "dspermission": "Crm - Campagne lettura",
754
- "idpermissionalt": "crm_cmp_rd",
755
- "sydatains": null
756
- },
757
- {
758
- "idpermission": 492,
759
- "dspermission": "Crm - Campagne scrittura",
760
- "idpermissionalt": "crm_cmp_wr",
761
- "sydatains": null
762
- },
763
- {
764
- "idpermission": 493,
765
- "dspermission": "Crm - Email services lettura",
766
- "idpermissionalt": "crm_email_rd",
767
- "sydatains": null
768
- },
769
- {
770
- "idpermission": 494,
771
- "dspermission": "Crm - Email services scrittura",
772
- "idpermissionalt": "crm_email_wr",
773
- "sydatains": null
774
- },
775
- {
776
- "idpermission": 495,
777
- "dspermission": "Crm - Backoffice lettura",
778
- "idpermissionalt": "crm_back_rd",
779
- "sydatains": null
780
- },
781
- {
782
- "idpermission": 496,
783
- "dspermission": "Crm - Backoffice scrittura",
784
- "idpermissionalt": "crm_back_wr",
785
- "sydatains": null
786
- },
787
- {
788
- "idpermission": 497,
789
- "dspermission": "Crm - Backoffice amministrazione lettura",
790
- "idpermissionalt": "crm_back_adm_rd",
791
- "sydatains": null
792
- },
793
- {
794
- "idpermission": 499,
795
- "dspermission": "Crm - Backoffice amministrazione scrittura",
796
- "idpermissionalt": "crm_back_adm_wr",
797
- "sydatains": null
798
- },
799
- {
800
- "idpermission": 500,
801
- "dspermission": "Crm - File import",
802
- "idpermissionalt": "crm_import",
803
- "sydatains": null
804
- },
805
- {
806
- "idpermission": 571,
807
- "dspermission": "Crm - Backoffice Banche scrittura",
808
- "idpermissionalt": "crm_back_banks_wr",
809
- "sydatains": null
810
- },
811
- {
812
- "idpermission": 572,
813
- "dspermission": "Crm - Backoffice Banche lettura",
814
- "idpermissionalt": "crm_back_banks_rd",
815
- "sydatains": null
816
- },
817
- {
818
- "idpermission": 573,
819
- "dspermission": "Crm - Backoffice Termini di Pagamento scrittura",
820
- "idpermissionalt": "crm_back_paymentterms_wr",
821
- "sydatains": null
822
- },
823
- {
824
- "idpermission": 574,
825
- "dspermission": "Crm - Backoffice Termini di Pagamento lettura",
826
- "idpermissionalt": "crm_back_paymentterms_rd",
827
- "sydatains": null
828
- },
829
- {
830
- "idpermission": 575,
831
- "dspermission": "Crm - Backoffice Prodotti scrittura",
832
- "idpermissionalt": "crm_back_products_wr",
833
- "sydatains": null
834
- },
835
- {
836
- "idpermission": 576,
837
- "dspermission": "Crm - Backoffice Prodotti lettura",
838
- "idpermissionalt": "crm_back_products_rd",
839
- "sydatains": null
840
- },
841
- {
842
- "idpermission": 591,
843
- "dspermission": "Crm - Backend Aggiungi/Modifica CAB",
844
- "idpermissionalt": "crm_back_cab_wr",
845
- "sydatains": null
846
- },
847
- {
848
- "idpermission": 14,
849
- "dspermission": "Operazioni base metering",
850
- "idpermissionalt": "mdm_op",
851
- "sydatains": null
852
- },
853
- {
854
- "idpermission": 15,
855
- "dspermission": "Operazioni massive metering",
856
- "idpermissionalt": "mdm_mass_op",
857
- "sydatains": null
858
- },
859
- {
860
- "idpermission": 16,
861
- "dspermission": "Operazioni avanzate metering",
862
- "idpermissionalt": "mdm_adv_op",
863
- "sydatains": null
864
- },
865
- {
866
- "idpermission": 17,
867
- "dspermission": "Operazioni forecasting su metering",
868
- "idpermissionalt": "mdm_fct",
869
- "sydatains": null
870
- },
871
- {
872
- "idpermission": 18,
873
- "dspermission": "Operazioni configurazione base metering",
874
- "idpermissionalt": "mdm_cfg_base",
875
- "sydatains": null
876
- },
877
- {
878
- "idpermission": 19,
879
- "dspermission": "Operazioni configurazione avanzata metering",
880
- "idpermissionalt": "mdm_cfg_adv",
881
- "sydatains": null
882
- },
883
- {
884
- "idpermission": 21,
885
- "dspermission": "Operazioni customizzazione metering",
886
- "idpermissionalt": "mdm_customize",
887
- "sydatains": null
888
- },
889
- {
890
- "idpermission": 22,
891
- "dspermission": "Visualizzazione dati metering",
892
- "idpermissionalt": "mdm_read",
893
- "sydatains": null
894
- },
895
- {
896
- "idpermission": 151,
897
- "dspermission": "Dogane Operazioni Comunicazioni",
898
- "idpermissionalt": "dgn_comm_op",
899
- "sydatains": null
900
- },
901
- {
902
- "idpermission": 153,
903
- "dspermission": "Dogane Admin Comunicazioni",
904
- "idpermissionalt": "dgn_comm_adm",
905
- "sydatains": null
906
- },
907
- {
908
- "idpermission": 154,
909
- "dspermission": "Dogane Operazioni Pagamenti Massivi",
910
- "idpermissionalt": "dgn_pag_op",
911
- "sydatains": null
912
- },
913
- {
914
- "idpermission": 155,
915
- "dspermission": "Dogane Pagamenti Retro",
916
- "idpermissionalt": "dgn_pag_rt",
917
- "sydatains": null
918
- },
919
- {
920
- "idpermission": 156,
921
- "dspermission": "Dogane Pagamenti Admin",
922
- "idpermissionalt": "dgn_pag_adm",
923
- "sydatains": null
924
- },
925
- {
926
- "idpermission": 157,
927
- "dspermission": "Dogane Dichiarazioni di consumo Read",
928
- "idpermissionalt": "dgn_dich_read",
929
- "sydatains": null
930
- },
931
- {
932
- "idpermission": 158,
933
- "dspermission": "Dogane Operazioni Dichiarazioni di consumo",
934
- "idpermissionalt": "dgn_dich_op",
935
- "sydatains": null
936
- },
937
- {
938
- "idpermission": 159,
939
- "dspermission": "Dogane Cod. Ditta Read",
940
- "idpermissionalt": "dgn_codditta_read",
941
- "sydatains": null
942
- },
943
- {
944
- "idpermission": 161,
945
- "dspermission": "Dogane modifica template",
946
- "idpermissionalt": "dgn_templ_op",
947
- "sydatains": null
948
- },
949
- {
950
- "idpermission": 162,
951
- "dspermission": "Dogane gestione credito",
952
- "idpermissionalt": "dgn_pos_credit_op",
953
- "sydatains": null
954
- },
955
- {
956
- "idpermission": 231,
957
- "dspermission": "Dogane Import Read",
958
- "idpermissionalt": "dgn_import_read",
959
- "sydatains": null
960
- },
961
- {
962
- "idpermission": 232,
963
- "dspermission": "Dogane Import Writer",
964
- "idpermissionalt": "dgn_import_writer",
965
- "sydatains": null
966
- },
967
- {
968
- "idpermission": 305,
969
- "dspermission": "Logistica - Scrittura generica (es: import file, ecc.)",
970
- "idpermissionalt": "lgs_write",
971
- "sydatains": null
972
- },
973
- {
974
- "idpermission": 306,
975
- "dspermission": "Logistica - permessi admin",
976
- "idpermissionalt": "lgs_admin",
977
- "sydatains": null
978
- },
979
- {
980
- "idpermission": 431,
981
- "dspermission": "Billing - Riesegui 'Lotti di fatturazione'",
982
- "idpermissionalt": "blg_elblot_exec",
983
- "sydatains": null
984
- },
985
- {
986
- "idpermission": 501,
987
- "dspermission": "AutoConsumo Diffuso - lettura",
988
- "idpermissionalt": "acd_rd",
989
- "sydatains": null
990
- },
991
- {
992
- "idpermission": 1,
993
- "dspermission": "Gestione utenti tenant",
994
- "idpermissionalt": "manage_user",
995
- "sydatains": null
996
- },
997
- {
998
- "idpermission": 2,
999
- "dspermission": "View moduli tenant",
1000
- "idpermissionalt": "manage_modules",
1001
- "sydatains": null
1002
- },
1003
- {
1004
- "idpermission": 192,
1005
- "dspermission": "Modifica configurazione sistemi AMI metering",
1006
- "idpermissionalt": "mdm_ami_customize",
1007
- "sydatains": null
1008
- },
1009
- {
1010
- "idpermission": 132,
1011
- "dspermission": "Dogane esegui data checks",
1012
- "idpermissionalt": "dgn_datachecks_op",
1013
- "sydatains": null
1014
- },
1015
- {
1016
- "idpermission": 191,
1017
- "dspermission": "Lettura info AMI metering",
1018
- "idpermissionalt": "mdm_ami_read",
1019
- "sydatains": null
1020
- },
1021
- {
1022
- "idpermission": 31,
1023
- "dspermission": "Visualizzazione dati avanzati metering",
1024
- "idpermissionalt": "mdm_adv_read",
1025
- "sydatains": null
1026
- },
1027
- {
1028
- "idpermission": 32,
1029
- "dspermission": "Visualizzazione configurazione metering",
1030
- "idpermissionalt": "mdm_cfg_read",
1031
- "sydatains": null
1032
- },
1033
- {
1034
- "idpermission": 33,
1035
- "dspermission": "Operazioni massive eliminazione metering",
1036
- "idpermissionalt": "mdm_mass_del",
1037
- "sydatains": null
1038
- },
1039
- {
1040
- "idpermission": 135,
1041
- "dspermission": "Dogane Operazioni su Forniture",
1042
- "idpermissionalt": "dgn_for_op",
1043
- "sydatains": null
1044
- }
1045
- ]
1046
- };
1047
- return accountScope;
1048
- }
1049
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, deps: [{ token: i1.CookieService }, { token: USE_FAKE_ACCESS_TOKEN, optional: true }, { token: ANONYMOUS_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1050
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, providedIn: "root" }); }
1051
- }
1052
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, decorators: [{
1053
- type: Injectable,
1054
- args: [{ providedIn: "root" }]
1055
- }], ctorParameters: function () { return [{ type: i1.CookieService }, { type: undefined, decorators: [{
1056
- type: Optional
1057
- }, {
1058
- type: Inject,
1059
- args: [USE_FAKE_ACCESS_TOKEN]
1060
- }] }, { type: undefined, decorators: [{
1061
- type: Optional
1062
- }, {
1063
- type: Inject,
1064
- args: [ANONYMOUS_MODE]
1065
- }] }]; } });
30
+ // Angular
31
+ class TokenService {
32
+ constructor(cs, USE_FAKE_ACCESS_TOKEN, ANONYMOUS_MODE) {
33
+ this.cs = cs;
34
+ this.USE_FAKE_ACCESS_TOKEN = USE_FAKE_ACCESS_TOKEN;
35
+ this.ANONYMOUS_MODE = ANONYMOUS_MODE;
36
+ if (this.USE_FAKE_ACCESS_TOKEN)
37
+ this.accountScope = this.getFakeAccountScope();
38
+ }
39
+ clearTokens() {
40
+ this.cs.delete("access_token");
41
+ }
42
+ getAccessToken() {
43
+ if (this.ANONYMOUS_MODE)
44
+ return "";
45
+ return this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get("accessToken");
46
+ }
47
+ getJaceIdentity() {
48
+ if (this.ANONYMOUS_MODE)
49
+ return null;
50
+ let token = this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get("accessToken");
51
+ if (!token)
52
+ return null;
53
+ let base64Url = token.split(".")[1];
54
+ let base64 = base64Url.replace("-", "+").replace("_", "/");
55
+ let tokenData = JSON.parse(decodeURIComponent(window.atob(base64).split("").map(c => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2)).join("")));
56
+ let identity = new JaceIdentity(this.accountScope);
57
+ identity.IdActor = tokenData.ACTORID;
58
+ identity.IdActorRole = tokenData.ACTORROLEID;
59
+ identity.IdAccount = tokenData.ACCOUNTID;
60
+ identity.IdUser = tokenData.USERID;
61
+ identity.DsUser = tokenData.USERNAME;
62
+ identity.FullName = tokenData.USERDESCRIPTION;
63
+ identity.Idtenant = tokenData.TENANT;
64
+ identity.TenantName = tokenData.TENANTNAME;
65
+ identity.ExpirationTime = new Date(tokenData.exp * 1000); //unix-epoch in secondi -> millisecondi
66
+ return identity;
67
+ }
68
+ //Accesstoken fittizio ma valido, per simulare la connession corretta col backend
69
+ getFakeToken() {
70
+ /* Il Token generato è il seguente:
1066
71
 
1067
- // Angular
1068
- class GlobalSearchService {
1069
- constructor() {
1070
- this.Enabled = false;
1071
- }
1072
- /**
1073
- * Effettua una ricerca in base a un termine generico
1074
- *
1075
- * @param term Termine da cercare
1076
- * @returns {SearchResultContainer} Contenitore della ricerca
1077
- */
1078
- search(term) {
1079
- return of(null);
1080
- }
1081
- /**
1082
- * Data la definizione semplice di una colonna restituisce un oggetto che indica se bisogna presentere un link su di essa
1083
- *
1084
- * @param column Colonna per cui verificare la presentazione di un link. Esempio: {id: "IDPARTY", description: "Cod. Controparte"}
1085
- * @returns {{ routePath: string, routeProperties: string[] }} Oggetto che indica un link con i propri binding. Ad esempio: {routePath: "['/pages/parties/parties_details', { 'idModel': '{0}' }]", routeProperties: ["IDPARTY"]}
1086
- */
1087
- generateColumnLink(column) {
1088
- return null;
1089
- }
1090
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1091
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalSearchService }); }
1092
- }
1093
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalSearchService, decorators: [{
1094
- type: Injectable
72
+ {
73
+ "nbf": 1590415846,
74
+ "exp": 1990420065,
75
+ "iss": "http://authapi.jace.energysoftware.priv",
76
+ "aud": [ "http://authapi.jace.energysoftware.priv/resources", "authentication" ],
77
+ "client_id": "application",
78
+ "sub": "1003",
79
+ "auth_time": 1590415846,
80
+ "idp": "local",
81
+ "ACCOUNTID": "1003",
82
+ "USERID": "259",
83
+ "USERDESCRIPTION": "Test User",
84
+ "USERNAME": "TEST",
85
+ "TENANT": "FX",
86
+ "TENANTNAME": "Fenix Srl",
87
+ "jti": "0e5307561606e444e2885b11a3144421",
88
+ "scope": [ "auth", "offline_access" ],
89
+ "amr": ["password" ],
90
+ "iat": 1590416465
91
+ }
92
+ */
93
+ return "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE1OTA0MTU4NDYsImV4cCI6MTk5MDQyMDA2NSwiaXNzIjoiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYiLCJhdWQiOlsiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYvcmVzb3VyY2VzIiwiYXV0aGVudGljYXRpbyJdLCJjbGllbnRfaWQiOiJtZXRlcmluZ3N0YWdpbmciLCJzdWIiOiIxMDAzIiwiYXV0aF90aW1lIjoxNTkwNDE1ODQ2LCJpZHAiOiJsb2NhbCIsIkFDQ09VTlRJRCI6IjEwMDMiLCJVU0VSSUQiOiIyNTkiLCJVU0VSREVTQ1JJUFRJT04iOiJUZXN0IFVzZXIiLCJVU0VSTkFNRSI6IlRFU1QiLCJURU5BTlQiOiJGWCIsIlRFTkFOVE5BTUUiOiJGZW5peCBTcmwiLCJqdGkiOiIwZTUzMDc1NjE2MDZlNDQ0ZTI4ODViMTFhMzE0NDQyMSIsInNjb3BlIjpbImF1dGgiLCJvZmZsaW5lX2FjY2VzcyJdLCJhbXIiOlsicGFzc3dvcmQiXSwiaWF0IjoxNTkwNDE2NDY1fQ.aev_Txa9tIaEZvZ_KWDqb2Ob95Nf-3rqsNyJX4BPKXE";
94
+ }
95
+ getFakeAccountScope() {
96
+ let accountScope = {
97
+ "modules": [
98
+ {
99
+ "idmodule": 36,
100
+ "dsname": "Auth",
101
+ "dscategory": "Infrastructure",
102
+ "idmodulealt": "auth"
103
+ },
104
+ {
105
+ "idmodule": 14,
106
+ "dsname": "Compliance Dati Catastali",
107
+ "dscategory": "Compliance",
108
+ "idmodulealt": "complianceade"
109
+ },
110
+ {
111
+ "idmodule": 2,
112
+ "dsname": "Forecasting & Metering",
113
+ "dscategory": "Data Treatment",
114
+ "idmodulealt": "mdm"
115
+ },
116
+ {
117
+ "idmodule": 48,
118
+ "dsname": "Sales Management",
119
+ "dscategory": "Data Treatment",
120
+ "idmodulealt": "sales"
121
+ },
122
+ {
123
+ "idmodule": 42,
124
+ "dsname": "SII Connector",
125
+ "dscategory": "Data Treatment",
126
+ "idmodulealt": "sii"
127
+ },
128
+ {
129
+ "idmodule": 5,
130
+ "dsname": "Billing",
131
+ "dscategory": "Data Treatment",
132
+ "idmodulealt": "billing"
133
+ },
134
+ {
135
+ "idmodule": 7,
136
+ "dsname": "Cost checking & Reconciliation",
137
+ "dscategory": "Data Treatment",
138
+ "idmodulealt": "ccr"
139
+ },
140
+ {
141
+ "idmodule": 8,
142
+ "dsname": "Compliance REMIT",
143
+ "dscategory": "Compliance",
144
+ "idmodulealt": "remit"
145
+ },
146
+ {
147
+ "idmodule": 51,
148
+ "dsname": "CRM",
149
+ "dscategory": "Data Treatment",
150
+ "idmodulealt": "crm"
151
+ },
152
+ {
153
+ "idmodule": 11,
154
+ "dsname": "Compliance ARERA",
155
+ "dscategory": "Compliance",
156
+ "idmodulealt": "compliance"
157
+ },
158
+ {
159
+ "idmodule": 54,
160
+ "dsname": "Partner Portal",
161
+ "dscategory": "Data Treatment",
162
+ "idmodulealt": "pp"
163
+ },
164
+ {
165
+ "idmodule": 35,
166
+ "dsname": "Scheduler",
167
+ "dscategory": "Data Treatment",
168
+ "idmodulealt": "scheduler"
169
+ },
170
+ {
171
+ "idmodule": 34,
172
+ "dsname": "Jace Dashboard",
173
+ "dscategory": "Infrastructure",
174
+ "idmodulealt": "jace"
175
+ },
176
+ {
177
+ "idmodule": 1,
178
+ "dsname": "Market Data",
179
+ "dscategory": "Data Treatment",
180
+ "idmodulealt": "marketdata"
181
+ },
182
+ {
183
+ "idmodule": 31,
184
+ "dsname": "Toolset",
185
+ "dscategory": "Data Treatment",
186
+ "idmodulealt": "toolset"
187
+ },
188
+ {
189
+ "idmodule": 32,
190
+ "dsname": "Customer Portal Admin",
191
+ "dscategory": "Administration",
192
+ "idmodulealt": "customerportal"
193
+ },
194
+ {
195
+ "idmodule": 10,
196
+ "dsname": "Compliance Dogane",
197
+ "dscategory": "Compliance",
198
+ "idmodulealt": "dogane"
199
+ },
200
+ {
201
+ "idmodule": 40,
202
+ "dsname": "Data Manager",
203
+ "dscategory": "Data Treatment",
204
+ "idmodulealt": "dmg"
205
+ },
206
+ {
207
+ "idmodule": 12,
208
+ "dsname": "Credit Management",
209
+ "dscategory": "Data Treatment",
210
+ "idmodulealt": "credit"
211
+ },
212
+ {
213
+ "idmodule": 52,
214
+ "dsname": "Business Process Manager",
215
+ "dscategory": "Data Treatment",
216
+ "idmodulealt": "BPM"
217
+ },
218
+ {
219
+ "idmodule": 46,
220
+ "dsname": "Logistic",
221
+ "dscategory": "Data Treatment",
222
+ "idmodulealt": "lgs"
223
+ }
224
+ ],
225
+ "roles": [
226
+ {
227
+ "idrole": 1,
228
+ "idrolealt": "Tenant Admin",
229
+ "dsrole": "Tenant Admin",
230
+ "dsnote": "Per generici permessi di amministrazione/configurazione di un modulo: Es. Billi",
231
+ "idparent": 0,
232
+ "sydatains": new Date("2018-05-02T11:03:35+02:00"),
233
+ "syuserins": "AUTH"
234
+ },
235
+ {
236
+ "idrole": 9,
237
+ "idrolealt": "Tenant Reader",
238
+ "dsrole": "Tenant Reader",
239
+ "dsnote": "Per generico permesso di lettura su tutti i moduli abilitati del Tenant",
240
+ "idparent": 0,
241
+ "sydatains": new Date("2018-07-23T16:13:38+02:00"),
242
+ "syuserins": "FRANCEM",
243
+ "sydataupd": new Date("2018-12-03T19:42:41+01:00"),
244
+ "syuserupd": "FRANCEM"
245
+ },
246
+ {
247
+ "idrole": 11,
248
+ "idrolealt": "Compl. ARERA Reader",
249
+ "dsrole": "Compl. ARERA Reader",
250
+ "dsnote": "Permesso di lettura al solo modulo Compl. ARERA",
251
+ "idparent": 0,
252
+ "sydatains": new Date("2018-07-23T16:22:56+02:00"),
253
+ "syuserins": "FRANCEM"
254
+ },
255
+ {
256
+ "idrole": 13,
257
+ "idrolealt": "Compl. ARERA Writer L1",
258
+ "dsrole": "Compl. ARERA Writer L1",
259
+ "dsnote": "Responsabile business del modulo Compl. ARERA: può chiudere indagini",
260
+ "idparent": 0,
261
+ "sydatains": new Date("2018-07-23T16:23:15+02:00"),
262
+ "syuserins": "FRANCEM"
263
+ },
264
+ {
265
+ "idrole": 15,
266
+ "idrolealt": "Compl. ARERA Writer L2",
267
+ "dsrole": "Compl. ARERA Writer L2",
268
+ "dsnote": "Operatore business del modulo Compl. ARERA: può elaborare, ma non chiudere indagini",
269
+ "idparent": 0,
270
+ "sydatains": new Date("2018-07-23T16:23:27+02:00"),
271
+ "syuserins": "FRANCEM"
272
+ },
273
+ {
274
+ "idrole": 28,
275
+ "idrolealt": "Jace Admin",
276
+ "dsrole": "Jace Admin",
277
+ "dsnote": "Amministratore generico per l'intera suite.",
278
+ "idparent": 0,
279
+ "sydatains": new Date("2018-07-25T17:20:41+02:00"),
280
+ "syuserins": "RIVOLAM"
281
+ },
282
+ {
283
+ "idrole": 88,
284
+ "idrolealt": "Metering: Reader",
285
+ "dsrole": "Metering: Reader",
286
+ "dsnote": "Sola lettura",
287
+ "idparent": 0,
288
+ "sydatains": new Date("2019-04-30T12:29:12+02:00"),
289
+ "syuserins": "FERNIAA"
290
+ },
291
+ {
292
+ "idrole": 89,
293
+ "idrolealt": "Metering: Writer L1",
294
+ "dsrole": "Metering: Writer L1",
295
+ "dsnote": "Gestione entità semplici",
296
+ "idparent": 0,
297
+ "sydatains": new Date("2019-04-30T12:29:17+02:00"),
298
+ "syuserins": "FERNIAA"
299
+ },
300
+ {
301
+ "idrole": 90,
302
+ "idrolealt": "Metering: Writer L2",
303
+ "dsrole": "Metering: Writer L2",
304
+ "dsnote": "Gestione entità complesse",
305
+ "idparent": 0,
306
+ "sydatains": new Date("2019-04-30T12:29:21+02:00"),
307
+ "syuserins": "FERNIAA"
308
+ },
309
+ {
310
+ "idrole": 91,
311
+ "idrolealt": "Metering: Admin",
312
+ "dsrole": "Metering: Admin",
313
+ "dsnote": "Customizzazione",
314
+ "idparent": 0,
315
+ "sydatains": new Date("2019-04-30T12:29:29+02:00"),
316
+ "syuserins": "FERNIAA"
317
+ },
318
+ {
319
+ "idrole": 269,
320
+ "idrolealt": "dgn_op",
321
+ "dsrole": "Dogane Operator",
322
+ "dsnote": "Consente di fare operazioni come ad esempio generare un pagamento massivo, una comunicazione massiva o modificare le posizioni / comunicaizoni",
323
+ "idparent": 0,
324
+ "sydatains": new Date("2020-07-01T12:31:32+02:00"),
325
+ "syuserins": "RONDINC"
326
+ },
327
+ {
328
+ "idrole": 349,
329
+ "idrolealt": "cost_admin",
330
+ "dsrole": "Costchecking Writer L2",
331
+ "dsnote": "Ruolo di admin per il costchecking che consente di utilizzare qualunque funzionalità del modulo",
332
+ "idparent": 0,
333
+ "sydatains": new Date("2020-11-17T09:44:48+01:00"),
334
+ "syuserins": "RONDINC"
335
+ },
336
+ {
337
+ "idrole": 370,
338
+ "idrolealt": "toolset_reader",
339
+ "dsrole": "Toolset Reader",
340
+ "idparent": 0,
341
+ "sydatains": new Date("2020-11-24T10:48:33+01:00"),
342
+ "syuserins": "RONDINC"
343
+ },
344
+ {
345
+ "idrole": 489,
346
+ "idrolealt": "lgs_read",
347
+ "dsrole": "Logistica Reader",
348
+ "idparent": 0,
349
+ "sydatains": new Date("2021-03-30T16:50:54+02:00"),
350
+ "syuserins": "FERNIAA"
351
+ },
352
+ {
353
+ "idrole": 491,
354
+ "idrolealt": "lgs_md_write",
355
+ "dsrole": "Logistica Writer Ana",
356
+ "idparent": 0,
357
+ "sydatains": new Date("2021-03-30T16:51:09+02:00"),
358
+ "syuserins": "FERNIAA"
359
+ },
360
+ {
361
+ "idrole": 492,
362
+ "idrolealt": "lgs_eap_write",
363
+ "dsrole": "Logistica Writer Aggr",
364
+ "idparent": 0,
365
+ "sydatains": new Date("2021-03-30T16:52:46+02:00"),
366
+ "syuserins": "FERNIAA"
367
+ },
368
+ {
369
+ "idrole": 493,
370
+ "idrolealt": "lgs_pce",
371
+ "dsrole": "Logistica Writer PCE",
372
+ "idparent": 0,
373
+ "sydatains": new Date("2021-03-30T16:53:09+02:00"),
374
+ "syuserins": "FERNIAA"
375
+ },
376
+ {
377
+ "idrole": 494,
378
+ "idrolealt": "lgs_ipex",
379
+ "dsrole": "Logistica Writer IPEX",
380
+ "idparent": 0,
381
+ "sydatains": new Date("2021-03-30T16:53:18+02:00"),
382
+ "syuserins": "FERNIAA"
383
+ },
384
+ {
385
+ "idrole": 495,
386
+ "idrolealt": "lgs_invauth",
387
+ "dsrole": "Logistica Writer Benestari GME",
388
+ "idparent": 0,
389
+ "sydatains": new Date("2021-03-30T16:53:30+02:00"),
390
+ "syuserins": "FERNIAA"
391
+ },
392
+ {
393
+ "idrole": 496,
394
+ "idrolealt": "lgs_terna",
395
+ "dsrole": "Logistica Writer Settlement Terna",
396
+ "idparent": 0,
397
+ "sydatains": new Date("2021-03-30T16:53:44+02:00"),
398
+ "syuserins": "FERNIAA"
399
+ },
400
+ {
401
+ "idrole": 497,
402
+ "idrolealt": "lgs_writer_full",
403
+ "dsrole": "Logistica Full Writer",
404
+ "idparent": 0,
405
+ "sydatains": new Date("2021-03-30T16:53:56+02:00"),
406
+ "syuserins": "FERNIAA"
407
+ },
408
+ {
409
+ "idrole": 688,
410
+ "idrolealt": "blg_business",
411
+ "dsrole": "Billing Business",
412
+ "idparent": 0,
413
+ "sydatains": new Date("2022-09-20T09:26:42+02:00"),
414
+ "syuserins": "RONDINC"
415
+ },
416
+ {
417
+ "idrole": 708,
418
+ "idrolealt": "cus_admin",
419
+ "dsrole": "CustomerPortal Admin",
420
+ "dsnote": "Amministrazione utenti CustomerPortal",
421
+ "idparent": 0,
422
+ "sydatains": new Date("2022-11-16T10:17:01+01:00"),
423
+ "syuserins": "TURCHII"
424
+ },
425
+ {
426
+ "idrole": 808,
427
+ "idrolealt": "crm_fo_rd",
428
+ "dsrole": "CRM FrontOffice Reader",
429
+ "idparent": 0,
430
+ "sydatains": new Date("2023-07-19T13:18:34+02:00"),
431
+ "syuserins": "GHETTIE"
432
+ },
433
+ {
434
+ "idrole": 809,
435
+ "idrolealt": "crm_bo_rd",
436
+ "dsrole": "CRM BackOffice Reader",
437
+ "idparent": 0,
438
+ "sydatains": new Date("2023-07-19T13:18:45+02:00"),
439
+ "syuserins": "GHETTIE"
440
+ },
441
+ {
442
+ "idrole": 810,
443
+ "idrolealt": "crm_bo_wr_l1",
444
+ "dsrole": "CRM BackOffice Writer L1",
445
+ "idparent": 0,
446
+ "sydatains": new Date("2023-07-19T13:18:52+02:00"),
447
+ "syuserins": "GHETTIE"
448
+ },
449
+ {
450
+ "idrole": 811,
451
+ "idrolealt": "crm_bo_wr_l2",
452
+ "dsrole": "CRM BackOffice Writer L2",
453
+ "idparent": 0,
454
+ "sydatains": new Date("2023-07-19T13:18:59+02:00"),
455
+ "syuserins": "GHETTIE"
456
+ },
457
+ {
458
+ "idrole": 812,
459
+ "idrolealt": "crm_fo_wr_l1",
460
+ "dsrole": "CRM FrontOffice Writer L1",
461
+ "idparent": 0,
462
+ "sydatains": new Date("2023-07-19T13:19:04+02:00"),
463
+ "syuserins": "GHETTIE"
464
+ },
465
+ {
466
+ "idrole": 813,
467
+ "idrolealt": "crm_fo_wr_l2",
468
+ "dsrole": "CRM FrontOffice Writer L2",
469
+ "idparent": 0,
470
+ "sydatains": new Date("2023-07-19T13:19:09+02:00"),
471
+ "syuserins": "GHETTIE"
472
+ }
473
+ ],
474
+ "permissions": [
475
+ {
476
+ "idpermission": 51,
477
+ "dspermission": "Operazioni massive forecasting su metering",
478
+ "idpermissionalt": "mdm_mass_fct",
479
+ "sydatains": null
480
+ },
481
+ {
482
+ "idpermission": 134,
483
+ "dspermission": "Dogane apri / chiudi posizioni",
484
+ "idpermissionalt": "dgn_pos_op",
485
+ "sydatains": null
486
+ },
487
+ {
488
+ "idpermission": 211,
489
+ "dspermission": "Scarico dati sistemi AMI metering",
490
+ "idpermissionalt": "mdm_ami_dl",
491
+ "sydatains": null
492
+ },
493
+ {
494
+ "idpermission": 271,
495
+ "dspermission": "Dogane Elimina Importazione",
496
+ "idpermissionalt": "dgn_flow_delete",
497
+ "sydatains": null
498
+ },
499
+ {
500
+ "idpermission": 131,
501
+ "dspermission": "Dogane Read",
502
+ "idpermissionalt": "dgn_read",
503
+ "sydatains": null
504
+ },
505
+ {
506
+ "idpermission": 133,
507
+ "dspermission": "Dogane operazioni su rate e pagamenti ",
508
+ "idpermissionalt": "dgn_payments_op",
509
+ "sydatains": null
510
+ },
511
+ {
512
+ "idpermission": 291,
513
+ "dspermission": "Logistica - modifica dati anagrafica",
514
+ "idpermissionalt": "lgs_md_write",
515
+ "sydatains": null
516
+ },
517
+ {
518
+ "idpermission": 292,
519
+ "dspermission": "Logistica - lettura dati PCE",
520
+ "idpermissionalt": "lgs_pce_read",
521
+ "sydatains": null
522
+ },
523
+ {
524
+ "idpermission": 293,
525
+ "dspermission": "Logistica - scrittura dati PCE",
526
+ "idpermissionalt": "lgs_pce_write",
527
+ "sydatains": null
528
+ },
529
+ {
530
+ "idpermission": 294,
531
+ "dspermission": "Logistica - lettura dati IPEX",
532
+ "idpermissionalt": "lgs_ipex_read",
533
+ "sydatains": null
534
+ },
535
+ {
536
+ "idpermission": 296,
537
+ "dspermission": "Logistica - scrittura dati IPEX",
538
+ "idpermissionalt": "lgs_ipex_write",
539
+ "sydatains": null
540
+ },
541
+ {
542
+ "idpermission": 297,
543
+ "dspermission": "Logistica - lettura dati benestari",
544
+ "idpermissionalt": "lgs_invauth_read",
545
+ "sydatains": null
546
+ },
547
+ {
548
+ "idpermission": 298,
549
+ "dspermission": "Logistica - scrittura dati benestari",
550
+ "idpermissionalt": "lgs_invauth_write",
551
+ "sydatains": null
552
+ },
553
+ {
554
+ "idpermission": 299,
555
+ "dspermission": "Logistica - lettura settlement terna",
556
+ "idpermissionalt": "lgs_terna_read",
557
+ "sydatains": null
558
+ },
559
+ {
560
+ "idpermission": 300,
561
+ "dspermission": "Logistica - scrittura settlement terna",
562
+ "idpermissionalt": "lgs_terna_write",
563
+ "sydatains": null
564
+ },
565
+ {
566
+ "idpermission": 301,
567
+ "dspermission": "Logistica - Gestione servizi",
568
+ "idpermissionalt": "lgs_gme_services",
569
+ "sydatains": null
570
+ },
571
+ {
572
+ "idpermission": 302,
573
+ "dspermission": "Logistica - Lettura",
574
+ "idpermissionalt": "lgs_read",
575
+ "sydatains": null
576
+ },
577
+ {
578
+ "idpermission": 303,
579
+ "dspermission": "Logistica - Gestione Programmi aggregati/chiusure",
580
+ "idpermissionalt": "lgs_eap_write",
581
+ "sydatains": null
582
+ },
583
+ {
584
+ "idpermission": 304,
585
+ "dspermission": "Logistica - Gestione Programmi aggregati - riaperture",
586
+ "idpermissionalt": "lgs_eap_reopen",
587
+ "sydatains": null
588
+ },
589
+ {
590
+ "idpermission": 411,
591
+ "dspermission": "Billing - Lettura dati 'Lotti di fatturazione'",
592
+ "idpermissionalt": "blg_elblot_read",
593
+ "sydatains": null
594
+ },
595
+ {
596
+ "idpermission": 511,
597
+ "dspermission": "CRM Cap/Floor",
598
+ "idpermissionalt": "crm_capfloor",
599
+ "sydatains": null
600
+ },
601
+ {
602
+ "idpermission": 611,
603
+ "dspermission": "Crm - Mandati SEDA lettura",
604
+ "idpermissionalt": "crm_back_seda_rd",
605
+ "sydatains": null
606
+ },
607
+ {
608
+ "idpermission": 613,
609
+ "dspermission": "Crm - Mandati SEDA scrittura",
610
+ "idpermissionalt": "crm_back_seda_wr",
611
+ "sydatains": null
612
+ },
613
+ {
614
+ "idpermission": 172,
615
+ "dspermission": "Costchecking Writer L1",
616
+ "idpermissionalt": "ccc_writer_l1",
617
+ "sydatains": null
618
+ },
619
+ {
620
+ "idpermission": 173,
621
+ "dspermission": "Costchecking Writer L2",
622
+ "idpermissionalt": "ccc_writer_l2",
623
+ "sydatains": null
624
+ },
625
+ {
626
+ "idpermission": 171,
627
+ "dspermission": "Costchecking Reader",
628
+ "idpermissionalt": "ccc_reader",
629
+ "sydatains": null
630
+ },
631
+ {
632
+ "idpermission": 471,
633
+ "dspermission": "Crm - Lead lettura",
634
+ "idpermissionalt": "crm_lead_rd",
635
+ "sydatains": null
636
+ },
637
+ {
638
+ "idpermission": 472,
639
+ "dspermission": "Crm - Lead scrittura",
640
+ "idpermissionalt": "crm_lead_wr",
641
+ "sydatains": null
642
+ },
643
+ {
644
+ "idpermission": 473,
645
+ "dspermission": "Crm - Opportunity lettura",
646
+ "idpermissionalt": "crm_opp_rd",
647
+ "sydatains": null
648
+ },
649
+ {
650
+ "idpermission": 474,
651
+ "dspermission": "Crm - Opportunity scrittura",
652
+ "idpermissionalt": "crm_opp_wr",
653
+ "sydatains": null
654
+ },
655
+ {
656
+ "idpermission": 475,
657
+ "dspermission": "Crm - Controparti lettura",
658
+ "idpermissionalt": "crm_prt_rd",
659
+ "sydatains": null
660
+ },
661
+ {
662
+ "idpermission": 476,
663
+ "dspermission": "Crm - Controparti scrittura",
664
+ "idpermissionalt": "crm_prt_wr",
665
+ "sydatains": null
666
+ },
667
+ {
668
+ "idpermission": 477,
669
+ "dspermission": "Crm - Punti lettura",
670
+ "idpermissionalt": "crm_sp_rd",
671
+ "sydatains": null
672
+ },
673
+ {
674
+ "idpermission": 478,
675
+ "dspermission": "Crm - Punti scrittura",
676
+ "idpermissionalt": "crm_sp_wr",
677
+ "sydatains": null
678
+ },
679
+ {
680
+ "idpermission": 479,
681
+ "dspermission": "Crm - Contatti lettura",
682
+ "idpermissionalt": "crm_cnt_rd",
683
+ "sydatains": null
684
+ },
685
+ {
686
+ "idpermission": 480,
687
+ "dspermission": "Crm - Contatti scrittura",
688
+ "idpermissionalt": "crm_cnt_wr",
689
+ "sydatains": null
690
+ },
691
+ {
692
+ "idpermission": 481,
693
+ "dspermission": "Crm - Case lettura",
694
+ "idpermissionalt": "crm_cas_rd",
695
+ "sydatains": null
696
+ },
697
+ {
698
+ "idpermission": 482,
699
+ "dspermission": "Crm - Case scrittura",
700
+ "idpermissionalt": "crm_cas_wr",
701
+ "sydatains": null
702
+ },
703
+ {
704
+ "idpermission": 483,
705
+ "dspermission": "Crm - Richieste lettura",
706
+ "idpermissionalt": "crm_bpm_rd",
707
+ "sydatains": null
708
+ },
709
+ {
710
+ "idpermission": 484,
711
+ "dspermission": "Crm - Richieste scrittura",
712
+ "idpermissionalt": "crm_bpm_wr",
713
+ "sydatains": null
714
+ },
715
+ {
716
+ "idpermission": 485,
717
+ "dspermission": "Crm - Prodotti lettura",
718
+ "idpermissionalt": "crm_prd_rd",
719
+ "sydatains": null
720
+ },
721
+ {
722
+ "idpermission": 486,
723
+ "dspermission": "Crm - Prodotti scrittura",
724
+ "idpermissionalt": "crm_prd_wr",
725
+ "sydatains": null
726
+ },
727
+ {
728
+ "idpermission": 487,
729
+ "dspermission": "Crm - Tipi prodotti lettura",
730
+ "idpermissionalt": "crm_tprd_rd",
731
+ "sydatains": null
732
+ },
733
+ {
734
+ "idpermission": 488,
735
+ "dspermission": "Crm - Tipi prodotti scrittura",
736
+ "idpermissionalt": "crm_tprd_wr",
737
+ "sydatains": null
738
+ },
739
+ {
740
+ "idpermission": 489,
741
+ "dspermission": "Crm - Contratti lettura",
742
+ "idpermissionalt": "crm_ctr_rd",
743
+ "sydatains": null
744
+ },
745
+ {
746
+ "idpermission": 490,
747
+ "dspermission": "Crm - Contratti scrittura",
748
+ "idpermissionalt": "crm_ctr_wr",
749
+ "sydatains": null
750
+ },
751
+ {
752
+ "idpermission": 491,
753
+ "dspermission": "Crm - Campagne lettura",
754
+ "idpermissionalt": "crm_cmp_rd",
755
+ "sydatains": null
756
+ },
757
+ {
758
+ "idpermission": 492,
759
+ "dspermission": "Crm - Campagne scrittura",
760
+ "idpermissionalt": "crm_cmp_wr",
761
+ "sydatains": null
762
+ },
763
+ {
764
+ "idpermission": 493,
765
+ "dspermission": "Crm - Email services lettura",
766
+ "idpermissionalt": "crm_email_rd",
767
+ "sydatains": null
768
+ },
769
+ {
770
+ "idpermission": 494,
771
+ "dspermission": "Crm - Email services scrittura",
772
+ "idpermissionalt": "crm_email_wr",
773
+ "sydatains": null
774
+ },
775
+ {
776
+ "idpermission": 495,
777
+ "dspermission": "Crm - Backoffice lettura",
778
+ "idpermissionalt": "crm_back_rd",
779
+ "sydatains": null
780
+ },
781
+ {
782
+ "idpermission": 496,
783
+ "dspermission": "Crm - Backoffice scrittura",
784
+ "idpermissionalt": "crm_back_wr",
785
+ "sydatains": null
786
+ },
787
+ {
788
+ "idpermission": 497,
789
+ "dspermission": "Crm - Backoffice amministrazione lettura",
790
+ "idpermissionalt": "crm_back_adm_rd",
791
+ "sydatains": null
792
+ },
793
+ {
794
+ "idpermission": 499,
795
+ "dspermission": "Crm - Backoffice amministrazione scrittura",
796
+ "idpermissionalt": "crm_back_adm_wr",
797
+ "sydatains": null
798
+ },
799
+ {
800
+ "idpermission": 500,
801
+ "dspermission": "Crm - File import",
802
+ "idpermissionalt": "crm_import",
803
+ "sydatains": null
804
+ },
805
+ {
806
+ "idpermission": 571,
807
+ "dspermission": "Crm - Backoffice Banche scrittura",
808
+ "idpermissionalt": "crm_back_banks_wr",
809
+ "sydatains": null
810
+ },
811
+ {
812
+ "idpermission": 572,
813
+ "dspermission": "Crm - Backoffice Banche lettura",
814
+ "idpermissionalt": "crm_back_banks_rd",
815
+ "sydatains": null
816
+ },
817
+ {
818
+ "idpermission": 573,
819
+ "dspermission": "Crm - Backoffice Termini di Pagamento scrittura",
820
+ "idpermissionalt": "crm_back_paymentterms_wr",
821
+ "sydatains": null
822
+ },
823
+ {
824
+ "idpermission": 574,
825
+ "dspermission": "Crm - Backoffice Termini di Pagamento lettura",
826
+ "idpermissionalt": "crm_back_paymentterms_rd",
827
+ "sydatains": null
828
+ },
829
+ {
830
+ "idpermission": 575,
831
+ "dspermission": "Crm - Backoffice Prodotti scrittura",
832
+ "idpermissionalt": "crm_back_products_wr",
833
+ "sydatains": null
834
+ },
835
+ {
836
+ "idpermission": 576,
837
+ "dspermission": "Crm - Backoffice Prodotti lettura",
838
+ "idpermissionalt": "crm_back_products_rd",
839
+ "sydatains": null
840
+ },
841
+ {
842
+ "idpermission": 591,
843
+ "dspermission": "Crm - Backend Aggiungi/Modifica CAB",
844
+ "idpermissionalt": "crm_back_cab_wr",
845
+ "sydatains": null
846
+ },
847
+ {
848
+ "idpermission": 14,
849
+ "dspermission": "Operazioni base metering",
850
+ "idpermissionalt": "mdm_op",
851
+ "sydatains": null
852
+ },
853
+ {
854
+ "idpermission": 15,
855
+ "dspermission": "Operazioni massive metering",
856
+ "idpermissionalt": "mdm_mass_op",
857
+ "sydatains": null
858
+ },
859
+ {
860
+ "idpermission": 16,
861
+ "dspermission": "Operazioni avanzate metering",
862
+ "idpermissionalt": "mdm_adv_op",
863
+ "sydatains": null
864
+ },
865
+ {
866
+ "idpermission": 17,
867
+ "dspermission": "Operazioni forecasting su metering",
868
+ "idpermissionalt": "mdm_fct",
869
+ "sydatains": null
870
+ },
871
+ {
872
+ "idpermission": 18,
873
+ "dspermission": "Operazioni configurazione base metering",
874
+ "idpermissionalt": "mdm_cfg_base",
875
+ "sydatains": null
876
+ },
877
+ {
878
+ "idpermission": 19,
879
+ "dspermission": "Operazioni configurazione avanzata metering",
880
+ "idpermissionalt": "mdm_cfg_adv",
881
+ "sydatains": null
882
+ },
883
+ {
884
+ "idpermission": 21,
885
+ "dspermission": "Operazioni customizzazione metering",
886
+ "idpermissionalt": "mdm_customize",
887
+ "sydatains": null
888
+ },
889
+ {
890
+ "idpermission": 22,
891
+ "dspermission": "Visualizzazione dati metering",
892
+ "idpermissionalt": "mdm_read",
893
+ "sydatains": null
894
+ },
895
+ {
896
+ "idpermission": 151,
897
+ "dspermission": "Dogane Operazioni Comunicazioni",
898
+ "idpermissionalt": "dgn_comm_op",
899
+ "sydatains": null
900
+ },
901
+ {
902
+ "idpermission": 153,
903
+ "dspermission": "Dogane Admin Comunicazioni",
904
+ "idpermissionalt": "dgn_comm_adm",
905
+ "sydatains": null
906
+ },
907
+ {
908
+ "idpermission": 154,
909
+ "dspermission": "Dogane Operazioni Pagamenti Massivi",
910
+ "idpermissionalt": "dgn_pag_op",
911
+ "sydatains": null
912
+ },
913
+ {
914
+ "idpermission": 155,
915
+ "dspermission": "Dogane Pagamenti Retro",
916
+ "idpermissionalt": "dgn_pag_rt",
917
+ "sydatains": null
918
+ },
919
+ {
920
+ "idpermission": 156,
921
+ "dspermission": "Dogane Pagamenti Admin",
922
+ "idpermissionalt": "dgn_pag_adm",
923
+ "sydatains": null
924
+ },
925
+ {
926
+ "idpermission": 157,
927
+ "dspermission": "Dogane Dichiarazioni di consumo Read",
928
+ "idpermissionalt": "dgn_dich_read",
929
+ "sydatains": null
930
+ },
931
+ {
932
+ "idpermission": 158,
933
+ "dspermission": "Dogane Operazioni Dichiarazioni di consumo",
934
+ "idpermissionalt": "dgn_dich_op",
935
+ "sydatains": null
936
+ },
937
+ {
938
+ "idpermission": 159,
939
+ "dspermission": "Dogane Cod. Ditta Read",
940
+ "idpermissionalt": "dgn_codditta_read",
941
+ "sydatains": null
942
+ },
943
+ {
944
+ "idpermission": 161,
945
+ "dspermission": "Dogane modifica template",
946
+ "idpermissionalt": "dgn_templ_op",
947
+ "sydatains": null
948
+ },
949
+ {
950
+ "idpermission": 162,
951
+ "dspermission": "Dogane gestione credito",
952
+ "idpermissionalt": "dgn_pos_credit_op",
953
+ "sydatains": null
954
+ },
955
+ {
956
+ "idpermission": 231,
957
+ "dspermission": "Dogane Import Read",
958
+ "idpermissionalt": "dgn_import_read",
959
+ "sydatains": null
960
+ },
961
+ {
962
+ "idpermission": 232,
963
+ "dspermission": "Dogane Import Writer",
964
+ "idpermissionalt": "dgn_import_writer",
965
+ "sydatains": null
966
+ },
967
+ {
968
+ "idpermission": 305,
969
+ "dspermission": "Logistica - Scrittura generica (es: import file, ecc.)",
970
+ "idpermissionalt": "lgs_write",
971
+ "sydatains": null
972
+ },
973
+ {
974
+ "idpermission": 306,
975
+ "dspermission": "Logistica - permessi admin",
976
+ "idpermissionalt": "lgs_admin",
977
+ "sydatains": null
978
+ },
979
+ {
980
+ "idpermission": 431,
981
+ "dspermission": "Billing - Riesegui 'Lotti di fatturazione'",
982
+ "idpermissionalt": "blg_elblot_exec",
983
+ "sydatains": null
984
+ },
985
+ {
986
+ "idpermission": 501,
987
+ "dspermission": "AutoConsumo Diffuso - lettura",
988
+ "idpermissionalt": "acd_rd",
989
+ "sydatains": null
990
+ },
991
+ {
992
+ "idpermission": 1,
993
+ "dspermission": "Gestione utenti tenant",
994
+ "idpermissionalt": "manage_user",
995
+ "sydatains": null
996
+ },
997
+ {
998
+ "idpermission": 2,
999
+ "dspermission": "View moduli tenant",
1000
+ "idpermissionalt": "manage_modules",
1001
+ "sydatains": null
1002
+ },
1003
+ {
1004
+ "idpermission": 192,
1005
+ "dspermission": "Modifica configurazione sistemi AMI metering",
1006
+ "idpermissionalt": "mdm_ami_customize",
1007
+ "sydatains": null
1008
+ },
1009
+ {
1010
+ "idpermission": 132,
1011
+ "dspermission": "Dogane esegui data checks",
1012
+ "idpermissionalt": "dgn_datachecks_op",
1013
+ "sydatains": null
1014
+ },
1015
+ {
1016
+ "idpermission": 191,
1017
+ "dspermission": "Lettura info AMI metering",
1018
+ "idpermissionalt": "mdm_ami_read",
1019
+ "sydatains": null
1020
+ },
1021
+ {
1022
+ "idpermission": 31,
1023
+ "dspermission": "Visualizzazione dati avanzati metering",
1024
+ "idpermissionalt": "mdm_adv_read",
1025
+ "sydatains": null
1026
+ },
1027
+ {
1028
+ "idpermission": 32,
1029
+ "dspermission": "Visualizzazione configurazione metering",
1030
+ "idpermissionalt": "mdm_cfg_read",
1031
+ "sydatains": null
1032
+ },
1033
+ {
1034
+ "idpermission": 33,
1035
+ "dspermission": "Operazioni massive eliminazione metering",
1036
+ "idpermissionalt": "mdm_mass_del",
1037
+ "sydatains": null
1038
+ },
1039
+ {
1040
+ "idpermission": 135,
1041
+ "dspermission": "Dogane Operazioni su Forniture",
1042
+ "idpermissionalt": "dgn_for_op",
1043
+ "sydatains": null
1044
+ }
1045
+ ]
1046
+ };
1047
+ return accountScope;
1048
+ }
1049
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TokenService, deps: [{ token: i1.CookieService }, { token: USE_FAKE_ACCESS_TOKEN, optional: true }, { token: ANONYMOUS_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1050
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TokenService, providedIn: "root" }); }
1051
+ }
1052
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TokenService, decorators: [{
1053
+ type: Injectable,
1054
+ args: [{ providedIn: "root" }]
1055
+ }], ctorParameters: () => [{ type: i1.CookieService }, { type: undefined, decorators: [{
1056
+ type: Optional
1057
+ }, {
1058
+ type: Inject,
1059
+ args: [USE_FAKE_ACCESS_TOKEN]
1060
+ }] }, { type: undefined, decorators: [{
1061
+ type: Optional
1062
+ }, {
1063
+ type: Inject,
1064
+ args: [ANONYMOUS_MODE]
1065
+ }] }] });
1066
+
1067
+ // Angular
1068
+ class GlobalSearchService {
1069
+ constructor() {
1070
+ this.Enabled = false;
1071
+ }
1072
+ /**
1073
+ * Effettua una ricerca in base a un termine generico
1074
+ *
1075
+ * @param term Termine da cercare
1076
+ * @returns {SearchResultContainer} Contenitore della ricerca
1077
+ */
1078
+ search(term) {
1079
+ return of(null);
1080
+ }
1081
+ /**
1082
+ * Data la definizione semplice di una colonna restituisce un oggetto che indica se bisogna presentere un link su di essa
1083
+ *
1084
+ * @param column Colonna per cui verificare la presentazione di un link. Esempio: {id: "IDPARTY", description: "Cod. Controparte"}
1085
+ * @returns {{ routePath: string, routeProperties: string[] }} Oggetto che indica un link con i propri binding. Ad esempio: {routePath: "['/pages/parties/parties_details', { 'idModel': '{0}' }]", routeProperties: ["IDPARTY"]}
1086
+ */
1087
+ generateColumnLink(column) {
1088
+ return null;
1089
+ }
1090
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GlobalSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1091
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GlobalSearchService }); }
1092
+ }
1093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GlobalSearchService, decorators: [{
1094
+ type: Injectable
1095
1095
  }] });
1096
1096
 
1097
- // Angular
1098
- class APPErrorHandler {
1099
- constructor(injector) {
1100
- this.injector = injector;
1101
- }
1102
- handleError(error) {
1103
- if (this.router == null)
1104
- this.router = this.injector.get(Router);
1105
- //Ignoro eventuali errori di javascript quando il redirect è attivo
1106
- if (myconfig && myconfig.redirectInProgress) {
1107
- console.log("Javascript error on redirect in progress, ignoring this event");
1108
- return;
1109
- }
1110
- //In caso io abbia impostato succesresultmandatory nell'httprequest e questa abbia dato errore tiro fuori un exception che dev'essere mostrata come si deve
1111
- var newError = "";
1112
- if (!error.message && !error.stack)
1113
- newError = error;
1114
- else if (error instanceof HttpErrorResponse)
1115
- newError = error.message;
1116
- else
1117
- newError = error.stack && error.stack.length > 1000 ? error.stack.substring(0, 999) + "[...]" : error.stack;
1118
- var pars = { errorMessage: this.b64EncodeUnicode(newError), fromUrl: this.router.url };
1119
- this.router.navigate(["/anerr", pars]);
1120
- }
1121
- b64EncodeUnicode(str) {
1122
- // first we use encodeURIComponent to get percent-encoded UTF-8,
1123
- // then we convert the percent encodings into raw bytes which
1124
- // can be fed into btoa.
1125
- return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(("0x" + p1))));
1126
- }
1127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: APPErrorHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1128
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: APPErrorHandler }); }
1129
- }
1130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: APPErrorHandler, decorators: [{
1131
- type: Injectable
1132
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1097
+ // Angular
1098
+ class APPErrorHandler {
1099
+ constructor(injector) {
1100
+ this.injector = injector;
1101
+ }
1102
+ handleError(error) {
1103
+ if (this.router == null)
1104
+ this.router = this.injector.get(Router);
1105
+ //Ignoro eventuali errori di javascript quando il redirect è attivo
1106
+ if (myconfig && myconfig.redirectInProgress) {
1107
+ console.log("Javascript error on redirect in progress, ignoring this event");
1108
+ return;
1109
+ }
1110
+ //In caso io abbia impostato succesresultmandatory nell'httprequest e questa abbia dato errore tiro fuori un exception che dev'essere mostrata come si deve
1111
+ var newError = "";
1112
+ if (!error.message && !error.stack)
1113
+ newError = error;
1114
+ else if (error instanceof HttpErrorResponse)
1115
+ newError = error.message;
1116
+ else
1117
+ newError = error.stack && error.stack.length > 1000 ? error.stack.substring(0, 999) + "[...]" : error.stack;
1118
+ var pars = { errorMessage: this.b64EncodeUnicode(newError), fromUrl: this.router.url };
1119
+ this.router.navigate(["/anerr", pars]);
1120
+ }
1121
+ b64EncodeUnicode(str) {
1122
+ // first we use encodeURIComponent to get percent-encoded UTF-8,
1123
+ // then we convert the percent encodings into raw bytes which
1124
+ // can be fed into btoa.
1125
+ return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(("0x" + p1))));
1126
+ }
1127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: APPErrorHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1128
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: APPErrorHandler }); }
1129
+ }
1130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: APPErrorHandler, decorators: [{
1131
+ type: Injectable
1132
+ }], ctorParameters: () => [{ type: i0.Injector }] });
1133
1133
 
1134
- // Angular
1135
- class OutZoneEventPlugin {
1136
- constructor(zone) {
1137
- this.zone = zone;
1138
- }
1139
- supports(eventName) {
1140
- return eventName.endsWith('out-zone');
1141
- }
1142
- addEventListener(element, eventName, originalHandler) {
1143
- let eventOriginalName = eventName.split('.')[0];
1144
- let standardHandler = (event) => originalHandler(event);
1145
- if (eventName.endsWith('out-zone'))
1146
- this.zone.runOutsideAngular(() => { element.addEventListener(eventOriginalName, standardHandler); });
1147
- else
1148
- element.addEventListener(eventOriginalName, standardHandler);
1149
- return () => element.removeEventListener(eventOriginalName, standardHandler);
1150
- }
1151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OutZoneEventPlugin, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
1152
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OutZoneEventPlugin, providedIn: 'root' }); }
1153
- }
1154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OutZoneEventPlugin, decorators: [{
1155
- type: Injectable,
1156
- args: [{ providedIn: 'root' }]
1157
- }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
1134
+ // Angular
1135
+ class OutZoneEventPlugin {
1136
+ constructor(zone) {
1137
+ this.zone = zone;
1138
+ }
1139
+ supports(eventName) {
1140
+ return eventName.endsWith('out-zone');
1141
+ }
1142
+ addEventListener(element, eventName, originalHandler) {
1143
+ let eventOriginalName = eventName.split('.')[0];
1144
+ let standardHandler = (event) => originalHandler(event);
1145
+ if (eventName.endsWith('out-zone'))
1146
+ this.zone.runOutsideAngular(() => { element.addEventListener(eventOriginalName, standardHandler); });
1147
+ else
1148
+ element.addEventListener(eventOriginalName, standardHandler);
1149
+ return () => element.removeEventListener(eventOriginalName, standardHandler);
1150
+ }
1151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OutZoneEventPlugin, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
1152
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OutZoneEventPlugin, providedIn: 'root' }); }
1153
+ }
1154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OutZoneEventPlugin, decorators: [{
1155
+ type: Injectable,
1156
+ args: [{ providedIn: 'root' }]
1157
+ }], ctorParameters: () => [{ type: i0.NgZone }] });
1158
1158
 
1159
- class HTTPServiceExtensionsLoc extends LocalizationService {
1160
- constructor(injector) {
1161
- super(injector);
1162
- super.set("it->en", "Il Server sembra essere offline, prova a ricaricare la pagina", ["Server seems to be offline, try to reload this page"]);
1163
- }
1164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPServiceExtensionsLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1165
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPServiceExtensionsLoc }); }
1166
- }
1167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPServiceExtensionsLoc, decorators: [{
1168
- type: Injectable
1169
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1159
+ class HTTPServiceExtensionsLoc extends LocalizationService {
1160
+ constructor(injector) {
1161
+ super(injector);
1162
+ super.set("it->en", "Il Server sembra essere offline, prova a ricaricare la pagina", ["Server seems to be offline, try to reload this page"]);
1163
+ }
1164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: HTTPServiceExtensionsLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1165
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: HTTPServiceExtensionsLoc }); }
1166
+ }
1167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: HTTPServiceExtensionsLoc, decorators: [{
1168
+ type: Injectable
1169
+ }], ctorParameters: () => [{ type: i0.Injector }] });
1170
1170
 
1171
- class AppState {
1172
- set Modules(modules) {
1173
- this._modules = modules;
1174
- this.notifyDataChanged("modules.Retrieved", this._modules);
1175
- }
1176
- get Modules() { return this._modules; }
1177
- constructor(router, lc, bts, notifications, MessageDef, intercom, emb, anonymousMode) {
1178
- this.router = router;
1179
- this.lc = lc;
1180
- this.bts = bts;
1181
- this.notifications = notifications;
1182
- this.MessageDef = MessageDef;
1183
- this.intercom = intercom;
1184
- this.emb = emb;
1185
- this.anonymousMode = anonymousMode;
1186
- this.redirectingToLogin = false;
1187
- this.handlingError = false;
1188
- this.christmasTime = false;
1189
- this.halloweenTime = false;
1190
- this.jobsInProgress = 0;
1191
- this.allJobs = [];
1192
- this.jobWithIdsCache = {};
1193
- this.notifyOnCompletedJobs = true;
1194
- this._data = new Subject();
1195
- this._subscriptions = new Map();
1196
- this.ModulesLocalizations = {};
1197
- this.hookEmbedding();
1198
- this.setupDayjs();
1199
- this.setupSignalRJobListening();
1200
- this.JaceIdentity = null;
1201
- this._data.subscribe((data) => this._onEvent(data));
1202
- //Decide se siamo attorno a natale
1203
- var today = dayjs();
1204
- var thisYear = today.year();
1205
- var lowerBound = dayjs("18/12/" + thisYear, "DD/MM/YYYY");
1206
- var upperBound = dayjs("07/01/" + (thisYear + 1), "DD/MM/YYYY");
1207
- this.christmasTime = today > lowerBound && today < upperBound;
1208
- //Decide se siamo attorno ad halloween
1209
- var lowerBound = dayjs("28/10/" + thisYear, "DD/MM/YYYY");
1210
- var upperBound = dayjs("05/11/" + thisYear, "DD/MM/YYYY");
1211
- this.halloweenTime = today > lowerBound && today < upperBound;
1212
- this.intercom.inbounds.subscribe((t) => { this.handleInboundMessage(t); });
1213
- }
1214
- // Collego le informazioni dell'embedding che devono appoggiarsi all'app state in modo che possano comunicare col resto dell'applicazione
1215
- hookEmbedding() {
1216
- this.emb.MessageObserver.pipe(filter(ev => ev.event == "navigation")).subscribe(event => {
1217
- var navigationOp = event?.data?.internalNavigation ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo";
1218
- this.notifyDataChanged(navigationOp, event?.data?.title);
1219
- });
1220
- this.emb.MessageObserver.pipe(filter(ev => ev.event == "window-message")).subscribe(event => {
1221
- this.notifyDataChanged("window-message", event?.data);
1222
- });
1223
- this._data.pipe(filter(e => e.event == "menu.isCollapsed")).subscribe(_ => {
1224
- this.emb.refreshBoundariesOnMenuCollapse();
1225
- });
1226
- }
1227
- /** Tenant§Account§User§APPNAME */
1228
- getSessionIdentity() {
1229
- if (this.SessionIdentity)
1230
- return this.SessionIdentity;
1231
- // Se non ho un id mi manca il login, quindi via di qua
1232
- var id = this.getJaceIDentity();
1233
- if (!id) {
1234
- if (this.anonymousMode)
1235
- return "";
1236
- this.router.navigate(["login"]);
1237
- return "";
1238
- }
1239
- this.SessionIdentity = "" + id.Idtenant + "§" + id.IdAccount + "§" + id.IdUser + "§" + myconfig.AppData.ModuleId;
1240
- return this.SessionIdentity;
1241
- }
1242
- registerNavigationIfMeaningful(route) {
1243
- let title = route.data["title"];
1244
- let internal = route.data["internalNavigation"];
1245
- // Permette di chiamare sto registerNavigation a prescindere e fare opt out se non è una route navigabile
1246
- if (!title)
1247
- return;
1248
- /*
1249
- * Parent ({url: [{path: "{module}"}]})
1250
- * Parent ({url: [{path: ""}]}) (Root del modulo lazy)
1251
- * -> Navigazione attuale <-
1252
- */
1253
- let module = route.parent?.parent?.url[0]?.path;
1254
- let loc = module ? this.ModulesLocalizations[module] : null;
1255
- if (!module)
1256
- console.error("Impossibile estrapolare il modulo dalla navigazione (Atteso Modulo al secondo livello di parentela partendo dal componente attuale): " + route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'));
1257
- this.notifyDataChanged(internal ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo", loc ? loc.loc(title) : title);
1258
- }
1259
- handleInboundMessage(t) {
1260
- switch (t.type) {
1261
- case InboundMessageTypes.Navigation:
1262
- this.notifyDataChanged(t.message.sub ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo", t.message.routeTitle);
1263
- // export const MK_ADM = "EsAdminModule";
1264
- // AdmMessageTypes.Message = 0;
1265
- // definita in admin-module.
1266
- // admin-module usa core quindi referenze circolari no-no-no
1267
- this.intercom.send(0, "Navigation Message Received", "EsAdminModule");
1268
- break;
1269
- }
1270
- }
1271
- setupDayjs() {
1272
- dayjs.extend(customParseFormat.default || customParseFormat);
1273
- dayjs.extend(minMax.default || minMax);
1274
- dayjs.extend(isBetween.default || isBetween);
1275
- dayjs.extend(isSameOrBefore.default || isSameOrBefore);
1276
- dayjs.extend(isSameOrAfter.default || isSameOrAfter);
1277
- dayjs.extend(duration.default || duration);
1278
- dayjs.extend(utc.default || utc);
1279
- // Require e collegamento con la localizzazione per dayjs
1280
- import("dayjs/locale/" + this.lc.SmallLocale + ".js").then(locale => { dayjs.locale(locale); });
1281
- }
1282
- setupSignalRJobListening() {
1283
- this.notifications.observe(this.MessageDef.IN_JobProgressNotification).subscribe((ev) => {
1284
- var identity = this.getJaceIDentity();
1285
- if (!identity)
1286
- return;
1287
- var desc = (ev.description || ev.actionid) + " (" + (ev.user || identity.DsUser) + ")";
1288
- let job = {
1289
- id: ev.instance,
1290
- description: desc,
1291
- smalldescription: desc.length > 35 ? desc.substring(0, 30) + "..." : desc,
1292
- percentage: this.roundToTwo(ev.progress),
1293
- completed: ev.type == 'Completed',
1294
- fileid: ev.resultfile,
1295
- reportid: ev.resultreport,
1296
- reportpars: ev.resultreportparams,
1297
- complexreportid: ev.resultcomplexreport
1298
- };
1299
- switch (ev.type) {
1300
- case "Started":
1301
- if (this.jobWithIdsCache[ev.instance]) {
1302
- console.warn("Job already registered on the 'Started' callback");
1303
- return;
1304
- }
1305
- this.jobWithIdsCache[ev.instance] = job;
1306
- this.allJobs.splice(0, 0, job);
1307
- this.notifyDataChanged("app.startedJob", job.description);
1308
- break;
1309
- case "Progress":
1310
- // Se mi arriva un progress di un job che non ho significa che mi sono loggato ora con dei Job in corso
1311
- // quindi per prima cosa devo metterlo in lista
1312
- if (!this.jobWithIdsCache[ev.instance]) {
1313
- this.jobWithIdsCache[ev.instance] = job;
1314
- this.allJobs.splice(0, 0, job);
1315
- }
1316
- this.jobWithIdsCache[ev.instance].percentage = this.roundToTwo(ev.progress);
1317
- this.notifyDataChanged("app.progressJob", { description: job.description, progress: this.jobWithIdsCache[ev.instance].percentage });
1318
- break;
1319
- case "Completed":
1320
- if (!this.jobWithIdsCache[ev.instance]) {
1321
- this.jobWithIdsCache[ev.instance] = job;
1322
- this.allJobs.splice(0, 0, job);
1323
- }
1324
- var jobToUpdate = this.jobWithIdsCache[ev.instance];
1325
- jobToUpdate.percentage = 100;
1326
- jobToUpdate.fileid = ev.resultfile;
1327
- jobToUpdate.reportid = ev.resultreport;
1328
- jobToUpdate.reportpars = ev.resultreportparams;
1329
- jobToUpdate.completed = true;
1330
- if (this.notifyOnCompletedJobs)
1331
- this.notifyDataChanged("app.completedJob", jobToUpdate.description);
1332
- break;
1333
- }
1334
- this.jobsInProgress = this.allJobs.filter(t => !t.completed).length;
1335
- });
1336
- }
1337
- roundToTwo(num) {
1338
- return Math.round(num * 100) / 100;
1339
- }
1340
- getJaceIDentity() {
1341
- if (this.JaceIdentity)
1342
- return this.JaceIdentity;
1343
- this.JaceIdentity = this.bts.getJaceIdentity();
1344
- return this.JaceIdentity;
1345
- }
1346
- notifyDataChanged(event, value) {
1347
- this._data[event] = value;
1348
- this._data.next({
1349
- event: event,
1350
- data: this._data[event]
1351
- });
1352
- }
1353
- subscribe(event, callback) {
1354
- var subscribers = this._subscriptions.get(event) || [];
1355
- subscribers.push(callback);
1356
- this._subscriptions.set(event, subscribers);
1357
- }
1358
- _onEvent(data) {
1359
- var subscribers = this._subscriptions.get(data["event"]) || [];
1360
- subscribers.forEach((callback) => {
1361
- callback.call(null, data["data"]);
1362
- });
1363
- }
1364
- setSidebarWidth(width) {
1365
- this.sidebarWidth = width;
1366
- }
1367
- setHeaderHeight(height) {
1368
- this.headerHeight = height;
1369
- }
1370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppState, deps: [{ token: i1$1.Router }, { token: i1$2.LocalizationService }, { token: TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
1371
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppState, providedIn: "root" }); }
1372
- }
1373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppState, decorators: [{
1374
- type: Injectable,
1375
- args: [{ providedIn: "root" }]
1376
- }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1$2.LocalizationService }, { type: TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }, { type: undefined, decorators: [{
1377
- type: Inject,
1378
- args: [ANONYMOUS_MODE]
1379
- }] }]; } });
1171
+ class AppState {
1172
+ set Modules(modules) {
1173
+ this._modules = modules;
1174
+ this.notifyDataChanged("modules.Retrieved", this._modules);
1175
+ }
1176
+ get Modules() { return this._modules; }
1177
+ constructor(router, lc, bts, notifications, MessageDef, intercom, emb, anonymousMode) {
1178
+ this.router = router;
1179
+ this.lc = lc;
1180
+ this.bts = bts;
1181
+ this.notifications = notifications;
1182
+ this.MessageDef = MessageDef;
1183
+ this.intercom = intercom;
1184
+ this.emb = emb;
1185
+ this.anonymousMode = anonymousMode;
1186
+ this.redirectingToLogin = false;
1187
+ this.handlingError = false;
1188
+ this.christmasTime = false;
1189
+ this.halloweenTime = false;
1190
+ this.jobsInProgress = 0;
1191
+ this.allJobs = [];
1192
+ this.jobWithIdsCache = {};
1193
+ this.notifyOnCompletedJobs = true;
1194
+ this._data = new Subject();
1195
+ this._subscriptions = new Map();
1196
+ this.ModulesLocalizations = {};
1197
+ this.hookEmbedding();
1198
+ this.setupDayjs();
1199
+ this.setupSignalRJobListening();
1200
+ this.JaceIdentity = null;
1201
+ this._data.subscribe((data) => this._onEvent(data));
1202
+ //Decide se siamo attorno a natale
1203
+ var today = dayjs();
1204
+ var thisYear = today.year();
1205
+ var lowerBound = dayjs("18/12/" + thisYear, "DD/MM/YYYY");
1206
+ var upperBound = dayjs("07/01/" + (thisYear + 1), "DD/MM/YYYY");
1207
+ this.christmasTime = today > lowerBound && today < upperBound;
1208
+ //Decide se siamo attorno ad halloween
1209
+ var lowerBound = dayjs("28/10/" + thisYear, "DD/MM/YYYY");
1210
+ var upperBound = dayjs("05/11/" + thisYear, "DD/MM/YYYY");
1211
+ this.halloweenTime = today > lowerBound && today < upperBound;
1212
+ this.intercom.inbounds.subscribe((t) => { this.handleInboundMessage(t); });
1213
+ }
1214
+ // Collego le informazioni dell'embedding che devono appoggiarsi all'app state in modo che possano comunicare col resto dell'applicazione
1215
+ hookEmbedding() {
1216
+ this.emb.MessageObserver.pipe(filter(ev => ev.event == "navigation")).subscribe(event => {
1217
+ var navigationOp = event?.data?.internalNavigation ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo";
1218
+ this.notifyDataChanged(navigationOp, event?.data?.title);
1219
+ });
1220
+ this.emb.MessageObserver.pipe(filter(ev => ev.event == "window-message")).subscribe(event => {
1221
+ this.notifyDataChanged("window-message", event?.data);
1222
+ });
1223
+ this._data.pipe(filter(e => e.event == "menu.isCollapsed")).subscribe(_ => {
1224
+ this.emb.refreshBoundariesOnMenuCollapse();
1225
+ });
1226
+ }
1227
+ /** Tenant§Account§User§APPNAME */
1228
+ getSessionIdentity() {
1229
+ if (this.SessionIdentity)
1230
+ return this.SessionIdentity;
1231
+ // Se non ho un id mi manca il login, quindi via di qua
1232
+ var id = this.getJaceIDentity();
1233
+ if (!id) {
1234
+ if (this.anonymousMode)
1235
+ return "";
1236
+ this.router.navigate(["login"]);
1237
+ return "";
1238
+ }
1239
+ this.SessionIdentity = "" + id.Idtenant + "§" + id.IdAccount + "§" + id.IdUser + "§" + myconfig.AppData.ModuleId;
1240
+ return this.SessionIdentity;
1241
+ }
1242
+ registerNavigationIfMeaningful(route) {
1243
+ let title = route.data["title"];
1244
+ let internal = route.data["internalNavigation"];
1245
+ // Permette di chiamare sto registerNavigation a prescindere e fare opt out se non è una route navigabile
1246
+ if (!title)
1247
+ return;
1248
+ /*
1249
+ * Parent ({url: [{path: "{module}"}]})
1250
+ * Parent ({url: [{path: ""}]}) (Root del modulo lazy)
1251
+ * -> Navigazione attuale <-
1252
+ */
1253
+ let module = route.parent?.parent?.url[0]?.path;
1254
+ let loc = module ? this.ModulesLocalizations[module] : null;
1255
+ if (!module)
1256
+ console.error("Impossibile estrapolare il modulo dalla navigazione (Atteso Modulo al secondo livello di parentela partendo dal componente attuale): " + route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'));
1257
+ this.notifyDataChanged(internal ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo", loc ? loc.loc(title) : title);
1258
+ }
1259
+ handleInboundMessage(t) {
1260
+ switch (t.type) {
1261
+ case InboundMessageTypes.Navigation:
1262
+ this.notifyDataChanged(t.message.sub ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo", t.message.routeTitle);
1263
+ // export const MK_ADM = "EsAdminModule";
1264
+ // AdmMessageTypes.Message = 0;
1265
+ // definita in admin-module.
1266
+ // admin-module usa core quindi referenze circolari no-no-no
1267
+ this.intercom.send(0, "Navigation Message Received", "EsAdminModule");
1268
+ break;
1269
+ }
1270
+ }
1271
+ setupDayjs() {
1272
+ dayjs.extend(customParseFormat.default || customParseFormat);
1273
+ dayjs.extend(minMax.default || minMax);
1274
+ dayjs.extend(isBetween.default || isBetween);
1275
+ dayjs.extend(isSameOrBefore.default || isSameOrBefore);
1276
+ dayjs.extend(isSameOrAfter.default || isSameOrAfter);
1277
+ dayjs.extend(duration.default || duration);
1278
+ dayjs.extend(utc.default || utc);
1279
+ // Require e collegamento con la localizzazione per dayjs
1280
+ import("dayjs/locale/" + this.lc.SmallLocale + ".js").then(locale => { dayjs.locale(locale); });
1281
+ }
1282
+ setupSignalRJobListening() {
1283
+ this.notifications.observe(this.MessageDef.IN_JobProgressNotification).subscribe((ev) => {
1284
+ var identity = this.getJaceIDentity();
1285
+ if (!identity)
1286
+ return;
1287
+ var desc = (ev.description || ev.actionid) + " (" + (ev.user || identity.DsUser) + ")";
1288
+ let job = {
1289
+ id: ev.instance,
1290
+ description: desc,
1291
+ smalldescription: desc.length > 35 ? desc.substring(0, 30) + "..." : desc,
1292
+ percentage: this.roundToTwo(ev.progress),
1293
+ completed: ev.type == 'Completed',
1294
+ fileid: ev.resultfile,
1295
+ reportid: ev.resultreport,
1296
+ reportpars: ev.resultreportparams,
1297
+ complexreportid: ev.resultcomplexreport
1298
+ };
1299
+ switch (ev.type) {
1300
+ case "Started":
1301
+ if (this.jobWithIdsCache[ev.instance]) {
1302
+ console.warn("Job already registered on the 'Started' callback");
1303
+ return;
1304
+ }
1305
+ this.jobWithIdsCache[ev.instance] = job;
1306
+ this.allJobs.splice(0, 0, job);
1307
+ this.notifyDataChanged("app.startedJob", job.description);
1308
+ break;
1309
+ case "Progress":
1310
+ // Se mi arriva un progress di un job che non ho significa che mi sono loggato ora con dei Job in corso
1311
+ // quindi per prima cosa devo metterlo in lista
1312
+ if (!this.jobWithIdsCache[ev.instance]) {
1313
+ this.jobWithIdsCache[ev.instance] = job;
1314
+ this.allJobs.splice(0, 0, job);
1315
+ }
1316
+ this.jobWithIdsCache[ev.instance].percentage = this.roundToTwo(ev.progress);
1317
+ this.notifyDataChanged("app.progressJob", { description: job.description, progress: this.jobWithIdsCache[ev.instance].percentage });
1318
+ break;
1319
+ case "Completed":
1320
+ if (!this.jobWithIdsCache[ev.instance]) {
1321
+ this.jobWithIdsCache[ev.instance] = job;
1322
+ this.allJobs.splice(0, 0, job);
1323
+ }
1324
+ var jobToUpdate = this.jobWithIdsCache[ev.instance];
1325
+ jobToUpdate.percentage = 100;
1326
+ jobToUpdate.fileid = ev.resultfile;
1327
+ jobToUpdate.reportid = ev.resultreport;
1328
+ jobToUpdate.reportpars = ev.resultreportparams;
1329
+ jobToUpdate.completed = true;
1330
+ if (this.notifyOnCompletedJobs)
1331
+ this.notifyDataChanged("app.completedJob", jobToUpdate.description);
1332
+ break;
1333
+ }
1334
+ this.jobsInProgress = this.allJobs.filter(t => !t.completed).length;
1335
+ });
1336
+ }
1337
+ roundToTwo(num) {
1338
+ return Math.round(num * 100) / 100;
1339
+ }
1340
+ getJaceIDentity() {
1341
+ if (this.JaceIdentity)
1342
+ return this.JaceIdentity;
1343
+ this.JaceIdentity = this.bts.getJaceIdentity();
1344
+ return this.JaceIdentity;
1345
+ }
1346
+ notifyDataChanged(event, value) {
1347
+ this._data[event] = value;
1348
+ this._data.next({
1349
+ event: event,
1350
+ data: this._data[event]
1351
+ });
1352
+ }
1353
+ subscribe(event, callback) {
1354
+ var subscribers = this._subscriptions.get(event) || [];
1355
+ subscribers.push(callback);
1356
+ this._subscriptions.set(event, subscribers);
1357
+ }
1358
+ _onEvent(data) {
1359
+ var subscribers = this._subscriptions.get(data["event"]) || [];
1360
+ subscribers.forEach((callback) => {
1361
+ callback.call(null, data["data"]);
1362
+ });
1363
+ }
1364
+ setSidebarWidth(width) {
1365
+ this.sidebarWidth = width;
1366
+ }
1367
+ setHeaderHeight(height) {
1368
+ this.headerHeight = height;
1369
+ }
1370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AppState, deps: [{ token: i1$1.Router }, { token: i1$2.LocalizationService }, { token: TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
1371
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AppState, providedIn: "root" }); }
1372
+ }
1373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AppState, decorators: [{
1374
+ type: Injectable,
1375
+ args: [{ providedIn: "root" }]
1376
+ }], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$2.LocalizationService }, { type: TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }, { type: undefined, decorators: [{
1377
+ type: Inject,
1378
+ args: [ANONYMOUS_MODE]
1379
+ }] }] });
1380
1380
 
1381
- // Angular
1382
- class HTTPServiceExtensions {
1383
- constructor(lc, tks, as, router, ac, msgs) {
1384
- this.lc = lc;
1385
- this.tks = tks;
1386
- this.as = as;
1387
- this.router = router;
1388
- this.ac = ac;
1389
- this.msgs = msgs;
1390
- this.lc = this.lc.generateFromType(HTTPServiceExtensionsLoc);
1391
- }
1392
- //Gestione Auth
1393
- retrieveAccessToken() {
1394
- return this.tks.getAccessToken().toString();
1395
- }
1396
- retrieveIdentity() {
1397
- return this.tks.getJaceIdentity();
1398
- }
1399
- //Gestione ridirezione al login / altre pagine
1400
- readRedirectingToLogin() {
1401
- return this.as.redirectingToLogin;
1402
- }
1403
- writeRedirectingToLogin(status) {
1404
- this.as.redirectingToLogin = status;
1405
- }
1406
- redirectToLogin() {
1407
- console.log("HTTPServiceExtensions - redirecting to login");
1408
- this.router.navigate(["login", { fromUrl: this.router.url }]);
1409
- }
1410
- readRedirectionStatus() {
1411
- return myconfig?.redirectInProgress;
1412
- }
1413
- writeRedirectionStatus(status) {
1414
- myconfig.redirectInProgress = status;
1415
- }
1416
- //Gestione error handling flag
1417
- readHandlingErrorStatus() {
1418
- return this.as.handlingError;
1419
- }
1420
- writeHandlingErrorStatus(status) {
1421
- this.as.handlingError = status;
1422
- }
1423
- // 444, se false passa a handleBlockingException
1424
- handleNotConfiguredException() {
1425
- if (this.ac.has("P:mdm_customize")) {
1426
- myconfig.redirectInProgress = true;
1427
- this.as.handlingError = false;
1428
- this.router.navigate(["pages/adm/tenantconfig"]);
1429
- return true;
1430
- }
1431
- return false;
1432
- }
1433
- // 400, 403, 404, 444
1434
- handleBlockingException(status, text) {
1435
- this.msgs.simpleError(status + ": " + text);
1436
- this.as.handlingError = false;
1437
- }
1438
- // Tutto quello che non è gestito da handleBlockingException
1439
- handleException(status, text) {
1440
- if (status == 503) {
1441
- this.msgs.simpleError(this.lc.loc("Il Server sembra essere offline, prova a ricaricare la pagina"));
1442
- this.as.handlingError = false;
1443
- }
1444
- else if (status == 542) {
1445
- this.msgs.simpleError(text);
1446
- this.as.handlingError = false;
1447
- }
1448
- else {
1449
- var st = btoa(encodeURIComponent(text).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(("0x" + p1))));
1450
- var pars = { statusCode: status, statusText: st, fromUrl: this.router.url };
1451
- this.router.navigate(["iserr", pars]);
1452
- }
1453
- }
1454
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPServiceExtensions, deps: [{ token: i1$2.LocalizationService }, { token: TokenService }, { token: AppState }, { token: i1$1.Router }, { token: i5$1.AccessControlService }, { token: i5.MessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1455
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPServiceExtensions }); }
1456
- }
1457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPServiceExtensions, decorators: [{
1458
- type: Injectable
1459
- }], ctorParameters: function () { return [{ type: i1$2.LocalizationService }, { type: TokenService }, { type: AppState }, { type: i1$1.Router }, { type: i5$1.AccessControlService }, { type: i5.MessageService }]; } });
1381
+ // Angular
1382
+ class HTTPServiceExtensions {
1383
+ constructor(lc, tks, as, router, ac, msgs) {
1384
+ this.lc = lc;
1385
+ this.tks = tks;
1386
+ this.as = as;
1387
+ this.router = router;
1388
+ this.ac = ac;
1389
+ this.msgs = msgs;
1390
+ this.lc = this.lc.generateFromType(HTTPServiceExtensionsLoc);
1391
+ }
1392
+ //Gestione Auth
1393
+ retrieveAccessToken() {
1394
+ return this.tks.getAccessToken().toString();
1395
+ }
1396
+ retrieveIdentity() {
1397
+ return this.tks.getJaceIdentity();
1398
+ }
1399
+ //Gestione ridirezione al login / altre pagine
1400
+ readRedirectingToLogin() {
1401
+ return this.as.redirectingToLogin;
1402
+ }
1403
+ writeRedirectingToLogin(status) {
1404
+ this.as.redirectingToLogin = status;
1405
+ }
1406
+ redirectToLogin() {
1407
+ console.log("HTTPServiceExtensions - redirecting to login");
1408
+ this.router.navigate(["login", { fromUrl: this.router.url }]);
1409
+ }
1410
+ readRedirectionStatus() {
1411
+ return myconfig?.redirectInProgress;
1412
+ }
1413
+ writeRedirectionStatus(status) {
1414
+ myconfig.redirectInProgress = status;
1415
+ }
1416
+ //Gestione error handling flag
1417
+ readHandlingErrorStatus() {
1418
+ return this.as.handlingError;
1419
+ }
1420
+ writeHandlingErrorStatus(status) {
1421
+ this.as.handlingError = status;
1422
+ }
1423
+ // 444, se false passa a handleBlockingException
1424
+ handleNotConfiguredException() {
1425
+ if (this.ac.has("P:mdm_customize")) {
1426
+ myconfig.redirectInProgress = true;
1427
+ this.as.handlingError = false;
1428
+ this.router.navigate(["pages/adm/tenantconfig"]);
1429
+ return true;
1430
+ }
1431
+ return false;
1432
+ }
1433
+ // 400, 403, 404, 444
1434
+ handleBlockingException(status, text) {
1435
+ if (status == 403) {
1436
+ this.msgs.simpleError("Non si dispone dei permessi necessari ad effettuare questa operazione.");
1437
+ this.as.handlingError = false;
1438
+ }
1439
+ else {
1440
+ this.msgs.simpleError(status + ": " + text);
1441
+ this.as.handlingError = false;
1442
+ }
1443
+ }
1444
+ // Tutto quello che non è gestito da handleBlockingException
1445
+ handleException(status, text) {
1446
+ if (status == 503) {
1447
+ this.msgs.simpleError(this.lc.loc("Il Server sembra essere offline, prova a ricaricare la pagina"));
1448
+ this.as.handlingError = false;
1449
+ }
1450
+ else if (status == 542) {
1451
+ this.msgs.simpleError(text);
1452
+ this.as.handlingError = false;
1453
+ }
1454
+ else {
1455
+ var st = btoa(encodeURIComponent(text).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(("0x" + p1))));
1456
+ var pars = { statusCode: status, statusText: st, fromUrl: this.router.url };
1457
+ this.router.navigate(["iserr", pars]);
1458
+ }
1459
+ }
1460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: HTTPServiceExtensions, deps: [{ token: i1$2.LocalizationService }, { token: TokenService }, { token: AppState }, { token: i1$1.Router }, { token: i5$1.AccessControlService }, { token: i5.MessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1461
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: HTTPServiceExtensions }); }
1462
+ }
1463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: HTTPServiceExtensions, decorators: [{
1464
+ type: Injectable
1465
+ }], ctorParameters: () => [{ type: i1$2.LocalizationService }, { type: TokenService }, { type: AppState }, { type: i1$1.Router }, { type: i5$1.AccessControlService }, { type: i5.MessageService }] });
1460
1466
 
1461
- // Angular
1462
- class MenuFilteringService {
1463
- /**
1464
- * Applica un filtro agli elementi di menù in modo da poterli filtrare in base a condizioni arbitrarie (inclusi check lato BE)
1465
- *
1466
- * @param rawMenus Menù originali, non filtrati
1467
- * @returns {Observable<ApplicationMenu[]>} Menù filtrati
1468
- */
1469
- filter(rawMenus) {
1470
- return of(rawMenus);
1471
- }
1472
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuFilteringService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1473
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuFilteringService }); }
1474
- }
1475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuFilteringService, decorators: [{
1476
- type: Injectable
1467
+ // Angular
1468
+ class MenuFilteringService {
1469
+ /**
1470
+ * Applica un filtro agli elementi di menù in modo da poterli filtrare in base a condizioni arbitrarie (inclusi check lato BE)
1471
+ *
1472
+ * @param rawMenus Menù originali, non filtrati
1473
+ * @returns {Observable<ApplicationMenu[]>} Menù filtrati
1474
+ */
1475
+ filter(rawMenus) {
1476
+ return of(rawMenus);
1477
+ }
1478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MenuFilteringService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1479
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MenuFilteringService }); }
1480
+ }
1481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MenuFilteringService, decorators: [{
1482
+ type: Injectable
1477
1483
  }] });
1478
1484
 
1479
- // Angular
1480
- class CompletedJobRedirectionService {
1481
- /**
1482
- * Effettua un'operazione di redirect basata sul Job Completato
1483
- *
1484
- * @param completedJob Job appena completato per cui effettuare un redirect
1485
- */
1486
- redirect(completedJob) {
1487
- }
1488
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CompletedJobRedirectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1489
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CompletedJobRedirectionService }); }
1490
- }
1491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CompletedJobRedirectionService, decorators: [{
1492
- type: Injectable
1485
+ // Angular
1486
+ class CompletedJobRedirectionService {
1487
+ /**
1488
+ * Effettua un'operazione di redirect basata sul Job Completato
1489
+ *
1490
+ * @param completedJob Job appena completato per cui effettuare un redirect
1491
+ */
1492
+ redirect(completedJob) {
1493
+ }
1494
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CompletedJobRedirectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1495
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CompletedJobRedirectionService }); }
1496
+ }
1497
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CompletedJobRedirectionService, decorators: [{
1498
+ type: Injectable
1493
1499
  }] });
1494
1500
 
1495
- // Angular
1496
- class SessionRetriever {
1497
- constructor(bts, router, anonymousMode) {
1498
- this.bts = bts;
1499
- this.router = router;
1500
- this.anonymousMode = anonymousMode;
1501
- }
1502
- /** Tenant§Account§User§ModuleId */
1503
- getSessionKey() {
1504
- if (this.SessionIdentity)
1505
- return this.SessionIdentity;
1506
- // Se non ho un id mi manca il login, quindi via di qua
1507
- var id = this.bts.getJaceIdentity();
1508
- if (!id) {
1509
- if (this.anonymousMode)
1510
- return "";
1511
- console.log("SessionRetriever - no identity, redirecting to login");
1512
- this.router.navigate(["login"]);
1513
- return "";
1514
- }
1515
- this.SessionIdentity = "" + id.Idtenant + "§" + id.IdAccount + "§" + id.IdUser + "§" + myconfig?.AppData?.ModuleId;
1516
- return this.SessionIdentity;
1517
- }
1518
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionRetriever, deps: [{ token: TokenService }, { token: i1$1.Router }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
1519
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionRetriever, providedIn: "root" }); }
1520
- }
1521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionRetriever, decorators: [{
1522
- type: Injectable,
1523
- args: [{ providedIn: "root" }]
1524
- }], ctorParameters: function () { return [{ type: TokenService }, { type: i1$1.Router }, { type: undefined, decorators: [{
1525
- type: Inject,
1526
- args: [ANONYMOUS_MODE]
1527
- }] }]; } });
1501
+ // Angular
1502
+ class SessionRetriever {
1503
+ constructor(bts, router, anonymousMode) {
1504
+ this.bts = bts;
1505
+ this.router = router;
1506
+ this.anonymousMode = anonymousMode;
1507
+ }
1508
+ /** Tenant§Account§User§ModuleId */
1509
+ getSessionKey() {
1510
+ if (this.SessionIdentity)
1511
+ return this.SessionIdentity;
1512
+ // Se non ho un id mi manca il login, quindi via di qua
1513
+ var id = this.bts.getJaceIdentity();
1514
+ if (!id) {
1515
+ if (this.anonymousMode)
1516
+ return "";
1517
+ console.log("SessionRetriever - no identity, redirecting to login");
1518
+ this.router.navigate(["login"]);
1519
+ return "";
1520
+ }
1521
+ this.SessionIdentity = "" + id.Idtenant + "§" + id.IdAccount + "§" + id.IdUser + "§" + myconfig?.AppData?.ModuleId;
1522
+ return this.SessionIdentity;
1523
+ }
1524
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionRetriever, deps: [{ token: TokenService }, { token: i1$1.Router }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
1525
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionRetriever, providedIn: "root" }); }
1526
+ }
1527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionRetriever, decorators: [{
1528
+ type: Injectable,
1529
+ args: [{ providedIn: "root" }]
1530
+ }], ctorParameters: () => [{ type: TokenService }, { type: i1$1.Router }, { type: undefined, decorators: [{
1531
+ type: Inject,
1532
+ args: [ANONYMOUS_MODE]
1533
+ }] }] });
1528
1534
 
1529
- // Angular
1530
- // Chiamate ai Repository
1531
- const BASE_Cache_Sessions = "/api/Cache/sessions";
1532
- class ApplicationCachePersistor extends CachePersistor {
1533
- // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che
1534
- // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...
1535
- constructor(lc, http, tks, session) {
1536
- super(session);
1537
- this.lc = lc;
1538
- this.http = http;
1539
- this.tks = tks;
1540
- }
1541
- persist(key, item) {
1542
- let sk = this.session.getSessionKey();
1543
- if (!sk)
1544
- return of(false);
1545
- return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1546
- }
1547
- recover(key) {
1548
- let sk = this.session.getSessionKey();
1549
- if (!sk)
1550
- return of(null);
1551
- return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
1552
- var resProp = null;
1553
- try {
1554
- resProp = JSON.parse(res);
1555
- }
1556
- catch { }
1557
- return resProp;
1558
- }));
1559
- }
1560
- recoverAll() {
1561
- let sk = this.session.getSessionKey();
1562
- if (!sk)
1563
- return of(null);
1564
- return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
1565
- for (var prop in res) {
1566
- var resProp = null;
1567
- try {
1568
- resProp = JSON.parse(res[prop]);
1569
- }
1570
- catch { }
1571
- res[prop] = resProp;
1572
- }
1573
- return res;
1574
- }));
1575
- }
1576
- remove(key) {
1577
- let sk = this.session.getSessionKey();
1578
- if (!sk)
1579
- return of(false);
1580
- return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1581
- }
1582
- clear() {
1583
- let sk = this.session.getSessionKey();
1584
- if (!sk)
1585
- return of(false);
1586
- return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1587
- }
1588
- getHeaders(contentType = 'application/json') {
1589
- return new HttpHeaders()
1590
- .append("Content-Type", contentType)
1591
- .append("Accept", "application/json")
1592
- .append("Authorization", "Bearer " + this.tks.getAccessToken())
1593
- .append("Accept-Language", this.lc.Locale);
1594
- }
1595
- getSessionUrl(sessionKey) {
1596
- return `${BASE_Cache_Sessions}/${sessionKey}`;
1597
- }
1598
- getItemsUrl(sessionKey) {
1599
- return `${this.getSessionUrl(sessionKey)}/items`;
1600
- }
1601
- getItemUrl(sessionKey, itemKey) {
1602
- return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
1603
- }
1604
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationCachePersistor, deps: [{ token: i1$2.LocalizationService }, { token: i2.HttpClient }, { token: TokenService }, { token: i4$1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable }); }
1605
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationCachePersistor }); }
1606
- }
1607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationCachePersistor, decorators: [{
1608
- type: Injectable
1609
- }], ctorParameters: function () { return [{ type: i1$2.LocalizationService }, { type: i2.HttpClient }, { type: TokenService }, { type: i4$1.BaseSessionRetriever }]; } });
1535
+ // Angular
1536
+ // Chiamate ai Repository
1537
+ const BASE_Cache_Sessions = "/api/Cache/sessions";
1538
+ class ApplicationCachePersistor extends CachePersistor {
1539
+ // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che
1540
+ // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...
1541
+ constructor(lc, http, tks, session) {
1542
+ super(session);
1543
+ this.lc = lc;
1544
+ this.http = http;
1545
+ this.tks = tks;
1546
+ }
1547
+ persist(key, item) {
1548
+ let sk = this.session.getSessionKey();
1549
+ if (!sk)
1550
+ return of(false);
1551
+ return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1552
+ }
1553
+ recover(key) {
1554
+ let sk = this.session.getSessionKey();
1555
+ if (!sk)
1556
+ return of(null);
1557
+ return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
1558
+ var resProp = null;
1559
+ try {
1560
+ resProp = JSON.parse(res);
1561
+ }
1562
+ catch { }
1563
+ return resProp;
1564
+ }));
1565
+ }
1566
+ recoverAll() {
1567
+ let sk = this.session.getSessionKey();
1568
+ if (!sk)
1569
+ return of(null);
1570
+ return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
1571
+ for (var prop in res) {
1572
+ var resProp = null;
1573
+ try {
1574
+ resProp = JSON.parse(res[prop]);
1575
+ }
1576
+ catch { }
1577
+ res[prop] = resProp;
1578
+ }
1579
+ return res;
1580
+ }));
1581
+ }
1582
+ remove(key) {
1583
+ let sk = this.session.getSessionKey();
1584
+ if (!sk)
1585
+ return of(false);
1586
+ return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1587
+ }
1588
+ clear() {
1589
+ let sk = this.session.getSessionKey();
1590
+ if (!sk)
1591
+ return of(false);
1592
+ return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1593
+ }
1594
+ getHeaders(contentType = 'application/json') {
1595
+ return new HttpHeaders()
1596
+ .append("Content-Type", contentType)
1597
+ .append("Accept", "application/json")
1598
+ .append("Authorization", "Bearer " + this.tks.getAccessToken())
1599
+ .append("Accept-Language", this.lc.Locale);
1600
+ }
1601
+ getSessionUrl(sessionKey) {
1602
+ return `${BASE_Cache_Sessions}/${sessionKey}`;
1603
+ }
1604
+ getItemsUrl(sessionKey) {
1605
+ return `${this.getSessionUrl(sessionKey)}/items`;
1606
+ }
1607
+ getItemUrl(sessionKey, itemKey) {
1608
+ return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
1609
+ }
1610
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApplicationCachePersistor, deps: [{ token: i1$2.LocalizationService }, { token: i2.HttpClient }, { token: TokenService }, { token: i4$1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable }); }
1611
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApplicationCachePersistor }); }
1612
+ }
1613
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApplicationCachePersistor, decorators: [{
1614
+ type: Injectable
1615
+ }], ctorParameters: () => [{ type: i1$2.LocalizationService }, { type: i2.HttpClient }, { type: TokenService }, { type: i4$1.BaseSessionRetriever }] });
1610
1616
 
1611
- // Angular
1612
- // Chiamate ai Repository
1613
- const BASE_Preferences_Sessions = "/api/Preferences/sessions";
1614
- class ApplicationPreferencesPersistor extends PreferencesPersistor {
1615
- // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che
1616
- // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...
1617
- constructor(lc, http, tks, session) {
1618
- super(session);
1619
- this.lc = lc;
1620
- this.http = http;
1621
- this.tks = tks;
1622
- }
1623
- persist(key, item) {
1624
- let sk = this.session.getSessionKey();
1625
- if (!sk)
1626
- return of(false);
1627
- return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1628
- }
1629
- recover(key) {
1630
- let sk = this.session.getSessionKey();
1631
- if (!sk)
1632
- return of(null);
1633
- return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(map((res) => {
1634
- var resProp = null;
1635
- try {
1636
- resProp = JSON.parse(res);
1637
- }
1638
- catch { }
1639
- return resProp;
1640
- }));
1641
- }
1642
- recoverAll() {
1643
- let sk = this.session.getSessionKey();
1644
- if (!sk)
1645
- return of(null);
1646
- return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
1647
- for (var prop in res) {
1648
- var resProp = null;
1649
- try {
1650
- resProp = JSON.parse(res[prop]);
1651
- }
1652
- catch { }
1653
- res[prop] = resProp;
1654
- }
1655
- return res;
1656
- }));
1657
- }
1658
- remove(key) {
1659
- let sk = this.session.getSessionKey();
1660
- if (!sk)
1661
- return of(false);
1662
- return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1663
- }
1664
- clear() {
1665
- let sk = this.session.getSessionKey();
1666
- if (!sk)
1667
- return of(false);
1668
- return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1669
- }
1670
- getHeaders(contentType = 'application/json') {
1671
- return new HttpHeaders()
1672
- .append("Content-Type", contentType)
1673
- .append("Accept", "application/json")
1674
- .append("Authorization", "Bearer " + this.tks.getAccessToken())
1675
- .append("Accept-Language", this.lc.Locale);
1676
- }
1677
- getSessionUrl(sessionKey) {
1678
- return `${BASE_Preferences_Sessions}/${sessionKey}`;
1679
- }
1680
- getItemsUrl(sessionKey) {
1681
- return `${this.getSessionUrl(sessionKey)}/items`;
1682
- }
1683
- getItemUrl(sessionKey, itemKey) {
1684
- return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
1685
- }
1686
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationPreferencesPersistor, deps: [{ token: i1$2.LocalizationService }, { token: i2.HttpClient }, { token: TokenService }, { token: i4$1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable }); }
1687
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationPreferencesPersistor }); }
1688
- }
1689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationPreferencesPersistor, decorators: [{
1690
- type: Injectable
1691
- }], ctorParameters: function () { return [{ type: i1$2.LocalizationService }, { type: i2.HttpClient }, { type: TokenService }, { type: i4$1.BaseSessionRetriever }]; } });
1617
+ // Angular
1618
+ // Chiamate ai Repository
1619
+ const BASE_Preferences_Sessions = "/api/Preferences/sessions";
1620
+ class ApplicationPreferencesPersistor extends PreferencesPersistor {
1621
+ // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che
1622
+ // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...
1623
+ constructor(lc, http, tks, session) {
1624
+ super(session);
1625
+ this.lc = lc;
1626
+ this.http = http;
1627
+ this.tks = tks;
1628
+ }
1629
+ persist(key, item) {
1630
+ let sk = this.session.getSessionKey();
1631
+ if (!sk)
1632
+ return of(false);
1633
+ return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1634
+ }
1635
+ recover(key) {
1636
+ let sk = this.session.getSessionKey();
1637
+ if (!sk)
1638
+ return of(null);
1639
+ return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(map((res) => {
1640
+ var resProp = null;
1641
+ try {
1642
+ resProp = JSON.parse(res);
1643
+ }
1644
+ catch { }
1645
+ return resProp;
1646
+ }));
1647
+ }
1648
+ recoverAll() {
1649
+ let sk = this.session.getSessionKey();
1650
+ if (!sk)
1651
+ return of(null);
1652
+ return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
1653
+ for (var prop in res) {
1654
+ var resProp = null;
1655
+ try {
1656
+ resProp = JSON.parse(res[prop]);
1657
+ }
1658
+ catch { }
1659
+ res[prop] = resProp;
1660
+ }
1661
+ return res;
1662
+ }));
1663
+ }
1664
+ remove(key) {
1665
+ let sk = this.session.getSessionKey();
1666
+ if (!sk)
1667
+ return of(false);
1668
+ return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1669
+ }
1670
+ clear() {
1671
+ let sk = this.session.getSessionKey();
1672
+ if (!sk)
1673
+ return of(false);
1674
+ return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
1675
+ }
1676
+ getHeaders(contentType = 'application/json') {
1677
+ return new HttpHeaders()
1678
+ .append("Content-Type", contentType)
1679
+ .append("Accept", "application/json")
1680
+ .append("Authorization", "Bearer " + this.tks.getAccessToken())
1681
+ .append("Accept-Language", this.lc.Locale);
1682
+ }
1683
+ getSessionUrl(sessionKey) {
1684
+ return `${BASE_Preferences_Sessions}/${sessionKey}`;
1685
+ }
1686
+ getItemsUrl(sessionKey) {
1687
+ return `${this.getSessionUrl(sessionKey)}/items`;
1688
+ }
1689
+ getItemUrl(sessionKey, itemKey) {
1690
+ return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
1691
+ }
1692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApplicationPreferencesPersistor, deps: [{ token: i1$2.LocalizationService }, { token: i2.HttpClient }, { token: TokenService }, { token: i4$1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable }); }
1693
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApplicationPreferencesPersistor }); }
1694
+ }
1695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApplicationPreferencesPersistor, decorators: [{
1696
+ type: Injectable
1697
+ }], ctorParameters: () => [{ type: i1$2.LocalizationService }, { type: i2.HttpClient }, { type: TokenService }, { type: i4$1.BaseSessionRetriever }] });
1692
1698
 
1693
- // Angular
1694
- // Chiamate ai Repository
1695
- const GET_UserProfile_GetAccountPicture = "/api/UserProfile/GetAccountPicture";
1696
- const POST_UserProfile_UpdateAccountPicture = "/api/UserProfile/UpdateAccountPicture";
1697
- const POST_UserProfile_UpdateAccountRecoveryInfos = "/api/UserProfile/UpdateAccountRecoveryInfos";
1698
- const POST_UserProfile_UpdateAccountPassword = "/api/UserProfile/UpdateAccountPassword";
1699
- const GET_UserProfile_DeleteAccountPicture = "/api/UserProfile/DeleteAccountPicture";
1700
- const GET_UserProfile_GetEntityAccount = "/api/UserProfile/GetEntityAccount";
1701
- class UserPreferencesService {
1702
- constructor(injector) {
1703
- this.injector = injector;
1704
- let tks = this.injector.get(TokenService);
1705
- this.sanitizer = this.injector.get(DomSanitizer);
1706
- this.http = this.injector.get(HTTPService);
1707
- this.msgExts = this.injector.get(MessageService);
1708
- this.fakeToken = this.injector.get(USE_FAKE_ACCESS_TOKEN) || false;
1709
- var identity = tks.getJaceIdentity();
1710
- if (identity) {
1711
- this.AccountId = identity.IdAccount.toString();
1712
- this.doReloadProfilePicture();
1713
- }
1714
- }
1715
- async getAccountProfile() {
1716
- let pars = new HttpParams().set("idAccount", this.AccountId);
1717
- let ret = await firstValueFrom(this.http.get(GET_UserProfile_GetEntityAccount, pars));
1718
- return ret;
1719
- }
1720
- async doReloadProfilePicture() {
1721
- this.ProfilePicture = null;
1722
- let tmpPict = await this.getCurrentProfilePicture();
1723
- this.ProfilePicture = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/png;base64,${tmpPict}`);
1724
- }
1725
- async getCurrentProfilePicture() {
1726
- // Se fake token restituisco la stock image dell'utente
1727
- if (this.fakeToken)
1728
- return "/9j/4AAQSkZJRgABAQEBLAEsAAD/4QCaRXhpZgAASUkqAAgAAAADAA4BAgBQAAAAMgAAABoBBQABAAAAggAAABsBBQABAAAAigAAAAAAAABEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbiwBAAABAAAALAEAAAEAAAD/4QXHaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpJcHRjNHhtcENvcmU9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBDb3JlLzEuMC94bWxucy8iICAgeG1sbnM6R2V0dHlJbWFnZXNHSUZUPSJodHRwOi8veG1wLmdldHR5aW1hZ2VzLmNvbS9naWZ0LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIHBob3Rvc2hvcDpDcmVkaXQ9IkdldHR5IEltYWdlcyIgR2V0dHlJbWFnZXNHSUZUOkFzc2V0SUQ9IjEzMzcxNDQxNDYiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHBzOi8vd3d3LmlzdG9ja3Bob3RvLmNvbS9sZWdhbC9saWNlbnNlLWFncmVlbWVudD91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybCIgcGx1czpEYXRhTWluaW5nPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3ZvY2FiL0RNSS1QUk9ISUJJVEVELUVYQ0VQVFNFQVJDSEVOR0lORUlOREVYSU5HIiA+CjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+TWFyaWEgU2hhcGlsb3ZhPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6Y3JlYXRvcj48ZGM6ZGVzY3JpcHRpb24+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5EZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbjwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOmRlc2NyaXB0aW9uPgo8cGx1czpMaWNlbnNvcj48cmRmOlNlcT48cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz48cGx1czpMaWNlbnNvclVSTD5odHRwczovL3d3dy5pc3RvY2twaG90by5jb20vcGhvdG8vbGljZW5zZS1nbTEzMzcxNDQxNDYtP3V0bV9tZWRpdW09b3JnYW5pYyZhbXA7dXRtX3NvdXJjZT1nb29nbGUmYW1wO3V0bV9jYW1wYWlnbj1pcHRjdXJsPC9wbHVzOkxpY2Vuc29yVVJMPjwvcmRmOmxpPjwvcmRmOlNlcT48L3BsdXM6TGljZW5zb3I+CgkJPC9yZGY6RGVzY3JpcHRpb24+Cgk8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJ3Ij8+Cv/tAJZQaG90b3Nob3AgMy4wADhCSU0EBAAAAAAAehwCUAAPTWFyaWEgU2hhcGlsb3ZhHAJ4AFBEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbhwCbgAMR2V0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";
1729
- let pictureb64 = await firstValueFrom(this.http.get(GET_UserProfile_GetAccountPicture, new HttpParams().set('idAccount', this.AccountId)));
1730
- return pictureb64;
1731
- }
1732
- async doUpdateProfilePicture(image) {
1733
- if (this.fakeToken) {
1734
- var ret = new CallResult();
1735
- ret.success = true;
1736
- return ret;
1737
- }
1738
- let dtoPic = new UpdateProfilePictureDto(this.AccountId);
1739
- let cr = await firstValueFrom(this.http.postwithFiles(POST_UserProfile_UpdateAccountPicture, dtoPic, image ?? []));
1740
- if (cr.success)
1741
- this.doReloadProfilePicture();
1742
- return cr;
1743
- }
1744
- async doUpdateRecoverySettings(email) {
1745
- if (this.fakeToken) {
1746
- var ret = new CallResult();
1747
- ret.success = true;
1748
- return ret;
1749
- }
1750
- let dto = new UpdateAccountRecoverySettingsDto(this.AccountId, email);
1751
- let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdateAccountRecoveryInfos, dto));
1752
- return cr;
1753
- }
1754
- async doUpdatePassword(oldPassword, newPassword, newPasswordConfirm) {
1755
- if (this.fakeToken) {
1756
- var ret = new CallResult();
1757
- ret.success = true;
1758
- return ret;
1759
- }
1760
- let dto = new UpdatePasswordDto(this.AccountId, oldPassword, newPassword, newPasswordConfirm);
1761
- let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdateAccountPassword, dto));
1762
- return cr;
1763
- }
1764
- async doDeleteProfilePicture() {
1765
- if (this.fakeToken) {
1766
- var ret = new CallResult();
1767
- ret.success = true;
1768
- return ret;
1769
- }
1770
- let pars = new HttpParams().set('idAccount', this.AccountId);
1771
- let cr = await firstValueFrom(this.http.get(GET_UserProfile_DeleteAccountPicture, pars));
1772
- if (cr.success)
1773
- this.ProfilePicture = null;
1774
- return cr;
1775
- }
1776
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreferencesService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1777
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreferencesService }); }
1778
- }
1779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreferencesService, decorators: [{
1780
- type: Injectable
1781
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1699
+ // Angular
1700
+ // Chiamate ai Repository
1701
+ const GET_UserProfile_GetAccountPicture = "/api/UserProfile/GetAccountPicture";
1702
+ const POST_UserProfile_UpdateAccountPicture = "/api/UserProfile/UpdateAccountPicture";
1703
+ const POST_UserProfile_UpdateAccountRecoveryInfos = "/api/UserProfile/UpdateAccountRecoveryInfos";
1704
+ const POST_UserProfile_UpdateAccountPassword = "/api/UserProfile/UpdateAccountPassword";
1705
+ const GET_UserProfile_DeleteAccountPicture = "/api/UserProfile/DeleteAccountPicture";
1706
+ const GET_UserProfile_GetEntityAccount = "/api/UserProfile/GetEntityAccount";
1707
+ class UserPreferencesService {
1708
+ constructor(injector) {
1709
+ this.injector = injector;
1710
+ let tks = this.injector.get(TokenService);
1711
+ this.sanitizer = this.injector.get(DomSanitizer);
1712
+ this.http = this.injector.get(HTTPService);
1713
+ this.msgExts = this.injector.get(MessageService);
1714
+ this.fakeToken = this.injector.get(USE_FAKE_ACCESS_TOKEN) || false;
1715
+ var identity = tks.getJaceIdentity();
1716
+ if (identity) {
1717
+ this.AccountId = identity.IdAccount.toString();
1718
+ this.doReloadProfilePicture();
1719
+ }
1720
+ }
1721
+ async getAccountProfile() {
1722
+ let pars = new HttpParams().set("idAccount", this.AccountId);
1723
+ let ret = await firstValueFrom(this.http.get(GET_UserProfile_GetEntityAccount, pars));
1724
+ return ret;
1725
+ }
1726
+ async doReloadProfilePicture() {
1727
+ this.ProfilePicture = null;
1728
+ let tmpPict = await this.getCurrentProfilePicture();
1729
+ this.ProfilePicture = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/png;base64,${tmpPict}`);
1730
+ }
1731
+ async getCurrentProfilePicture() {
1732
+ // Se fake token restituisco la stock image dell'utente
1733
+ if (this.fakeToken)
1734
+ return "/9j/4AAQSkZJRgABAQEBLAEsAAD/4QCaRXhpZgAASUkqAAgAAAADAA4BAgBQAAAAMgAAABoBBQABAAAAggAAABsBBQABAAAAigAAAAAAAABEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbiwBAAABAAAALAEAAAEAAAD/4QXHaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpJcHRjNHhtcENvcmU9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBDb3JlLzEuMC94bWxucy8iICAgeG1sbnM6R2V0dHlJbWFnZXNHSUZUPSJodHRwOi8veG1wLmdldHR5aW1hZ2VzLmNvbS9naWZ0LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIHBob3Rvc2hvcDpDcmVkaXQ9IkdldHR5IEltYWdlcyIgR2V0dHlJbWFnZXNHSUZUOkFzc2V0SUQ9IjEzMzcxNDQxNDYiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHBzOi8vd3d3LmlzdG9ja3Bob3RvLmNvbS9sZWdhbC9saWNlbnNlLWFncmVlbWVudD91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybCIgcGx1czpEYXRhTWluaW5nPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3ZvY2FiL0RNSS1QUk9ISUJJVEVELUVYQ0VQVFNFQVJDSEVOR0lORUlOREVYSU5HIiA+CjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+TWFyaWEgU2hhcGlsb3ZhPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6Y3JlYXRvcj48ZGM6ZGVzY3JpcHRpb24+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5EZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbjwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOmRlc2NyaXB0aW9uPgo8cGx1czpMaWNlbnNvcj48cmRmOlNlcT48cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz48cGx1czpMaWNlbnNvclVSTD5odHRwczovL3d3dy5pc3RvY2twaG90by5jb20vcGhvdG8vbGljZW5zZS1nbTEzMzcxNDQxNDYtP3V0bV9tZWRpdW09b3JnYW5pYyZhbXA7dXRtX3NvdXJjZT1nb29nbGUmYW1wO3V0bV9jYW1wYWlnbj1pcHRjdXJsPC9wbHVzOkxpY2Vuc29yVVJMPjwvcmRmOmxpPjwvcmRmOlNlcT48L3BsdXM6TGljZW5zb3I+CgkJPC9yZGY6RGVzY3JpcHRpb24+Cgk8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJ3Ij8+Cv/tAJZQaG90b3Nob3AgMy4wADhCSU0EBAAAAAAAehwCUAAPTWFyaWEgU2hhcGlsb3ZhHAJ4AFBEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbhwCbgAMR2V0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";
1735
+ let pictureb64 = await firstValueFrom(this.http.get(GET_UserProfile_GetAccountPicture, new HttpParams().set('idAccount', this.AccountId)));
1736
+ return pictureb64;
1737
+ }
1738
+ async doUpdateProfilePicture(image) {
1739
+ if (this.fakeToken) {
1740
+ var ret = new CallResult();
1741
+ ret.success = true;
1742
+ return ret;
1743
+ }
1744
+ let dtoPic = new UpdateProfilePictureDto(this.AccountId);
1745
+ let cr = await firstValueFrom(this.http.postwithFiles(POST_UserProfile_UpdateAccountPicture, dtoPic, image ?? []));
1746
+ if (cr.success)
1747
+ this.doReloadProfilePicture();
1748
+ return cr;
1749
+ }
1750
+ async doUpdateRecoverySettings(email) {
1751
+ if (this.fakeToken) {
1752
+ var ret = new CallResult();
1753
+ ret.success = true;
1754
+ return ret;
1755
+ }
1756
+ let dto = new UpdateAccountRecoverySettingsDto(this.AccountId, email);
1757
+ let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdateAccountRecoveryInfos, dto));
1758
+ return cr;
1759
+ }
1760
+ async doUpdatePassword(oldPassword, newPassword, newPasswordConfirm) {
1761
+ if (this.fakeToken) {
1762
+ var ret = new CallResult();
1763
+ ret.success = true;
1764
+ return ret;
1765
+ }
1766
+ let dto = new UpdatePasswordDto(this.AccountId, oldPassword, newPassword, newPasswordConfirm);
1767
+ let cr = await firstValueFrom(this.http.post(POST_UserProfile_UpdateAccountPassword, dto));
1768
+ return cr;
1769
+ }
1770
+ async doDeleteProfilePicture() {
1771
+ if (this.fakeToken) {
1772
+ var ret = new CallResult();
1773
+ ret.success = true;
1774
+ return ret;
1775
+ }
1776
+ let pars = new HttpParams().set('idAccount', this.AccountId);
1777
+ let cr = await firstValueFrom(this.http.get(GET_UserProfile_DeleteAccountPicture, pars));
1778
+ if (cr.success)
1779
+ this.ProfilePicture = null;
1780
+ return cr;
1781
+ }
1782
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UserPreferencesService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1783
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UserPreferencesService }); }
1784
+ }
1785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UserPreferencesService, decorators: [{
1786
+ type: Injectable
1787
+ }], ctorParameters: () => [{ type: i0.Injector }] });
1782
1788
 
1783
- // Angular
1784
- class BaseRouterGuard extends AccessControlRouteGuard {
1785
- constructor(ms, acc, router, ts) {
1786
- super(ms, acc, router);
1787
- let identity = ts.getJaceIdentity();
1788
- if (!acc.Initialized)
1789
- acc.initializeIdentity(identity);
1790
- }
1791
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseRouterGuard, deps: [{ token: i5.MessageService }, { token: i5$1.AccessControlService }, { token: i1$1.Router }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1792
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseRouterGuard }); }
1793
- }
1794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseRouterGuard, decorators: [{
1795
- type: Injectable
1796
- }], ctorParameters: function () { return [{ type: i5.MessageService }, { type: i5$1.AccessControlService }, { type: i1$1.Router }, { type: TokenService }]; } });
1789
+ // Angular
1790
+ class BaseRouterGuard extends AccessControlRouteGuard {
1791
+ constructor(ms, acc, router, ts) {
1792
+ super(ms, acc, router);
1793
+ let identity = ts.getJaceIdentity();
1794
+ if (!acc.Initialized)
1795
+ acc.initializeIdentity(identity);
1796
+ }
1797
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseRouterGuard, deps: [{ token: i5.MessageService }, { token: i5$1.AccessControlService }, { token: i1$1.Router }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1798
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseRouterGuard }); }
1799
+ }
1800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseRouterGuard, decorators: [{
1801
+ type: Injectable
1802
+ }], ctorParameters: () => [{ type: i5.MessageService }, { type: i5$1.AccessControlService }, { type: i1$1.Router }, { type: TokenService }] });
1797
1803
 
1798
- /**
1799
- * Generated bundle index. Do not edit.
1804
+ /**
1805
+ * Generated bundle index. Do not edit.
1800
1806
  */
1801
1807
 
1802
1808
  export { APPErrorHandler, AppState, ApplicationCachePersistor, ApplicationPreferencesPersistor, BaseRouterGuard, CompletedJobRedirectionService, GlobalSearchService, HTTPServiceExtensions, MenuFilteringService, OutZoneEventPlugin, SessionRetriever, TokenService, UserPreferencesService };