@senior-gestao-relacionamento/angular-components 1.10.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +15 -0
  2. package/esm2022/lib/angular-components.module.mjs +22 -0
  3. package/esm2022/lib/services/current-collaborator/current-collaborator.service.mjs +70 -0
  4. package/esm2022/lib/services/current-collaborator/models/collaborator.model.mjs +2 -0
  5. package/esm2022/lib/services/storage/storage.service.mjs +130 -0
  6. package/esm2022/public-api.mjs +8 -0
  7. package/esm2022/senior-gestao-relacionamento-angular-components.mjs +5 -0
  8. package/fesm2022/senior-gestao-relacionamento-angular-components.mjs +228 -0
  9. package/fesm2022/senior-gestao-relacionamento-angular-components.mjs.map +1 -0
  10. package/index.d.ts +5 -0
  11. package/lib/angular-components.module.d.ts +10 -0
  12. package/lib/services/current-collaborator/current-collaborator.service.d.ts +32 -0
  13. package/lib/services/current-collaborator/models/collaborator.model.d.ts +53 -0
  14. package/lib/services/storage/storage.service.d.ts +44 -0
  15. package/package.json +38 -41
  16. package/public-api.d.ts +4 -4
  17. package/bundles/senior-gestao-relacionamento-angular-components.umd.js +0 -1586
  18. package/bundles/senior-gestao-relacionamento-angular-components.umd.js.map +0 -1
  19. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js +0 -16
  20. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js.map +0 -1
  21. package/components/index.d.ts +0 -2
  22. package/components/refresh-websocket-alert/index.d.ts +0 -2
  23. package/components/refresh-websocket-alert/refresh-websocket-alert.component.d.ts +0 -14
  24. package/components/refresh-websocket-alert/refresh-websocket-alert.module.d.ts +0 -2
  25. package/components/reports/enums/format-enum.d.ts +0 -9
  26. package/components/reports/enums/index.d.ts +0 -2
  27. package/components/reports/enums/view-mode-enum.d.ts +0 -4
  28. package/components/reports/index.d.ts +0 -5
  29. package/components/reports/models/callback-event.d.ts +0 -4
  30. package/components/reports/models/generate-report-input-dto.d.ts +0 -11
  31. package/components/reports/models/generate-report-output-dto.d.ts +0 -3
  32. package/components/reports/models/index.d.ts +0 -7
  33. package/components/reports/models/parameter.d.ts +0 -4
  34. package/components/reports/models/report-dto.d.ts +0 -6
  35. package/components/reports/models/reports-options.d.ts +0 -14
  36. package/components/reports/models/response-list-report-dto.d.ts +0 -8
  37. package/components/reports/reports.component.d.ts +0 -41
  38. package/components/reports/reports.module.d.ts +0 -2
  39. package/components/reports/reports.service.d.ts +0 -16
  40. package/esm2015/components/index.js +0 -3
  41. package/esm2015/components/refresh-websocket-alert/index.js +0 -3
  42. package/esm2015/components/refresh-websocket-alert/refresh-websocket-alert.component.js +0 -57
  43. package/esm2015/components/refresh-websocket-alert/refresh-websocket-alert.module.js +0 -26
  44. package/esm2015/components/reports/enums/format-enum.js +0 -11
  45. package/esm2015/components/reports/enums/index.js +0 -3
  46. package/esm2015/components/reports/enums/view-mode-enum.js +0 -6
  47. package/esm2015/components/reports/index.js +0 -5
  48. package/esm2015/components/reports/models/callback-event.js +0 -1
  49. package/esm2015/components/reports/models/generate-report-input-dto.js +0 -1
  50. package/esm2015/components/reports/models/generate-report-output-dto.js +0 -1
  51. package/esm2015/components/reports/models/index.js +0 -1
  52. package/esm2015/components/reports/models/parameter.js +0 -1
  53. package/esm2015/components/reports/models/report-dto.js +0 -1
  54. package/esm2015/components/reports/models/reports-options.js +0 -1
  55. package/esm2015/components/reports/models/response-list-report-dto.js +0 -1
  56. package/esm2015/components/reports/reports.component.js +0 -202
  57. package/esm2015/components/reports/reports.module.js +0 -43
  58. package/esm2015/components/reports/reports.service.js +0 -73
  59. package/esm2015/locale/fallback.js +0 -16
  60. package/esm2015/public-api.js +0 -5
  61. package/esm2015/senior-gestao-relacionamento-angular-components.js +0 -9
  62. package/esm2015/services/current-collaborator/current-collaborator.module.js +0 -20
  63. package/esm2015/services/current-collaborator/current-collaborator.service.js +0 -60
  64. package/esm2015/services/current-collaborator/enums/index.js +0 -2
  65. package/esm2015/services/current-collaborator/enums/status-enum.js +0 -6
  66. package/esm2015/services/current-collaborator/index.js +0 -5
  67. package/esm2015/services/current-collaborator/models/branch-dto.js +0 -1
  68. package/esm2015/services/current-collaborator/models/branch.js +0 -23
  69. package/esm2015/services/current-collaborator/models/collaborator-branch-link-dto.js +0 -1
  70. package/esm2015/services/current-collaborator/models/collaborator-branch-link.js +0 -23
  71. package/esm2015/services/current-collaborator/models/collaborator-dto.js +0 -1
  72. package/esm2015/services/current-collaborator/models/collaborator.js +0 -42
  73. package/esm2015/services/current-collaborator/models/company-dto.js +0 -1
  74. package/esm2015/services/current-collaborator/models/company.js +0 -16
  75. package/esm2015/services/current-collaborator/models/index.js +0 -6
  76. package/esm2015/services/current-collaborator/models/job-title-dto.js +0 -1
  77. package/esm2015/services/current-collaborator/models/job-title.js +0 -16
  78. package/esm2015/services/current-tenant/current-tenant.module.js +0 -20
  79. package/esm2015/services/current-tenant/current-tenant.service.js +0 -67
  80. package/esm2015/services/current-tenant/index.js +0 -4
  81. package/esm2015/services/current-tenant/models/index.js +0 -2
  82. package/esm2015/services/current-tenant/models/modulo-dto.js +0 -1
  83. package/esm2015/services/current-tenant/models/modulo.js +0 -15
  84. package/esm2015/services/index.js +0 -9
  85. package/esm2015/services/resolvers/access-validation.resolve.js +0 -33
  86. package/esm2015/services/resolvers/index.js +0 -2
  87. package/esm2015/services/schedule-form-rules/enums/index.js +0 -6
  88. package/esm2015/services/schedule-form-rules/enums/month-enum.js +0 -16
  89. package/esm2015/services/schedule-form-rules/enums/ordinal-week-day-enum.js +0 -9
  90. package/esm2015/services/schedule-form-rules/enums/recurrence-enum.js +0 -8
  91. package/esm2015/services/schedule-form-rules/enums/repeat-when-enum.js +0 -6
  92. package/esm2015/services/schedule-form-rules/enums/week-day-enum.js +0 -11
  93. package/esm2015/services/schedule-form-rules/index.js +0 -4
  94. package/esm2015/services/schedule-form-rules/schedule-form-rules.module.js +0 -15
  95. package/esm2015/services/schedule-form-rules/schedule-form-rules.service.js +0 -105
  96. package/esm2015/services/standard-filters/index.js +0 -3
  97. package/esm2015/services/standard-filters/standard-filters.module.js +0 -14
  98. package/esm2015/services/standard-filters/standard-filters.service.js +0 -28
  99. package/esm2015/services/storage/com-senior-token-dto.js +0 -1
  100. package/esm2015/services/storage/index.js +0 -2
  101. package/esm2015/services/storage/storage.module.js +0 -17
  102. package/esm2015/services/storage/storage.service.js +0 -59
  103. package/esm2015/services/validators/date-validators.service.js +0 -9
  104. package/esm2015/services/validators/form-group-validators.service.js +0 -36
  105. package/esm2015/services/validators/index.js +0 -3
  106. package/esm2015/services/websocket/index.js +0 -4
  107. package/esm2015/services/websocket/models/event-dto.js +0 -1
  108. package/esm2015/services/websocket/models/event.js +0 -13
  109. package/esm2015/services/websocket/models/index.js +0 -3
  110. package/esm2015/services/websocket/models/topic-dto.js +0 -1
  111. package/esm2015/services/websocket/models/topic.js +0 -25
  112. package/esm2015/services/websocket/websocket.module.js +0 -18
  113. package/esm2015/services/websocket/websocket.service.js +0 -124
  114. package/esm2015/utils/index.js +0 -4
  115. package/esm2015/utils/string-converter.service.js +0 -7
  116. package/esm2015/utils/utils.js +0 -80
  117. package/esm2015/utils/value-changes.service.js +0 -7
  118. package/esm5/components/index.js +0 -3
  119. package/esm5/components/refresh-websocket-alert/index.js +0 -3
  120. package/esm5/components/refresh-websocket-alert/refresh-websocket-alert.component.js +0 -59
  121. package/esm5/components/refresh-websocket-alert/refresh-websocket-alert.module.js +0 -29
  122. package/esm5/components/reports/enums/format-enum.js +0 -11
  123. package/esm5/components/reports/enums/index.js +0 -3
  124. package/esm5/components/reports/enums/view-mode-enum.js +0 -6
  125. package/esm5/components/reports/index.js +0 -5
  126. package/esm5/components/reports/models/callback-event.js +0 -1
  127. package/esm5/components/reports/models/generate-report-input-dto.js +0 -1
  128. package/esm5/components/reports/models/generate-report-output-dto.js +0 -1
  129. package/esm5/components/reports/models/index.js +0 -1
  130. package/esm5/components/reports/models/parameter.js +0 -1
  131. package/esm5/components/reports/models/report-dto.js +0 -1
  132. package/esm5/components/reports/models/reports-options.js +0 -1
  133. package/esm5/components/reports/models/response-list-report-dto.js +0 -1
  134. package/esm5/components/reports/reports.component.js +0 -208
  135. package/esm5/components/reports/reports.module.js +0 -46
  136. package/esm5/components/reports/reports.service.js +0 -75
  137. package/esm5/locale/fallback.js +0 -16
  138. package/esm5/public-api.js +0 -5
  139. package/esm5/senior-gestao-relacionamento-angular-components.js +0 -9
  140. package/esm5/services/current-collaborator/current-collaborator.module.js +0 -23
  141. package/esm5/services/current-collaborator/current-collaborator.service.js +0 -62
  142. package/esm5/services/current-collaborator/enums/index.js +0 -2
  143. package/esm5/services/current-collaborator/enums/status-enum.js +0 -6
  144. package/esm5/services/current-collaborator/index.js +0 -5
  145. package/esm5/services/current-collaborator/models/branch-dto.js +0 -1
  146. package/esm5/services/current-collaborator/models/branch.js +0 -28
  147. package/esm5/services/current-collaborator/models/collaborator-branch-link-dto.js +0 -1
  148. package/esm5/services/current-collaborator/models/collaborator-branch-link.js +0 -28
  149. package/esm5/services/current-collaborator/models/collaborator-dto.js +0 -1
  150. package/esm5/services/current-collaborator/models/collaborator.js +0 -45
  151. package/esm5/services/current-collaborator/models/company-dto.js +0 -1
  152. package/esm5/services/current-collaborator/models/company.js +0 -21
  153. package/esm5/services/current-collaborator/models/index.js +0 -6
  154. package/esm5/services/current-collaborator/models/job-title-dto.js +0 -1
  155. package/esm5/services/current-collaborator/models/job-title.js +0 -21
  156. package/esm5/services/current-tenant/current-tenant.module.js +0 -23
  157. package/esm5/services/current-tenant/current-tenant.service.js +0 -70
  158. package/esm5/services/current-tenant/index.js +0 -4
  159. package/esm5/services/current-tenant/models/index.js +0 -2
  160. package/esm5/services/current-tenant/models/modulo-dto.js +0 -1
  161. package/esm5/services/current-tenant/models/modulo.js +0 -20
  162. package/esm5/services/index.js +0 -9
  163. package/esm5/services/resolvers/access-validation.resolve.js +0 -35
  164. package/esm5/services/resolvers/index.js +0 -2
  165. package/esm5/services/schedule-form-rules/enums/index.js +0 -6
  166. package/esm5/services/schedule-form-rules/enums/month-enum.js +0 -16
  167. package/esm5/services/schedule-form-rules/enums/ordinal-week-day-enum.js +0 -9
  168. package/esm5/services/schedule-form-rules/enums/recurrence-enum.js +0 -8
  169. package/esm5/services/schedule-form-rules/enums/repeat-when-enum.js +0 -6
  170. package/esm5/services/schedule-form-rules/enums/week-day-enum.js +0 -11
  171. package/esm5/services/schedule-form-rules/index.js +0 -4
  172. package/esm5/services/schedule-form-rules/schedule-form-rules.module.js +0 -18
  173. package/esm5/services/schedule-form-rules/schedule-form-rules.service.js +0 -109
  174. package/esm5/services/standard-filters/index.js +0 -3
  175. package/esm5/services/standard-filters/standard-filters.module.js +0 -17
  176. package/esm5/services/standard-filters/standard-filters.service.js +0 -30
  177. package/esm5/services/storage/com-senior-token-dto.js +0 -1
  178. package/esm5/services/storage/index.js +0 -2
  179. package/esm5/services/storage/storage.module.js +0 -20
  180. package/esm5/services/storage/storage.service.js +0 -60
  181. package/esm5/services/validators/date-validators.service.js +0 -13
  182. package/esm5/services/validators/form-group-validators.service.js +0 -40
  183. package/esm5/services/validators/index.js +0 -3
  184. package/esm5/services/websocket/index.js +0 -4
  185. package/esm5/services/websocket/models/event-dto.js +0 -1
  186. package/esm5/services/websocket/models/event.js +0 -20
  187. package/esm5/services/websocket/models/index.js +0 -3
  188. package/esm5/services/websocket/models/topic-dto.js +0 -1
  189. package/esm5/services/websocket/models/topic.js +0 -29
  190. package/esm5/services/websocket/websocket.module.js +0 -21
  191. package/esm5/services/websocket/websocket.service.js +0 -131
  192. package/esm5/utils/index.js +0 -4
  193. package/esm5/utils/string-converter.service.js +0 -11
  194. package/esm5/utils/utils.js +0 -82
  195. package/esm5/utils/value-changes.service.js +0 -11
  196. package/fesm2015/senior-gestao-relacionamento-angular-components.js +0 -1271
  197. package/fesm2015/senior-gestao-relacionamento-angular-components.js.map +0 -1
  198. package/fesm5/senior-gestao-relacionamento-angular-components.js +0 -1363
  199. package/fesm5/senior-gestao-relacionamento-angular-components.js.map +0 -1
  200. package/locale/fallback.d.ts +0 -1
  201. package/scss/styles.scss +0 -190
  202. package/senior-gestao-relacionamento-angular-components.d.ts +0 -8
  203. package/senior-gestao-relacionamento-angular-components.metadata.json +0 -1
  204. package/services/current-collaborator/current-collaborator.module.d.ts +0 -2
  205. package/services/current-collaborator/current-collaborator.service.d.ts +0 -14
  206. package/services/current-collaborator/enums/index.d.ts +0 -1
  207. package/services/current-collaborator/enums/status-enum.d.ts +0 -4
  208. package/services/current-collaborator/index.d.ts +0 -4
  209. package/services/current-collaborator/models/branch-dto.d.ts +0 -7
  210. package/services/current-collaborator/models/branch.d.ts +0 -13
  211. package/services/current-collaborator/models/collaborator-branch-link-dto.d.ts +0 -4
  212. package/services/current-collaborator/models/collaborator-branch-link.d.ts +0 -9
  213. package/services/current-collaborator/models/collaborator-dto.d.ts +0 -14
  214. package/services/current-collaborator/models/collaborator.d.ts +0 -18
  215. package/services/current-collaborator/models/company-dto.d.ts +0 -6
  216. package/services/current-collaborator/models/company.d.ts +0 -11
  217. package/services/current-collaborator/models/index.d.ts +0 -10
  218. package/services/current-collaborator/models/job-title-dto.d.ts +0 -4
  219. package/services/current-collaborator/models/job-title.d.ts +0 -8
  220. package/services/current-tenant/current-tenant.module.d.ts +0 -2
  221. package/services/current-tenant/current-tenant.service.d.ts +0 -19
  222. package/services/current-tenant/index.d.ts +0 -3
  223. package/services/current-tenant/models/index.d.ts +0 -2
  224. package/services/current-tenant/models/modulo-dto.d.ts +0 -5
  225. package/services/current-tenant/models/modulo.d.ts +0 -8
  226. package/services/index.d.ts +0 -8
  227. package/services/resolvers/access-validation.resolve.d.ts +0 -9
  228. package/services/resolvers/index.d.ts +0 -1
  229. package/services/schedule-form-rules/enums/index.d.ts +0 -5
  230. package/services/schedule-form-rules/enums/month-enum.d.ts +0 -14
  231. package/services/schedule-form-rules/enums/ordinal-week-day-enum.d.ts +0 -7
  232. package/services/schedule-form-rules/enums/recurrence-enum.d.ts +0 -6
  233. package/services/schedule-form-rules/enums/repeat-when-enum.d.ts +0 -4
  234. package/services/schedule-form-rules/enums/week-day-enum.d.ts +0 -9
  235. package/services/schedule-form-rules/index.d.ts +0 -3
  236. package/services/schedule-form-rules/schedule-form-rules.module.d.ts +0 -2
  237. package/services/schedule-form-rules/schedule-form-rules.service.d.ts +0 -12
  238. package/services/standard-filters/index.d.ts +0 -2
  239. package/services/standard-filters/standard-filters.module.d.ts +0 -2
  240. package/services/standard-filters/standard-filters.service.d.ts +0 -7
  241. package/services/storage/com-senior-token-dto.d.ts +0 -14
  242. package/services/storage/index.d.ts +0 -1
  243. package/services/storage/storage.module.d.ts +0 -2
  244. package/services/storage/storage.service.d.ts +0 -17
  245. package/services/validators/date-validators.service.d.ts +0 -3
  246. package/services/validators/form-group-validators.service.d.ts +0 -5
  247. package/services/validators/index.d.ts +0 -2
  248. package/services/websocket/index.d.ts +0 -3
  249. package/services/websocket/models/event-dto.d.ts +0 -5
  250. package/services/websocket/models/event.d.ts +0 -8
  251. package/services/websocket/models/index.d.ts +0 -4
  252. package/services/websocket/models/topic-dto.d.ts +0 -6
  253. package/services/websocket/models/topic.d.ts +0 -10
  254. package/services/websocket/websocket.module.d.ts +0 -2
  255. package/services/websocket/websocket.service.d.ts +0 -22
  256. package/utils/index.d.ts +0 -3
  257. package/utils/string-converter.service.d.ts +0 -3
  258. package/utils/utils.d.ts +0 -12
  259. package/utils/value-changes.service.d.ts +0 -4
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # @senior-gestao-relacionamento/angular-components
2
+
3
+ Biblioteca de componentes reutilizáveis para aplicações Angular do CRM Senior Sistemas.
4
+
5
+ ## Instalação
6
+
7
+ ```bash
8
+ npm install @senior-gestao-relacionamento/angular-components
9
+ ```
10
+
11
+ ## Uso
12
+
13
+ ```typescript
14
+ import { AngularComponentsModule } from '@senior-gestao-relacionamento/angular-components';
15
+ ```
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Módulo principal da biblioteca @senior-gestao-relacionamento/angular-components
6
+ */
7
+ export class AngularComponentsModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, imports: [CommonModule] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, imports: [CommonModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [],
16
+ imports: [
17
+ CommonModule
18
+ ],
19
+ exports: []
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2FuZ3VsYXItY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRS9DOztHQUVHO0FBUUgsTUFBTSxPQUFPLHVCQUF1Qjt3R0FBdkIsdUJBQXVCO3lHQUF2Qix1QkFBdUIsWUFKaEMsWUFBWTt5R0FJSCx1QkFBdUIsWUFKaEMsWUFBWTs7NEZBSUgsdUJBQXVCO2tCQVBuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIE3Ds2R1bG8gcHJpbmNpcGFsIGRhIGJpYmxpb3RlY2EgQHNlbmlvci1nZXN0YW8tcmVsYWNpb25hbWVudG8vYW5ndWxhci1jb21wb25lbnRzXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,70 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, of, tap } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ import * as i2 from "../storage/storage.service";
6
+ const CACHE_KEY = 'currentCollaborator';
7
+ const CACHE_TTL_MINUTES = 30;
8
+ export class CurrentCollaboratorService {
9
+ http;
10
+ storage;
11
+ API_PATH = '/crmx/collaborator/queries/getCurrentCollaborator';
12
+ collaboratorSubject = new BehaviorSubject(null);
13
+ collaborator$ = this.collaboratorSubject.asObservable();
14
+ constructor(http, storage) {
15
+ this.http = http;
16
+ this.storage = storage;
17
+ const cached = this.storage.getWithTTL(CACHE_KEY);
18
+ if (cached) {
19
+ this.collaboratorSubject.next(cached);
20
+ }
21
+ }
22
+ /**
23
+ * Busca o colaborador atual. Retorna do cache se disponível,
24
+ * caso contrário consulta a API.
25
+ */
26
+ load() {
27
+ const cached = this.storage.getWithTTL(CACHE_KEY);
28
+ if (cached) {
29
+ this.collaboratorSubject.next(cached);
30
+ return of(cached);
31
+ }
32
+ return this.http.get(this.API_PATH).pipe(tap((collaborator) => {
33
+ this.storage.setWithTTL(CACHE_KEY, collaborator, CACHE_TTL_MINUTES);
34
+ this.collaboratorSubject.next(collaborator);
35
+ }));
36
+ }
37
+ /**
38
+ * Força a atualização do cache consultando a API.
39
+ */
40
+ refresh() {
41
+ this.storage.remove(CACHE_KEY);
42
+ this.collaboratorSubject.next(null);
43
+ return this.http.get(this.API_PATH).pipe(tap((collaborator) => {
44
+ this.storage.setWithTTL(CACHE_KEY, collaborator, CACHE_TTL_MINUTES);
45
+ this.collaboratorSubject.next(collaborator);
46
+ }));
47
+ }
48
+ /**
49
+ * Retorna o colaborador atual do cache (sem request).
50
+ */
51
+ get() {
52
+ return this.collaboratorSubject.value;
53
+ }
54
+ /**
55
+ * Limpa o cache do colaborador.
56
+ */
57
+ clearCache() {
58
+ this.storage.remove(CACHE_KEY);
59
+ this.collaboratorSubject.next(null);
60
+ }
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentCollaboratorService, deps: [{ token: i1.HttpClient }, { token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
62
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentCollaboratorService, providedIn: 'root' });
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentCollaboratorService, decorators: [{
65
+ type: Injectable,
66
+ args: [{
67
+ providedIn: 'root'
68
+ }]
69
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.StorageService }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC1jb2xsYWJvcmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2N1cnJlbnQtY29sbGFib3JhdG9yL2N1cnJlbnQtY29sbGFib3JhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFJNUQsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUM7QUFDeEMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFLN0IsTUFBTSxPQUFPLDBCQUEwQjtJQU9sQjtJQUNBO0lBUEYsUUFBUSxHQUFHLG1EQUFtRCxDQUFDO0lBRS9ELG1CQUFtQixHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsQ0FBQztJQUN0RSxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXhFLFlBQ21CLElBQWdCLEVBQ2hCLE9BQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFFeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQWUsU0FBUyxDQUFDLENBQUM7UUFDaEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQWUsU0FBUyxDQUFDLENBQUM7UUFFaEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzt3R0FoRVUsMEJBQTBCOzRHQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbGxhYm9yYXRvciB9IGZyb20gJy4vbW9kZWxzL2NvbGxhYm9yYXRvci5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcblxuY29uc3QgQ0FDSEVfS0VZID0gJ2N1cnJlbnRDb2xsYWJvcmF0b3InO1xuY29uc3QgQ0FDSEVfVFRMX01JTlVURVMgPSAzMDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ3VycmVudENvbGxhYm9yYXRvclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IEFQSV9QQVRIID0gJy9jcm14L2NvbGxhYm9yYXRvci9xdWVyaWVzL2dldEN1cnJlbnRDb2xsYWJvcmF0b3InO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29sbGFib3JhdG9yU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGFib3JhdG9yIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBjb2xsYWJvcmF0b3IkID0gdGhpcy5jb2xsYWJvcmF0b3JTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuc3RvcmFnZS5nZXRXaXRoVFRMPENvbGxhYm9yYXRvcj4oQ0FDSEVfS0VZKTtcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICB0aGlzLmNvbGxhYm9yYXRvclN1YmplY3QubmV4dChjYWNoZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdXNjYSBvIGNvbGFib3JhZG9yIGF0dWFsLiBSZXRvcm5hIGRvIGNhY2hlIHNlIGRpc3BvbsOtdmVsLFxuICAgKiBjYXNvIGNvbnRyw6FyaW8gY29uc3VsdGEgYSBBUEkuXG4gICAqL1xuICBsb2FkKCk6IE9ic2VydmFibGU8Q29sbGFib3JhdG9yPiB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5zdG9yYWdlLmdldFdpdGhUVEw8Q29sbGFib3JhdG9yPihDQUNIRV9LRVkpO1xuXG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgdGhpcy5jb2xsYWJvcmF0b3JTdWJqZWN0Lm5leHQoY2FjaGVkKTtcbiAgICAgIHJldHVybiBvZihjYWNoZWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbGxhYm9yYXRvcj4odGhpcy5BUElfUEFUSCkucGlwZShcbiAgICAgIHRhcCgoY29sbGFib3JhdG9yKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmFnZS5zZXRXaXRoVFRMKENBQ0hFX0tFWSwgY29sbGFib3JhdG9yLCBDQUNIRV9UVExfTUlOVVRFUyk7XG4gICAgICAgIHRoaXMuY29sbGFib3JhdG9yU3ViamVjdC5uZXh0KGNvbGxhYm9yYXRvcik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRm9yw6dhIGEgYXR1YWxpemHDp8OjbyBkbyBjYWNoZSBjb25zdWx0YW5kbyBhIEFQSS5cbiAgICovXG4gIHJlZnJlc2goKTogT2JzZXJ2YWJsZTxDb2xsYWJvcmF0b3I+IHtcbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKENBQ0hFX0tFWSk7XG4gICAgdGhpcy5jb2xsYWJvcmF0b3JTdWJqZWN0Lm5leHQobnVsbCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb2xsYWJvcmF0b3I+KHRoaXMuQVBJX1BBVEgpLnBpcGUoXG4gICAgICB0YXAoKGNvbGxhYm9yYXRvcikgPT4ge1xuICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0V2l0aFRUTChDQUNIRV9LRVksIGNvbGxhYm9yYXRvciwgQ0FDSEVfVFRMX01JTlVURVMpO1xuICAgICAgICB0aGlzLmNvbGxhYm9yYXRvclN1YmplY3QubmV4dChjb2xsYWJvcmF0b3IpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgbyBjb2xhYm9yYWRvciBhdHVhbCBkbyBjYWNoZSAoc2VtIHJlcXVlc3QpLlxuICAgKi9cbiAgZ2V0KCk6IENvbGxhYm9yYXRvciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbGxhYm9yYXRvclN1YmplY3QudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogTGltcGEgbyBjYWNoZSBkbyBjb2xhYm9yYWRvci5cbiAgICovXG4gIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZShDQUNIRV9LRVkpO1xuICAgIHRoaXMuY29sbGFib3JhdG9yU3ViamVjdC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFib3JhdG9yLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvY3VycmVudC1jb2xsYWJvcmF0b3IvbW9kZWxzL2NvbGxhYm9yYXRvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBKb2JUaXRsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgY3JlYXRlZEJ5OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBjaGFuZ2VkQnk6IHN0cmluZztcbiAgY2hhbmdlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFueSB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvZGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgY3JlYXRlZEJ5OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBjaGFuZ2VkQnk6IHN0cmluZztcbiAgY2hhbmdlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmNoIHtcbiAgaWQ6IHN0cmluZztcbiAgY29tcGFueTogQ29tcGFueTtcbiAgY29kZTogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBjcmVhdGVkQnk6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGNoYW5nZWRCeTogc3RyaW5nO1xuICBjaGFuZ2VkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsYWJvcmF0b3JCcmFuY2gge1xuICBicmFuY2g6IEJyYW5jaDtcbiAgbWFpbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsYWJvcmF0b3JMZWFkZXIge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob3RvOiBzdHJpbmc7XG4gIGNvbnNvbGlkYXRlZExldmVsOiBzdHJpbmc7XG4gIGxlYWRlcjogQ29sbGFib3JhdG9yTGVhZGVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsYWJvcmF0b3Ige1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob3RvOiBzdHJpbmc7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgam9iVGl0bGU6IEpvYlRpdGxlO1xuICBjb25zb2xpZGF0ZWRMZXZlbDogc3RyaW5nO1xuICBsZWFkZXI6IENvbGxhYm9yYXRvckxlYWRlcjtcbiAgYnJhbmNoZXM6IENvbGxhYm9yYXRvckJyYW5jaFtdO1xufVxuIl19
@@ -0,0 +1,130 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const TOKEN_COOKIE_NAME = 'com.senior.token';
4
+ const STORAGE_PREFIX = 'crm';
5
+ export class StorageService {
6
+ /**
7
+ * Retorna o username do usuário logado a partir do cookie com.senior.token.
8
+ */
9
+ getUsername() {
10
+ if (typeof document === 'undefined') {
11
+ return null;
12
+ }
13
+ const nameEQ = TOKEN_COOKIE_NAME + '=';
14
+ const cookies = document.cookie.split(';');
15
+ for (const cookie of cookies) {
16
+ const trimmed = cookie.trim();
17
+ if (trimmed.startsWith(nameEQ)) {
18
+ try {
19
+ const value = decodeURIComponent(trimmed.substring(nameEQ.length));
20
+ const token = JSON.parse(value);
21
+ return token?.username ?? null;
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ }
28
+ return null;
29
+ }
30
+ /**
31
+ * Monta a key completa com prefixo e username.
32
+ * Formato: crm:{username}:{key}
33
+ */
34
+ buildKey(key) {
35
+ const username = this.getUsername() ?? 'anonymous';
36
+ return `${STORAGE_PREFIX}:${username}:${key}`;
37
+ }
38
+ /**
39
+ * Salva um valor no localStorage.
40
+ * Aceita qualquer tipo serializável.
41
+ */
42
+ set(key, value) {
43
+ if (typeof localStorage === 'undefined') {
44
+ return;
45
+ }
46
+ localStorage.setItem(this.buildKey(key), JSON.stringify(value));
47
+ }
48
+ /**
49
+ * Recupera um valor do localStorage.
50
+ * Retorna null se não existir ou falhar o parse.
51
+ */
52
+ get(key) {
53
+ if (typeof localStorage === 'undefined') {
54
+ return null;
55
+ }
56
+ try {
57
+ const data = localStorage.getItem(this.buildKey(key));
58
+ return data ? JSON.parse(data) : null;
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ }
64
+ /**
65
+ * Salva um valor com TTL (tempo de expiração em minutos).
66
+ */
67
+ setWithTTL(key, value, ttlMinutes) {
68
+ const wrapper = {
69
+ value,
70
+ expiresAt: Date.now() + ttlMinutes * 60 * 1000
71
+ };
72
+ this.set(key, wrapper);
73
+ }
74
+ /**
75
+ * Recupera um valor com TTL. Retorna null se expirado.
76
+ */
77
+ getWithTTL(key) {
78
+ const wrapper = this.get(key);
79
+ if (!wrapper) {
80
+ return null;
81
+ }
82
+ if (Date.now() > wrapper.expiresAt) {
83
+ this.remove(key);
84
+ return null;
85
+ }
86
+ return wrapper.value;
87
+ }
88
+ /**
89
+ * Remove um item do localStorage.
90
+ */
91
+ remove(key) {
92
+ if (typeof localStorage === 'undefined') {
93
+ return;
94
+ }
95
+ localStorage.removeItem(this.buildKey(key));
96
+ }
97
+ /**
98
+ * Remove todos os itens do usuário atual.
99
+ */
100
+ clear() {
101
+ if (typeof localStorage === 'undefined') {
102
+ return;
103
+ }
104
+ const username = this.getUsername() ?? 'anonymous';
105
+ const prefix = `${STORAGE_PREFIX}:${username}:`;
106
+ const keysToRemove = [];
107
+ for (let i = 0; i < localStorage.length; i++) {
108
+ const key = localStorage.key(i);
109
+ if (key?.startsWith(prefix)) {
110
+ keysToRemove.push(key);
111
+ }
112
+ }
113
+ keysToRemove.forEach((key) => localStorage.removeItem(key));
114
+ }
115
+ /**
116
+ * Verifica se um item existe (e não está expirado, se tiver TTL).
117
+ */
118
+ has(key) {
119
+ return this.get(key) !== null;
120
+ }
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
122
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StorageService, providedIn: 'root' });
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StorageService, decorators: [{
125
+ type: Injectable,
126
+ args: [{
127
+ providedIn: 'root'
128
+ }]
129
+ }] });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUM3QyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUM7QUFLN0IsTUFBTSxPQUFPLGNBQWM7SUFFekI7O09BRUc7SUFDSyxXQUFXO1FBQ2pCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUM7b0JBQ0gsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDaEMsT0FBTyxLQUFLLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQztnQkFDakMsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsT0FBTyxJQUFJLENBQUM7Z0JB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LEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksR0FBRyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM1QixZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO1FBRUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUNoQyxDQUFDO3dHQXRJVSxjQUFjOzRHQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgVE9LRU5fQ09PS0lFX05BTUUgPSAnY29tLnNlbmlvci50b2tlbic7XG5jb25zdCBTVE9SQUdFX1BSRUZJWCA9ICdjcm0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgbyB1c2VybmFtZSBkbyB1c3XDoXJpbyBsb2dhZG8gYSBwYXJ0aXIgZG8gY29va2llIGNvbS5zZW5pb3IudG9rZW4uXG4gICAqL1xuICBwcml2YXRlIGdldFVzZXJuYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lRVEgPSBUT0tFTl9DT09LSUVfTkFNRSArICc9JztcbiAgICBjb25zdCBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7XG5cbiAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiBjb29raWVzKSB7XG4gICAgICBjb25zdCB0cmltbWVkID0gY29va2llLnRyaW0oKTtcbiAgICAgIGlmICh0cmltbWVkLnN0YXJ0c1dpdGgobmFtZUVRKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KHRyaW1tZWQuc3Vic3RyaW5nKG5hbWVFUS5sZW5ndGgpKTtcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgICAgIHJldHVybiB0b2tlbj8udXNlcm5hbWUgPz8gbnVsbDtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb250YSBhIGtleSBjb21wbGV0YSBjb20gcHJlZml4byBlIHVzZXJuYW1lLlxuICAgKiBGb3JtYXRvOiBjcm06e3VzZXJuYW1lfTp7a2V5fVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdXNlcm5hbWUgPSB0aGlzLmdldFVzZXJuYW1lKCkgPz8gJ2Fub255bW91cyc7XG4gICAgcmV0dXJuIGAke1NUT1JBR0VfUFJFRklYfToke3VzZXJuYW1lfToke2tleX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhbHZhIHVtIHZhbG9yIG5vIGxvY2FsU3RvcmFnZS5cbiAgICogQWNlaXRhIHF1YWxxdWVyIHRpcG8gc2VyaWFsaXrDoXZlbC5cbiAgICovXG4gIHNldDxUPihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmJ1aWxkS2V5KGtleSksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXBlcmEgdW0gdmFsb3IgZG8gbG9jYWxTdG9yYWdlLlxuICAgKiBSZXRvcm5hIG51bGwgc2UgbsOjbyBleGlzdGlyIG91IGZhbGhhciBvIHBhcnNlLlxuICAgKi9cbiAgZ2V0PFQ+KGtleTogc3RyaW5nKTogVCB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgbG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmJ1aWxkS2V5KGtleSkpO1xuICAgICAgcmV0dXJuIGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIGFzIFQgOiBudWxsO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhbHZhIHVtIHZhbG9yIGNvbSBUVEwgKHRlbXBvIGRlIGV4cGlyYcOnw6NvIGVtIG1pbnV0b3MpLlxuICAgKi9cbiAgc2V0V2l0aFRUTDxUPihrZXk6IHN0cmluZywgdmFsdWU6IFQsIHR0bE1pbnV0ZXM6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHdyYXBwZXIgPSB7XG4gICAgICB2YWx1ZSxcbiAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIHR0bE1pbnV0ZXMgKiA2MCAqIDEwMDBcbiAgICB9O1xuICAgIHRoaXMuc2V0KGtleSwgd3JhcHBlcik7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXBlcmEgdW0gdmFsb3IgY29tIFRUTC4gUmV0b3JuYSBudWxsIHNlIGV4cGlyYWRvLlxuICAgKi9cbiAgZ2V0V2l0aFRUTDxUPihrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5nZXQ8eyB2YWx1ZTogVDsgZXhwaXJlc0F0OiBudW1iZXIgfT4oa2V5KTtcblxuICAgIGlmICghd3JhcHBlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKERhdGUubm93KCkgPiB3cmFwcGVyLmV4cGlyZXNBdCkge1xuICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwcGVyLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB1bSBpdGVtIGRvIGxvY2FsU3RvcmFnZS5cbiAgICovXG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgbG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuYnVpbGRLZXkoa2V5KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRvZG9zIG9zIGl0ZW5zIGRvIHVzdcOhcmlvIGF0dWFsLlxuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBsb2NhbFN0b3JhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXNlcm5hbWUgPSB0aGlzLmdldFVzZXJuYW1lKCkgPz8gJ2Fub255bW91cyc7XG4gICAgY29uc3QgcHJlZml4ID0gYCR7U1RPUkFHRV9QUkVGSVh9OiR7dXNlcm5hbWV9OmA7XG5cbiAgICBjb25zdCBrZXlzVG9SZW1vdmU6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICBpZiAoa2V5Py5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAga2V5c1RvUmVtb3ZlLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBrZXlzVG9SZW1vdmUuZm9yRWFjaCgoa2V5KSA9PiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSB1bSBpdGVtIGV4aXN0ZSAoZSBuw6NvIGVzdMOhIGV4cGlyYWRvLCBzZSB0aXZlciBUVEwpLlxuICAgKi9cbiAgaGFzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KGtleSkgIT09IG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of @senior-gestao-relacionamento/angular-components
3
+ */
4
+ export { AngularComponentsModule } from './lib/angular-components.module';
5
+ // Services
6
+ export { StorageService } from './lib/services/storage/storage.service';
7
+ export { CurrentCollaboratorService } from './lib/services/current-collaborator/current-collaborator.service';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLFdBQVc7QUFDWCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBzZW5pb3ItZ2VzdGFvLXJlbGFjaW9uYW1lbnRvL2FuZ3VsYXItY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi9saWIvYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZSc7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEN1cnJlbnRDb2xsYWJvcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvY3VycmVudC1jb2xsYWJvcmF0b3IvY3VycmVudC1jb2xsYWJvcmF0b3Iuc2VydmljZSc7XG5cbi8vIE1vZGVsc1xuZXhwb3J0IHR5cGUge1xuICBDb2xsYWJvcmF0b3IsXG4gIENvbGxhYm9yYXRvckxlYWRlcixcbiAgQ29sbGFib3JhdG9yQnJhbmNoLFxuICBCcmFuY2gsXG4gIENvbXBhbnksXG4gIEpvYlRpdGxlXG59IGZyb20gJy4vbGliL3NlcnZpY2VzL2N1cnJlbnQtY29sbGFib3JhdG9yL21vZGVscy9jb2xsYWJvcmF0b3IubW9kZWwnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yLWdlc3Rhby1yZWxhY2lvbmFtZW50by1hbmd1bGFyLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL3Nlbmlvci1nZXN0YW8tcmVsYWNpb25hbWVudG8tYW5ndWxhci1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,228 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, Injectable } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { BehaviorSubject, of, tap } from 'rxjs';
5
+ import * as i1 from '@angular/common/http';
6
+
7
+ /**
8
+ * Módulo principal da biblioteca @senior-gestao-relacionamento/angular-components
9
+ */
10
+ class AngularComponentsModule {
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, imports: [CommonModule] });
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, imports: [CommonModule] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularComponentsModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [],
19
+ imports: [
20
+ CommonModule
21
+ ],
22
+ exports: []
23
+ }]
24
+ }] });
25
+
26
+ const TOKEN_COOKIE_NAME = 'com.senior.token';
27
+ const STORAGE_PREFIX = 'crm';
28
+ class StorageService {
29
+ /**
30
+ * Retorna o username do usuário logado a partir do cookie com.senior.token.
31
+ */
32
+ getUsername() {
33
+ if (typeof document === 'undefined') {
34
+ return null;
35
+ }
36
+ const nameEQ = TOKEN_COOKIE_NAME + '=';
37
+ const cookies = document.cookie.split(';');
38
+ for (const cookie of cookies) {
39
+ const trimmed = cookie.trim();
40
+ if (trimmed.startsWith(nameEQ)) {
41
+ try {
42
+ const value = decodeURIComponent(trimmed.substring(nameEQ.length));
43
+ const token = JSON.parse(value);
44
+ return token?.username ?? null;
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ }
51
+ return null;
52
+ }
53
+ /**
54
+ * Monta a key completa com prefixo e username.
55
+ * Formato: crm:{username}:{key}
56
+ */
57
+ buildKey(key) {
58
+ const username = this.getUsername() ?? 'anonymous';
59
+ return `${STORAGE_PREFIX}:${username}:${key}`;
60
+ }
61
+ /**
62
+ * Salva um valor no localStorage.
63
+ * Aceita qualquer tipo serializável.
64
+ */
65
+ set(key, value) {
66
+ if (typeof localStorage === 'undefined') {
67
+ return;
68
+ }
69
+ localStorage.setItem(this.buildKey(key), JSON.stringify(value));
70
+ }
71
+ /**
72
+ * Recupera um valor do localStorage.
73
+ * Retorna null se não existir ou falhar o parse.
74
+ */
75
+ get(key) {
76
+ if (typeof localStorage === 'undefined') {
77
+ return null;
78
+ }
79
+ try {
80
+ const data = localStorage.getItem(this.buildKey(key));
81
+ return data ? JSON.parse(data) : null;
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ }
87
+ /**
88
+ * Salva um valor com TTL (tempo de expiração em minutos).
89
+ */
90
+ setWithTTL(key, value, ttlMinutes) {
91
+ const wrapper = {
92
+ value,
93
+ expiresAt: Date.now() + ttlMinutes * 60 * 1000
94
+ };
95
+ this.set(key, wrapper);
96
+ }
97
+ /**
98
+ * Recupera um valor com TTL. Retorna null se expirado.
99
+ */
100
+ getWithTTL(key) {
101
+ const wrapper = this.get(key);
102
+ if (!wrapper) {
103
+ return null;
104
+ }
105
+ if (Date.now() > wrapper.expiresAt) {
106
+ this.remove(key);
107
+ return null;
108
+ }
109
+ return wrapper.value;
110
+ }
111
+ /**
112
+ * Remove um item do localStorage.
113
+ */
114
+ remove(key) {
115
+ if (typeof localStorage === 'undefined') {
116
+ return;
117
+ }
118
+ localStorage.removeItem(this.buildKey(key));
119
+ }
120
+ /**
121
+ * Remove todos os itens do usuário atual.
122
+ */
123
+ clear() {
124
+ if (typeof localStorage === 'undefined') {
125
+ return;
126
+ }
127
+ const username = this.getUsername() ?? 'anonymous';
128
+ const prefix = `${STORAGE_PREFIX}:${username}:`;
129
+ const keysToRemove = [];
130
+ for (let i = 0; i < localStorage.length; i++) {
131
+ const key = localStorage.key(i);
132
+ if (key?.startsWith(prefix)) {
133
+ keysToRemove.push(key);
134
+ }
135
+ }
136
+ keysToRemove.forEach((key) => localStorage.removeItem(key));
137
+ }
138
+ /**
139
+ * Verifica se um item existe (e não está expirado, se tiver TTL).
140
+ */
141
+ has(key) {
142
+ return this.get(key) !== null;
143
+ }
144
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
145
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StorageService, providedIn: 'root' });
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StorageService, decorators: [{
148
+ type: Injectable,
149
+ args: [{
150
+ providedIn: 'root'
151
+ }]
152
+ }] });
153
+
154
+ const CACHE_KEY = 'currentCollaborator';
155
+ const CACHE_TTL_MINUTES = 30;
156
+ class CurrentCollaboratorService {
157
+ http;
158
+ storage;
159
+ API_PATH = '/crmx/collaborator/queries/getCurrentCollaborator';
160
+ collaboratorSubject = new BehaviorSubject(null);
161
+ collaborator$ = this.collaboratorSubject.asObservable();
162
+ constructor(http, storage) {
163
+ this.http = http;
164
+ this.storage = storage;
165
+ const cached = this.storage.getWithTTL(CACHE_KEY);
166
+ if (cached) {
167
+ this.collaboratorSubject.next(cached);
168
+ }
169
+ }
170
+ /**
171
+ * Busca o colaborador atual. Retorna do cache se disponível,
172
+ * caso contrário consulta a API.
173
+ */
174
+ load() {
175
+ const cached = this.storage.getWithTTL(CACHE_KEY);
176
+ if (cached) {
177
+ this.collaboratorSubject.next(cached);
178
+ return of(cached);
179
+ }
180
+ return this.http.get(this.API_PATH).pipe(tap((collaborator) => {
181
+ this.storage.setWithTTL(CACHE_KEY, collaborator, CACHE_TTL_MINUTES);
182
+ this.collaboratorSubject.next(collaborator);
183
+ }));
184
+ }
185
+ /**
186
+ * Força a atualização do cache consultando a API.
187
+ */
188
+ refresh() {
189
+ this.storage.remove(CACHE_KEY);
190
+ this.collaboratorSubject.next(null);
191
+ return this.http.get(this.API_PATH).pipe(tap((collaborator) => {
192
+ this.storage.setWithTTL(CACHE_KEY, collaborator, CACHE_TTL_MINUTES);
193
+ this.collaboratorSubject.next(collaborator);
194
+ }));
195
+ }
196
+ /**
197
+ * Retorna o colaborador atual do cache (sem request).
198
+ */
199
+ get() {
200
+ return this.collaboratorSubject.value;
201
+ }
202
+ /**
203
+ * Limpa o cache do colaborador.
204
+ */
205
+ clearCache() {
206
+ this.storage.remove(CACHE_KEY);
207
+ this.collaboratorSubject.next(null);
208
+ }
209
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentCollaboratorService, deps: [{ token: i1.HttpClient }, { token: StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
210
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentCollaboratorService, providedIn: 'root' });
211
+ }
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrentCollaboratorService, decorators: [{
213
+ type: Injectable,
214
+ args: [{
215
+ providedIn: 'root'
216
+ }]
217
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: StorageService }] });
218
+
219
+ /*
220
+ * Public API Surface of @senior-gestao-relacionamento/angular-components
221
+ */
222
+
223
+ /**
224
+ * Generated bundle index. Do not edit.
225
+ */
226
+
227
+ export { AngularComponentsModule, CurrentCollaboratorService, StorageService };
228
+ //# sourceMappingURL=senior-gestao-relacionamento-angular-components.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"senior-gestao-relacionamento-angular-components.mjs","sources":["../../projects/angular-components/src/lib/angular-components.module.ts","../../projects/angular-components/src/lib/services/storage/storage.service.ts","../../projects/angular-components/src/lib/services/current-collaborator/current-collaborator.service.ts","../../projects/angular-components/src/public-api.ts","../../projects/angular-components/src/senior-gestao-relacionamento-angular-components.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Módulo principal da biblioteca @senior-gestao-relacionamento/angular-components\n */\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ],\n exports: []\n})\nexport class AngularComponentsModule { }\n","import { Injectable } from '@angular/core';\n\nconst TOKEN_COOKIE_NAME = 'com.senior.token';\nconst STORAGE_PREFIX = 'crm';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n\n /**\n * Retorna o username do usuário logado a partir do cookie com.senior.token.\n */\n private getUsername(): string | null {\n if (typeof document === 'undefined') {\n return null;\n }\n\n const nameEQ = TOKEN_COOKIE_NAME + '=';\n const cookies = document.cookie.split(';');\n\n for (const cookie of cookies) {\n const trimmed = cookie.trim();\n if (trimmed.startsWith(nameEQ)) {\n try {\n const value = decodeURIComponent(trimmed.substring(nameEQ.length));\n const token = JSON.parse(value);\n return token?.username ?? null;\n } catch {\n return null;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Monta a key completa com prefixo e username.\n * Formato: crm:{username}:{key}\n */\n private buildKey(key: string): string {\n const username = this.getUsername() ?? 'anonymous';\n return `${STORAGE_PREFIX}:${username}:${key}`;\n }\n\n /**\n * Salva um valor no localStorage.\n * Aceita qualquer tipo serializável.\n */\n set<T>(key: string, value: T): void {\n if (typeof localStorage === 'undefined') {\n return;\n }\n\n localStorage.setItem(this.buildKey(key), JSON.stringify(value));\n }\n\n /**\n * Recupera um valor do localStorage.\n * Retorna null se não existir ou falhar o parse.\n */\n get<T>(key: string): T | null {\n if (typeof localStorage === 'undefined') {\n return null;\n }\n\n try {\n const data = localStorage.getItem(this.buildKey(key));\n return data ? JSON.parse(data) as T : null;\n } catch {\n return null;\n }\n }\n\n /**\n * Salva um valor com TTL (tempo de expiração em minutos).\n */\n setWithTTL<T>(key: string, value: T, ttlMinutes: number): void {\n const wrapper = {\n value,\n expiresAt: Date.now() + ttlMinutes * 60 * 1000\n };\n this.set(key, wrapper);\n }\n\n /**\n * Recupera um valor com TTL. Retorna null se expirado.\n */\n getWithTTL<T>(key: string): T | null {\n const wrapper = this.get<{ value: T; expiresAt: number }>(key);\n\n if (!wrapper) {\n return null;\n }\n\n if (Date.now() > wrapper.expiresAt) {\n this.remove(key);\n return null;\n }\n\n return wrapper.value;\n }\n\n /**\n * Remove um item do localStorage.\n */\n remove(key: string): void {\n if (typeof localStorage === 'undefined') {\n return;\n }\n\n localStorage.removeItem(this.buildKey(key));\n }\n\n /**\n * Remove todos os itens do usuário atual.\n */\n clear(): void {\n if (typeof localStorage === 'undefined') {\n return;\n }\n\n const username = this.getUsername() ?? 'anonymous';\n const prefix = `${STORAGE_PREFIX}:${username}:`;\n\n const keysToRemove: string[] = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n\n keysToRemove.forEach((key) => localStorage.removeItem(key));\n }\n\n /**\n * Verifica se um item existe (e não está expirado, se tiver TTL).\n */\n has(key: string): boolean {\n return this.get(key) !== null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable, of, tap } from 'rxjs';\nimport { Collaborator } from './models/collaborator.model';\nimport { StorageService } from '../storage/storage.service';\n\nconst CACHE_KEY = 'currentCollaborator';\nconst CACHE_TTL_MINUTES = 30;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrentCollaboratorService {\n private readonly API_PATH = '/crmx/collaborator/queries/getCurrentCollaborator';\n\n private readonly collaboratorSubject = new BehaviorSubject<Collaborator | null>(null);\n public readonly collaborator$ = this.collaboratorSubject.asObservable();\n\n constructor(\n private readonly http: HttpClient,\n private readonly storage: StorageService\n ) {\n const cached = this.storage.getWithTTL<Collaborator>(CACHE_KEY);\n if (cached) {\n this.collaboratorSubject.next(cached);\n }\n }\n\n /**\n * Busca o colaborador atual. Retorna do cache se disponível,\n * caso contrário consulta a API.\n */\n load(): Observable<Collaborator> {\n const cached = this.storage.getWithTTL<Collaborator>(CACHE_KEY);\n\n if (cached) {\n this.collaboratorSubject.next(cached);\n return of(cached);\n }\n\n return this.http.get<Collaborator>(this.API_PATH).pipe(\n tap((collaborator) => {\n this.storage.setWithTTL(CACHE_KEY, collaborator, CACHE_TTL_MINUTES);\n this.collaboratorSubject.next(collaborator);\n })\n );\n }\n\n /**\n * Força a atualização do cache consultando a API.\n */\n refresh(): Observable<Collaborator> {\n this.storage.remove(CACHE_KEY);\n this.collaboratorSubject.next(null);\n\n return this.http.get<Collaborator>(this.API_PATH).pipe(\n tap((collaborator) => {\n this.storage.setWithTTL(CACHE_KEY, collaborator, CACHE_TTL_MINUTES);\n this.collaboratorSubject.next(collaborator);\n })\n );\n }\n\n /**\n * Retorna o colaborador atual do cache (sem request).\n */\n get(): Collaborator | null {\n return this.collaboratorSubject.value;\n }\n\n /**\n * Limpa o cache do colaborador.\n */\n clearCache(): void {\n this.storage.remove(CACHE_KEY);\n this.collaboratorSubject.next(null);\n }\n}\n","/*\n * Public API Surface of @senior-gestao-relacionamento/angular-components\n */\n\nexport { AngularComponentsModule } from './lib/angular-components.module';\n\n// Services\nexport { StorageService } from './lib/services/storage/storage.service';\nexport { CurrentCollaboratorService } from './lib/services/current-collaborator/current-collaborator.service';\n\n// Models\nexport type {\n Collaborator,\n CollaboratorLeader,\n CollaboratorBranch,\n Branch,\n Company,\n JobTitle\n} from './lib/services/current-collaborator/models/collaborator.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StorageService"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@senior-gestao-relacionamento/angular-components" />
5
+ export * from './public-api';
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ /**
4
+ * Módulo principal da biblioteca @senior-gestao-relacionamento/angular-components
5
+ */
6
+ export declare class AngularComponentsModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularComponentsModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularComponentsModule, never, [typeof i1.CommonModule], never>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularComponentsModule>;
10
+ }
@@ -0,0 +1,32 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import { Collaborator } from './models/collaborator.model';
4
+ import { StorageService } from '../storage/storage.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare class CurrentCollaboratorService {
7
+ private readonly http;
8
+ private readonly storage;
9
+ private readonly API_PATH;
10
+ private readonly collaboratorSubject;
11
+ readonly collaborator$: Observable<Collaborator | null>;
12
+ constructor(http: HttpClient, storage: StorageService);
13
+ /**
14
+ * Busca o colaborador atual. Retorna do cache se disponível,
15
+ * caso contrário consulta a API.
16
+ */
17
+ load(): Observable<Collaborator>;
18
+ /**
19
+ * Força a atualização do cache consultando a API.
20
+ */
21
+ refresh(): Observable<Collaborator>;
22
+ /**
23
+ * Retorna o colaborador atual do cache (sem request).
24
+ */
25
+ get(): Collaborator | null;
26
+ /**
27
+ * Limpa o cache do colaborador.
28
+ */
29
+ clearCache(): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<CurrentCollaboratorService, never>;
31
+ static ɵprov: i0.ɵɵInjectableDeclaration<CurrentCollaboratorService>;
32
+ }
@@ -0,0 +1,53 @@
1
+ export interface JobTitle {
2
+ id: string;
3
+ name: string;
4
+ createdBy: string;
5
+ createdAt: string;
6
+ changedBy: string;
7
+ changedAt: string;
8
+ }
9
+ export interface Company {
10
+ id: string;
11
+ code: number;
12
+ name: string;
13
+ status: string;
14
+ createdBy: string;
15
+ createdAt: string;
16
+ changedBy: string;
17
+ changedAt: string;
18
+ }
19
+ export interface Branch {
20
+ id: string;
21
+ company: Company;
22
+ code: number;
23
+ name: string;
24
+ status: string;
25
+ createdBy: string;
26
+ createdAt: string;
27
+ changedBy: string;
28
+ changedAt: string;
29
+ }
30
+ export interface CollaboratorBranch {
31
+ branch: Branch;
32
+ main: boolean;
33
+ }
34
+ export interface CollaboratorLeader {
35
+ id: string;
36
+ name: string;
37
+ email: string;
38
+ photo: string;
39
+ consolidatedLevel: string;
40
+ leader: CollaboratorLeader | null;
41
+ }
42
+ export interface Collaborator {
43
+ id: string;
44
+ name: string;
45
+ email: string;
46
+ photo: string;
47
+ active: boolean;
48
+ visible: boolean;
49
+ jobTitle: JobTitle;
50
+ consolidatedLevel: string;
51
+ leader: CollaboratorLeader;
52
+ branches: CollaboratorBranch[];
53
+ }