@senior-gestao-relacionamento/angular-components 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/bundles/senior-gestao-relacionamento-angular-components.umd.js +903 -158
  2. package/bundles/senior-gestao-relacionamento-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js.map +1 -1
  5. package/components/index.d.ts +2 -0
  6. package/components/refresh-websocket-alert/index.d.ts +2 -0
  7. package/components/refresh-websocket-alert/refresh-websocket-alert.component.d.ts +14 -0
  8. package/components/refresh-websocket-alert/refresh-websocket-alert.module.d.ts +2 -0
  9. package/components/reports/enums/format-enum.d.ts +9 -0
  10. package/components/reports/enums/index.d.ts +2 -0
  11. package/components/reports/enums/view-mode-enum.d.ts +4 -0
  12. package/components/reports/index.d.ts +5 -0
  13. package/components/reports/models/callback-event.d.ts +4 -0
  14. package/components/reports/models/generate-report-input-dto.d.ts +11 -0
  15. package/components/reports/models/generate-report-output-dto.d.ts +3 -0
  16. package/components/reports/models/index.d.ts +7 -0
  17. package/components/reports/models/parameter.d.ts +4 -0
  18. package/components/reports/models/report-dto.d.ts +6 -0
  19. package/components/reports/models/reports-options.d.ts +14 -0
  20. package/components/reports/models/response-list-report-dto.d.ts +8 -0
  21. package/components/reports/reports.component.d.ts +41 -0
  22. package/components/reports/reports.module.d.ts +2 -0
  23. package/components/reports/reports.service.d.ts +16 -0
  24. package/esm2015/components/index.js +3 -0
  25. package/esm2015/components/refresh-websocket-alert/index.js +3 -0
  26. package/esm2015/components/refresh-websocket-alert/refresh-websocket-alert.component.js +57 -0
  27. package/esm2015/components/refresh-websocket-alert/refresh-websocket-alert.module.js +26 -0
  28. package/esm2015/components/reports/enums/format-enum.js +11 -0
  29. package/esm2015/components/reports/enums/index.js +3 -0
  30. package/esm2015/components/reports/enums/view-mode-enum.js +6 -0
  31. package/esm2015/components/reports/index.js +5 -0
  32. package/esm2015/components/reports/models/callback-event.js +1 -0
  33. package/esm2015/components/reports/models/generate-report-input-dto.js +1 -0
  34. package/esm2015/components/reports/models/generate-report-output-dto.js +1 -0
  35. package/esm2015/components/reports/models/index.js +1 -0
  36. package/esm2015/components/reports/models/parameter.js +1 -0
  37. package/esm2015/components/reports/models/report-dto.js +1 -0
  38. package/esm2015/components/reports/models/reports-options.js +1 -0
  39. package/esm2015/components/reports/models/response-list-report-dto.js +1 -0
  40. package/esm2015/components/reports/reports.component.js +202 -0
  41. package/esm2015/components/reports/reports.module.js +43 -0
  42. package/esm2015/components/reports/reports.service.js +73 -0
  43. package/esm2015/locale/fallback.js +16 -0
  44. package/esm2015/public-api.js +5 -7
  45. package/esm2015/senior-gestao-relacionamento-angular-components.js +3 -2
  46. package/esm2015/services/current-collaborator/current-collaborator.module.js +4 -2
  47. package/esm2015/services/current-collaborator/current-collaborator.service.js +24 -8
  48. package/esm2015/services/current-collaborator/models/collaborator-dto.js +1 -1
  49. package/esm2015/services/current-collaborator/models/collaborator.js +1 -1
  50. package/esm2015/services/current-collaborator/models/e-070-fil-crmx-dto.js +1 -1
  51. package/esm2015/services/current-collaborator/models/e-070-fil-crmx.js +1 -1
  52. package/esm2015/services/index.js +7 -0
  53. package/esm2015/services/schedule-form-rules/enums/index.js +6 -0
  54. package/esm2015/services/schedule-form-rules/enums/month-enum.js +16 -0
  55. package/esm2015/services/schedule-form-rules/enums/ordinal-week-day-enum.js +9 -0
  56. package/esm2015/services/schedule-form-rules/enums/recurrence-enum.js +8 -0
  57. package/esm2015/services/schedule-form-rules/enums/repeat-when-enum.js +6 -0
  58. package/esm2015/services/schedule-form-rules/enums/week-day-enum.js +11 -0
  59. package/esm2015/services/schedule-form-rules/index.js +4 -0
  60. package/esm2015/services/schedule-form-rules/schedule-form-rules.module.js +15 -0
  61. package/esm2015/services/schedule-form-rules/schedule-form-rules.service.js +105 -0
  62. package/esm2015/services/standard-filters/index.js +3 -3
  63. package/esm2015/services/standard-filters/{standard filters.module.js → standard-filters.module.js} +2 -2
  64. package/esm2015/services/standard-filters/{standard filters.service.js → standard-filters.service.js} +1 -1
  65. package/esm2015/services/storage/storage.module.js +17 -0
  66. package/esm2015/services/storage/storage.service.js +39 -27
  67. package/esm2015/services/websocket/index.js +3 -1
  68. package/esm2015/services/websocket/models/event-dto.js +1 -0
  69. package/esm2015/services/websocket/models/event.js +13 -0
  70. package/esm2015/services/websocket/models/index.js +3 -0
  71. package/esm2015/services/websocket/models/topic-dto.js +1 -0
  72. package/esm2015/services/websocket/models/topic.js +25 -0
  73. package/esm2015/services/websocket/websocket.module.js +18 -0
  74. package/esm2015/services/websocket/websocket.service.js +103 -51
  75. package/esm2015/utils/index.js +3 -0
  76. package/esm2015/utils/string-converter.service.js +7 -0
  77. package/esm2015/utils/value-changes.service.js +7 -0
  78. package/esm5/components/index.js +3 -0
  79. package/esm5/components/refresh-websocket-alert/index.js +3 -0
  80. package/esm5/components/refresh-websocket-alert/refresh-websocket-alert.component.js +59 -0
  81. package/esm5/components/refresh-websocket-alert/refresh-websocket-alert.module.js +29 -0
  82. package/esm5/components/reports/enums/format-enum.js +11 -0
  83. package/esm5/components/reports/enums/index.js +3 -0
  84. package/esm5/components/reports/enums/view-mode-enum.js +6 -0
  85. package/esm5/components/reports/index.js +5 -0
  86. package/esm5/components/reports/models/callback-event.js +1 -0
  87. package/esm5/components/reports/models/generate-report-input-dto.js +1 -0
  88. package/esm5/components/reports/models/generate-report-output-dto.js +1 -0
  89. package/esm5/components/reports/models/index.js +1 -0
  90. package/esm5/components/reports/models/parameter.js +1 -0
  91. package/esm5/components/reports/models/report-dto.js +1 -0
  92. package/esm5/components/reports/models/reports-options.js +1 -0
  93. package/esm5/components/reports/models/response-list-report-dto.js +1 -0
  94. package/esm5/components/reports/reports.component.js +208 -0
  95. package/esm5/components/reports/reports.module.js +46 -0
  96. package/esm5/components/reports/reports.service.js +75 -0
  97. package/esm5/locale/fallback.js +16 -0
  98. package/esm5/public-api.js +5 -7
  99. package/esm5/senior-gestao-relacionamento-angular-components.js +3 -2
  100. package/esm5/services/current-collaborator/current-collaborator.module.js +4 -2
  101. package/esm5/services/current-collaborator/current-collaborator.service.js +26 -9
  102. package/esm5/services/current-collaborator/models/collaborator-dto.js +1 -1
  103. package/esm5/services/current-collaborator/models/collaborator.js +1 -1
  104. package/esm5/services/current-collaborator/models/e-070-fil-crmx-dto.js +1 -1
  105. package/esm5/services/current-collaborator/models/e-070-fil-crmx.js +1 -1
  106. package/esm5/services/index.js +7 -0
  107. package/esm5/services/schedule-form-rules/enums/index.js +6 -0
  108. package/esm5/services/schedule-form-rules/enums/month-enum.js +16 -0
  109. package/esm5/services/schedule-form-rules/enums/ordinal-week-day-enum.js +9 -0
  110. package/esm5/services/schedule-form-rules/enums/recurrence-enum.js +8 -0
  111. package/esm5/services/schedule-form-rules/enums/repeat-when-enum.js +6 -0
  112. package/esm5/services/schedule-form-rules/enums/week-day-enum.js +11 -0
  113. package/esm5/services/schedule-form-rules/index.js +4 -0
  114. package/esm5/services/schedule-form-rules/schedule-form-rules.module.js +18 -0
  115. package/esm5/services/schedule-form-rules/schedule-form-rules.service.js +109 -0
  116. package/esm5/services/standard-filters/index.js +3 -3
  117. package/esm5/services/standard-filters/{standard filters.module.js → standard-filters.module.js} +2 -2
  118. package/esm5/services/standard-filters/{standard filters.service.js → standard-filters.service.js} +1 -1
  119. package/esm5/services/storage/storage.module.js +20 -0
  120. package/esm5/services/storage/storage.service.js +35 -26
  121. package/esm5/services/websocket/index.js +3 -1
  122. package/esm5/services/websocket/models/event-dto.js +1 -0
  123. package/esm5/services/websocket/models/event.js +20 -0
  124. package/esm5/services/websocket/models/index.js +3 -0
  125. package/esm5/services/websocket/models/topic-dto.js +1 -0
  126. package/esm5/services/websocket/models/topic.js +29 -0
  127. package/esm5/services/websocket/websocket.module.js +21 -0
  128. package/esm5/services/websocket/websocket.service.js +107 -51
  129. package/esm5/utils/index.js +3 -0
  130. package/esm5/utils/string-converter.service.js +11 -0
  131. package/esm5/utils/value-changes.service.js +11 -0
  132. package/fesm2015/senior-gestao-relacionamento-angular-components.js +848 -148
  133. package/fesm2015/senior-gestao-relacionamento-angular-components.js.map +1 -1
  134. package/fesm5/senior-gestao-relacionamento-angular-components.js +902 -159
  135. package/fesm5/senior-gestao-relacionamento-angular-components.js.map +1 -1
  136. package/locale/fallback.d.ts +1 -0
  137. package/package.json +45 -43
  138. package/public-api.d.ts +4 -6
  139. package/senior-gestao-relacionamento-angular-components.d.ts +2 -1
  140. package/senior-gestao-relacionamento-angular-components.metadata.json +1 -1
  141. package/services/current-collaborator/current-collaborator.service.d.ts +5 -2
  142. package/services/current-collaborator/models/collaborator-dto.d.ts +1 -0
  143. package/services/current-collaborator/models/collaborator.d.ts +1 -0
  144. package/services/current-collaborator/models/e-070-fil-crmx-dto.d.ts +1 -0
  145. package/services/current-collaborator/models/e-070-fil-crmx.d.ts +1 -0
  146. package/services/index.d.ts +6 -0
  147. package/services/schedule-form-rules/enums/index.d.ts +5 -0
  148. package/services/schedule-form-rules/enums/month-enum.d.ts +14 -0
  149. package/services/schedule-form-rules/enums/ordinal-week-day-enum.d.ts +7 -0
  150. package/services/schedule-form-rules/enums/recurrence-enum.d.ts +6 -0
  151. package/services/schedule-form-rules/enums/repeat-when-enum.d.ts +4 -0
  152. package/services/schedule-form-rules/enums/week-day-enum.d.ts +9 -0
  153. package/services/schedule-form-rules/index.d.ts +3 -0
  154. package/services/schedule-form-rules/schedule-form-rules.module.d.ts +2 -0
  155. package/services/schedule-form-rules/schedule-form-rules.service.d.ts +12 -0
  156. package/services/standard-filters/index.d.ts +2 -2
  157. package/services/storage/storage.module.d.ts +2 -0
  158. package/services/storage/storage.service.d.ts +15 -12
  159. package/services/websocket/index.d.ts +2 -0
  160. package/services/websocket/models/event-dto.d.ts +5 -0
  161. package/services/websocket/models/event.d.ts +8 -0
  162. package/services/websocket/models/index.d.ts +4 -0
  163. package/services/websocket/{primitive-event-dto.d.ts → models/topic-dto.d.ts} +1 -1
  164. package/services/websocket/models/topic.d.ts +10 -0
  165. package/services/websocket/websocket.module.d.ts +2 -0
  166. package/services/websocket/websocket.service.d.ts +20 -12
  167. package/{services/utils → utils}/index.d.ts +1 -0
  168. package/utils/value-changes.service.d.ts +4 -0
  169. package/esm2015/services/utils/index.js +0 -2
  170. package/esm2015/services/utils/string-converter.service.js +0 -7
  171. package/esm2015/services/websocket/primitive-event-dto.js +0 -1
  172. package/esm2015/services/websocket/send-event-dto.js +0 -1
  173. package/esm5/services/utils/index.js +0 -2
  174. package/esm5/services/utils/string-converter.service.js +0 -11
  175. package/esm5/services/websocket/primitive-event-dto.js +0 -1
  176. package/esm5/services/websocket/send-event-dto.js +0 -1
  177. package/services/websocket/send-event-dto.d.ts +0 -5
  178. /package/services/standard-filters/{standard filters.module.d.ts → standard-filters.module.d.ts} +0 -0
  179. /package/services/standard-filters/{standard filters.service.d.ts → standard-filters.service.d.ts} +0 -0
  180. /package/{services/utils → utils}/string-converter.service.d.ts +0 -0
