@senior-gestao-relacionamento/angular-components 1.5.0 → 1.6.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 (42) hide show
  1. package/bundles/senior-gestao-relacionamento-angular-components.umd.js +102 -3
  2. package/bundles/senior-gestao-relacionamento-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js +1 -1
  4. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js.map +1 -1
  5. package/esm2015/services/current-collaborator/current-collaborator.service.js +12 -12
  6. package/esm2015/services/current-collaborator/models/collaborator-dto.js +1 -1
  7. package/esm2015/services/current-collaborator/models/collaborator.js +4 -4
  8. package/esm2015/services/current-tenant/current-tenant.module.js +20 -0
  9. package/esm2015/services/current-tenant/current-tenant.service.js +66 -0
  10. package/esm2015/services/current-tenant/index.js +4 -0
  11. package/esm2015/services/current-tenant/models/index.js +2 -0
  12. package/esm2015/services/current-tenant/models/modulo-dto.js +1 -0
  13. package/esm2015/services/current-tenant/models/modulo.js +15 -0
  14. package/esm2015/services/index.js +2 -1
  15. package/esm2015/services/standard-filters/standard-filters.service.js +2 -2
  16. package/esm5/services/current-collaborator/current-collaborator.service.js +9 -9
  17. package/esm5/services/current-collaborator/models/collaborator-dto.js +1 -1
  18. package/esm5/services/current-collaborator/models/collaborator.js +4 -4
  19. package/esm5/services/current-tenant/current-tenant.module.js +23 -0
  20. package/esm5/services/current-tenant/current-tenant.service.js +69 -0
  21. package/esm5/services/current-tenant/index.js +4 -0
  22. package/esm5/services/current-tenant/models/index.js +2 -0
  23. package/esm5/services/current-tenant/models/modulo-dto.js +1 -0
  24. package/esm5/services/current-tenant/models/modulo.js +20 -0
  25. package/esm5/services/index.js +2 -1
  26. package/esm5/services/standard-filters/standard-filters.service.js +2 -2
  27. package/fesm2015/senior-gestao-relacionamento-angular-components.js +94 -7
  28. package/fesm2015/senior-gestao-relacionamento-angular-components.js.map +1 -1
  29. package/fesm5/senior-gestao-relacionamento-angular-components.js +100 -4
  30. package/fesm5/senior-gestao-relacionamento-angular-components.js.map +1 -1
  31. package/package.json +2 -24
  32. package/senior-gestao-relacionamento-angular-components.metadata.json +1 -1
  33. package/services/current-collaborator/current-collaborator.service.d.ts +4 -4
  34. package/services/current-collaborator/models/collaborator-dto.d.ts +1 -1
  35. package/services/current-collaborator/models/collaborator.d.ts +5 -5
  36. package/services/current-tenant/current-tenant.module.d.ts +2 -0
  37. package/services/current-tenant/current-tenant.service.d.ts +19 -0
  38. package/services/current-tenant/index.d.ts +3 -0
  39. package/services/current-tenant/models/index.d.ts +2 -0
  40. package/services/current-tenant/models/modulo-dto.d.ts +5 -0
  41. package/services/current-tenant/models/modulo.d.ts +8 -0
  42. package/services/index.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"senior-gestao-relacionamento-angular-components.js","sources":["ng://@senior-gestao-relacionamento/angular-components/components/reports/enums/format-enum.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/enums/view-mode-enum.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/reports.service.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/reports.component.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/reports.module.ts","ng://@senior-gestao-relacionamento/angular-components/components/refresh-websocket-alert/refresh-websocket-alert.component.ts","ng://@senior-gestao-relacionamento/angular-components/components/refresh-websocket-alert/refresh-websocket-alert.module.ts","ng://@senior-gestao-relacionamento/angular-components/locale/fallback.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/user.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/e-070-emp.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/e-070-fil.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/e-070-fil-crmx.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/collaborator-e-070-fil-crmx.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/squad.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/collaborator-squad.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/collaborator.ts","ng://@senior-gestao-relacionamento/angular-components/services/storage/storage.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/current-collaborator.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/storage/storage.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/current-collaborator.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/month-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/ordinal-week-day-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/recurrence-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/repeat-when-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/week-day-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/schedule-form-rules.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/schedule-form-rules.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/standard-filters/standard-filters.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/standard-filters/standard-filters.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/validators/form-group-validators.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/validators/date-validators.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/models/topic.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/models/event.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/websocket.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/websocket.module.ts","ng://@senior-gestao-relacionamento/angular-components/utils/string-converter.service.ts","ng://@senior-gestao-relacionamento/angular-components/utils/value-changes.service.ts","ng://@senior-gestao-relacionamento/angular-components/senior-gestao-relacionamento-angular-components.ts"],"sourcesContent":["export enum FormatEnum {\n PDF = 'Pdf',\n CSV = 'Csv',\n HTML = 'Html',\n XLSX = 'Xlsx',\n XML = 'Xml',\n ODT = 'Odt',\n RTF = 'Rtf',\n}\n","export enum ViewModeEnum {\n SIDEBAR= 'sidebar',\n DIALOG= 'dialog',\n}\n","import { Injectable} from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { ReportDto } from \"./models/report-dto\";\nimport { catchError, map } from \"rxjs/operators\";\nimport { ResponseListReportDto } from \"./models/response-list-report-dto\";\nimport { throwError } from \"rxjs\";\nimport { GenerateReportInputDto } from \"./models/generate-report-input-dto\";\nimport { GenerateReportOutputDto } from \"./models/generate-report-output-dto\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from 'primeng/api';\n\n@Injectable()\nexport class ReportsService {\n\n private readonly queriesPlatformReportUrl: string = `platform/report/queries`;\n private readonly actionsCrmxReportUrl: string = `crmx/report/actions`;\n\n constructor(\n private readonly _httpClient: HttpClient,\n private readonly _translate: TranslateService,\n private readonly _messageService: MessageService,\n ) {}\n\n public listReports(tag: string, ids?: string[]) {\n let params = new HttpParams();\n params = params.append('searchValue', tag);\n\n return this._httpClient.get<ResponseListReportDto>(`${this.queriesPlatformReportUrl}/listReports`, {params}).pipe(\n map((response: ResponseListReportDto) => response.reports.filter(\n (report: ReportDto) => ids ? ids.includes(report.id) : true\n )),\n this.defaultCatch()\n );\n }\n\n public getSharedReport(tag: string) {\n let params = new HttpParams();\n params = params.append('searchValue', tag);\n\n\n return this._httpClient.get<ResponseListReportDto>(`${this.queriesPlatformReportUrl}/listSharedReports`, { params }).pipe(\n map((response: ResponseListReportDto) => {\n return response.reports.filter((report: ReportDto) => report.enabled);\n }),\n this.defaultCatch()\n );\n }\n\n public generateReport(inputDto: GenerateReportInputDto) {\n return this._httpClient.post<GenerateReportOutputDto>(`${this.actionsCrmxReportUrl}/generateReport`, inputDto).pipe(this.defaultCatch());\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n let summary = err.status ? String(err.status) : 'Error';\n let detail;\n\n if (err.error && err.error.message) {\n detail = err.error.message;\n } else if (err.statusText) {\n detail = err.statusText;\n } else if (err.message) {\n detail = err.message;\n } else {\n detail = 'Error';\n }\n\n const errorUnauthorized = 401;\n\n if (err.status === errorUnauthorized) {\n summary = this._translate.instant('crmx.angular_components.error_unauthorized_title');\n detail = this._translate.instant('crmx.angular_components.error_unauthorized_description');\n }\n\n this._messageService.add({\n severity: 'error',\n summary,\n detail,\n sticky: true,\n });\n }\n\n return throwError(err);\n });\n }\n}\n","import {\n Component,\n EventEmitter,\n Input, OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from \"@angular/core\";\nimport {FormBuilder, FormControl, FormGroup, Validators} from \"@angular/forms\";\nimport {FieldType, FormField} from \"@seniorsistemas/angular-components\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\nimport {ReportsService} from \"./reports.service\";\nimport {ReportDto} from \"./models/report-dto\";\nimport {ViewModeEnum} from \"./enums/view-mode-enum\";\nimport {FormatEnum} from \"./enums/format-enum\";\nimport {GenerateReportOutputDto} from \"./models/generate-report-output-dto\";\nimport {ReportsOptions} from \"./models/reports-options\";\nimport {GenerateReportInputDto} from \"./models/generate-report-input-dto\";\nimport { catchError } from \"rxjs/operators\";\n\n@Component({\n selector: 'report',\n templateUrl: './reports.component.html',\n styleUrls: []\n})\nexport class ReportsComponent implements OnInit, OnChanges {\n\n @Input()\n public visible: boolean;\n\n @Input()\n public options: ReportsOptions;\n\n @Input()\n public formGroups: FormGroup[] = [];\n\n @Output()\n public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n public reportGenerated: EventEmitter<GenerateReportOutputDto> = new EventEmitter<GenerateReportOutputDto>();\n\n public formGroup: FormGroup;\n\n public formFields: FormField[];\n\n public reportsObservable: BehaviorSubject<any> = new BehaviorSubject([]);\n\n public readonly viewModeEnum = ViewModeEnum;\n\n public loading = false;\n\n private _reports: ReportDto[] = [];\n\n private _formatEnum: any[] = [];\n\n constructor(\n private readonly _translate: TranslateService,\n private readonly _formBuilder: FormBuilder,\n private readonly _reportsService: ReportsService,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (this.options) {\n this.options.header = this.options.header || this._translate.instant('crmx.angular_components.reports_title');\n\n this.options.labelConfirmButton = this.options.labelConfirmButton || this._translate.instant('crmx.angular_components.confirm');\n\n this._formatEnum = Object.keys(FormatEnum)\n .filter(key => !this.options.formats || this.options.formats.includes(FormatEnum[key]))\n .map(key => ({ label: key.toUpperCase(), value: FormatEnum[key] }));\n\n if (this.visible) {\n this.loading = true;\n\n this._executeObservable(this._reportsService.listReports(this.options.tenantReport || this.options.sharedReport))\n .subscribe((nextAction: boolean) => {\n if (nextAction) {\n this._executeObservable(this._reportsService.getSharedReport(this.options.sharedReport))\n .subscribe((nextAction: boolean) => {\n this.loading = false;\n })\n ;\n }\n })\n ;\n }\n }\n }\n\n public ngOnInit(): void {\n this.formGroup = this._getFormGroup();\n this.formFields = this._getFormFields();\n }\n\n public onCancel() {\n this.formGroup.reset();\n\n this.visible = false;\n this.visibleChange.emit(this.visible);\n }\n\n public onConfirm() {\n this.loading = true;\n const data = this.formGroup.getRawValue();\n let isValid = true;\n\n this.formGroups.forEach((formGroup: FormGroup) => isValid = isValid && formGroup.valid);\n\n if (!this.formGroup.valid || !isValid) {\n this.loading = false;\n this._validateAllFormFields(this.formGroup);\n\n this.formGroups.forEach(this._validateAllFormFields);\n } else {\n const input: GenerateReportInputDto = {\n report: {\n id: data.reports.id,\n parameters: this.options.parametersReport,\n format: data.format,\n timeToLive: 1000,\n },\n callbackEvent: this.options.callbackEvent,\n }\n\n this._reportsService.generateReport(input).subscribe(\n (outputDto: GenerateReportOutputDto) => {\n this.reportGenerated.emit(outputDto);\n this.onCancel();\n },\n () => {\n this.loading = false;\n }\n );\n }\n }\n\n public getErrorMessages() {\n return {\n required: this._translate.instant('crmx.angular_components.error_required'),\n };\n }\n\n public onVisibleChange(visible: boolean) {\n if (!visible) {\n this.onCancel();\n }\n }\n\n private _executeObservable(observable: any): Observable<boolean> {\n return new Observable((observer) => {\n observable\n .pipe(\n catchError((err: any) => {\n this.loading = false;\n return throwError(err);\n })\n )\n .subscribe(\n (reports: ReportDto[]) => {\n this._reports = reports;\n\n if (reports.length > 0) {\n this.loading = false;\n this._setValuesDefault();\n observer.next(false);\n } else {\n observer.next(true);\n }\n },\n () => {\n this.loading = false;\n }\n )\n ;\n });\n }\n\n private _setValuesDefault() {\n this.formGroup.controls.reports.setValue(this._reports[0]);\n this.formGroup.controls.format.setValue(this._formatEnum[0]?.value);\n }\n\n private _hasEmpty(target: any) {\n return (Object.keys(target).filter((key) => target[key] === '' || target[key] === undefined).length > 0);\n }\n\n private _validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this._validateAllFormFields(control);\n }\n });\n }\n\n private _getFormGroup(): FormGroup {\n return this._formBuilder.group({\n reports: [{ value: null, disabled: false }, Validators.compose([Validators.required])],\n format: [{ value: null, disabled: false }, Validators.compose([Validators.required])],\n });\n }\n\n private _getFormFields(): FormField[] {\n return [\n new FormField({\n type: FieldType.Autocomplete,\n name: \"reports\",\n label: this._translate.instant('crmx.angular_components.report'),\n size: {xl: 12, lg: 12, md: 12, sm: 12},\n multiple: false,\n dataKey: \"id\",\n appendTo: \"body\",\n emptyMessage: \"Nenhuma sugestão encontrada\",\n displayField: \"name\",\n required: () => true,\n suggestionsObservable: this.reportsObservable,\n onSearch: (val: string) => this.reportsObservable.next(\n this._reports.filter((reportDto: ReportDto) => reportDto.name.match(new RegExp(val, \"ig\")))\n ),\n footer: {\n help: {\n text: this._translate.instant('crmx.angular_components.reports_help', {tag: this.options.tenantReport}),\n icon: 'fa fa-info-circle'\n }\n }\n }),\n new FormField({\n type: FieldType.Enum,\n name: 'format',\n label: this._translate.instant('crmx.angular_components.format'),\n placeholder: this._translate.instant('crmx.angular_components.format_placeholder'),\n size: {xl: 12, lg: 12, md: 12, sm: 12},\n multiple: false,\n required: () => true,\n options: this._formatEnum,\n }),\n ];\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { SelectButtonModule } from \"primeng/selectbutton\";\nimport { DialogModule } from \"primeng/dialog\";\nimport {\n DynamicFormModule,\n LocaleModule,\n ButtonModule,\n SidebarModule,\n LoadingStateModule,\n} from \"@seniorsistemas/angular-components\";\nimport { ReportsService } from \"./reports.service\";\nimport { ReportsComponent } from \"./reports.component\";\nimport {PanelModule} from \"primeng/panel\";\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n FormsModule,\n RouterModule,\n CommonModule,\n TranslateModule,\n SelectButtonModule,\n DialogModule,\n ButtonModule,\n DynamicFormModule,\n SidebarModule,\n PanelModule,\n LoadingStateModule,\n ],\n declarations: [\n ReportsComponent,\n ],\n exports: [\n ReportsComponent,\n ],\n providers: [\n ReportsService,\n ]\n })\nexport class ReportsModule {}\n","import {Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\nimport {Message, MessageService} from \"primeng/api\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\n\n@Component({\n selector: 'refresh-websocket-alert',\n templateUrl: './refresh-websocket-alert.component.html',\n styleUrls: [\n './refresh-websocket-alert.component.scss',\n ]\n})\nexport class RefreshWebsocketAlertComponent implements OnInit {\n\n private open = false;\n\n @Input()\n key: string;\n\n @Output()\n closeRefreshSocket: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n refresh: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(\n private readonly _messageService: MessageService,\n private readonly _translateService: TranslateService,\n ) {\n }\n\n public ngOnInit(): void {\n this.closeRefreshSocket.subscribe(() => {\n this.open = false;\n });\n\n this.refresh.subscribe(() => {\n this._messageService.clear(this.key);\n this.closeRefreshSocket.emit();\n });\n }\n\n public show(message?: Message): void {\n if (!this.open) {\n this.open = true;\n\n const thisMessage: Message = {\n key: this.key,\n summary: message?.summary || this._translateService.instant('crmx.angular_components.refresh_websocket_alert_summary_default'),\n detail: message?.detail || this._translateService.instant('crmx.angular_components.refresh_websocket_alert_detail_default'),\n severity: message?.severity || 'info',\n life: 10000,\n };\n\n this._messageService.add(thisMessage);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { ButtonModule, LocaleModule } from \"@seniorsistemas/angular-components\";\nimport { ToastModule } from \"primeng/toast\";\nimport { RefreshWebsocketAlertComponent } from \"./refresh-websocket-alert.component\";\nimport {TranslateModule} from \"@ngx-translate/core\";\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n ButtonModule,\n TranslateModule,\n ToastModule,\n ],\n declarations: [\n RefreshWebsocketAlertComponent,\n ],\n exports: [\n RefreshWebsocketAlertComponent,\n ]\n})\nexport class RefreshWebsocketAlertModule {}\n","export const fallback: any = {\n \"crmx.angular_components.cancel\": \"Cancelar\",\n \"crmx.angular_components.confirm\": \"Gerar\",\n \"crmx.angular_components.error_required\": \"Campo obrigatório\",\n \"crmx.angular_components.error_unauthorized_title\": \"Acesso não autorizado\",\n \"crmx.angular_components.error_unauthorized_description\": \"Você não tem permissão para utilizar o recurso desejado\",\n \"crmx.angular_components.format\": \"Formato\",\n \"crmx.angular_components.format_placeholder\": \"Selecione uma Opção\",\n \"crmx.angular_components.report\": \"Relatório\",\n \"crmx.angular_components.reports_help\": \"Listando todos relatórios com a tag '{{tag}}'\",\n \"crmx.angular_components.reports_title\": \"Gerar Relatório\",\n \"crmx.angular_components.refresh_websocket_alert_click_here\": \"Clique aqui\",\n \"crmx.angular_components.refresh_websocket_alert_detail_default\": \"Para atualizar a tela\",\n \"crmx.angular_components.refresh_websocket_alert_summary_default\": \"Atualização de dados\"\n};\n","import { UserDto } from './user-dto';\n\nexport class User {\n public id?: string;\n public username: string;\n public fullName: string;\n public email: string;\n public photo?: string;\n public blocked: boolean = false;\n public custom?: any;\n\n public static fromDto(userDto: UserDto, originEntity?: string): User {\n const model: any = { ...userDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['username', 'fullName'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n return model as User;\n }\n\n public static toDto(user: User, originEntity?: string): UserDto {\n const dto: any = { ...user };\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { E070EmpDto } from './e-070-emp-dto';\n\nexport class E070Emp {\n public id?: string;\n public codEmp: string;\n public nomEmp: string;\n\n public static fromDto(e070EmpDto: E070EmpDto, originEntity?: string): E070Emp {\n const model: any = { ...e070EmpDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['codEmp', 'nomEmp'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n return model as E070Emp;\n }\n\n public static toDto(e070Emp: E070Emp, originEntity?: string): E070EmpDto {\n const dto: any = { ...e070Emp };\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { E070Emp } from './e-070-emp';\nimport { E070FilDto } from './e-070-fil-dto';\n\nexport class E070Fil {\n public id?: string;\n public codFil: number;\n public nomFil: string;\n public e070emp: E070Emp;\n\n public static fromDto(e070FilDto: E070FilDto, originEntity?: string): E070Fil {\n const model: any = { ...e070FilDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['e070emp.codEmp', 'e070emp.nomEmp', 'codFil', 'nomFil'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'E070Emp' && model.e070emp) {\n model.e070emp = E070Emp.fromDto(model.e070emp, 'E070Fil');\n }\n\n return model as E070Fil;\n }\n\n public static toDto(e070Fil: E070Fil, originEntity?: string): E070FilDto {\n const dto: any = { ...e070Fil };\n\n delete dto.label;\n\n if (originEntity !== 'E070Emp' && dto.e070emp) {\n dto.e070emp = E070Emp.toDto(dto.e070emp, 'E070Fil');\n }\n\n return dto;\n }\n}\n","import { E070Fil } from './e-070-fil';\nimport { E070FilCrmxDto } from './e-070-fil-crmx-dto';\n\nexport class E070FilCrmx {\n public id?: string;\n public active: boolean = false;\n public e070fil: E070Fil;\n public label: string;\n\n public static fromDto(e070FilCrmxDto: E070FilCrmxDto, originEntity?: string): E070FilCrmx {\n const model: any = { ...e070FilCrmxDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['e070fil.e070emp.codEmp', 'e070fil.e070emp.nomEmp', 'e070fil.codFil', 'e070fil.nomFil'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'E070Fil' && model.e070fil) {\n model.e070fil = E070Fil.fromDto(model.e070fil, 'E070FilCrmx');\n }\n\n return model as E070FilCrmx;\n }\n\n public static toDto(e070FilCrmx: E070FilCrmx, originEntity?: string): E070FilCrmxDto {\n const dto: any = { ...e070FilCrmx };\n\n delete dto.label;\n\n if (originEntity !== 'E070Fil' && dto.e070fil) {\n dto.e070fil = E070Fil.toDto(dto.e070fil, 'E070FilCrmx');\n }\n\n return dto;\n }\n}\n","import { Collaborator } from './collaborator';\nimport { E070FilCrmx } from './e-070-fil-crmx';\nimport { CollaboratorE070FilCrmxDto } from './collaborator-e-070-fil-crmx-dto';\n\nexport class CollaboratorE070FilCrmx {\n public id?: string;\n public collaborator?: Collaborator;\n public e070filCrmx: E070FilCrmx;\n public master: boolean = false;\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n\n public static fromDto(collaboratorE070FilCrmxDto: CollaboratorE070FilCrmxDto, originEntity?: string): CollaboratorE070FilCrmx {\n const model: any = { ...collaboratorE070FilCrmxDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['e070filCrmx.e070fil.codFil', 'e070filCrmx.e070fil.nomFil'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'Collaborator' && model.collaborator) {\n model.collaborator = Collaborator.fromDto(model.collaborator, 'CollaboratorE070FilCrmx');\n }\n\n if (originEntity !== 'E070FilCrmx' && model.e070filCrmx) {\n model.e070filCrmx = E070FilCrmx.fromDto(model.e070filCrmx, 'CollaboratorE070FilCrmx');\n }\n\n return model as CollaboratorE070FilCrmx;\n }\n\n public static toDto(collaboratorE070FilCrmx: CollaboratorE070FilCrmx, originEntity?: string): CollaboratorE070FilCrmxDto {\n const dto: any = { ...collaboratorE070FilCrmx };\n\n delete dto.label;\n\n if (originEntity !== 'Collaborator' && dto.collaborator) {\n dto.collaborator = Collaborator.toDto(dto.collaborator, 'CollaboratorE070FilCrmx');\n }\n\n if (originEntity !== 'E070FilCrmx' && dto.e070filCrmx) {\n dto.e070filCrmx = E070FilCrmx.toDto(dto.e070filCrmx, 'CollaboratorE070FilCrmx');\n }\n\n return dto;\n }\n}\n","import { SquadDto } from './squad-dto';\n\nexport class Squad {\n public id?: string;\n public name: string;\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n\n public static fromDto(squadDto: SquadDto, originEntity?: string): Squad {\n const model: any = { ...squadDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['name'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n return model as Squad;\n }\n\n public static toDto(squad: Squad, originEntity?: string): SquadDto {\n const dto: any = { ...squad };\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { Collaborator } from './collaborator';\nimport { Squad } from './squad';\nimport { CollaboratorSquadDto } from './collaborator-squad-dto';\n\nexport class CollaboratorSquad {\n public id?: string;\n public collaborator?: Collaborator;\n public squad: Squad;\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n\n public static fromDto(collaboratorSquadDto: CollaboratorSquadDto, originEntity?: string): CollaboratorSquad {\n const model: any = { ...collaboratorSquadDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['squad.name'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'Collaborator' && model.collaborator) {\n model.collaborator = Collaborator.fromDto(model.collaborator, 'CollaboratorSquad');\n }\n\n if (originEntity !== 'Squad' && model.squad) {\n model.squad = Squad.fromDto(model.squad, 'CollaboratorSquad');\n }\n\n return model as CollaboratorSquad;\n }\n\n public static toDto(collaboratorSquad: CollaboratorSquad, originEntity?: string): CollaboratorSquadDto {\n const dto: any = { ...collaboratorSquad };\n\n delete dto.label;\n\n if (originEntity !== 'Collaborator' && dto.collaborator) {\n dto.collaborator = Collaborator.toDto(dto.collaborator, 'CollaboratorSquad');\n }\n\n if (originEntity !== 'Squad' && dto.squad) {\n dto.squad = Squad.toDto(dto.squad, 'CollaboratorSquad');\n }\n\n return dto;\n }\n}\n","import { User } from \"./user\";\nimport { CollaboratorE070FilCrmx } from \"./collaborator-e-070-fil-crmx\";\nimport { CollaboratorSquad } from \"./collaborator-squad\";\nimport { CollaboratorDto } from \"./collaborator-dto\";\n\nexport class Collaborator {\n public id?: string;\n public code: string;\n public user?: User;\n public name: string;\n public email: string;\n public leader?: Collaborator;\n public active: boolean = false;\n public visible: boolean = false;\n public consolidatedLevel?: string;\n public branches?: CollaboratorE070FilCrmx[];\n public squads?: CollaboratorSquad[];\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n public label?: string;\n\n public static fromDto(collaboratorDto: CollaboratorDto, originEntity?: string): Collaborator {\n const model: any = { ...collaboratorDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['code', 'name'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'User' && model.user) {\n model.user = User.fromDto(model.user, 'Collaborator');\n }\n\n if (originEntity !== 'Collaborator' && model.leader) {\n model.leader = Collaborator.fromDto(model.leader, 'Collaborator');\n }\n\n if (originEntity !== 'CollaboratorE070FilCrmx' && model.branches) {\n model.branches = Object.values(model.branches).map((item: any) => CollaboratorE070FilCrmx.fromDto(item, 'Collaborator'));\n }\n\n if (originEntity !== 'CollaboratorSquad' && model.squads) {\n model.squads = Object.values(model.squads).map((item: any) => CollaboratorSquad.fromDto(item, 'Collaborator'));\n }\n\n return model as Collaborator;\n }\n\n public static toDto(collaborator: Collaborator, originEntity?: string): CollaboratorDto {\n const dto: any = { ...collaborator };\n\n delete dto.label;\n\n if (originEntity !== 'User' && dto.user) {\n dto.user = User.toDto(dto.user, 'Collaborator');\n }\n\n if (originEntity !== 'Collaborator' && dto.leader) {\n dto.leader = Collaborator.toDto(dto.leader, 'Collaborator');\n }\n\n if (originEntity !== 'CollaboratorE070FilCrmx' && dto.branches) {\n dto.branches = Object.values(dto.branches)\n .map((item: any) => CollaboratorE070FilCrmx.toDto(item, 'Collaborator'))\n .filter((item) => Object.keys(item).length);\n }\n\n if (originEntity !== 'CollaboratorSquad' && dto.squads) {\n dto.squads = Object.values(dto.squads)\n .map((item: any) => CollaboratorSquad.toDto(item, 'Collaborator'))\n .filter((item) => Object.keys(item).length);\n }\n\n return dto;\n }\n}\n","import { ComSeniorTokenDto } from './com-senior-token-dto';\nimport { Injectable } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@Injectable()\nexport class StorageService {\n\n constructor(\n private readonly cookieService: CookieService\n ) {\n }\n\n public getUser(): any {\n return JSON.parse(localStorage.getItem('SENIOR_USER_INFO')).data;\n }\n\n public getUserId(): string {\n return this.getUser().id;\n }\n\n public store(key: string, value: any) {\n const userId = this.getUserId();\n localStorage.setItem(`${userId}_${key}`, JSON.stringify(value));\n }\n\n public get(key: string) {\n const userId = this.getUserId();\n const value = localStorage.getItem(`${userId}_${key}`);\n\n if (value) {\n return JSON.parse(value);\n }\n\n return null;\n }\n\n private getComSeniorToken(): ComSeniorTokenDto {\n return JSON.parse(this.cookieService.get('com.senior.token'));\n }\n\n public getBaseUrl(): string {\n return this.cookieService.get('com.senior.base.url');\n }\n\n public getTenantDomain(): string {\n return this.getComSeniorToken().username.split('@')[1];\n }\n\n public getTenantName(): string {\n return this.getComSeniorToken().tenantName;\n }\n\n public getUsername(): string {\n return this.getComSeniorToken().username.split('@')[0];\n }\n\n public getLogin(): string {\n return this.getComSeniorToken().username;\n }\n\n public getToken(): string {\n return this.getComSeniorToken().access_token;\n }\n\n public isUserAdmin(): boolean {\n return this.getUsername() === 'admin';\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Collaborator, CollaboratorDto, CollaboratorE070FilCrmx } from \"./models\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable, Subject } from \"rxjs\";\nimport { StorageService } from \"../storage/storage.service\";\nimport { catchError, takeUntil } from \"rxjs/operators\";\n\n@Injectable()\nexport class CurrentCollaboratorService {\n\n private readonly ngUnsubscribe = new Subject();\n\n private readonly COLLABORATOR_KEY: string = 'CRMX_COLLABORATOR';\n\n constructor(\n private readonly http: HttpClient,\n private readonly storageService: StorageService\n ) {\n }\n\n public validate() {\n this.call(false).subscribe((collaborator) => {\n if (collaborator.active === false) {\n this.redirect('collaborator-inactive');\n }\n });\n }\n\n public get(): Observable<Collaborator> {\n return this.call(true);\n }\n\n public getE070FilCrmxMaster(): Observable<CollaboratorE070FilCrmx> {\n return new Observable<CollaboratorE070FilCrmx>(observer => {\n this.call(true).subscribe((collaborator) => {\n const e070FilCrmxMaster = {...collaborator.branches.find((branch) => branch.master)};\n\n if (e070FilCrmxMaster) {\n e070FilCrmxMaster.collaborator = collaborator;\n\n observer.next(e070FilCrmxMaster);\n }\n\n observer.complete();\n });\n });\n }\n\n private call(useCache: boolean): Observable<Collaborator> {\n return new Observable(observer => {\n const collaboratorDto = this.storageService.get(this.COLLABORATOR_KEY);\n\n if (collaboratorDto !== null && useCache) {\n observer.next(Collaborator.fromDto(collaboratorDto));\n } else {\n this.http.get<CollaboratorDto>('crmx_collaborator/foundation/queries/getCurrentCollaborator')\n .pipe(\n takeUntil(this.ngUnsubscribe),\n catchError((err: any) => {\n const statusCode = 404;\n if (err.status === statusCode) {\n this.redirect('collaborator-not-found');\n };\n throw err;\n }),\n )\n .subscribe(collaboratorDto => {\n collaboratorDto = this.removeCircularReferences(collaboratorDto);\n\n this.storageService.store(\n this.COLLABORATOR_KEY,\n collaboratorDto\n );\n observer.next(Collaborator.fromDto(collaboratorDto));\n })\n ;\n }\n\n observer.complete();\n });\n }\n\n private redirect(page: string) {\n location.href = `${this.storageService.getBaseUrl()}/gestao-relacionamento/crmx_collaborator/foundation/#/${page}`;\n }\n\n private removeCircularReferences(obj: any) {\n const seen = new WeakSet();\n return JSON.parse(JSON.stringify(obj, (key, value) => {\n\n if (typeof value === 'object') {\n if (seen.has(value)) {\n return undefined;\n }\n seen.add(value);\n }\n\n return value;\n }));\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { StorageService } from \"./storage.service\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@NgModule({\n imports: [],\n providers: [\n StorageService,\n CookieService\n ],\n})\nexport class StorageModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CurrentCollaboratorService } from \"./current-collaborator.service\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { StorageModule } from \"../storage/storage.module\";\n\n@NgModule({\n imports: [\n HttpClientModule,\n StorageModule,\n ],\n providers: [\n CurrentCollaboratorService\n ],\n})\nexport class CurrentCollaboratorModule {}\n","export enum MonthEnum {\n JANUARY = 'JANUARY',\n FEBRUARY = 'FEBRUARY',\n MARCH = 'MARCH',\n APRIL = 'APRIL',\n MAY = 'MAY',\n JUNE = 'JUNE',\n JULY = 'JULY',\n AUGUST = 'AUGUST',\n SEPTEMBER = 'SEPTEMBER',\n OCTOBER = 'OCTOBER',\n NOVEMBER = 'NOVEMBER',\n DECEMBER = 'DECEMBER',\n}\n","export enum OrdinalWeekDayEnum {\n FIRST = 'FIRST',\n SECOND = 'SECOND',\n THIRD = 'THIRD',\n FOURTH = 'FOURTH',\n LAST = 'LAST',\n}\n","export enum RecurrenceEnum {\n DAILY = 'DAILY',\n WEEKLY = 'WEEKLY',\n MONTHLY = 'MONTHLY',\n YEARLY = 'YEARLY',\n}\n","export enum RepeatWhenEnum {\n IN_DAY = 'IN_DAY',\n IN_ORDINAL_WEEK_DAY = 'IN_ORDINAL_WEEK_DAY',\n}\n","export enum WeekDayEnum {\n SUNDAY = 'SUNDAY',\n MONDAY = 'MONDAY',\n TUESDAY = 'TUESDAY',\n WEDNESDAY = 'WEDNESDAY',\n THURSDAY = 'THURSDAY',\n FRIDAY = 'FRIDAY',\n SATURDAY = 'SATURDAY',\n}\n","import { Injectable } from \"@angular/core\";\nimport { FormGroup, Validators } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { RecurrenceEnum, RepeatWhenEnum } from \"./enums\";\n\n@Injectable()\nexport class ScheduleFormRulesService {\n\n constructor() {\n }\n\n private readonly ngUnsubscribe = new Subject();\n\n public recurrencesValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n this.recurrenceValueChangeSubscribe(formGroup, formFields);\n this.repeatWhenValueChangeSubscribe(formGroup, formFields);\n }\n\n public valueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n this.allDayValueChangeSubscribe(formGroup, formFields);\n }\n\n private allDayValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n formGroup.controls.allDay.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value: boolean) => {\n const fields = ['startTime', 'endTime'];\n\n if (value) {\n this.disableFields(formGroup, formFields, fields);\n } else {\n this.enableFields(formGroup, formFields, fields);\n }\n });\n }\n\n private recurrenceValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n formGroup.controls.recurrence.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value: RecurrenceEnum) => {\n const fieldsToDisable = ['weekDays', 'repeatWhen', 'repeatWhenDay', 'repeatWhenMonth', 'repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth'];\n\n this.disableFields(formGroup, formFields, fieldsToDisable);\n\n if (value === RecurrenceEnum.WEEKLY) {\n const fieldWeekDays = formFields.find((field) => field.name === 'weekDays');\n fieldWeekDays.visible = () => true;\n fieldWeekDays.required = () => true;\n\n formGroup.controls.weekDays.setValidators([Validators.required]);\n }\n\n if (value === RecurrenceEnum.MONTHLY || value === RecurrenceEnum.YEARLY) {\n const fieldRepeatWhen = formFields.find((field) => field.name === 'repeatWhen');\n fieldRepeatWhen.visible = () => true;\n fieldRepeatWhen.required = () => true;\n\n formGroup.controls.repeatWhen.setValidators([Validators.required]);\n formGroup.controls.repeatWhen.setValue(RepeatWhenEnum.IN_DAY);\n }\n });\n }\n\n private repeatWhenValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n formGroup.controls.repeatWhen.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value: RepeatWhenEnum) => {\n const fieldsToDisable = ['repeatWhenDay', 'repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth', 'repeatWhenMonth'];\n\n this.disableFields(formGroup, formFields, fieldsToDisable);\n\n if (value === RepeatWhenEnum.IN_DAY) {\n const fieldRepeatWhenDay = formFields.find((field) => field.name === 'repeatWhenDay');\n fieldRepeatWhenDay.visible = () => true;\n fieldRepeatWhenDay.required = () => true;\n\n formGroup.controls.repeatWhenDay.setValidators([Validators.required]);\n }\n\n if (value === RepeatWhenEnum.IN_ORDINAL_WEEK_DAY) {\n const fieldsToEnable = ['repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth'];\n this.enableFields(formGroup, formFields, fieldsToEnable);\n }\n\n if (value !== undefined && formGroup.controls.recurrence.value === RecurrenceEnum.YEARLY) {\n const fieldRepeatWhenMonth = formFields.find((field) => field.name === 'repeatWhenMonth');\n fieldRepeatWhenMonth.visible = () => true;\n fieldRepeatWhenMonth.required = () => true;\n\n formGroup.controls.repeatWhenMonth.setValidators([Validators.required]);\n }\n });\n }\n\n private disableFields(formGroup: FormGroup, formFields: any[], fields: string[]) {\n formFields\n .filter((field) => fields.includes(field.name))\n .forEach((field) => {\n field.visible = () => false;\n field.required = () => false;\n });\n\n for (const controlsKey in formGroup.controls) {\n if (fields.includes(controlsKey)) {\n const fieldFormGroup = formGroup.controls[controlsKey] as FormGroup;\n\n fieldFormGroup.setValue(undefined);\n fieldFormGroup.clearValidators();\n fieldFormGroup.setErrors(null);\n }\n }\n }\n\n private enableFields(formGroup: FormGroup, formFields: any[], fields: string[]) {\n formFields\n .filter((field) => fields.includes(field.name))\n .forEach((field) => {\n field.visible = () => true;\n field.required = () => true;\n });\n\n for (const controlsKey in formGroup.controls) {\n if (fields.includes(controlsKey)) {\n const fieldFormGroup = formGroup.controls[controlsKey] as FormGroup;\n fieldFormGroup.setValidators([Validators.required]);\n }\n }\n }\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { ScheduleFormRulesService } from \"./schedule-form-rules.service\";\n\n@NgModule({\n imports: [\n ],\n providers: [\n ScheduleFormRulesService\n ],\n})\nexport class ScheduleFormRulesModule {}\n","import { Injectable } from \"@angular/core\";\nimport { Collaborator, CurrentCollaboratorService } from \"../current-collaborator\";\nimport { Observable } from \"rxjs\";\n\n@Injectable()\nexport class StandardFiltersService {\n\n constructor(\n private readonly currentCollaboratorService: CurrentCollaboratorService\n ) {\n }\n\n public addFilterE070emp(filterQuery: string, alias: string): Observable<string> {\n return new Observable<string>(observer => {\n this.currentCollaboratorService.get().subscribe((collaborator: Collaborator) => {\n const ids: string[] = Array.from(new Set(collaborator.branches.map(branch => branch.e070filCrmx.e070fil.e070emp.id)));\n observer.next(this.addFilterIn(filterQuery, alias, 'id', ids));\n });\n });\n }\n\n public addFilterE070fil(filterQuery: string, alias: string): Observable<string> {\n return new Observable<string>(observer => {\n this.currentCollaboratorService.get().subscribe((collaborator: Collaborator) => {\n const ids: string[] = Array.from(new Set(collaborator.branches.map(branch => branch.e070filCrmx.id)));\n\n observer.next(this.addFilterIn(filterQuery, alias, 'id', ids));\n });\n });\n }\n\n public addFilterActive(filterQuery: string, alias: string): string {\n const filter = this.addAlias(alias, 'active = true');\n return this.addFilter(filterQuery, filter);\n }\n\n public addFilter(filterQuery: string, filter: string): string {\n return (filterQuery ? `${filterQuery} and ` : '') + filter;\n }\n\n public addFilterIn(filterQuery: string, alias: string, field: string, values: any[]): string {\n const filters: string[] = values.map(value => `${this.addAlias(alias, field)} eq '${value}'`);\n\n return this.addFilter(filterQuery, `(${filters.join(' or ')})`);\n }\n\n private addAlias(alias: string, filter: string): string {\n return (alias ? `${alias}.` : '') + filter;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { StandardFiltersService } from \"./standard-filters.service\";\nimport { CurrentCollaboratorModule } from \"../current-collaborator\";\n\n@NgModule({\n imports: [\n CurrentCollaboratorModule\n ],\n providers: [\n StandardFiltersService\n ],\n})\nexport class StandardFiltersModule {}\n","import { AbstractControl } from \"@angular/forms\";\n\nexport class FormGroupValidatorsService {\n public static startDataGreaterThanEndDataValidator(endDateField: string, errorMessage: string) {\n const fn = function (control: AbstractControl) {\n if (control.parent) {\n const startDate = new Date(control.value);\n const endDate = new Date(control.parent.controls[endDateField]?.value);\n\n if (startDate > endDate) {\n const rtn = {};\n rtn[errorMessage] = true;\n return rtn;\n }\n }\n\n return null;\n };\n\n return fn;\n }\n\n public static endDateLessThanStartDateValidator(startDateField: string, errorMessage: string) {\n const fn = function(control: AbstractControl) {\n if (control.parent) {\n const startDate = new Date(control.parent.controls[startDateField]?.value);\n const endDate = new Date(control.value);\n\n if (startDate > endDate) {\n const rtn = {};\n rtn[errorMessage] = true;\n return rtn;\n }\n }\n\n return null;\n };\n\n return fn;\n };\n}\n","export class DateValidatorsService {\n public static isLastWeekdayOfMonth(date: Date): boolean {\n const newDate = new Date(date);\n const day = 7;\n newDate.setDate(date.getDate() + day);\n\n return newDate.getMonth() > date.getMonth() || newDate.getFullYear() > date.getFullYear();\n }\n}\n","import { TopicDto } from \"./topic-dto\";\n\nexport class Topic {\n domain: string;\n service: string;\n primitive: string;\n allUsers: boolean;\n\n public static fromDto(topicDto: TopicDto): Topic {\n const topic = new Topic();\n\n Object.assign(topic, topicDto);\n\n return topic;\n }\n\n public getTopic(tenantDomain: string, token?: string): string {\n let topic = '/topic/'.concat(tenantDomain);\n\n if (this.allUsers === false) {\n topic = topic\n .concat('/')\n .concat(token)\n ;\n }\n\n return topic.concat(this.toString());\n }\n\n public toString(): string {\n return '/'\n .concat(this.domain)\n .concat('/')\n .concat(this.service)\n .concat('/')\n .concat(this.primitive)\n ;\n }\n}\n","import { Topic } from \"./topic\";\nimport { EventDto } from \"./event-dto\";\n\nexport class Event extends Topic {\n public callback: (payload: any) => void;\n public originCallback: string;\n\n public static fromDto(eventDto: EventDto): Event {\n const event = new Event();\n\n Object.assign(event, eventDto);\n\n return event;\n }\n\n public match(event: Event): boolean {\n return this.toString() === event.toString()\n && this.originCallback === event.originCallback\n ;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CompatClient, Stomp } from '@stomp/stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { StorageService } from '../storage/storage.service';\nimport { concatMap } from 'rxjs/operators';\nimport { Router } from \"@angular/router\";\nimport { Event } from \"./models/event\";\nimport { EventDto } from \"./models/event-dto\";\nimport { IMessage } from \"@stomp/stompjs/esm5/i-message\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WebsocketService {\n\n private readonly _client: CompatClient = Stomp.over(\n new SockJS (\n this.storageService.getBaseUrl().concat('/websocket/subscription')\n )\n );\n\n private readonly _bindQueue = new Subject<Event>();\n\n private readonly _eventBindingList: Event[] = [];\n\n private readonly _messageQueue: {message: IMessage, event: Event}[] = [];\n\n constructor(\n private readonly router: Router,\n private readonly storageService: StorageService\n ) {\n this._bindQueue.pipe(\n concatMap(event => this._bindObservable(event))\n ).subscribe();\n }\n\n public bind(eventDto: EventDto) {\n eventDto.originCallback = eventDto.originCallback || this.router.url\n this._bindQueue.next(Event.fromDto(eventDto));\n }\n\n private _bindObservable(event: Event): Observable<void> {\n return new Observable<void>(observer => {\n if (this._client.connected) {\n this._registerBind(event);\n this._finishBindObservable(observer);\n } else {\n this._connectClient(event, observer);\n }\n });\n }\n\n private _finishBindObservable(observer: any) {\n observer.next();\n observer.complete();\n }\n\n private _connectClient(event: Event, observer: any) {\n this._client.connect(\n {},\n () => {\n this._registerBind(event);\n this._finishBindObservable(observer);\n },\n () => observer.error(new Error('Websocket connection error!'))\n );\n }\n\n private _registerBind(event: Event) {\n const eventBinding = this._findEventBinding(event);\n\n if (eventBinding) {\n this._remakeBind(event, eventBinding);\n } else {\n this._makeBind(event);\n }\n }\n\n private _remakeBind(event: Event, eventBinding: Event) {\n eventBinding.callback = event.callback;\n\n this._messageQueue\n .filter(messageQueue => messageQueue.event.match(event))\n .forEach(messageQueue => this._executeCallback(messageQueue.message, event));\n }\n\n private _makeBind(event: Event) {\n this._eventBindingList.push(event);\n\n this._client.subscribe(\n event.getTopic(this.storageService.getTenantDomain(), this.storageService.getToken()),\n (message) => this._executeCallback(message, event)\n );\n }\n\n private _executeCallback(message: IMessage, event: Event) {\n const eventBinding = this._findEventBinding(event);\n\n if (eventBinding.originCallback === this.router.url) {\n this._findEventBinding(event).callback(this._resolveRefs(JSON.parse(message.body).data));\n } else {\n this._messageQueue\n .filter(messageQueue => messageQueue.event.match(event))\n .forEach((messageQueue, index) => this._messageQueue.splice(index, 1));\n\n this._messageQueue.push({message, event});\n }\n }\n\n private _findEventBinding(event: Event): Event {\n return this._eventBindingList.find(eventBinding => eventBinding.match(event));\n }\n\n private _resolveRefs(payload: any): any {\n\n const resolve = (obj: any, rootObj: any) => {\n if (Array.isArray(obj)) {\n obj.forEach(item => resolve(item, rootObj));\n }\n\n if (obj !== null && typeof obj === 'object') {\n Object.keys(obj).forEach(key => {\n if (key === '$ref' && obj[key]) {\n const refPath = obj[key]; // Caminho da referência\n Object.assign(obj, getDataFromRef(refPath, rootObj));\n delete obj[key];\n } else {\n resolve(obj[key], rootObj);\n }\n });\n }\n }\n\n const getDataFromRef = (ref: string, rootObj: any) => {\n const regex = /\\[\"(.*?)\"\\]/g;\n const result = [];\n let match;\n\n while ((match = regex.exec(ref)) !== null) {\n result.push(match[1]);\n }\n\n return result.reduce((acc, part) => acc && acc[part], rootObj);\n }\n\n resolve(payload, payload);\n\n return payload;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { WebsocketService } from \"./websocket.service\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n imports: [\n RouterModule,\n ],\n providers: [\n WebsocketService,\n ]\n})\nexport class WebsocketModule {}\n","\nexport class StringConverterService {\n\n public static toUnderscore(camelCase: string): string {\n const regex: RegExp = /([a-z])([A-Z])/g;\n return camelCase.replace(regex, '$1_$2').toLowerCase();\n }\n}\n","import { distinctUntilChanged } from \"rxjs/operators\";\nimport { Observable } from \"rxjs\";\n\nexport class ValueChangesService {\n\n public static pipeDefault(control: any): Observable<any> {\n return control.valueChanges.pipe(distinctUntilChanged());\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {CurrentCollaboratorModule as ɵb,CurrentCollaboratorService as ɵc} from './services/current-collaborator';\nexport {StorageModule as ɵa} from './services/storage/storage.module';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"senior-gestao-relacionamento-angular-components.js","sources":["ng://@senior-gestao-relacionamento/angular-components/components/reports/enums/format-enum.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/enums/view-mode-enum.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/reports.service.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/reports.component.ts","ng://@senior-gestao-relacionamento/angular-components/components/reports/reports.module.ts","ng://@senior-gestao-relacionamento/angular-components/components/refresh-websocket-alert/refresh-websocket-alert.component.ts","ng://@senior-gestao-relacionamento/angular-components/components/refresh-websocket-alert/refresh-websocket-alert.module.ts","ng://@senior-gestao-relacionamento/angular-components/locale/fallback.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/user.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/e-070-emp.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/e-070-fil.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/e-070-fil-crmx.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/collaborator-e-070-fil-crmx.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/squad.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/collaborator-squad.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/models/collaborator.ts","ng://@senior-gestao-relacionamento/angular-components/services/storage/storage.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/current-collaborator.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/storage/storage.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-collaborator/current-collaborator.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-tenant/models/modulo.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-tenant/current-tenant.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/current-tenant/current-tenant.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/month-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/ordinal-week-day-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/recurrence-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/repeat-when-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/enums/week-day-enum.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/schedule-form-rules.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/schedule-form-rules/schedule-form-rules.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/standard-filters/standard-filters.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/standard-filters/standard-filters.module.ts","ng://@senior-gestao-relacionamento/angular-components/services/validators/form-group-validators.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/validators/date-validators.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/models/topic.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/models/event.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/websocket.service.ts","ng://@senior-gestao-relacionamento/angular-components/services/websocket/websocket.module.ts","ng://@senior-gestao-relacionamento/angular-components/utils/string-converter.service.ts","ng://@senior-gestao-relacionamento/angular-components/utils/value-changes.service.ts","ng://@senior-gestao-relacionamento/angular-components/senior-gestao-relacionamento-angular-components.ts"],"sourcesContent":["export enum FormatEnum {\n PDF = 'Pdf',\n CSV = 'Csv',\n HTML = 'Html',\n XLSX = 'Xlsx',\n XML = 'Xml',\n ODT = 'Odt',\n RTF = 'Rtf',\n}\n","export enum ViewModeEnum {\n SIDEBAR= 'sidebar',\n DIALOG= 'dialog',\n}\n","import { Injectable} from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { ReportDto } from \"./models/report-dto\";\nimport { catchError, map } from \"rxjs/operators\";\nimport { ResponseListReportDto } from \"./models/response-list-report-dto\";\nimport { throwError } from \"rxjs\";\nimport { GenerateReportInputDto } from \"./models/generate-report-input-dto\";\nimport { GenerateReportOutputDto } from \"./models/generate-report-output-dto\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from 'primeng/api';\n\n@Injectable()\nexport class ReportsService {\n\n private readonly queriesPlatformReportUrl: string = `platform/report/queries`;\n private readonly actionsCrmxReportUrl: string = `crmx/report/actions`;\n\n constructor(\n private readonly _httpClient: HttpClient,\n private readonly _translate: TranslateService,\n private readonly _messageService: MessageService,\n ) {}\n\n public listReports(tag: string, ids?: string[]) {\n let params = new HttpParams();\n params = params.append('searchValue', tag);\n\n return this._httpClient.get<ResponseListReportDto>(`${this.queriesPlatformReportUrl}/listReports`, {params}).pipe(\n map((response: ResponseListReportDto) => response.reports.filter(\n (report: ReportDto) => ids ? ids.includes(report.id) : true\n )),\n this.defaultCatch()\n );\n }\n\n public getSharedReport(tag: string) {\n let params = new HttpParams();\n params = params.append('searchValue', tag);\n\n\n return this._httpClient.get<ResponseListReportDto>(`${this.queriesPlatformReportUrl}/listSharedReports`, { params }).pipe(\n map((response: ResponseListReportDto) => {\n return response.reports.filter((report: ReportDto) => report.enabled);\n }),\n this.defaultCatch()\n );\n }\n\n public generateReport(inputDto: GenerateReportInputDto) {\n return this._httpClient.post<GenerateReportOutputDto>(`${this.actionsCrmxReportUrl}/generateReport`, inputDto).pipe(this.defaultCatch());\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n let summary = err.status ? String(err.status) : 'Error';\n let detail;\n\n if (err.error && err.error.message) {\n detail = err.error.message;\n } else if (err.statusText) {\n detail = err.statusText;\n } else if (err.message) {\n detail = err.message;\n } else {\n detail = 'Error';\n }\n\n const errorUnauthorized = 401;\n\n if (err.status === errorUnauthorized) {\n summary = this._translate.instant('crmx.angular_components.error_unauthorized_title');\n detail = this._translate.instant('crmx.angular_components.error_unauthorized_description');\n }\n\n this._messageService.add({\n severity: 'error',\n summary,\n detail,\n sticky: true,\n });\n }\n\n return throwError(err);\n });\n }\n}\n","import {\n Component,\n EventEmitter,\n Input, OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from \"@angular/core\";\nimport {FormBuilder, FormControl, FormGroup, Validators} from \"@angular/forms\";\nimport {FieldType, FormField} from \"@seniorsistemas/angular-components\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\nimport {ReportsService} from \"./reports.service\";\nimport {ReportDto} from \"./models/report-dto\";\nimport {ViewModeEnum} from \"./enums/view-mode-enum\";\nimport {FormatEnum} from \"./enums/format-enum\";\nimport {GenerateReportOutputDto} from \"./models/generate-report-output-dto\";\nimport {ReportsOptions} from \"./models/reports-options\";\nimport {GenerateReportInputDto} from \"./models/generate-report-input-dto\";\nimport { catchError } from \"rxjs/operators\";\n\n@Component({\n selector: 'report',\n templateUrl: './reports.component.html',\n styleUrls: []\n})\nexport class ReportsComponent implements OnInit, OnChanges {\n\n @Input()\n public visible: boolean;\n\n @Input()\n public options: ReportsOptions;\n\n @Input()\n public formGroups: FormGroup[] = [];\n\n @Output()\n public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n public reportGenerated: EventEmitter<GenerateReportOutputDto> = new EventEmitter<GenerateReportOutputDto>();\n\n public formGroup: FormGroup;\n\n public formFields: FormField[];\n\n public reportsObservable: BehaviorSubject<any> = new BehaviorSubject([]);\n\n public readonly viewModeEnum = ViewModeEnum;\n\n public loading = false;\n\n private _reports: ReportDto[] = [];\n\n private _formatEnum: any[] = [];\n\n constructor(\n private readonly _translate: TranslateService,\n private readonly _formBuilder: FormBuilder,\n private readonly _reportsService: ReportsService,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (this.options) {\n this.options.header = this.options.header || this._translate.instant('crmx.angular_components.reports_title');\n\n this.options.labelConfirmButton = this.options.labelConfirmButton || this._translate.instant('crmx.angular_components.confirm');\n\n this._formatEnum = Object.keys(FormatEnum)\n .filter(key => !this.options.formats || this.options.formats.includes(FormatEnum[key]))\n .map(key => ({ label: key.toUpperCase(), value: FormatEnum[key] }));\n\n if (this.visible) {\n this.loading = true;\n\n this._executeObservable(this._reportsService.listReports(this.options.tenantReport || this.options.sharedReport))\n .subscribe((nextAction: boolean) => {\n if (nextAction) {\n this._executeObservable(this._reportsService.getSharedReport(this.options.sharedReport))\n .subscribe((nextAction: boolean) => {\n this.loading = false;\n })\n ;\n }\n })\n ;\n }\n }\n }\n\n public ngOnInit(): void {\n this.formGroup = this._getFormGroup();\n this.formFields = this._getFormFields();\n }\n\n public onCancel() {\n this.formGroup.reset();\n\n this.visible = false;\n this.visibleChange.emit(this.visible);\n }\n\n public onConfirm() {\n this.loading = true;\n const data = this.formGroup.getRawValue();\n let isValid = true;\n\n this.formGroups.forEach((formGroup: FormGroup) => isValid = isValid && formGroup.valid);\n\n if (!this.formGroup.valid || !isValid) {\n this.loading = false;\n this._validateAllFormFields(this.formGroup);\n\n this.formGroups.forEach(this._validateAllFormFields);\n } else {\n const input: GenerateReportInputDto = {\n report: {\n id: data.reports.id,\n parameters: this.options.parametersReport,\n format: data.format,\n timeToLive: 1000,\n },\n callbackEvent: this.options.callbackEvent,\n }\n\n this._reportsService.generateReport(input).subscribe(\n (outputDto: GenerateReportOutputDto) => {\n this.reportGenerated.emit(outputDto);\n this.onCancel();\n },\n () => {\n this.loading = false;\n }\n );\n }\n }\n\n public getErrorMessages() {\n return {\n required: this._translate.instant('crmx.angular_components.error_required'),\n };\n }\n\n public onVisibleChange(visible: boolean) {\n if (!visible) {\n this.onCancel();\n }\n }\n\n private _executeObservable(observable: any): Observable<boolean> {\n return new Observable((observer) => {\n observable\n .pipe(\n catchError((err: any) => {\n this.loading = false;\n return throwError(err);\n })\n )\n .subscribe(\n (reports: ReportDto[]) => {\n this._reports = reports;\n\n if (reports.length > 0) {\n this.loading = false;\n this._setValuesDefault();\n observer.next(false);\n } else {\n observer.next(true);\n }\n },\n () => {\n this.loading = false;\n }\n )\n ;\n });\n }\n\n private _setValuesDefault() {\n this.formGroup.controls.reports.setValue(this._reports[0]);\n this.formGroup.controls.format.setValue(this._formatEnum[0]?.value);\n }\n\n private _hasEmpty(target: any) {\n return (Object.keys(target).filter((key) => target[key] === '' || target[key] === undefined).length > 0);\n }\n\n private _validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this._validateAllFormFields(control);\n }\n });\n }\n\n private _getFormGroup(): FormGroup {\n return this._formBuilder.group({\n reports: [{ value: null, disabled: false }, Validators.compose([Validators.required])],\n format: [{ value: null, disabled: false }, Validators.compose([Validators.required])],\n });\n }\n\n private _getFormFields(): FormField[] {\n return [\n new FormField({\n type: FieldType.Autocomplete,\n name: \"reports\",\n label: this._translate.instant('crmx.angular_components.report'),\n size: {xl: 12, lg: 12, md: 12, sm: 12},\n multiple: false,\n dataKey: \"id\",\n appendTo: \"body\",\n emptyMessage: \"Nenhuma sugestão encontrada\",\n displayField: \"name\",\n required: () => true,\n suggestionsObservable: this.reportsObservable,\n onSearch: (val: string) => this.reportsObservable.next(\n this._reports.filter((reportDto: ReportDto) => reportDto.name.match(new RegExp(val, \"ig\")))\n ),\n footer: {\n help: {\n text: this._translate.instant('crmx.angular_components.reports_help', {tag: this.options.tenantReport}),\n icon: 'fa fa-info-circle'\n }\n }\n }),\n new FormField({\n type: FieldType.Enum,\n name: 'format',\n label: this._translate.instant('crmx.angular_components.format'),\n placeholder: this._translate.instant('crmx.angular_components.format_placeholder'),\n size: {xl: 12, lg: 12, md: 12, sm: 12},\n multiple: false,\n required: () => true,\n options: this._formatEnum,\n }),\n ];\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { SelectButtonModule } from \"primeng/selectbutton\";\nimport { DialogModule } from \"primeng/dialog\";\nimport {\n DynamicFormModule,\n LocaleModule,\n ButtonModule,\n SidebarModule,\n LoadingStateModule,\n} from \"@seniorsistemas/angular-components\";\nimport { ReportsService } from \"./reports.service\";\nimport { ReportsComponent } from \"./reports.component\";\nimport {PanelModule} from \"primeng/panel\";\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n FormsModule,\n RouterModule,\n CommonModule,\n TranslateModule,\n SelectButtonModule,\n DialogModule,\n ButtonModule,\n DynamicFormModule,\n SidebarModule,\n PanelModule,\n LoadingStateModule,\n ],\n declarations: [\n ReportsComponent,\n ],\n exports: [\n ReportsComponent,\n ],\n providers: [\n ReportsService,\n ]\n })\nexport class ReportsModule {}\n","import {Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\nimport {Message, MessageService} from \"primeng/api\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\n\n@Component({\n selector: 'refresh-websocket-alert',\n templateUrl: './refresh-websocket-alert.component.html',\n styleUrls: [\n './refresh-websocket-alert.component.scss',\n ]\n})\nexport class RefreshWebsocketAlertComponent implements OnInit {\n\n private open = false;\n\n @Input()\n key: string;\n\n @Output()\n closeRefreshSocket: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n refresh: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(\n private readonly _messageService: MessageService,\n private readonly _translateService: TranslateService,\n ) {\n }\n\n public ngOnInit(): void {\n this.closeRefreshSocket.subscribe(() => {\n this.open = false;\n });\n\n this.refresh.subscribe(() => {\n this._messageService.clear(this.key);\n this.closeRefreshSocket.emit();\n });\n }\n\n public show(message?: Message): void {\n if (!this.open) {\n this.open = true;\n\n const thisMessage: Message = {\n key: this.key,\n summary: message?.summary || this._translateService.instant('crmx.angular_components.refresh_websocket_alert_summary_default'),\n detail: message?.detail || this._translateService.instant('crmx.angular_components.refresh_websocket_alert_detail_default'),\n severity: message?.severity || 'info',\n life: 10000,\n };\n\n this._messageService.add(thisMessage);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { ButtonModule, LocaleModule } from \"@seniorsistemas/angular-components\";\nimport { ToastModule } from \"primeng/toast\";\nimport { RefreshWebsocketAlertComponent } from \"./refresh-websocket-alert.component\";\nimport {TranslateModule} from \"@ngx-translate/core\";\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n ButtonModule,\n TranslateModule,\n ToastModule,\n ],\n declarations: [\n RefreshWebsocketAlertComponent,\n ],\n exports: [\n RefreshWebsocketAlertComponent,\n ]\n})\nexport class RefreshWebsocketAlertModule {}\n","export const fallback: any = {\n \"crmx.angular_components.cancel\": \"Cancelar\",\n \"crmx.angular_components.confirm\": \"Gerar\",\n \"crmx.angular_components.error_required\": \"Campo obrigatório\",\n \"crmx.angular_components.error_unauthorized_title\": \"Acesso não autorizado\",\n \"crmx.angular_components.error_unauthorized_description\": \"Você não tem permissão para utilizar o recurso desejado\",\n \"crmx.angular_components.format\": \"Formato\",\n \"crmx.angular_components.format_placeholder\": \"Selecione uma Opção\",\n \"crmx.angular_components.report\": \"Relatório\",\n \"crmx.angular_components.reports_help\": \"Listando todos relatórios com a tag '{{tag}}'\",\n \"crmx.angular_components.reports_title\": \"Gerar Relatório\",\n \"crmx.angular_components.refresh_websocket_alert_click_here\": \"Clique aqui\",\n \"crmx.angular_components.refresh_websocket_alert_detail_default\": \"Para atualizar a tela\",\n \"crmx.angular_components.refresh_websocket_alert_summary_default\": \"Atualização de dados\"\n};\n","import { UserDto } from './user-dto';\n\nexport class User {\n public id?: string;\n public username: string;\n public fullName: string;\n public email: string;\n public photo?: string;\n public blocked: boolean = false;\n public custom?: any;\n\n public static fromDto(userDto: UserDto, originEntity?: string): User {\n const model: any = { ...userDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['username', 'fullName'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n return model as User;\n }\n\n public static toDto(user: User, originEntity?: string): UserDto {\n const dto: any = { ...user };\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { E070EmpDto } from './e-070-emp-dto';\n\nexport class E070Emp {\n public id?: string;\n public codEmp: string;\n public nomEmp: string;\n\n public static fromDto(e070EmpDto: E070EmpDto, originEntity?: string): E070Emp {\n const model: any = { ...e070EmpDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['codEmp', 'nomEmp'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n return model as E070Emp;\n }\n\n public static toDto(e070Emp: E070Emp, originEntity?: string): E070EmpDto {\n const dto: any = { ...e070Emp };\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { E070Emp } from './e-070-emp';\nimport { E070FilDto } from './e-070-fil-dto';\n\nexport class E070Fil {\n public id?: string;\n public codFil: number;\n public nomFil: string;\n public e070emp: E070Emp;\n\n public static fromDto(e070FilDto: E070FilDto, originEntity?: string): E070Fil {\n const model: any = { ...e070FilDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['e070emp.codEmp', 'e070emp.nomEmp', 'codFil', 'nomFil'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'E070Emp' && model.e070emp) {\n model.e070emp = E070Emp.fromDto(model.e070emp, 'E070Fil');\n }\n\n return model as E070Fil;\n }\n\n public static toDto(e070Fil: E070Fil, originEntity?: string): E070FilDto {\n const dto: any = { ...e070Fil };\n\n delete dto.label;\n\n if (originEntity !== 'E070Emp' && dto.e070emp) {\n dto.e070emp = E070Emp.toDto(dto.e070emp, 'E070Fil');\n }\n\n return dto;\n }\n}\n","import { E070Fil } from './e-070-fil';\nimport { E070FilCrmxDto } from './e-070-fil-crmx-dto';\n\nexport class E070FilCrmx {\n public id?: string;\n public active: boolean = false;\n public e070fil: E070Fil;\n public label: string;\n\n public static fromDto(e070FilCrmxDto: E070FilCrmxDto, originEntity?: string): E070FilCrmx {\n const model: any = { ...e070FilCrmxDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['e070fil.e070emp.codEmp', 'e070fil.e070emp.nomEmp', 'e070fil.codFil', 'e070fil.nomFil'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'E070Fil' && model.e070fil) {\n model.e070fil = E070Fil.fromDto(model.e070fil, 'E070FilCrmx');\n }\n\n return model as E070FilCrmx;\n }\n\n public static toDto(e070FilCrmx: E070FilCrmx, originEntity?: string): E070FilCrmxDto {\n const dto: any = { ...e070FilCrmx };\n\n delete dto.label;\n\n if (originEntity !== 'E070Fil' && dto.e070fil) {\n dto.e070fil = E070Fil.toDto(dto.e070fil, 'E070FilCrmx');\n }\n\n return dto;\n }\n}\n","import { Collaborator } from './collaborator';\nimport { E070FilCrmx } from './e-070-fil-crmx';\nimport { CollaboratorE070FilCrmxDto } from './collaborator-e-070-fil-crmx-dto';\n\nexport class CollaboratorE070FilCrmx {\n public id?: string;\n public collaborator?: Collaborator;\n public e070filCrmx: E070FilCrmx;\n public master: boolean = false;\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n\n public static fromDto(collaboratorE070FilCrmxDto: CollaboratorE070FilCrmxDto, originEntity?: string): CollaboratorE070FilCrmx {\n const model: any = { ...collaboratorE070FilCrmxDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['e070filCrmx.e070fil.codFil', 'e070filCrmx.e070fil.nomFil'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'Collaborator' && model.collaborator) {\n model.collaborator = Collaborator.fromDto(model.collaborator, 'CollaboratorE070FilCrmx');\n }\n\n if (originEntity !== 'E070FilCrmx' && model.e070filCrmx) {\n model.e070filCrmx = E070FilCrmx.fromDto(model.e070filCrmx, 'CollaboratorE070FilCrmx');\n }\n\n return model as CollaboratorE070FilCrmx;\n }\n\n public static toDto(collaboratorE070FilCrmx: CollaboratorE070FilCrmx, originEntity?: string): CollaboratorE070FilCrmxDto {\n const dto: any = { ...collaboratorE070FilCrmx };\n\n delete dto.label;\n\n if (originEntity !== 'Collaborator' && dto.collaborator) {\n dto.collaborator = Collaborator.toDto(dto.collaborator, 'CollaboratorE070FilCrmx');\n }\n\n if (originEntity !== 'E070FilCrmx' && dto.e070filCrmx) {\n dto.e070filCrmx = E070FilCrmx.toDto(dto.e070filCrmx, 'CollaboratorE070FilCrmx');\n }\n\n return dto;\n }\n}\n","import { SquadDto } from './squad-dto';\n\nexport class Squad {\n public id?: string;\n public name: string;\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n\n public static fromDto(squadDto: SquadDto, originEntity?: string): Squad {\n const model: any = { ...squadDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['name'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n return model as Squad;\n }\n\n public static toDto(squad: Squad, originEntity?: string): SquadDto {\n const dto: any = { ...squad };\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { Collaborator } from './collaborator';\nimport { Squad } from './squad';\nimport { CollaboratorSquadDto } from './collaborator-squad-dto';\n\nexport class CollaboratorSquad {\n public id?: string;\n public collaborator?: Collaborator;\n public squad: Squad;\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n\n public static fromDto(collaboratorSquadDto: CollaboratorSquadDto, originEntity?: string): CollaboratorSquad {\n const model: any = { ...collaboratorSquadDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['squad.name'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'Collaborator' && model.collaborator) {\n model.collaborator = Collaborator.fromDto(model.collaborator, 'CollaboratorSquad');\n }\n\n if (originEntity !== 'Squad' && model.squad) {\n model.squad = Squad.fromDto(model.squad, 'CollaboratorSquad');\n }\n\n return model as CollaboratorSquad;\n }\n\n public static toDto(collaboratorSquad: CollaboratorSquad, originEntity?: string): CollaboratorSquadDto {\n const dto: any = { ...collaboratorSquad };\n\n delete dto.label;\n\n if (originEntity !== 'Collaborator' && dto.collaborator) {\n dto.collaborator = Collaborator.toDto(dto.collaborator, 'CollaboratorSquad');\n }\n\n if (originEntity !== 'Squad' && dto.squad) {\n dto.squad = Squad.toDto(dto.squad, 'CollaboratorSquad');\n }\n\n return dto;\n }\n}\n","import { User } from './user';\nimport { CollaboratorE070FilCrmx } from './collaborator-e-070-fil-crmx';\nimport { CollaboratorSquad } from './collaborator-squad';\nimport { CollaboratorDto } from './collaborator-dto';\n\nexport class Collaborator {\n public id?: string;\n public code: number;\n public user?: User;\n public name: string;\n public email: string;\n public leader?: Collaborator;\n public active: boolean = false;\n public visible: boolean = false;\n public consolidatedLevel?: string;\n public branches?: CollaboratorE070FilCrmx[];\n public squads?: CollaboratorSquad[];\n public createdBy?: string;\n public createdAt?: Date;\n public changedBy?: string;\n public changedAt?: Date;\n public custom?: any;\n public label?: string;\n\n public static fromDto(collaboratorDto: CollaboratorDto, originEntity?: string): Collaborator {\n const model: any = { ...collaboratorDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['code', 'name'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n if (originEntity !== 'User' && model.user) {\n model.user = User.fromDto(model.user, 'Collaborator');\n }\n\n if (originEntity !== 'Collaborator' && model.leader) {\n model.leader = Collaborator.fromDto(model.leader, 'Collaborator');\n }\n\n if (originEntity !== 'CollaboratorE070FilCrmx' && model.branches) {\n model.branches = Object.values(model.branches).map((item: any) => CollaboratorE070FilCrmx.fromDto(item, 'Collaborator'));\n }\n\n if (originEntity !== 'CollaboratorSquad' && model.squads) {\n model.squads = Object.values(model.squads).map((item: any) => CollaboratorSquad.fromDto(item, 'Collaborator'));\n }\n\n return model as Collaborator;\n }\n\n public static toDto(collaborator: Collaborator, originEntity?: string): CollaboratorDto {\n const dto: any = { ...collaborator };\n\n delete dto.label;\n\n if (originEntity !== 'User' && dto.user) {\n dto.user = User.toDto(dto.user, 'Collaborator');\n }\n\n if (originEntity !== 'Collaborator' && dto.leader) {\n dto.leader = Collaborator.toDto(dto.leader, 'Collaborator');\n }\n\n if (originEntity !== 'CollaboratorE070FilCrmx' && dto.branches) {\n dto.branches = Object.values(dto.branches)\n .map((item: any) => CollaboratorE070FilCrmx.toDto(item, 'Collaborator'))\n .filter((item) => Object.keys(item).length);\n }\n\n if (originEntity !== 'CollaboratorSquad' && dto.squads) {\n dto.squads = Object.values(dto.squads)\n .map((item: any) => CollaboratorSquad.toDto(item, 'Collaborator'))\n .filter((item) => Object.keys(item).length);\n }\n\n return dto;\n }\n}\n","import { ComSeniorTokenDto } from './com-senior-token-dto';\nimport { Injectable } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@Injectable()\nexport class StorageService {\n\n constructor(\n private readonly cookieService: CookieService\n ) {\n }\n\n public getUser(): any {\n return JSON.parse(localStorage.getItem('SENIOR_USER_INFO')).data;\n }\n\n public getUserId(): string {\n return this.getUser().id;\n }\n\n public store(key: string, value: any) {\n const userId = this.getUserId();\n localStorage.setItem(`${userId}_${key}`, JSON.stringify(value));\n }\n\n public get(key: string) {\n const userId = this.getUserId();\n const value = localStorage.getItem(`${userId}_${key}`);\n\n if (value) {\n return JSON.parse(value);\n }\n\n return null;\n }\n\n private getComSeniorToken(): ComSeniorTokenDto {\n return JSON.parse(this.cookieService.get('com.senior.token'));\n }\n\n public getBaseUrl(): string {\n return this.cookieService.get('com.senior.base.url');\n }\n\n public getTenantDomain(): string {\n return this.getComSeniorToken().username.split('@')[1];\n }\n\n public getTenantName(): string {\n return this.getComSeniorToken().tenantName;\n }\n\n public getUsername(): string {\n return this.getComSeniorToken().username.split('@')[0];\n }\n\n public getLogin(): string {\n return this.getComSeniorToken().username;\n }\n\n public getToken(): string {\n return this.getComSeniorToken().access_token;\n }\n\n public isUserAdmin(): boolean {\n return this.getUsername() === 'admin';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Collaborator, CollaboratorDto, CollaboratorE070FilCrmx } from './models';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { StorageService } from '../storage/storage.service';\nimport { catchError, takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CurrentCollaboratorService {\n private readonly ngUnsubscribe = new Subject();\n\n private readonly COLLABORATOR_KEY: string = 'CRMX_COLLABORATOR';\n\n constructor(\n private readonly http: HttpClient,\n private readonly storageService: StorageService\n ) {}\n\n public validate() {\n this.call(false).subscribe((collaborator) => {\n if (collaborator.active === false) {\n this.redirect('collaborator-inactive');\n }\n });\n }\n\n public get(): Observable<Collaborator> {\n return this.call(true);\n }\n\n public getE070FilCrmxMaster(): Observable<CollaboratorE070FilCrmx> {\n return new Observable<CollaboratorE070FilCrmx>((observer) => {\n this.call(true).subscribe((collaborator) => {\n const e070FilCrmxMaster = { ...collaborator.branches.find((branch) => branch.master) };\n\n if (e070FilCrmxMaster) {\n e070FilCrmxMaster.collaborator = collaborator;\n\n observer.next(e070FilCrmxMaster);\n }\n\n observer.complete();\n });\n });\n }\n\n private call(useCache: boolean): Observable<Collaborator> {\n return new Observable((observer) => {\n const collaboratorDto = this.storageService.get(this.COLLABORATOR_KEY);\n\n if (collaboratorDto !== null && useCache) {\n observer.next(Collaborator.fromDto(collaboratorDto));\n } else {\n this.http\n .get<CollaboratorDto>('crmx_collaborator/foundation/queries/getCurrentCollaborator')\n .pipe(\n takeUntil(this.ngUnsubscribe),\n catchError((err: any) => {\n const statusCode = 404;\n if (err.status === statusCode) {\n this.redirect('collaborator-not-found');\n }\n throw err;\n })\n )\n .subscribe((collaboratorDto) => {\n collaboratorDto = this.removeCircularReferences(collaboratorDto);\n\n this.storageService.store(this.COLLABORATOR_KEY, collaboratorDto);\n observer.next(Collaborator.fromDto(collaboratorDto));\n });\n }\n\n observer.complete();\n });\n }\n\n private redirect(page: string) {\n location.href = `${this.storageService.getBaseUrl()}/gestao-relacionamento/crmx_collaborator/foundation/#/${page}`;\n }\n\n private removeCircularReferences(obj: any) {\n const seen = new WeakSet();\n return JSON.parse(\n JSON.stringify(obj, (key, value) => {\n if (typeof value === 'object') {\n if (seen.has(value)) {\n return undefined;\n }\n seen.add(value);\n }\n\n return value;\n })\n );\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { StorageService } from \"./storage.service\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@NgModule({\n imports: [],\n providers: [\n StorageService,\n CookieService\n ],\n})\nexport class StorageModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CurrentCollaboratorService } from \"./current-collaborator.service\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { StorageModule } from \"../storage/storage.module\";\n\n@NgModule({\n imports: [\n HttpClientModule,\n StorageModule,\n ],\n providers: [\n CurrentCollaboratorService\n ],\n})\nexport class CurrentCollaboratorModule {}\n","\nimport { ModuloDto } from './modulo-dto';\n\nexport class Modulo {\n public id?: string;\n public modulo: string;\n public ativo: boolean;\n\n public static fromDto(moduleDto: ModuloDto, originEntity?: string): Modulo {\n const model: any = { ...moduleDto };\n\n const lookupSeparator = ' - ';\n const displayFields = ['modulo'];\n\n model.label = displayFields.map((field) => model[field]).join(lookupSeparator);\n\n return model as Modulo;\n }\n\n public static toDto(module: Modulo, originEntity?: string): ModuloDto {\n const dto: any = { ...module };\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, Subject } from \"rxjs\";\nimport { StorageService } from '../storage/storage.service';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { Modulo, ModuloDto } from './models';\n\n@Injectable()\nexport class CurrentTenantService {\n private readonly ngUnsubscribe = new Subject();\n\n private readonly ERPX_MODULE_KEY: string = 'ERPX_MODULE';\n\n constructor(\n private readonly http: HttpClient,\n private readonly storageService: StorageService\n ) {}\n\n public validate(): Observable<Modulo> {\n return new Observable((observer) => {\n this.call(false).subscribe((modulo) => {\n if (modulo.ativo === false) {\n this.redirect('module-inactive');\n } else {\n observer.next(modulo);\n observer.complete();\n }\n });\n });\n }\n\n private call(useCache: boolean): Observable<Modulo> {\n return new Observable((observer) => {\n const moduleDto = this.storageService.get(this.ERPX_MODULE_KEY);\n\n if (moduleDto !== null && useCache) {\n observer.next(Modulo.fromDto(moduleDto));\n } else {\n this.http\n .get<ResponseModulo>('erpx_fnd/empresa/entities/modulos?filter=modulo%20eq%20%27CRM%27%20and%20ativo%20eq%20%27true%27')\n .pipe(\n takeUntil(this.ngUnsubscribe),\n catchError((err: any) => {\n throw err;\n })\n )\n .subscribe((response: ResponseModulo) => {\n if (response.totalElements === 0) {\n this.redirect('module-inactive');\n } else {\n const moduloDto = response.contents[0];\n this.storageService.store(this.ERPX_MODULE_KEY, moduloDto);\n observer.next(Modulo.fromDto(moduloDto));\n }\n });\n }\n\n observer.complete();\n });\n }\n\n private redirect(page: string) {\n location.href = `${this.storageService.getBaseUrl()}/gestao-relacionamento/crmx_collaborator/foundation/#/${page}`;\n }\n}\n\nexport interface ResponseModulo {\n totalElements: number;\n totalPages: number;\n contents: ModuloDto[];\n}\n","import { NgModule } from \"@angular/core\";\nimport { CurrentTenantService } from \"./current-tenant.service\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { StorageModule } from \"../storage/storage.module\";\n\n@NgModule({\n imports: [\n HttpClientModule,\n StorageModule,\n ],\n providers: [\n CurrentTenantService\n ],\n})\nexport class CurrentTenantModule {}\n","export enum MonthEnum {\n JANUARY = 'JANUARY',\n FEBRUARY = 'FEBRUARY',\n MARCH = 'MARCH',\n APRIL = 'APRIL',\n MAY = 'MAY',\n JUNE = 'JUNE',\n JULY = 'JULY',\n AUGUST = 'AUGUST',\n SEPTEMBER = 'SEPTEMBER',\n OCTOBER = 'OCTOBER',\n NOVEMBER = 'NOVEMBER',\n DECEMBER = 'DECEMBER',\n}\n","export enum OrdinalWeekDayEnum {\n FIRST = 'FIRST',\n SECOND = 'SECOND',\n THIRD = 'THIRD',\n FOURTH = 'FOURTH',\n LAST = 'LAST',\n}\n","export enum RecurrenceEnum {\n DAILY = 'DAILY',\n WEEKLY = 'WEEKLY',\n MONTHLY = 'MONTHLY',\n YEARLY = 'YEARLY',\n}\n","export enum RepeatWhenEnum {\n IN_DAY = 'IN_DAY',\n IN_ORDINAL_WEEK_DAY = 'IN_ORDINAL_WEEK_DAY',\n}\n","export enum WeekDayEnum {\n SUNDAY = 'SUNDAY',\n MONDAY = 'MONDAY',\n TUESDAY = 'TUESDAY',\n WEDNESDAY = 'WEDNESDAY',\n THURSDAY = 'THURSDAY',\n FRIDAY = 'FRIDAY',\n SATURDAY = 'SATURDAY',\n}\n","import { Injectable } from \"@angular/core\";\nimport { FormGroup, Validators } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { RecurrenceEnum, RepeatWhenEnum } from \"./enums\";\n\n@Injectable()\nexport class ScheduleFormRulesService {\n\n constructor() {\n }\n\n private readonly ngUnsubscribe = new Subject();\n\n public recurrencesValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n this.recurrenceValueChangeSubscribe(formGroup, formFields);\n this.repeatWhenValueChangeSubscribe(formGroup, formFields);\n }\n\n public valueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n this.allDayValueChangeSubscribe(formGroup, formFields);\n }\n\n private allDayValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n formGroup.controls.allDay.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value: boolean) => {\n const fields = ['startTime', 'endTime'];\n\n if (value) {\n this.disableFields(formGroup, formFields, fields);\n } else {\n this.enableFields(formGroup, formFields, fields);\n }\n });\n }\n\n private recurrenceValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n formGroup.controls.recurrence.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value: RecurrenceEnum) => {\n const fieldsToDisable = ['weekDays', 'repeatWhen', 'repeatWhenDay', 'repeatWhenMonth', 'repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth'];\n\n this.disableFields(formGroup, formFields, fieldsToDisable);\n\n if (value === RecurrenceEnum.WEEKLY) {\n const fieldWeekDays = formFields.find((field) => field.name === 'weekDays');\n fieldWeekDays.visible = () => true;\n fieldWeekDays.required = () => true;\n\n formGroup.controls.weekDays.setValidators([Validators.required]);\n }\n\n if (value === RecurrenceEnum.MONTHLY || value === RecurrenceEnum.YEARLY) {\n const fieldRepeatWhen = formFields.find((field) => field.name === 'repeatWhen');\n fieldRepeatWhen.visible = () => true;\n fieldRepeatWhen.required = () => true;\n\n formGroup.controls.repeatWhen.setValidators([Validators.required]);\n formGroup.controls.repeatWhen.setValue(RepeatWhenEnum.IN_DAY);\n }\n });\n }\n\n private repeatWhenValueChangeSubscribe(formGroup: FormGroup, formFields: any[]) {\n formGroup.controls.repeatWhen.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value: RepeatWhenEnum) => {\n const fieldsToDisable = ['repeatWhenDay', 'repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth', 'repeatWhenMonth'];\n\n this.disableFields(formGroup, formFields, fieldsToDisable);\n\n if (value === RepeatWhenEnum.IN_DAY) {\n const fieldRepeatWhenDay = formFields.find((field) => field.name === 'repeatWhenDay');\n fieldRepeatWhenDay.visible = () => true;\n fieldRepeatWhenDay.required = () => true;\n\n formGroup.controls.repeatWhenDay.setValidators([Validators.required]);\n }\n\n if (value === RepeatWhenEnum.IN_ORDINAL_WEEK_DAY) {\n const fieldsToEnable = ['repeatWhenOrdinalWeekDay', 'repeatWhenWeekMonth'];\n this.enableFields(formGroup, formFields, fieldsToEnable);\n }\n\n if (value !== undefined && formGroup.controls.recurrence.value === RecurrenceEnum.YEARLY) {\n const fieldRepeatWhenMonth = formFields.find((field) => field.name === 'repeatWhenMonth');\n fieldRepeatWhenMonth.visible = () => true;\n fieldRepeatWhenMonth.required = () => true;\n\n formGroup.controls.repeatWhenMonth.setValidators([Validators.required]);\n }\n });\n }\n\n private disableFields(formGroup: FormGroup, formFields: any[], fields: string[]) {\n formFields\n .filter((field) => fields.includes(field.name))\n .forEach((field) => {\n field.visible = () => false;\n field.required = () => false;\n });\n\n for (const controlsKey in formGroup.controls) {\n if (fields.includes(controlsKey)) {\n const fieldFormGroup = formGroup.controls[controlsKey] as FormGroup;\n\n fieldFormGroup.setValue(undefined);\n fieldFormGroup.clearValidators();\n fieldFormGroup.setErrors(null);\n }\n }\n }\n\n private enableFields(formGroup: FormGroup, formFields: any[], fields: string[]) {\n formFields\n .filter((field) => fields.includes(field.name))\n .forEach((field) => {\n field.visible = () => true;\n field.required = () => true;\n });\n\n for (const controlsKey in formGroup.controls) {\n if (fields.includes(controlsKey)) {\n const fieldFormGroup = formGroup.controls[controlsKey] as FormGroup;\n fieldFormGroup.setValidators([Validators.required]);\n }\n }\n }\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { ScheduleFormRulesService } from \"./schedule-form-rules.service\";\n\n@NgModule({\n imports: [\n ],\n providers: [\n ScheduleFormRulesService\n ],\n})\nexport class ScheduleFormRulesModule {}\n","import { Injectable } from \"@angular/core\";\nimport { Collaborator, CurrentCollaboratorService } from \"../current-collaborator\";\nimport { Observable } from \"rxjs\";\n\n@Injectable()\nexport class StandardFiltersService {\n\n constructor(\n private readonly currentCollaboratorService: CurrentCollaboratorService\n ) {\n }\n\n public addFilterE070emp(filterQuery: string, alias: string): Observable<string> {\n return new Observable<string>(observer => {\n this.currentCollaboratorService.get().subscribe((collaborator: Collaborator) => {\n const ids: string[] = Array.from(new Set(collaborator.branches.map(branch => branch.e070filCrmx.e070fil.e070emp.id)));\n observer.next(this.addFilterIn(filterQuery, alias, 'id', ids));\n });\n });\n }\n\n public addFilterE070fil(filterQuery: string, alias: string): Observable<string> {\n return new Observable<string>(observer => {\n this.currentCollaboratorService.get().subscribe((collaborator: Collaborator) => {\n const ids: string[] = Array.from(new Set(collaborator.branches.map(branch => branch.e070filCrmx.id)));\n\n observer.next(this.addFilterIn(filterQuery, alias, 'id', ids));\n });\n });\n }\n\n public addFilterActive(filterQuery: string, alias: string): string {\n const filter = this.addAlias(alias, 'active eq true');\n return this.addFilter(filterQuery, filter);\n }\n\n public addFilter(filterQuery: string, filter: string): string {\n return (filterQuery ? `${filterQuery} and ` : '') + filter;\n }\n\n public addFilterIn(filterQuery: string, alias: string, field: string, values: any[]): string {\n const filters: string[] = values.map(value => `${this.addAlias(alias, field)} eq '${value}'`);\n\n return this.addFilter(filterQuery, `(${filters.join(' or ')})`);\n }\n\n private addAlias(alias: string, filter: string): string {\n return (alias ? `${alias}.` : '') + filter;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { StandardFiltersService } from \"./standard-filters.service\";\nimport { CurrentCollaboratorModule } from \"../current-collaborator\";\n\n@NgModule({\n imports: [\n CurrentCollaboratorModule\n ],\n providers: [\n StandardFiltersService\n ],\n})\nexport class StandardFiltersModule {}\n","import { AbstractControl } from \"@angular/forms\";\n\nexport class FormGroupValidatorsService {\n public static startDataGreaterThanEndDataValidator(endDateField: string, errorMessage: string) {\n const fn = function (control: AbstractControl) {\n if (control.parent) {\n const startDate = new Date(control.value);\n const endDate = new Date(control.parent.controls[endDateField]?.value);\n\n if (startDate > endDate) {\n const rtn = {};\n rtn[errorMessage] = true;\n return rtn;\n }\n }\n\n return null;\n };\n\n return fn;\n }\n\n public static endDateLessThanStartDateValidator(startDateField: string, errorMessage: string) {\n const fn = function(control: AbstractControl) {\n if (control.parent) {\n const startDate = new Date(control.parent.controls[startDateField]?.value);\n const endDate = new Date(control.value);\n\n if (startDate > endDate) {\n const rtn = {};\n rtn[errorMessage] = true;\n return rtn;\n }\n }\n\n return null;\n };\n\n return fn;\n };\n}\n","export class DateValidatorsService {\n public static isLastWeekdayOfMonth(date: Date): boolean {\n const newDate = new Date(date);\n const day = 7;\n newDate.setDate(date.getDate() + day);\n\n return newDate.getMonth() > date.getMonth() || newDate.getFullYear() > date.getFullYear();\n }\n}\n","import { TopicDto } from \"./topic-dto\";\n\nexport class Topic {\n domain: string;\n service: string;\n primitive: string;\n allUsers: boolean;\n\n public static fromDto(topicDto: TopicDto): Topic {\n const topic = new Topic();\n\n Object.assign(topic, topicDto);\n\n return topic;\n }\n\n public getTopic(tenantDomain: string, token?: string): string {\n let topic = '/topic/'.concat(tenantDomain);\n\n if (this.allUsers === false) {\n topic = topic\n .concat('/')\n .concat(token)\n ;\n }\n\n return topic.concat(this.toString());\n }\n\n public toString(): string {\n return '/'\n .concat(this.domain)\n .concat('/')\n .concat(this.service)\n .concat('/')\n .concat(this.primitive)\n ;\n }\n}\n","import { Topic } from \"./topic\";\nimport { EventDto } from \"./event-dto\";\n\nexport class Event extends Topic {\n public callback: (payload: any) => void;\n public originCallback: string;\n\n public static fromDto(eventDto: EventDto): Event {\n const event = new Event();\n\n Object.assign(event, eventDto);\n\n return event;\n }\n\n public match(event: Event): boolean {\n return this.toString() === event.toString()\n && this.originCallback === event.originCallback\n ;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CompatClient, Stomp } from '@stomp/stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { StorageService } from '../storage/storage.service';\nimport { concatMap } from 'rxjs/operators';\nimport { Router } from \"@angular/router\";\nimport { Event } from \"./models/event\";\nimport { EventDto } from \"./models/event-dto\";\nimport { IMessage } from \"@stomp/stompjs/esm5/i-message\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WebsocketService {\n\n private readonly _client: CompatClient = Stomp.over(\n new SockJS (\n this.storageService.getBaseUrl().concat('/websocket/subscription')\n )\n );\n\n private readonly _bindQueue = new Subject<Event>();\n\n private readonly _eventBindingList: Event[] = [];\n\n private readonly _messageQueue: {message: IMessage, event: Event}[] = [];\n\n constructor(\n private readonly router: Router,\n private readonly storageService: StorageService\n ) {\n this._bindQueue.pipe(\n concatMap(event => this._bindObservable(event))\n ).subscribe();\n }\n\n public bind(eventDto: EventDto) {\n eventDto.originCallback = eventDto.originCallback || this.router.url\n this._bindQueue.next(Event.fromDto(eventDto));\n }\n\n private _bindObservable(event: Event): Observable<void> {\n return new Observable<void>(observer => {\n if (this._client.connected) {\n this._registerBind(event);\n this._finishBindObservable(observer);\n } else {\n this._connectClient(event, observer);\n }\n });\n }\n\n private _finishBindObservable(observer: any) {\n observer.next();\n observer.complete();\n }\n\n private _connectClient(event: Event, observer: any) {\n this._client.connect(\n {},\n () => {\n this._registerBind(event);\n this._finishBindObservable(observer);\n },\n () => observer.error(new Error('Websocket connection error!'))\n );\n }\n\n private _registerBind(event: Event) {\n const eventBinding = this._findEventBinding(event);\n\n if (eventBinding) {\n this._remakeBind(event, eventBinding);\n } else {\n this._makeBind(event);\n }\n }\n\n private _remakeBind(event: Event, eventBinding: Event) {\n eventBinding.callback = event.callback;\n\n this._messageQueue\n .filter(messageQueue => messageQueue.event.match(event))\n .forEach(messageQueue => this._executeCallback(messageQueue.message, event));\n }\n\n private _makeBind(event: Event) {\n this._eventBindingList.push(event);\n\n this._client.subscribe(\n event.getTopic(this.storageService.getTenantDomain(), this.storageService.getToken()),\n (message) => this._executeCallback(message, event)\n );\n }\n\n private _executeCallback(message: IMessage, event: Event) {\n const eventBinding = this._findEventBinding(event);\n\n if (eventBinding.originCallback === this.router.url) {\n this._findEventBinding(event).callback(this._resolveRefs(JSON.parse(message.body).data));\n } else {\n this._messageQueue\n .filter(messageQueue => messageQueue.event.match(event))\n .forEach((messageQueue, index) => this._messageQueue.splice(index, 1));\n\n this._messageQueue.push({message, event});\n }\n }\n\n private _findEventBinding(event: Event): Event {\n return this._eventBindingList.find(eventBinding => eventBinding.match(event));\n }\n\n private _resolveRefs(payload: any): any {\n\n const resolve = (obj: any, rootObj: any) => {\n if (Array.isArray(obj)) {\n obj.forEach(item => resolve(item, rootObj));\n }\n\n if (obj !== null && typeof obj === 'object') {\n Object.keys(obj).forEach(key => {\n if (key === '$ref' && obj[key]) {\n const refPath = obj[key]; // Caminho da referência\n Object.assign(obj, getDataFromRef(refPath, rootObj));\n delete obj[key];\n } else {\n resolve(obj[key], rootObj);\n }\n });\n }\n }\n\n const getDataFromRef = (ref: string, rootObj: any) => {\n const regex = /\\[\"(.*?)\"\\]/g;\n const result = [];\n let match;\n\n while ((match = regex.exec(ref)) !== null) {\n result.push(match[1]);\n }\n\n return result.reduce((acc, part) => acc && acc[part], rootObj);\n }\n\n resolve(payload, payload);\n\n return payload;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { WebsocketService } from \"./websocket.service\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n imports: [\n RouterModule,\n ],\n providers: [\n WebsocketService,\n ]\n})\nexport class WebsocketModule {}\n","\nexport class StringConverterService {\n\n public static toUnderscore(camelCase: string): string {\n const regex: RegExp = /([a-z])([A-Z])/g;\n return camelCase.replace(regex, '$1_$2').toLowerCase();\n }\n}\n","import { distinctUntilChanged } from \"rxjs/operators\";\nimport { Observable } from \"rxjs\";\n\nexport class ValueChangesService {\n\n public static pipeDefault(control: any): Observable<any> {\n return control.valueChanges.pipe(distinctUntilChanged());\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {CurrentCollaboratorModule as ɵb,CurrentCollaboratorService as ɵc} from './services/current-collaborator';\nexport {StorageModule as ɵa} from './services/storage/storage.module';"],"names":[],"mappings":"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"}
@@ -730,13 +730,13 @@ var CurrentCollaboratorService = /** @class */ (function () {
730
730
  observer.next(Collaborator.fromDto(collaboratorDto));
731
731
  }
732
732
  else {
733
- _this.http.get('crmx_collaborator/foundation/queries/getCurrentCollaborator')
733
+ _this.http
734
+ .get('crmx_collaborator/foundation/queries/getCurrentCollaborator')
734
735
  .pipe(takeUntil(_this.ngUnsubscribe), catchError(function (err) {
735
736
  var statusCode = 404;
736
737
  if (err.status === statusCode) {
737
738
  _this.redirect('collaborator-not-found');
738
739
  }
739
- ;
740
740
  throw err;
741
741
  }))
742
742
  .subscribe(function (collaboratorDto) {
@@ -805,6 +805,102 @@ var CurrentCollaboratorModule = /** @class */ (function () {
805
805
  return CurrentCollaboratorModule;
806
806
  }());
807
807
 
808
+ var Modulo = /** @class */ (function () {
809
+ function Modulo() {
810
+ }
811
+ Modulo.fromDto = function (moduleDto, originEntity) {
812
+ var model = __assign({}, moduleDto);
813
+ var lookupSeparator = ' - ';
814
+ var displayFields = ['modulo'];
815
+ model.label = displayFields.map(function (field) { return model[field]; }).join(lookupSeparator);
816
+ return model;
817
+ };
818
+ Modulo.toDto = function (module, originEntity) {
819
+ var dto = __assign({}, module);
820
+ delete dto.label;
821
+ return dto;
822
+ };
823
+ return Modulo;
824
+ }());
825
+
826
+ var CurrentTenantService = /** @class */ (function () {
827
+ function CurrentTenantService(http, storageService) {
828
+ this.http = http;
829
+ this.storageService = storageService;
830
+ this.ngUnsubscribe = new Subject();
831
+ this.ERPX_MODULE_KEY = 'ERPX_MODULE';
832
+ }
833
+ CurrentTenantService.prototype.validate = function () {
834
+ var _this = this;
835
+ return new Observable(function (observer) {
836
+ _this.call(false).subscribe(function (modulo) {
837
+ if (modulo.ativo === false) {
838
+ _this.redirect('module-inactive');
839
+ }
840
+ else {
841
+ observer.next(modulo);
842
+ observer.complete();
843
+ }
844
+ });
845
+ });
846
+ };
847
+ CurrentTenantService.prototype.call = function (useCache) {
848
+ var _this = this;
849
+ return new Observable(function (observer) {
850
+ var moduleDto = _this.storageService.get(_this.ERPX_MODULE_KEY);
851
+ if (moduleDto !== null && useCache) {
852
+ observer.next(Modulo.fromDto(moduleDto));
853
+ }
854
+ else {
855
+ _this.http
856
+ .get('erpx_fnd/empresa/entities/modulos?filter=modulo%20eq%20%27CRM%27%20and%20ativo%20eq%20%27true%27')
857
+ .pipe(takeUntil(_this.ngUnsubscribe), catchError(function (err) {
858
+ throw err;
859
+ }))
860
+ .subscribe(function (response) {
861
+ if (response.totalElements === 0) {
862
+ _this.redirect('module-inactive');
863
+ }
864
+ else {
865
+ var moduloDto = response.contents[0];
866
+ _this.storageService.store(_this.ERPX_MODULE_KEY, moduloDto);
867
+ observer.next(Modulo.fromDto(moduloDto));
868
+ }
869
+ });
870
+ }
871
+ observer.complete();
872
+ });
873
+ };
874
+ CurrentTenantService.prototype.redirect = function (page) {
875
+ location.href = this.storageService.getBaseUrl() + "/gestao-relacionamento/crmx_collaborator/foundation/#/" + page;
876
+ };
877
+ CurrentTenantService.ctorParameters = function () { return [
878
+ { type: HttpClient },
879
+ { type: StorageService }
880
+ ]; };
881
+ CurrentTenantService = __decorate([
882
+ Injectable()
883
+ ], CurrentTenantService);
884
+ return CurrentTenantService;
885
+ }());
886
+
887
+ var CurrentTenantModule = /** @class */ (function () {
888
+ function CurrentTenantModule() {
889
+ }
890
+ CurrentTenantModule = __decorate([
891
+ NgModule({
892
+ imports: [
893
+ HttpClientModule,
894
+ StorageModule,
895
+ ],
896
+ providers: [
897
+ CurrentTenantService
898
+ ],
899
+ })
900
+ ], CurrentTenantModule);
901
+ return CurrentTenantModule;
902
+ }());
903
+
808
904
  var MonthEnum;
809
905
  (function (MonthEnum) {
810
906
  MonthEnum["JANUARY"] = "JANUARY";
@@ -994,7 +1090,7 @@ var StandardFiltersService = /** @class */ (function () {
994
1090
  });
995
1091
  };
996
1092
  StandardFiltersService.prototype.addFilterActive = function (filterQuery, alias) {
997
- var filter = this.addAlias(alias, 'active = true');
1093
+ var filter = this.addAlias(alias, 'active eq true');
998
1094
  return this.addFilter(filterQuery, filter);
999
1095
  };
1000
1096
  StandardFiltersService.prototype.addFilter = function (filterQuery, filter) {
@@ -1286,5 +1382,5 @@ var ValueChangesService = /** @class */ (function () {
1286
1382
  * Generated bundle index. Do not edit.
1287
1383
  */
1288
1384
 
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 };
1385
+ export { Collaborator, CollaboratorE070FilCrmx, CollaboratorSquad, CurrentCollaboratorModule, CurrentCollaboratorService, CurrentTenantModule, CurrentTenantService, DateValidatorsService, E070Emp, E070Fil, E070FilCrmx, Event, FormGroupValidatorsService, FormatEnum, Modulo, 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 };
1290
1386
  //# sourceMappingURL=senior-gestao-relacionamento-angular-components.js.map