@@ -1,188 +1,428 @@
1
- import { get } from 'js-cookie';
2
- import { __decorate, __assign } from 'tslib';
3
- import { ɵɵdefineInjectable, Injectable, NgModule } from '@angular/core';
4
- import { Subject, Observable } from 'rxjs';
1
+ import { __decorate, __assign, __extends } from 'tslib';
2
+ import { Injectable, EventEmitter, Input, Output, Component, NgModule, ɵɵdefineInjectable, ɵɵinject } from '@angular/core';
3
+ import { FormControl, FormGroup, Validators, FormBuilder, FormsModule } from '@angular/forms';
4
+ import { FormField, FieldType, LocaleModule, ButtonModule, DynamicFormModule, SidebarModule, LoadingStateModule } from '@seniorsistemas/angular-components';
5
+ import { TranslateService, TranslateModule } from '@ngx-translate/core';
6
+ import { throwError, BehaviorSubject, Observable, Subject } from 'rxjs';
7
+ import { HttpParams, HttpClient, HttpClientModule } from '@angular/common/http';
8
+ import { map, catchError, takeUntil, concatMap, distinctUntilChanged } from 'rxjs/operators';
9
+ import { MessageService } from 'primeng/api';
10
+ import { RouterModule, Router } from '@angular/router';
11
+ import { CommonModule } from '@angular/common';
12
+ import { SelectButtonModule } from 'primeng/selectbutton';
13
+ import { DialogModule } from 'primeng/dialog';
14
+ import { PanelModule } from 'primeng/panel';
15
+ import { ToastModule } from 'primeng/toast';
16
+ import { CookieService } from 'ngx-cookie-service';
5
17
  import { Stomp } from '@stomp/stompjs';
6
18
  import * as SockJS from 'sockjs-client';
7
- import { HttpClient, HttpClientModule } from '@angular/common/http';
8
- import { takeUntil, catchError } from 'rxjs/operators';
9
19
 
10
- var StorageService = /** @class */ (function () {
11
- function StorageService() {
20
+ var FormatEnum;
21
+ (function (FormatEnum) {
22
+ FormatEnum["PDF"] = "Pdf";
23
+ FormatEnum["CSV"] = "Csv";
24
+ FormatEnum["HTML"] = "Html";
25
+ FormatEnum["XLSX"] = "Xlsx";
26
+ FormatEnum["XML"] = "Xml";
27
+ FormatEnum["ODT"] = "Odt";
28
+ FormatEnum["RTF"] = "Rtf";
29
+ })(FormatEnum || (FormatEnum = {}));
30
+
31
+ var ViewModeEnum;
32
+ (function (ViewModeEnum) {
33
+ ViewModeEnum["SIDEBAR"] = "sidebar";
34
+ ViewModeEnum["DIALOG"] = "dialog";
35
+ })(ViewModeEnum || (ViewModeEnum = {}));
36
+
37
+ var ReportsService = /** @class */ (function () {
38
+ function ReportsService(_httpClient, _translate, _messageService) {
39
+ this._httpClient = _httpClient;
40
+ this._translate = _translate;
41
+ this._messageService = _messageService;
42
+ this.queriesPlatformReportUrl = "platform/report/queries";
43
+ this.actionsCrmxReportUrl = "crmx/report/actions";
12
44
  }
13
- StorageService.getUser = function () {
14
- return JSON.parse(localStorage.getItem('SENIOR_USER_INFO')).data;
45
+ ReportsService.prototype.listReports = function (tag, ids) {
46
+ var params = new HttpParams();
47
+ params = params.append('searchValue', tag);
48
+ return this._httpClient.get(this.queriesPlatformReportUrl + "/listReports", { params: params }).pipe(map(function (response) { return response.reports.filter(function (report) { return ids ? ids.includes(report.id) : true; }); }), this.defaultCatch());
15
49
  };
16
- StorageService.getUserId = function () {
17
- return StorageService.getUser().id;
50
+ ReportsService.prototype.getSharedReport = function (tag) {
51
+ var params = new HttpParams();
52
+ params = params.append('searchValue', tag);
53
+ return this._httpClient.get(this.queriesPlatformReportUrl + "/listSharedReports", { params: params }).pipe(map(function (response) {
54
+ return response.reports.filter(function (report) { return report.enabled; });
55
+ }), this.defaultCatch());
18
56
  };
19
- StorageService.store = function (key, value) {
20
- var userId = StorageService.getUserId();
21
- localStorage.setItem(userId + "_" + key, JSON.stringify(value));
57
+ ReportsService.prototype.generateReport = function (inputDto) {
58
+ return this._httpClient.post(this.actionsCrmxReportUrl + "/generateReport", inputDto).pipe(this.defaultCatch());
22
59
  };
23
- StorageService.get = function (key) {
24
- var userId = StorageService.getUserId();
25
- var value = localStorage.getItem(userId + "_" + key);
26
- if (value) {
27
- return JSON.parse(value);
28
- }
29
- return null;
60
+ ReportsService.prototype.defaultCatch = function () {
61
+ var _this = this;
62
+ return catchError(function (err) {
63
+ if (err) {
64
+ var summary = err.status ? String(err.status) : 'Error';
65
+ var detail = void 0;
66
+ if (err.error && err.error.message) {
67
+ detail = err.error.message;
68
+ }
69
+ else if (err.statusText) {
70
+ detail = err.statusText;
71
+ }
72
+ else if (err.message) {
73
+ detail = err.message;
74
+ }
75
+ else {
76
+ detail = 'Error';
77
+ }
78
+ var errorUnauthorized = 401;
79
+ if (err.status === errorUnauthorized) {
80
+ summary = _this._translate.instant('crmx.angular_components.error_unauthorized_title');
81
+ detail = _this._translate.instant('crmx.angular_components.error_unauthorized_description');
82
+ }
83
+ _this._messageService.add({
84
+ severity: 'error',
85
+ summary: summary,
86
+ detail: detail,
87
+ sticky: true,
88
+ });
89
+ }
90
+ return throwError(err);
91
+ });
30
92
  };
31
- StorageService.getComSeniorToken = function () {
32
- return JSON.parse(get('com.senior.token'));
93
+ ReportsService.ctorParameters = function () { return [
94
+ { type: HttpClient },
95
+ { type: TranslateService },
96
+ { type: MessageService }
97
+ ]; };
98
+ ReportsService = __decorate([
99
+ Injectable()
100
+ ], ReportsService);
101
+ return ReportsService;
102
+ }());
103
+
104
+ var ReportsComponent = /** @class */ (function () {
105
+ function ReportsComponent(_translate, _formBuilder, _reportsService) {
106
+ this._translate = _translate;
107
+ this._formBuilder = _formBuilder;
108
+ this._reportsService = _reportsService;
109
+ this.formGroups = [];
110
+ this.visibleChange = new EventEmitter();
111
+ this.reportGenerated = new EventEmitter();
112
+ this.reportsObservable = new BehaviorSubject([]);
113
+ this.viewModeEnum = ViewModeEnum;
114
+ this.loading = false;
115
+ this._reports = [];
116
+ this._formatEnum = [];
117
+ }
118
+ ReportsComponent.prototype.ngOnChanges = function (changes) {
119
+ var _this = this;
120
+ if (this.options) {
121
+ this.options.header = this.options.header || this._translate.instant('crmx.angular_components.reports_title');
122
+ this.options.labelConfirmButton = this.options.labelConfirmButton || this._translate.instant('crmx.angular_components.confirm');
123
+ this._formatEnum = Object.keys(FormatEnum)
124
+ .filter(function (key) { return !_this.options.formats || _this.options.formats.includes(FormatEnum[key]); })
125
+ .map(function (key) { return ({ label: key.toUpperCase(), value: FormatEnum[key] }); });
126
+ if (this.visible) {
127
+ this.loading = true;
128
+ this._executeObservable(this._reportsService.listReports(this.options.tenantReport || this.options.sharedReport))
129
+ .subscribe(function (nextAction) {
130
+ if (nextAction) {
131
+ _this._executeObservable(_this._reportsService.getSharedReport(_this.options.sharedReport))
132
+ .subscribe(function (nextAction) {
133
+ _this.loading = false;
134
+ });
135
+ }
136
+ });
137
+ }
138
+ }
33
139
  };
34
- StorageService.getBaseUrl = function () {
35
- return get('com.senior.base.url');
140
+ ReportsComponent.prototype.ngOnInit = function () {
141
+ this.formGroup = this._getFormGroup();
142
+ this.formFields = this._getFormFields();
36
143
  };
37
- StorageService.getTenantDomain = function () {
38
- return StorageService.getComSeniorToken().username.split('@')[1];
144
+ ReportsComponent.prototype.onCancel = function () {
145
+ this.formGroup.reset();
146
+ this.visible = false;
147
+ this.visibleChange.emit(this.visible);
39
148
  };
40
- StorageService.getTenantName = function () {
41
- return StorageService.getComSeniorToken().tenantName;
149
+ ReportsComponent.prototype.onConfirm = function () {
150
+ var _this = this;
151
+ this.loading = true;
152
+ var data = this.formGroup.getRawValue();
153
+ var isValid = true;
154
+ this.formGroups.forEach(function (formGroup) { return isValid = isValid && formGroup.valid; });
155
+ if (!this.formGroup.valid || !isValid) {
156
+ this.loading = false;
157
+ this._validateAllFormFields(this.formGroup);
158
+ this.formGroups.forEach(this._validateAllFormFields);
159
+ }
160
+ else {
161
+ var input = {
162
+ report: {
163
+ id: data.reports.id,
164
+ parameters: this.options.parametersReport,
165
+ format: data.format,
166
+ timeToLive: 1000,
167
+ },
168
+ callbackEvent: this.options.callbackEvent,
169
+ };
170
+ this._reportsService.generateReport(input).subscribe(function (outputDto) {
171
+ _this.reportGenerated.emit(outputDto);
172
+ _this.onCancel();
173
+ }, function () {
174
+ _this.loading = false;
175
+ });
176
+ }
42
177
  };
43
- StorageService.getUsername = function () {
44
- return StorageService.getComSeniorToken().username.split('@')[0];
178
+ ReportsComponent.prototype.getErrorMessages = function () {
179
+ return {
180
+ required: this._translate.instant('crmx.angular_components.error_required'),
181
+ };
45
182
  };
46
- StorageService.getLogin = function () {
47
- return StorageService.getComSeniorToken().username;
183
+ ReportsComponent.prototype.onVisibleChange = function (visible) {
184
+ if (!visible) {
185
+ this.onCancel();
186
+ }
48
187
  };
49
- StorageService.getToken = function () {
50
- return StorageService.getComSeniorToken().access_token;
188
+ ReportsComponent.prototype._executeObservable = function (observable) {
189
+ var _this = this;
190
+ return new Observable(function (observer) {
191
+ observable
192
+ .pipe(catchError(function (err) {
193
+ _this.loading = false;
194
+ return throwError(err);
195
+ }))
196
+ .subscribe(function (reports) {
197
+ _this._reports = reports;
198
+ if (reports.length > 0) {
199
+ _this.loading = false;
200
+ _this._setValuesDefault();
201
+ observer.next(false);
202
+ }
203
+ else {
204
+ observer.next(true);
205
+ }
206
+ }, function () {
207
+ _this.loading = false;
208
+ });
209
+ });
51
210
  };
52
- StorageService.isUserAdmin = function () {
53
- return StorageService.getUsername() === 'admin';
211
+ ReportsComponent.prototype._setValuesDefault = function () {
212
+ var _a;
213
+ this.formGroup.controls.reports.setValue(this._reports[0]);
214
+ this.formGroup.controls.format.setValue((_a = this._formatEnum[0]) === null || _a === void 0 ? void 0 : _a.value);
54
215
  };
55
- return StorageService;
56
- }());
57
-
58
- var StringConverterService = /** @class */ (function () {
59
- function StringConverterService() {
60
- }
61
- StringConverterService.toUnderscore = function (camelCase) {
62
- var regex = /([a-z])([A-Z])/g;
63
- return camelCase.replace(regex, '$1_$2').toLowerCase();
216
+ ReportsComponent.prototype._hasEmpty = function (target) {
217
+ return (Object.keys(target).filter(function (key) { return target[key] === '' || target[key] === undefined; }).length > 0);
64
218
  };
65
- return StringConverterService;
66
- }());
67
-
68
- var FormGroupValidatorsService = /** @class */ (function () {
69
- function FormGroupValidatorsService() {
70
- }
71
- FormGroupValidatorsService.startDataGreaterThanEndDataValidator = function (endDateField, errorMessage) {
72
- var fn = function (control) {
73
- var _a;
74
- if (control.parent) {
75
- var startDate = new Date(control.value);
76
- var endDate = new Date((_a = control.parent.controls[endDateField]) === null || _a === void 0 ? void 0 : _a.value);
77
- if (startDate > endDate) {
78
- var rtn = {};
79
- rtn[errorMessage] = true;
80
- return rtn;
81
- }
219
+ ReportsComponent.prototype._validateAllFormFields = function (formGroup) {
220
+ var _this = this;
221
+ Object.keys(formGroup.controls).forEach(function (field) {
222
+ var control = formGroup.get(field);
223
+ if (control instanceof FormControl) {
224
+ control.markAsDirty({ onlySelf: true });
82
225
  }
83
- return null;
84
- };
85
- return fn;
226
+ else if (control instanceof FormGroup) {
227
+ _this._validateAllFormFields(control);
228
+ }
229
+ });
86
230
  };
87
- FormGroupValidatorsService.endDateLessThanStartDateValidator = function (startDateField, errorMessage) {
88
- var fn = function (control) {
89
- var _a;
90
- if (control.parent) {
91
- var startDate = new Date((_a = control.parent.controls[startDateField]) === null || _a === void 0 ? void 0 : _a.value);
92
- var endDate = new Date(control.value);
93
- if (startDate > endDate) {
94
- var rtn = {};
95
- rtn[errorMessage] = true;
96
- return rtn;
231
+ ReportsComponent.prototype._getFormGroup = function () {
232
+ return this._formBuilder.group({
233
+ reports: [{ value: null, disabled: false }, Validators.compose([Validators.required])],
234
+ format: [{ value: null, disabled: false }, Validators.compose([Validators.required])],
235
+ });
236
+ };
237
+ ReportsComponent.prototype._getFormFields = function () {
238
+ var _this = this;
239
+ return [
240
+ new FormField({
241
+ type: FieldType.Autocomplete,
242
+ name: "reports",
243
+ label: this._translate.instant('crmx.angular_components.report'),
244
+ size: { xl: 12, lg: 12, md: 12, sm: 12 },
245
+ multiple: false,
246
+ dataKey: "id",
247
+ appendTo: "body",
248
+ emptyMessage: "Nenhuma sugestão encontrada",
249
+ displayField: "name",
250
+ required: function () { return true; },
251
+ suggestionsObservable: this.reportsObservable,
252
+ onSearch: function (val) { return _this.reportsObservable.next(_this._reports.filter(function (reportDto) { return reportDto.name.match(new RegExp(val, "ig")); })); },
253
+ footer: {
254
+ help: {
255
+ text: this._translate.instant('crmx.angular_components.reports_help', { tag: this.options.tenantReport }),
256
+ icon: 'fa fa-info-circle'
257
+ }
97
258
  }
98
- }
99
- return null;
100
- };
101
- return fn;
259
+ }),
260
+ new FormField({
261
+ type: FieldType.Enum,
262
+ name: 'format',
263
+ label: this._translate.instant('crmx.angular_components.format'),
264
+ placeholder: this._translate.instant('crmx.angular_components.format_placeholder'),
265
+ size: { xl: 12, lg: 12, md: 12, sm: 12 },
266
+ multiple: false,
267
+ required: function () { return true; },
268
+ options: this._formatEnum,
269
+ }),
270
+ ];
102
271
  };
103
- ;
104
- return FormGroupValidatorsService;
272
+ ReportsComponent.ctorParameters = function () { return [
273
+ { type: TranslateService },
274
+ { type: FormBuilder },
275
+ { type: ReportsService }
276
+ ]; };
277
+ __decorate([
278
+ Input()
279
+ ], ReportsComponent.prototype, "visible", void 0);
280
+ __decorate([
281
+ Input()
282
+ ], ReportsComponent.prototype, "options", void 0);
283
+ __decorate([
284
+ Input()
285
+ ], ReportsComponent.prototype, "formGroups", void 0);
286
+ __decorate([
287
+ Output()
288
+ ], ReportsComponent.prototype, "visibleChange", void 0);
289
+ __decorate([
290
+ Output()
291
+ ], ReportsComponent.prototype, "reportGenerated", void 0);
292
+ ReportsComponent = __decorate([
293
+ Component({
294
+ selector: 'report',
295
+ template: "<div *ngIf=\"options\">\n <ng-container *ngIf=\"options.viewMode === viewModeEnum.SIDEBAR else reportsDialog\" >\n <s-sidebar [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [header]=\"options.header\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <s-footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </s-footer>\n </s-sidebar>\n </ng-container>\n\n <ng-template #reportsDialog>\n <p-dialog\n [(visible)]=\"visible\" (visibleChange)=\"visible = $event\"\n [resizable]=\"false\" [draggable]=\"false\" [modal]=\"true\" [closable]=\"false\"\n >\n <p-header [textContent]=\"options.header\"></p-header>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <p-footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </p-footer>\n </p-dialog>\n </ng-template>\n\n <ng-template #content>\n <div class=\"ui-g\" *sLoadingState=\"loading\">\n <div class=\"ui-g-12\">\n <s-dynamic-form\n [fields]=\"formFields\"\n [form]=\"formGroup\"\n [errorMessages]=\"getErrorMessages()\"\n ></s-dynamic-form>\n </div>\n <div class=\"ui-g-12\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n\n <ng-template #footer>\n <s-button\n tooltip=\"{{'crmx.angular_components.generate' | translate}}\"\n tooltipPosition=\"left\" type=\"submit\" class=\"sds-float-right\"\n priority=\"primary\" [label]=\"options.labelConfirmButton\"\n (onClick)=\"onConfirm()\"\n [disabled]=\"loading\"\n ></s-button>\n <s-button\n tooltip=\"{{'crmx.angular_components.cancel' | translate}}\"\n type=\"button\" class=\"sds-float-left\" priority=\"link\"\n [label]=\"'crmx.angular_components.cancel' | translate\"\n (onClick)=\"onCancel()\"\n [disabled]=\"loading\"\n ></s-button>\n </ng-template>\n</div>\n"
296
+ })
297
+ ], ReportsComponent);
298
+ return ReportsComponent;
105
299
  }());
106
300
 
107
- var DateValidatorsService = /** @class */ (function () {
108
- function DateValidatorsService() {
301
+ var ReportsModule = /** @class */ (function () {
302
+ function ReportsModule() {
109
303
  }
110
- DateValidatorsService.isLastWeekdayOfMonth = function (date) {
111
- var newDate = new Date(date);
112
- var day = 7;
113
- newDate.setDate(date.getDate() + day);
114
- return newDate.getMonth() > date.getMonth() || newDate.getFullYear() > date.getFullYear();
115
- };
116
- return DateValidatorsService;
304
+ ReportsModule = __decorate([
305
+ NgModule({
306
+ imports: [
307
+ LocaleModule.forChild(),
308
+ FormsModule,
309
+ RouterModule,
310
+ CommonModule,
311
+ TranslateModule,
312
+ SelectButtonModule,
313
+ DialogModule,
314
+ ButtonModule,
315
+ DynamicFormModule,
316
+ SidebarModule,
317
+ PanelModule,
318
+ LoadingStateModule,
319
+ ],
320
+ declarations: [
321
+ ReportsComponent,
322
+ ],
323
+ exports: [
324
+ ReportsComponent,
325
+ ],
326
+ providers: [
327
+ ReportsService,
328
+ ]
329
+ })
330
+ ], ReportsModule);
331
+ return ReportsModule;
117
332
  }());
118
333
 
119
- var WebsocketService = /** @class */ (function () {
120
- function WebsocketService() {
121
- this.primitiveEventObservables = [];
122
- var url = StorageService.getBaseUrl().concat('/websocket/subscription');
123
- var socket = new SockJS(url);
124
- this.client = Stomp.over(socket);
334
+ var RefreshWebsocketAlertComponent = /** @class */ (function () {
335
+ function RefreshWebsocketAlertComponent(_messageService, _translateService) {
336
+ this._messageService = _messageService;
337
+ this._translateService = _translateService;
338
+ this.open = false;
339
+ this.closeRefreshSocket = new EventEmitter();
340
+ this.refresh = new EventEmitter();
125
341
  }
126
- WebsocketService.prototype.startConnect = function () {
342
+ RefreshWebsocketAlertComponent.prototype.ngOnInit = function () {
127
343
  var _this = this;
128
- this.client.connect({}, function () { return _this.onConnected(); }, function () { return _this.onConnectError(); });
129
- };
130
- WebsocketService.prototype.onEvent = function (primitiveEvent) {
131
- var domain = primitiveEvent.domain, service = primitiveEvent.service, primitive = primitiveEvent.primitive, allUsers = primitiveEvent.allUsers;
132
- var observable = new Subject();
133
- var primitiveEventWithObservable = {
134
- domain: domain,
135
- service: service,
136
- primitive: primitive,
137
- allUsers: allUsers,
138
- observable: observable,
139
- };
140
- this.primitiveEventObservables.push(primitiveEventWithObservable);
141
- return observable;
142
- };
143
- WebsocketService.prototype.sendEvent = function (params) {
144
- var topic = this.getTopicEvent(params);
145
- this.client.send(topic, params.headers, JSON.stringify({
146
- data: params.message
147
- }));
148
- };
149
- WebsocketService.prototype.onConnected = function () {
150
- var _this = this;
151
- this.primitiveEventObservables.forEach(function (event) {
152
- _this.client.subscribe(_this.getTopicEvent(event), (function (message) {
153
- var body = JSON.parse(message.body);
154
- event.observable.next(body.data);
155
- }));
344
+ this.closeRefreshSocket.subscribe(function () {
345
+ _this.open = false;
346
+ });
347
+ this.refresh.subscribe(function () {
348
+ _this._messageService.clear(_this.key);
349
+ _this.closeRefreshSocket.emit();
156
350
  });
157
351
  };
158
- WebsocketService.prototype.onConnectError = function () {
159
- console.log('Error in connect!');
160
- };
161
- WebsocketService.prototype.getTopicEvent = function (primitiveEvent) {
162
- var topic = '/topic/'.concat(StorageService.getTenantDomain());
163
- if (primitiveEvent.allUsers === false) {
164
- topic = topic
165
- .concat('/')
166
- .concat(StorageService.getToken());
352
+ RefreshWebsocketAlertComponent.prototype.show = function (message) {
353
+ if (!this.open) {
354
+ this.open = true;
355
+ var thisMessage = {
356
+ key: this.key,
357
+ summary: (message === null || message === void 0 ? void 0 : message.summary) || this._translateService.instant('crmx.angular_components.refresh_websocket_alert_summary_default'),
358
+ detail: (message === null || message === void 0 ? void 0 : message.detail) || this._translateService.instant('crmx.angular_components.refresh_websocket_alert_detail_default'),
359
+ severity: (message === null || message === void 0 ? void 0 : message.severity) || 'info',
360
+ life: 10000,
361
+ };
362
+ this._messageService.add(thisMessage);
167
363
  }
168
- topic = topic
169
- .concat('/')
170
- .concat(primitiveEvent.domain)
171
- .concat('/')
172
- .concat(primitiveEvent.service)
173
- .concat('/')
174
- .concat(primitiveEvent.primitive);
175
- return topic;
176
364
  };
177
- WebsocketService.ɵprov = ɵɵdefineInjectable({ factory: function WebsocketService_Factory() { return new WebsocketService(); }, token: WebsocketService, providedIn: "root" });
178
- WebsocketService = __decorate([
179
- Injectable({
180
- providedIn: 'root',
365
+ RefreshWebsocketAlertComponent.ctorParameters = function () { return [
366
+ { type: MessageService },
367
+ { type: TranslateService }
368
+ ]; };
369
+ __decorate([
370
+ Input()
371
+ ], RefreshWebsocketAlertComponent.prototype, "key", void 0);
372
+ __decorate([
373
+ Output()
374
+ ], RefreshWebsocketAlertComponent.prototype, "closeRefreshSocket", void 0);
375
+ __decorate([
376
+ Output()
377
+ ], RefreshWebsocketAlertComponent.prototype, "refresh", void 0);
378
+ RefreshWebsocketAlertComponent = __decorate([
379
+ Component({
380
+ selector: 'refresh-websocket-alert',
381
+ template: "<p-toast [key]=\"key\" (onClose)=\"closeRefreshSocket.emit($event)\">\n <ng-template let-message pTemplate=\"message\">\n <span class=\"ui-toast-icon pi\"></span>\n <div class=\"ui-toast-message-text-content\">\n <div class=\"ui-toast-summary\">{{ message.summary }}</div>\n <div class=\"ui-toast-detail\">\n <span>{{ message.detail }}</span>\n <s-button\n [label]=\"'crmx.angular_components.refresh_websocket_alert_click_here' | translate\"\n priority=\"link\"\n (onClick)=\"refresh.emit()\"\n styleClass=\"refresh-websocket\"\n ></s-button>\n </div>\n </div>\n </ng-template>\n</p-toast>\n",
382
+ styles: [".refresh-websocket{height:20px!important}"]
181
383
  })
182
- ], WebsocketService);
183
- return WebsocketService;
384
+ ], RefreshWebsocketAlertComponent);
385
+ return RefreshWebsocketAlertComponent;
184
386
  }());
185
387
 
388
+ var RefreshWebsocketAlertModule = /** @class */ (function () {
389
+ function RefreshWebsocketAlertModule() {
390
+ }
391
+ RefreshWebsocketAlertModule = __decorate([
392
+ NgModule({
393
+ imports: [
394
+ LocaleModule.forChild(),
395
+ ButtonModule,
396
+ TranslateModule,
397
+ ToastModule,
398
+ ],
399
+ declarations: [
400
+ RefreshWebsocketAlertComponent,
401
+ ],
402
+ exports: [
403
+ RefreshWebsocketAlertComponent,
404
+ ]
405
+ })
406
+ ], RefreshWebsocketAlertModule);
407
+ return RefreshWebsocketAlertModule;
408
+ }());
409
+
410
+ var fallback = {
411
+ "crmx.angular_components.cancel": "Cancelar",
412
+ "crmx.angular_components.confirm": "Gerar",
413
+ "crmx.angular_components.error_required": "Campo obrigatório",
414
+ "crmx.angular_components.error_unauthorized_title": "Acesso não autorizado",
415
+ "crmx.angular_components.error_unauthorized_description": "Você não tem permissão para utilizar o recurso desejado",
416
+ "crmx.angular_components.format": "Formato",
417
+ "crmx.angular_components.format_placeholder": "Selecione uma Opção",
418
+ "crmx.angular_components.report": "Relatório",
419
+ "crmx.angular_components.reports_help": "Listando todos relatórios com a tag '{{tag}}'",
420
+ "crmx.angular_components.reports_title": "Gerar Relatório",
421
+ "crmx.angular_components.refresh_websocket_alert_click_here": "Clique aqui",
422
+ "crmx.angular_components.refresh_websocket_alert_detail_default": "Para atualizar a tela",
423
+ "crmx.angular_components.refresh_websocket_alert_summary_default": "Atualização de dados"
424
+ };
425
+
186
426
  var User = /** @class */ (function () {
187
427
  function User() {
188
428
  this.blocked = false;
@@ -396,16 +636,72 @@ var Collaborator = /** @class */ (function () {
396
636
  return Collaborator;
397
637
  }());
398
638
 
639
+ var StorageService = /** @class */ (function () {
640
+ function StorageService(cookieService) {
641
+ this.cookieService = cookieService;
642
+ }
643
+ StorageService.prototype.getUser = function () {
644
+ return JSON.parse(localStorage.getItem('SENIOR_USER_INFO')).data;
645
+ };
646
+ StorageService.prototype.getUserId = function () {
647
+ return this.getUser().id;
648
+ };
649
+ StorageService.prototype.store = function (key, value) {
650
+ var userId = this.getUserId();
651
+ localStorage.setItem(userId + "_" + key, JSON.stringify(value));
652
+ };
653
+ StorageService.prototype.get = function (key) {
654
+ var userId = this.getUserId();
655
+ var value = localStorage.getItem(userId + "_" + key);
656
+ if (value) {
657
+ return JSON.parse(value);
658
+ }
659
+ return null;
660
+ };
661
+ StorageService.prototype.getComSeniorToken = function () {
662
+ return JSON.parse(this.cookieService.get('com.senior.token'));
663
+ };
664
+ StorageService.prototype.getBaseUrl = function () {
665
+ return this.cookieService.get('com.senior.base.url');
666
+ };
667
+ StorageService.prototype.getTenantDomain = function () {
668
+ return this.getComSeniorToken().username.split('@')[1];
669
+ };
670
+ StorageService.prototype.getTenantName = function () {
671
+ return this.getComSeniorToken().tenantName;
672
+ };
673
+ StorageService.prototype.getUsername = function () {
674
+ return this.getComSeniorToken().username.split('@')[0];
675
+ };
676
+ StorageService.prototype.getLogin = function () {
677
+ return this.getComSeniorToken().username;
678
+ };
679
+ StorageService.prototype.getToken = function () {
680
+ return this.getComSeniorToken().access_token;
681
+ };
682
+ StorageService.prototype.isUserAdmin = function () {
683
+ return this.getUsername() === 'admin';
684
+ };
685
+ StorageService.ctorParameters = function () { return [
686
+ { type: CookieService }
687
+ ]; };
688
+ StorageService = __decorate([
689
+ Injectable()
690
+ ], StorageService);
691
+ return StorageService;
692
+ }());
693
+
399
694
  var CurrentCollaboratorService = /** @class */ (function () {
400
- function CurrentCollaboratorService(http) {
695
+ function CurrentCollaboratorService(http, storageService) {
401
696
  this.http = http;
697
+ this.storageService = storageService;
402
698
  this.ngUnsubscribe = new Subject();
403
699
  this.COLLABORATOR_KEY = 'CRMX_COLLABORATOR';
404
700
  }
405
701
  CurrentCollaboratorService.prototype.validate = function () {
406
702
  var _this = this;
407
703
  this.call(false).subscribe(function (collaborator) {
408
- if (collaborator.active === false && !StorageService.isUserAdmin()) {
704
+ if (collaborator.active === false) {
409
705
  _this.redirect('collaborator-inactive');
410
706
  }
411
707
  });
@@ -413,10 +709,23 @@ var CurrentCollaboratorService = /** @class */ (function () {
413
709
  CurrentCollaboratorService.prototype.get = function () {
414
710
  return this.call(true);
415
711
  };
712
+ CurrentCollaboratorService.prototype.getE070FilCrmxMaster = function () {
713
+ var _this = this;
714
+ return new Observable(function (observer) {
715
+ _this.call(true).subscribe(function (collaborator) {
716
+ var e070FilCrmxMaster = __assign({}, collaborator.branches.find(function (branch) { return branch.master; }));
717
+ if (e070FilCrmxMaster) {
718
+ e070FilCrmxMaster.collaborator = collaborator;
719
+ observer.next(e070FilCrmxMaster);
720
+ }
721
+ observer.complete();
722
+ });
723
+ });
724
+ };
416
725
  CurrentCollaboratorService.prototype.call = function (useCache) {
417
726
  var _this = this;
418
727
  return new Observable(function (observer) {
419
- var collaboratorDto = StorageService.get(_this.COLLABORATOR_KEY);
728
+ var collaboratorDto = _this.storageService.get(_this.COLLABORATOR_KEY);
420
729
  if (collaboratorDto !== null && useCache) {
421
730
  observer.next(Collaborator.fromDto(collaboratorDto));
422
731
  }
@@ -424,21 +733,23 @@ var CurrentCollaboratorService = /** @class */ (function () {
424
733
  _this.http.get('crmx_collaborator/foundation/queries/getCurrentCollaborator')
425
734
  .pipe(takeUntil(_this.ngUnsubscribe), catchError(function (err) {
426
735
  var statusCode = 404;
427
- if (err.status === statusCode && !StorageService.isUserAdmin()) {
736
+ if (err.status === statusCode) {
428
737
  _this.redirect('collaborator-not-found');
429
738
  }
430
739
  ;
431
740
  throw err;
432
741
  }))
433
742
  .subscribe(function (collaboratorDto) {
434
- StorageService.store(_this.COLLABORATOR_KEY, _this.removeCircularReferences(collaboratorDto));
743
+ collaboratorDto = _this.removeCircularReferences(collaboratorDto);
744
+ _this.storageService.store(_this.COLLABORATOR_KEY, collaboratorDto);
435
745
  observer.next(Collaborator.fromDto(collaboratorDto));
436
746
  });
437
747
  }
748
+ observer.complete();
438
749
  });
439
750
  };
440
751
  CurrentCollaboratorService.prototype.redirect = function (page) {
441
- location.href = StorageService.getBaseUrl() + '/gestao-relacionamento/crmx_collaborator/foundation/#/' + page;
752
+ location.href = this.storageService.getBaseUrl() + "/gestao-relacionamento/crmx_collaborator/foundation/#/" + page;
442
753
  };
443
754
  CurrentCollaboratorService.prototype.removeCircularReferences = function (obj) {
444
755
  var seen = new WeakSet();
@@ -453,7 +764,8 @@ var CurrentCollaboratorService = /** @class */ (function () {
453
764
  }));
454
765
  };
455
766
  CurrentCollaboratorService.ctorParameters = function () { return [
456
- { type: HttpClient }
767
+ { type: HttpClient },
768
+ { type: StorageService }
457
769
  ]; };
458
770
  CurrentCollaboratorService = __decorate([
459
771
  Injectable()
@@ -461,13 +773,29 @@ var CurrentCollaboratorService = /** @class */ (function () {
461
773
  return CurrentCollaboratorService;
462
774
  }());
463
775
 
776
+ var StorageModule = /** @class */ (function () {
777
+ function StorageModule() {
778
+ }
779
+ StorageModule = __decorate([
780
+ NgModule({
781
+ imports: [],
782
+ providers: [
783
+ StorageService,
784
+ CookieService
785
+ ],
786
+ })
787
+ ], StorageModule);
788
+ return StorageModule;
789
+ }());
790
+
464
791
  var CurrentCollaboratorModule = /** @class */ (function () {
465
792
  function CurrentCollaboratorModule() {
466
793
  }
467
794
  CurrentCollaboratorModule = __decorate([
468
795
  NgModule({
469
796
  imports: [
470
- HttpClientModule
797
+ HttpClientModule,
798
+ StorageModule,
471
799
  ],
472
800
  providers: [
473
801
  CurrentCollaboratorService
@@ -477,6 +805,172 @@ var CurrentCollaboratorModule = /** @class */ (function () {
477
805
  return CurrentCollaboratorModule;
478
806
  }());
479
807
 
808
+ var MonthEnum;
809
+ (function (MonthEnum) {
810
+ MonthEnum["JANUARY"] = "JANUARY";
811
+ MonthEnum["FEBRUARY"] = "FEBRUARY";
812
+ MonthEnum["MARCH"] = "MARCH";
813
+ MonthEnum["APRIL"] = "APRIL";
814
+ MonthEnum["MAY"] = "MAY";
815
+ MonthEnum["JUNE"] = "JUNE";
816
+ MonthEnum["JULY"] = "JULY";
817
+ MonthEnum["AUGUST"] = "AUGUST";
818
+ MonthEnum["SEPTEMBER"] = "SEPTEMBER";
819
+ MonthEnum["OCTOBER"] = "OCTOBER";
820
+ MonthEnum["NOVEMBER"] = "NOVEMBER";
821
+ MonthEnum["DECEMBER"] = "DECEMBER";
822
+ })(MonthEnum || (MonthEnum = {}));
823
+
824
+ var OrdinalWeekDayEnum;
825
+ (function (OrdinalWeekDayEnum) {
826
+ OrdinalWeekDayEnum["FIRST"] = "FIRST";
827
+ OrdinalWeekDayEnum["SECOND"] = "SECOND";
828
+ OrdinalWeekDayEnum["THIRD"] = "THIRD";
829
+ OrdinalWeekDayEnum["FOURTH"] = "FOURTH";
830
+ OrdinalWeekDayEnum["LAST"] = "LAST";
831
+ })(OrdinalWeekDayEnum || (OrdinalWeekDayEnum = {}));
832
+
833
+ var RecurrenceEnum;
834
+ (function (RecurrenceEnum) {
835
+ RecurrenceEnum["DAILY"] = "DAILY";
836
+ RecurrenceEnum["WEEKLY"] = "WEEKLY";
837
+ RecurrenceEnum["MONTHLY"] = "MONTHLY";
838
+ RecurrenceEnum["YEARLY"] = "YEARLY";
839
+ })(RecurrenceEnum || (RecurrenceEnum = {}));
840
+
841
+ var RepeatWhenEnum;
842
+ (function (RepeatWhenEnum) {
843
+ RepeatWhenEnum["IN_DAY"] = "IN_DAY";
844
+ RepeatWhenEnum["IN_ORDINAL_WEEK_DAY"] = "IN_ORDINAL_WEEK_DAY";
845
+ })(RepeatWhenEnum || (RepeatWhenEnum = {}));
846
+
847
+ var WeekDayEnum;
848
+ (function (WeekDayEnum) {
849
+ WeekDayEnum["SUNDAY"] = "SUNDAY";
850
+ WeekDayEnum["MONDAY"] = "MONDAY";
851
+ WeekDayEnum["TUESDAY"] = "TUESDAY";
852
+ WeekDayEnum["WEDNESDAY"] = "WEDNESDAY";
853
+ WeekDayEnum["THURSDAY"] = "THURSDAY";
854
+ WeekDayEnum["FRIDAY"] = "FRIDAY";
855
+ WeekDayEnum["SATURDAY"] = "SATURDAY";
856
+ })(WeekDayEnum || (WeekDayEnum = {}));
857
+
858
+ var ScheduleFormRulesService = /** @class */ (function () {
859
+ function ScheduleFormRulesService() {
860
+ this.ngUnsubscribe = new Subject();
861
+ }
862
+ ScheduleFormRulesService.prototype.recurrencesValueChangeSubscribe = function (formGroup, formFields) {
863
+ this.recurrenceValueChangeSubscribe(formGroup, formFields);
864
+ this.repeatWhenValueChangeSubscribe(formGroup, formFields);
865
+ };
866
+ ScheduleFormRulesService.prototype.valueChangeSubscribe = function (formGroup, formFields) {
867
+ this.allDayValueChangeSubscribe(formGroup, formFields);
868
+ };
869
+ ScheduleFormRulesService.prototype.allDayValueChangeSubscribe = function (formGroup, formFields) {
870
+ var _this = this;
871
+ formGroup.controls.allDay.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe(function (value) {
872
+ var fields = ['startTime', 'endTime'];
873
+ if (value) {
874
+ _this.disableFields(formGroup, formFields, fields);
875
+ }
876
+ else {
877
+ _this.enableFields(formGroup, formFields, fields);
878
+ }
879
+ });
880
+ };
881
+ ScheduleFormRulesService.prototype.recurrenceValueChangeSubscribe = function (formGroup, formFields) {
882
+ var _this = this;
883
+ formGroup.controls.recurrence.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe(function (value) {
884
+ var fieldsToDisable = ['weekDays', 'repeatWhen', 'repeatWhenDay', 'repeatWhenMonth', 'repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth'];
885
+ _this.disableFields(formGroup, formFields, fieldsToDisable);
886
+ if (value === RecurrenceEnum.WEEKLY) {
887
+ var fieldWeekDays = formFields.find(function (field) { return field.name === 'weekDays'; });
888
+ fieldWeekDays.visible = function () { return true; };
889
+ fieldWeekDays.required = function () { return true; };
890
+ formGroup.controls.weekDays.setValidators([Validators.required]);
891
+ }
892
+ if (value === RecurrenceEnum.MONTHLY || value === RecurrenceEnum.YEARLY) {
893
+ var fieldRepeatWhen = formFields.find(function (field) { return field.name === 'repeatWhen'; });
894
+ fieldRepeatWhen.visible = function () { return true; };
895
+ fieldRepeatWhen.required = function () { return true; };
896
+ formGroup.controls.repeatWhen.setValidators([Validators.required]);
897
+ formGroup.controls.repeatWhen.setValue(RepeatWhenEnum.IN_DAY);
898
+ }
899
+ });
900
+ };
901
+ ScheduleFormRulesService.prototype.repeatWhenValueChangeSubscribe = function (formGroup, formFields) {
902
+ var _this = this;
903
+ formGroup.controls.repeatWhen.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe(function (value) {
904
+ var fieldsToDisable = ['repeatWhenDay', 'repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth', 'repeatWhenMonth'];
905
+ _this.disableFields(formGroup, formFields, fieldsToDisable);
906
+ if (value === RepeatWhenEnum.IN_DAY) {
907
+ var fieldRepeatWhenDay = formFields.find(function (field) { return field.name === 'repeatWhenDay'; });
908
+ fieldRepeatWhenDay.visible = function () { return true; };
909
+ fieldRepeatWhenDay.required = function () { return true; };
910
+ formGroup.controls.repeatWhenDay.setValidators([Validators.required]);
911
+ }
912
+ if (value === RepeatWhenEnum.IN_ORDINAL_WEEK_DAY) {
913
+ var fieldsToEnable = ['repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth'];
914
+ _this.enableFields(formGroup, formFields, fieldsToEnable);
915
+ }
916
+ if (value !== undefined && formGroup.controls.recurrence.value === RecurrenceEnum.YEARLY) {
917
+ var fieldRepeatWhenMonth = formFields.find(function (field) { return field.name === 'repeatWhenMonth'; });
918
+ fieldRepeatWhenMonth.visible = function () { return true; };
919
+ fieldRepeatWhenMonth.required = function () { return true; };
920
+ formGroup.controls.repeatWhenMonth.setValidators([Validators.required]);
921
+ }
922
+ });
923
+ };
924
+ ScheduleFormRulesService.prototype.disableFields = function (formGroup, formFields, fields) {
925
+ formFields
926
+ .filter(function (field) { return fields.includes(field.name); })
927
+ .forEach(function (field) {
928
+ field.visible = function () { return false; };
929
+ field.required = function () { return false; };
930
+ });
931
+ for (var controlsKey in formGroup.controls) {
932
+ if (fields.includes(controlsKey)) {
933
+ var fieldFormGroup = formGroup.controls[controlsKey];
934
+ fieldFormGroup.setValue(undefined);
935
+ fieldFormGroup.clearValidators();
936
+ fieldFormGroup.setErrors(null);
937
+ }
938
+ }
939
+ };
940
+ ScheduleFormRulesService.prototype.enableFields = function (formGroup, formFields, fields) {
941
+ formFields
942
+ .filter(function (field) { return fields.includes(field.name); })
943
+ .forEach(function (field) {
944
+ field.visible = function () { return true; };
945
+ field.required = function () { return true; };
946
+ });
947
+ for (var controlsKey in formGroup.controls) {
948
+ if (fields.includes(controlsKey)) {
949
+ var fieldFormGroup = formGroup.controls[controlsKey];
950
+ fieldFormGroup.setValidators([Validators.required]);
951
+ }
952
+ }
953
+ };
954
+ ScheduleFormRulesService = __decorate([
955
+ Injectable()
956
+ ], ScheduleFormRulesService);
957
+ return ScheduleFormRulesService;
958
+ }());
959
+
960
+ var ScheduleFormRulesModule = /** @class */ (function () {
961
+ function ScheduleFormRulesModule() {
962
+ }
963
+ ScheduleFormRulesModule = __decorate([
964
+ NgModule({
965
+ imports: [],
966
+ providers: [
967
+ ScheduleFormRulesService
968
+ ],
969
+ })
970
+ ], ScheduleFormRulesModule);
971
+ return ScheduleFormRulesModule;
972
+ }());
973
+
480
974
  var StandardFiltersService = /** @class */ (function () {
481
975
  function StandardFiltersService(currentCollaboratorService) {
482
976
  this.currentCollaboratorService = currentCollaboratorService;
@@ -539,9 +1033,258 @@ var StandardFiltersModule = /** @class */ (function () {
539
1033
  return StandardFiltersModule;
540
1034
  }());
541
1035
 
1036
+ var FormGroupValidatorsService = /** @class */ (function () {
1037
+ function FormGroupValidatorsService() {
1038
+ }
1039
+ FormGroupValidatorsService.startDataGreaterThanEndDataValidator = function (endDateField, errorMessage) {
1040
+ var fn = function (control) {
1041
+ var _a;
1042
+ if (control.parent) {
1043
+ var startDate = new Date(control.value);
1044
+ var endDate = new Date((_a = control.parent.controls[endDateField]) === null || _a === void 0 ? void 0 : _a.value);
1045
+ if (startDate > endDate) {
1046
+ var rtn = {};
1047
+ rtn[errorMessage] = true;
1048
+ return rtn;
1049
+ }
1050
+ }
1051
+ return null;
1052
+ };
1053
+ return fn;
1054
+ };
1055
+ FormGroupValidatorsService.endDateLessThanStartDateValidator = function (startDateField, errorMessage) {
1056
+ var fn = function (control) {
1057
+ var _a;
1058
+ if (control.parent) {
1059
+ var startDate = new Date((_a = control.parent.controls[startDateField]) === null || _a === void 0 ? void 0 : _a.value);
1060
+ var endDate = new Date(control.value);
1061
+ if (startDate > endDate) {
1062
+ var rtn = {};
1063
+ rtn[errorMessage] = true;
1064
+ return rtn;
1065
+ }
1066
+ }
1067
+ return null;
1068
+ };
1069
+ return fn;
1070
+ };
1071
+ ;
1072
+ return FormGroupValidatorsService;
1073
+ }());
1074
+
1075
+ var DateValidatorsService = /** @class */ (function () {
1076
+ function DateValidatorsService() {
1077
+ }
1078
+ DateValidatorsService.isLastWeekdayOfMonth = function (date) {
1079
+ var newDate = new Date(date);
1080
+ var day = 7;
1081
+ newDate.setDate(date.getDate() + day);
1082
+ return newDate.getMonth() > date.getMonth() || newDate.getFullYear() > date.getFullYear();
1083
+ };
1084
+ return DateValidatorsService;
1085
+ }());
1086
+
1087
+ var Topic = /** @class */ (function () {
1088
+ function Topic() {
1089
+ }
1090
+ Topic.fromDto = function (topicDto) {
1091
+ var topic = new Topic();
1092
+ Object.assign(topic, topicDto);
1093
+ return topic;
1094
+ };
1095
+ Topic.prototype.getTopic = function (tenantDomain, token) {
1096
+ var topic = '/topic/'.concat(tenantDomain);
1097
+ if (this.allUsers === false) {
1098
+ topic = topic
1099
+ .concat('/')
1100
+ .concat(token);
1101
+ }
1102
+ return topic.concat(this.toString());
1103
+ };
1104
+ Topic.prototype.toString = function () {
1105
+ return '/'
1106
+ .concat(this.domain)
1107
+ .concat('/')
1108
+ .concat(this.service)
1109
+ .concat('/')
1110
+ .concat(this.primitive);
1111
+ };
1112
+ return Topic;
1113
+ }());
1114
+
1115
+ var Event = /** @class */ (function (_super) {
1116
+ __extends(Event, _super);
1117
+ function Event() {
1118
+ return _super !== null && _super.apply(this, arguments) || this;
1119
+ }
1120
+ Event.fromDto = function (eventDto) {
1121
+ var event = new Event();
1122
+ Object.assign(event, eventDto);
1123
+ return event;
1124
+ };
1125
+ Event.prototype.match = function (event) {
1126
+ return this.toString() === event.toString()
1127
+ && this.originCallback === event.originCallback;
1128
+ };
1129
+ return Event;
1130
+ }(Topic));
1131
+
1132
+ var WebsocketService = /** @class */ (function () {
1133
+ function WebsocketService(router, storageService) {
1134
+ var _this = this;
1135
+ this.router = router;
1136
+ this.storageService = storageService;
1137
+ this._client = Stomp.over(new SockJS(this.storageService.getBaseUrl().concat('/websocket/subscription')));
1138
+ this._bindQueue = new Subject();
1139
+ this._eventBindingList = [];
1140
+ this._messageQueue = [];
1141
+ this._bindQueue.pipe(concatMap(function (event) { return _this._bindObservable(event); })).subscribe();
1142
+ }
1143
+ WebsocketService.prototype.bind = function (eventDto) {
1144
+ eventDto.originCallback = eventDto.originCallback || this.router.url;
1145
+ this._bindQueue.next(Event.fromDto(eventDto));
1146
+ };
1147
+ WebsocketService.prototype._bindObservable = function (event) {
1148
+ var _this = this;
1149
+ return new Observable(function (observer) {
1150
+ if (_this._client.connected) {
1151
+ _this._registerBind(event);
1152
+ _this._finishBindObservable(observer);
1153
+ }
1154
+ else {
1155
+ _this._connectClient(event, observer);
1156
+ }
1157
+ });
1158
+ };
1159
+ WebsocketService.prototype._finishBindObservable = function (observer) {
1160
+ observer.next();
1161
+ observer.complete();
1162
+ };
1163
+ WebsocketService.prototype._connectClient = function (event, observer) {
1164
+ var _this = this;
1165
+ this._client.connect({}, function () {
1166
+ _this._registerBind(event);
1167
+ _this._finishBindObservable(observer);
1168
+ }, function () { return observer.error(new Error('Websocket connection error!')); });
1169
+ };
1170
+ WebsocketService.prototype._registerBind = function (event) {
1171
+ var eventBinding = this._findEventBinding(event);
1172
+ if (eventBinding) {
1173
+ this._remakeBind(event, eventBinding);
1174
+ }
1175
+ else {
1176
+ this._makeBind(event);
1177
+ }
1178
+ };
1179
+ WebsocketService.prototype._remakeBind = function (event, eventBinding) {
1180
+ var _this = this;
1181
+ eventBinding.callback = event.callback;
1182
+ this._messageQueue
1183
+ .filter(function (messageQueue) { return messageQueue.event.match(event); })
1184
+ .forEach(function (messageQueue) { return _this._executeCallback(messageQueue.message, event); });
1185
+ };
1186
+ WebsocketService.prototype._makeBind = function (event) {
1187
+ var _this = this;
1188
+ this._eventBindingList.push(event);
1189
+ this._client.subscribe(event.getTopic(this.storageService.getTenantDomain(), this.storageService.getToken()), function (message) { return _this._executeCallback(message, event); });
1190
+ };
1191
+ WebsocketService.prototype._executeCallback = function (message, event) {
1192
+ var _this = this;
1193
+ var eventBinding = this._findEventBinding(event);
1194
+ if (eventBinding.originCallback === this.router.url) {
1195
+ this._findEventBinding(event).callback(this._resolveRefs(JSON.parse(message.body).data));
1196
+ }
1197
+ else {
1198
+ this._messageQueue
1199
+ .filter(function (messageQueue) { return messageQueue.event.match(event); })
1200
+ .forEach(function (messageQueue, index) { return _this._messageQueue.splice(index, 1); });
1201
+ this._messageQueue.push({ message: message, event: event });
1202
+ }
1203
+ };
1204
+ WebsocketService.prototype._findEventBinding = function (event) {
1205
+ return this._eventBindingList.find(function (eventBinding) { return eventBinding.match(event); });
1206
+ };
1207
+ WebsocketService.prototype._resolveRefs = function (payload) {
1208
+ var resolve = function (obj, rootObj) {
1209
+ if (Array.isArray(obj)) {
1210
+ obj.forEach(function (item) { return resolve(item, rootObj); });
1211
+ }
1212
+ if (obj !== null && typeof obj === 'object') {
1213
+ Object.keys(obj).forEach(function (key) {
1214
+ if (key === '$ref' && obj[key]) {
1215
+ var refPath = obj[key]; // Caminho da referência
1216
+ Object.assign(obj, getDataFromRef(refPath, rootObj));
1217
+ delete obj[key];
1218
+ }
1219
+ else {
1220
+ resolve(obj[key], rootObj);
1221
+ }
1222
+ });
1223
+ }
1224
+ };
1225
+ var getDataFromRef = function (ref, rootObj) {
1226
+ var regex = /\["(.*?)"\]/g;
1227
+ var result = [];
1228
+ var match;
1229
+ while ((match = regex.exec(ref)) !== null) {
1230
+ result.push(match[1]);
1231
+ }
1232
+ return result.reduce(function (acc, part) { return acc && acc[part]; }, rootObj);
1233
+ };
1234
+ resolve(payload, payload);
1235
+ return payload;
1236
+ };
1237
+ WebsocketService.ctorParameters = function () { return [
1238
+ { type: Router },
1239
+ { type: StorageService }
1240
+ ]; };
1241
+ WebsocketService.ɵprov = ɵɵdefineInjectable({ factory: function WebsocketService_Factory() { return new WebsocketService(ɵɵinject(Router), ɵɵinject(StorageService)); }, token: WebsocketService, providedIn: "root" });
1242
+ WebsocketService = __decorate([
1243
+ Injectable({
1244
+ providedIn: 'root',
1245
+ })
1246
+ ], WebsocketService);
1247
+ return WebsocketService;
1248
+ }());
1249
+
1250
+ var WebsocketModule = /** @class */ (function () {
1251
+ function WebsocketModule() {
1252
+ }
1253
+ WebsocketModule = __decorate([
1254
+ NgModule({
1255
+ imports: [
1256
+ RouterModule,
1257
+ ],
1258
+ providers: [
1259
+ WebsocketService,
1260
+ ]
1261
+ })
1262
+ ], WebsocketModule);
1263
+ return WebsocketModule;
1264
+ }());
1265
+
1266
+ var StringConverterService = /** @class */ (function () {
1267
+ function StringConverterService() {
1268
+ }
1269
+ StringConverterService.toUnderscore = function (camelCase) {
1270
+ var regex = /([a-z])([A-Z])/g;
1271
+ return camelCase.replace(regex, '$1_$2').toLowerCase();
1272
+ };
1273
+ return StringConverterService;
1274
+ }());
1275
+
1276
+ var ValueChangesService = /** @class */ (function () {
1277
+ function ValueChangesService() {
1278
+ }
1279
+ ValueChangesService.pipeDefault = function (control) {
1280
+ return control.valueChanges.pipe(distinctUntilChanged());
1281
+ };
1282
+ return ValueChangesService;
1283
+ }());
1284
+
542
1285
  /**
543
1286
  * Generated bundle index. Do not edit.
544
1287
  */
545
1288
 
546
- export { Collaborator, CollaboratorE070FilCrmx, CollaboratorSquad, CurrentCollaboratorModule, CurrentCollaboratorService, DateValidatorsService, E070Emp, E070Fil, E070FilCrmx, FormGroupValidatorsService, Squad, StandardFiltersModule, StandardFiltersService, StorageService, StringConverterService, User, WebsocketService, CurrentCollaboratorModule as ɵa, CurrentCollaboratorService as ɵb };
1289
+ export { Collaborator, CollaboratorE070FilCrmx, CollaboratorSquad, CurrentCollaboratorModule, CurrentCollaboratorService, DateValidatorsService, E070Emp, E070Fil, E070FilCrmx, Event, FormGroupValidatorsService, FormatEnum, MonthEnum, OrdinalWeekDayEnum, RecurrenceEnum, RefreshWebsocketAlertComponent, RefreshWebsocketAlertModule, RepeatWhenEnum, ReportsComponent, ReportsModule, ReportsService, ScheduleFormRulesModule, ScheduleFormRulesService, Squad, StandardFiltersModule, StandardFiltersService, StorageService, StringConverterService, Topic, User, ValueChangesService, ViewModeEnum, WebsocketModule, WebsocketService, WeekDayEnum, fallback, StorageModule as ɵa, CurrentCollaboratorModule as ɵb, CurrentCollaboratorService as ɵc };
547
1290
  //# sourceMappingURL=senior-gestao-relacionamento-angular-components.js.map