@senior-gestao-relacionamento/angular-components 1.7.2 → 1.8.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 (27) hide show
  1. package/bundles/senior-gestao-relacionamento-angular-components.umd.js +49 -17
  2. package/bundles/senior-gestao-relacionamento-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-gestao-relacionamento-angular-components.umd.min.js.map +1 -1
  5. package/esm2015/senior-gestao-relacionamento-angular-components.js +3 -1
  6. package/esm2015/services/current-collaborator/current-collaborator.service.js +11 -12
  7. package/esm2015/services/index.js +2 -1
  8. package/esm2015/services/resolvers/access-validation.resolve.js +33 -0
  9. package/esm2015/services/resolvers/index.js +2 -0
  10. package/esm2015/services/standard-filters/standard-filters.service.js +5 -2
  11. package/esm5/senior-gestao-relacionamento-angular-components.js +3 -1
  12. package/esm5/services/current-collaborator/current-collaborator.service.js +11 -13
  13. package/esm5/services/index.js +2 -1
  14. package/esm5/services/resolvers/access-validation.resolve.js +35 -0
  15. package/esm5/services/resolvers/index.js +2 -0
  16. package/esm5/services/standard-filters/standard-filters.service.js +5 -2
  17. package/fesm2015/senior-gestao-relacionamento-angular-components.js +42 -13
  18. package/fesm2015/senior-gestao-relacionamento-angular-components.js.map +1 -1
  19. package/fesm5/senior-gestao-relacionamento-angular-components.js +44 -14
  20. package/fesm5/senior-gestao-relacionamento-angular-components.js.map +1 -1
  21. package/package.json +1 -1
  22. package/senior-gestao-relacionamento-angular-components.d.ts +2 -0
  23. package/senior-gestao-relacionamento-angular-components.metadata.json +1 -1
  24. package/services/current-collaborator/current-collaborator.service.d.ts +0 -1
  25. package/services/index.d.ts +1 -0
  26. package/services/resolvers/access-validation.resolve.d.ts +9 -0
  27. package/services/resolvers/index.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","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/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/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/utils/utils.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/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/locale/fallback.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","FormatEnum","ViewModeEnum","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","MonthEnum","OrdinalWeekDayEnum","RecurrenceEnum","RepeatWhenEnum","WeekDayEnum","ReportsService","_httpClient","_translate","_messageService","queriesPlatformReportUrl","actionsCrmxReportUrl","listReports","tag","ids","params","HttpParams","append","get","pipe","map","response","reports","filter","report","includes","id","defaultCatch","getSharedReport","enabled","generateReport","inputDto","post","_this","catchError","err","summary","status","String","detail","error","message","statusText","instant","add","severity","sticky","throwError","HttpClient","TranslateService","MessageService","Injectable","ReportsComponent","_formBuilder","_reportsService","formGroups","visibleChange","EventEmitter","reportGenerated","reportsObservable","BehaviorSubject","viewModeEnum","loading","_reports","_formatEnum","ngOnChanges","changes","options","header","labelConfirmButton","keys","formats","label","toUpperCase","value","visible","_executeObservable","tenantReport","sharedReport","subscribe","nextAction","ngOnInit","formGroup","_getFormGroup","formFields","_getFormFields","onCancel","reset","emit","onConfirm","data","getRawValue","isValid","forEach","valid","input","parameters","parametersReport","format","timeToLive","callbackEvent","outputDto","_validateAllFormFields","getErrorMessages","required","onVisibleChange","observable","Observable","observer","_setValuesDefault","next","controls","setValue","_a","_hasEmpty","undefined","field","control","FormControl","markAsDirty","onlySelf","FormGroup","group","disabled","Validators","compose","FormField","type","FieldType","Autocomplete","name","size","xl","lg","md","sm","multiple","dataKey","appendTo","emptyMessage","displayField","suggestionsObservable","onSearch","val","reportDto","match","RegExp","footer","help","text","icon","Enum","placeholder","FormBuilder","Input","Output","Component","selector","template","ReportsModule","NgModule","imports","LocaleModule","forChild","FormsModule","RouterModule","CommonModule","TranslateModule","SelectButtonModule","DialogModule","ButtonModule","DynamicFormModule","SidebarModule","PanelModule","LoadingStateModule","declarations","exports","providers","RefreshWebsocketAlertComponent","_translateService","open","closeRefreshSocket","refresh","clear","show","thisMessage","life","RefreshWebsocketAlertModule","ToastModule","numberTypes","Integer","Double","numberPattern","getTypeInformation","Time","Date","LocalDateTime","DateTime","isValidValue","typeExists","getProp","obj","path","split","reduce","result","prop","getSuggestionValue","displayFields","ownerEntity","separator","acc","resolveRefs","payload","resolve","rootObj","isArray","item","refPath","ref","regex","exec","push","part","getDataFromRef","User","blocked","fromDto","userDto","originEntity","model","user","toDto","dto","E070Emp","e070EmpDto","e070Emp","E070Fil","e070FilDto","e070Fil","e070emp","E070FilCrmx","active","e070FilCrmxDto","e070FilCrmx","e070fil","CollaboratorE070FilCrmx","master","collaboratorE070FilCrmxDto","collaboratorE070FilCrmx","collaborator","Collaborator","e070filCrmx","Squad","squadDto","squad","CollaboratorSquad","collaboratorSquadDto","collaboratorSquad","collaboratorDto","leader","branches","values","squads","StorageService","cookieService","getUser","JSON","parse","localStorage","getItem","getUserId","store","userId","setItem","stringify","getComSeniorToken","getBaseUrl","getTenantDomain","username","getTenantName","tenantName","getUsername","getLogin","getToken","access_token","isUserAdmin","CookieService","CurrentCollaboratorService","http","storageService","ngUnsubscribe","Subject","COLLABORATOR_KEY","validate","redirect","getE070FilCrmxMaster","e070FilCrmxMaster","find","branch","complete","useCache","takeUntil","page","location","href","StorageModule","CurrentCollaboratorModule","HttpClientModule","Modulo","moduleDto","join","module","CurrentTenantService","ERPX_MODULE_KEY","modulo","ativo","totalElements","moduloDto","contents","CurrentTenantModule","ScheduleFormRulesService","recurrencesValueChangeSubscribe","recurrenceValueChangeSubscribe","repeatWhenValueChangeSubscribe","valueChangeSubscribe","allDayValueChangeSubscribe","allDay","valueChanges","fields","disableFields","enableFields","recurrence","WEEKLY","fieldWeekDays","weekDays","setValidators","MONTHLY","YEARLY","fieldRepeatWhen","repeatWhen","IN_DAY","fieldRepeatWhenDay","repeatWhenDay","IN_ORDINAL_WEEK_DAY","fieldRepeatWhenMonth","repeatWhenMonth","controlsKey","fieldFormGroup","clearValidators","setErrors","ScheduleFormRulesModule","StandardFiltersService","addFilterE070emp","filterQuery","alias","e070empList","from","Set","addFilterIn","addFilterE070fil","e070filList","addFilterActive","addAlias","addFilter","filters","StandardFiltersModule","FormGroupValidatorsService","startDataGreaterThanEndDataValidator","endDateField","errorMessage","parent","rtn","endDateLessThanStartDateValidator","startDateField","DateValidatorsService","isLastWeekdayOfMonth","date","newDate","setDate","getDate","getMonth","getFullYear","Topic","topicDto","topic","getTopic","tenantDomain","token","concat","allUsers","toString","domain","service","primitive","Event","__","constructor","create","__extends","_super","eventDto","event","originCallback","WebsocketService","router","_client","Stomp","over","SockJS","_bindQueue","_eventBindingList","_messageQueue","concatMap","_bindObservable","bind","url","connected","_registerBind","_finishBindObservable","_connectClient","connect","Error","eventBinding","_findEventBinding","_remakeBind","_makeBind","callback","messageQueue","_executeCallback","_resolveRefs","body","index","splice","Router","providedIn","WebsocketModule","StringConverterService","toUnderscore","camelCase","replace","toLowerCase","ValueChangesService","pipeDefault","distinctUntilChanged","crmx.angular_components.cancel","crmx.angular_components.confirm","crmx.angular_components.error_required","crmx.angular_components.error_unauthorized_title","crmx.angular_components.error_unauthorized_description","crmx.angular_components.format","crmx.angular_components.format_placeholder","crmx.angular_components.report","crmx.angular_components.reports_help","crmx.angular_components.reports_title","crmx.angular_components.refresh_websocket_alert_click_here","crmx.angular_components.refresh_websocket_alert_detail_default","crmx.angular_components.refresh_websocket_alert_summary_default","selected","array","otherArray"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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","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 { 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","import { FieldType } from '@seniorsistemas/angular-components';\n\nconst numberTypes = [FieldType.Integer, FieldType.Double];\nconst numberPattern = /^\\d+\\b$/;\n\nexport const mergeUnique = (array: Array<string>, otherArray: Array<string>) => array.concat(otherArray.filter((item) => !array.includes(item)));\n\nexport const getTypeInformation = (type: FieldType, value: any) => {\n switch (type) {\n case FieldType.Time:\n case FieldType.Date:\n case FieldType.LocalDateTime:\n case FieldType.DateTime:\n return { isValidValue: false, typeExists: true };\n case FieldType.Integer:\n case FieldType.Double:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n default:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n }\n};\n\nexport const isValidFilter = (type: FieldType, value: any) => {\n const { isValidValue, typeExists } = getTypeInformation(type, value);\n return !(typeExists && !isValidValue);\n};\n\nexport const getProp = (obj: any, path: any) => {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n};\n\nexport const getLabelValueRequest = (contents: any[], displayFields: any[]) => {\n return contents.map((item: any) => ({\n ...item,\n label: displayFields.map((field) => getProp(item, field)).join(' - '),\n }));\n};\n\nexport const getSuggestionValue = (displayFields: string[], ownerEntity: string, value: any, separator: string) => {\n return displayFields.map((field) => getProp(value, `${ownerEntity}.${field}`)).reduce((acc: any, val: any) => `${acc}${separator}${val}`) + '';\n};\n\nexport const getEnumQuery = (name: string, value: any, multiple: boolean = false) => {\n if (multiple) {\n return `(${value.map((selected: any) => `${name} eq '${selected}'`).join(' or ')})`;\n }\n return `${name} eq '${value}'`;\n};\n\nexport const resolveRefs = (payload: any) => {\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 const resolve = (obj: any, rootObj: any) => {\n if (Array.isArray(obj)) {\n obj.forEach((item) => resolve(item, rootObj));\n } else if (obj !== null && typeof obj === 'object') {\n // Remove self-reference to root object\n Object.keys(obj).forEach((key) => {\n if (obj[key] === rootObj) {\n delete obj[key];\n }\n });\n Object.keys(obj).forEach((key) => {\n if (key === '$ref' && obj[key]) {\n const refPath = obj[key];\n Object.assign(obj, getDataFromRef(refPath, rootObj));\n delete obj[key];\n } else {\n resolve(obj[key], rootObj);\n }\n });\n }\n };\n\n resolve(payload, payload);\n\n return payload;\n};\n","import { UserDto } from './user-dto';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\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 = getSuggestionValue(displayFields, 'user', { user: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\n\nexport class E070Emp {\n public id?: string;\n public codEmp: string;\n public nomEmp: string;\n public label?: 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 = getSuggestionValue(displayFields, 'e070Emp', { e070Emp: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\n\nexport class E070Fil {\n public id?: string;\n public codFil: number;\n public nomFil: string;\n public e070emp: E070Emp;\n public label?: string;\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 = getSuggestionValue(displayFields, 'e070Fil', { e070Fil: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 = getSuggestionValue(displayFields, 'e070FilCrmx', { e070FilCrmx: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\n\n public static fromDto(collaboratorE070FilCrmxDto: CollaboratorE070FilCrmxDto, originEntity?: string): CollaboratorE070FilCrmx {\n const model: any = { ...collaboratorE070FilCrmxDto };\n\n const lookupSeparator = ' - ';\n const displayFields = [\n 'e070filCrmx.e070fil.e070emp.codEmp',\n 'e070filCrmx.e070fil.e070emp.nomEmp',\n 'e070filCrmx.e070fil.codFil',\n 'e070filCrmx.e070fil.nomFil'\n ];\n\n model.label = getSuggestionValue(displayFields, 'collaboratorE070FilCrmx', { collaboratorE070FilCrmx: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\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 = getSuggestionValue(displayFields, 'squad', { squad: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\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 = getSuggestionValue(displayFields, 'collaboratorSquad', { collaboratorSquad: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 = getSuggestionValue(displayFields, 'collaborator', { collaborator: model }, 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) => {\n item = CollaboratorE070FilCrmx.fromDto(item, 'Collaborator');\n item.collaborator = model;\n return item;\n });\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\";\nimport { resolveRefs } from \"../../utils/utils\";\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(resolveRefs(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 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","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 observer.complete();\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 observer.complete();\n }\n });\n }\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","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 { E070Emp, E070Fil } from \"../current-collaborator\";\n\n@Injectable()\nexport class StandardFiltersService {\n\n constructor(\n ) {\n }\n\n public addFilterE070emp(filterQuery: string, alias: string, e070empList: E070Emp[]): string {\n const ids: string[] = Array.from(new Set(e070empList.map(e070emp => e070emp.id)));\n return this.addFilterIn(filterQuery, alias, 'id', ids);\n }\n\n public addFilterE070fil(filterQuery: string, alias: string, e070filList: E070Fil[]): string {\n const ids: string[] = Array.from(new Set(e070filList.map(e070fil => e070fil.id)));\n return this.addFilterIn(filterQuery, alias, 'id', ids);\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\n","import { NgModule } from \"@angular/core\";\nimport { StandardFiltersService } from \"./standard-filters.service\";\n\n@NgModule({\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","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"]}
1
+ {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","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/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/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/utils/utils.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/resolvers/access-validation.resolve.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/locale/fallback.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","FormatEnum","ViewModeEnum","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","MonthEnum","OrdinalWeekDayEnum","RecurrenceEnum","RepeatWhenEnum","WeekDayEnum","ReportsService","_httpClient","_translate","_messageService","queriesPlatformReportUrl","actionsCrmxReportUrl","listReports","tag","ids","params","HttpParams","append","get","pipe","map","response","reports","filter","report","includes","id","defaultCatch","getSharedReport","enabled","generateReport","inputDto","post","_this","catchError","err","summary","status","String","detail","error","message","statusText","instant","add","severity","sticky","throwError","HttpClient","TranslateService","MessageService","Injectable","ReportsComponent","_formBuilder","_reportsService","formGroups","visibleChange","EventEmitter","reportGenerated","reportsObservable","BehaviorSubject","viewModeEnum","loading","_reports","_formatEnum","ngOnChanges","changes","options","header","labelConfirmButton","keys","formats","label","toUpperCase","value","visible","_executeObservable","tenantReport","sharedReport","subscribe","nextAction","ngOnInit","formGroup","_getFormGroup","formFields","_getFormFields","onCancel","reset","emit","onConfirm","data","getRawValue","isValid","forEach","valid","input","parameters","parametersReport","format","timeToLive","callbackEvent","outputDto","_validateAllFormFields","getErrorMessages","required","onVisibleChange","observable","Observable","observer","_setValuesDefault","next","controls","setValue","_a","_hasEmpty","undefined","field","control","FormControl","markAsDirty","onlySelf","FormGroup","group","disabled","Validators","compose","FormField","type","FieldType","Autocomplete","name","size","xl","lg","md","sm","multiple","dataKey","appendTo","emptyMessage","displayField","suggestionsObservable","onSearch","val","reportDto","match","RegExp","footer","help","text","icon","Enum","placeholder","FormBuilder","Input","Output","Component","selector","template","ReportsModule","NgModule","imports","LocaleModule","forChild","FormsModule","RouterModule","CommonModule","TranslateModule","SelectButtonModule","DialogModule","ButtonModule","DynamicFormModule","SidebarModule","PanelModule","LoadingStateModule","declarations","exports","providers","RefreshWebsocketAlertComponent","_translateService","open","closeRefreshSocket","refresh","clear","show","thisMessage","life","RefreshWebsocketAlertModule","ToastModule","numberTypes","Integer","Double","numberPattern","getTypeInformation","Time","Date","LocalDateTime","DateTime","isValidValue","typeExists","getProp","obj","path","split","reduce","result","prop","getSuggestionValue","displayFields","ownerEntity","separator","acc","resolveRefs","payload","resolve","rootObj","isArray","item","refPath","ref","regex","exec","push","part","getDataFromRef","User","blocked","fromDto","userDto","originEntity","model","user","toDto","dto","E070Emp","e070EmpDto","e070Emp","E070Fil","e070FilDto","e070Fil","e070emp","E070FilCrmx","active","e070FilCrmxDto","e070FilCrmx","e070fil","CollaboratorE070FilCrmx","master","collaboratorE070FilCrmxDto","collaboratorE070FilCrmx","collaborator","Collaborator","e070filCrmx","Squad","squadDto","squad","CollaboratorSquad","collaboratorSquadDto","collaboratorSquad","collaboratorDto","leader","branches","values","squads","StorageService","cookieService","getUser","JSON","parse","localStorage","getItem","getUserId","store","userId","setItem","stringify","getComSeniorToken","getBaseUrl","getTenantDomain","username","getTenantName","tenantName","getUsername","getLogin","getToken","access_token","isUserAdmin","CookieService","CurrentCollaboratorService","http","storageService","ngUnsubscribe","Subject","COLLABORATOR_KEY","getE070FilCrmxMaster","e070FilCrmxMaster","find","branch","complete","useCache","takeUntil","redirect","page","location","href","StorageModule","CurrentCollaboratorModule","HttpClientModule","Modulo","moduleDto","join","module","CurrentTenantService","ERPX_MODULE_KEY","validate","modulo","ativo","totalElements","moduloDto","contents","CurrentTenantModule","AccessValidationResolve","currentCollaboratorService","currentTenantService","userService","getUserData","then","userData","ScheduleFormRulesService","recurrencesValueChangeSubscribe","recurrenceValueChangeSubscribe","repeatWhenValueChangeSubscribe","valueChangeSubscribe","allDayValueChangeSubscribe","allDay","valueChanges","fields","disableFields","enableFields","recurrence","WEEKLY","fieldWeekDays","weekDays","setValidators","MONTHLY","YEARLY","fieldRepeatWhen","repeatWhen","IN_DAY","fieldRepeatWhenDay","repeatWhenDay","IN_ORDINAL_WEEK_DAY","fieldRepeatWhenMonth","repeatWhenMonth","controlsKey","fieldFormGroup","clearValidators","setErrors","ScheduleFormRulesModule","StandardFiltersService","addFilterE070emp","filterQuery","alias","e070empList","from","Set","addFilterIn","addFilterE070fil","e070filList","addFilterActive","addAlias","addFilter","filters","StandardFiltersModule","FormGroupValidatorsService","startDataGreaterThanEndDataValidator","endDateField","errorMessage","parent","rtn","endDateLessThanStartDateValidator","startDateField","DateValidatorsService","isLastWeekdayOfMonth","date","newDate","setDate","getDate","getMonth","getFullYear","Topic","topicDto","topic","getTopic","tenantDomain","token","concat","allUsers","toString","domain","service","primitive","Event","__","constructor","create","__extends","_super","eventDto","event","originCallback","WebsocketService","router","_client","Stomp","over","SockJS","_bindQueue","_eventBindingList","_messageQueue","concatMap","_bindObservable","bind","url","connected","_registerBind","_finishBindObservable","_connectClient","connect","Error","eventBinding","_findEventBinding","_remakeBind","_makeBind","callback","messageQueue","_executeCallback","_resolveRefs","body","index","splice","Router","providedIn","WebsocketModule","StringConverterService","toUnderscore","camelCase","replace","toLowerCase","ValueChangesService","pipeDefault","distinctUntilChanged","crmx.angular_components.cancel","crmx.angular_components.confirm","crmx.angular_components.error_required","crmx.angular_components.error_unauthorized_title","crmx.angular_components.error_unauthorized_description","crmx.angular_components.format","crmx.angular_components.format_placeholder","crmx.angular_components.report","crmx.angular_components.reports_help","crmx.angular_components.reports_title","crmx.angular_components.refresh_websocket_alert_click_here","crmx.angular_components.refresh_websocket_alert_detail_default","crmx.angular_components.refresh_websocket_alert_summary_default","selected","array","otherArray"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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","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 { 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","import { FieldType } from '@seniorsistemas/angular-components';\n\nconst numberTypes = [FieldType.Integer, FieldType.Double];\nconst numberPattern = /^\\d+\\b$/;\n\nexport const mergeUnique = (array: Array<string>, otherArray: Array<string>) => array.concat(otherArray.filter((item) => !array.includes(item)));\n\nexport const getTypeInformation = (type: FieldType, value: any) => {\n switch (type) {\n case FieldType.Time:\n case FieldType.Date:\n case FieldType.LocalDateTime:\n case FieldType.DateTime:\n return { isValidValue: false, typeExists: true };\n case FieldType.Integer:\n case FieldType.Double:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n default:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n }\n};\n\nexport const isValidFilter = (type: FieldType, value: any) => {\n const { isValidValue, typeExists } = getTypeInformation(type, value);\n return !(typeExists && !isValidValue);\n};\n\nexport const getProp = (obj: any, path: any) => {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n};\n\nexport const getLabelValueRequest = (contents: any[], displayFields: any[]) => {\n return contents.map((item: any) => ({\n ...item,\n label: displayFields.map((field) => getProp(item, field)).join(' - '),\n }));\n};\n\nexport const getSuggestionValue = (displayFields: string[], ownerEntity: string, value: any, separator: string) => {\n return displayFields.map((field) => getProp(value, `${ownerEntity}.${field}`)).reduce((acc: any, val: any) => `${acc}${separator}${val}`) + '';\n};\n\nexport const getEnumQuery = (name: string, value: any, multiple: boolean = false) => {\n if (multiple) {\n return `(${value.map((selected: any) => `${name} eq '${selected}'`).join(' or ')})`;\n }\n return `${name} eq '${value}'`;\n};\n\nexport const resolveRefs = (payload: any) => {\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 const resolve = (obj: any, rootObj: any) => {\n if (Array.isArray(obj)) {\n obj.forEach((item) => resolve(item, rootObj));\n } else if (obj !== null && typeof obj === 'object') {\n // Remove self-reference to root object\n Object.keys(obj).forEach((key) => {\n if (obj[key] === rootObj) {\n delete obj[key];\n }\n });\n Object.keys(obj).forEach((key) => {\n if (key === '$ref' && obj[key]) {\n const refPath = obj[key];\n Object.assign(obj, getDataFromRef(refPath, rootObj));\n delete obj[key];\n } else {\n resolve(obj[key], rootObj);\n }\n });\n }\n };\n\n resolve(payload, payload);\n\n return payload;\n};\n","import { UserDto } from './user-dto';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\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 = getSuggestionValue(displayFields, 'user', { user: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\n\nexport class E070Emp {\n public id?: string;\n public codEmp: string;\n public nomEmp: string;\n public label?: 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 = getSuggestionValue(displayFields, 'e070Emp', { e070Emp: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\n\nexport class E070Fil {\n public id?: string;\n public codFil: number;\n public nomFil: string;\n public e070emp: E070Emp;\n public label?: string;\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 = getSuggestionValue(displayFields, 'e070Fil', { e070Fil: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 = getSuggestionValue(displayFields, 'e070FilCrmx', { e070FilCrmx: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\n\n public static fromDto(collaboratorE070FilCrmxDto: CollaboratorE070FilCrmxDto, originEntity?: string): CollaboratorE070FilCrmx {\n const model: any = { ...collaboratorE070FilCrmxDto };\n\n const lookupSeparator = ' - ';\n const displayFields = [\n 'e070filCrmx.e070fil.e070emp.codEmp',\n 'e070filCrmx.e070fil.e070emp.nomEmp',\n 'e070filCrmx.e070fil.codFil',\n 'e070filCrmx.e070fil.nomFil'\n ];\n\n model.label = getSuggestionValue(displayFields, 'collaboratorE070FilCrmx', { collaboratorE070FilCrmx: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\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 = getSuggestionValue(displayFields, 'squad', { squad: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 public label?: string;\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 = getSuggestionValue(displayFields, 'collaboratorSquad', { collaboratorSquad: model }, 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';\nimport { getSuggestionValue } from \"../../../utils/utils\";\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 = getSuggestionValue(displayFields, 'collaborator', { collaborator: model }, 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) => {\n item = CollaboratorE070FilCrmx.fromDto(item, 'Collaborator');\n item.collaborator = model;\n return item;\n });\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\";\nimport { resolveRefs } from \"../../utils/utils\";\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(resolveRefs(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 get(): Observable<Collaborator> {\n return this.call(false);\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 observer.complete();\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 if (collaboratorDto.active === false) {\n this.redirect('collaborator-inactive');\n } else {\n this.storageService.store(this.COLLABORATOR_KEY, collaboratorDto);\n observer.next(Collaborator.fromDto(collaboratorDto));\n observer.complete();\n }\n })\n ;\n }\n });\n }\n\n private redirect(page: string) {\n location.href = `${this.storageService.getBaseUrl()}/gestao-relacionamento/crmx_collaborator/foundation/#/${page}`;\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 observer.complete();\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 observer.complete();\n }\n });\n }\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","import { CurrentCollaboratorService } from \"../current-collaborator\";\nimport { CurrentTenantService } from \"../current-tenant\";\nimport { user as userService } from \"@seniorsistemas/senior-platform-data\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n@Injectable()\nexport class AccessValidationResolve {\n constructor(\n private readonly currentCollaboratorService: CurrentCollaboratorService,\n private readonly currentTenantService: CurrentTenantService,\n ) {\n }\n\n public resolve(): Observable<any> {\n return new Observable((observer) => {\n userService.getUserData().then((userData) => {\n this.currentTenantService.validate().subscribe(() => {\n this.currentCollaboratorService.get().subscribe((collaborator) => {\n observer.next(collaborator);\n observer.complete();\n });\n });\n });\n });\n }\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 { E070Emp, E070Fil } from \"../current-collaborator\";\n\n@Injectable()\nexport class StandardFiltersService {\n\n constructor(\n ) {\n }\n\n public addFilterE070emp(filterQuery: string, alias: string, e070empList: E070Emp[]): string {\n const ids: string[] = Array.from(new Set(e070empList.map(e070emp => e070emp.id)));\n return this.addFilterIn(filterQuery, alias, 'id', ids);\n }\n\n public addFilterE070fil(filterQuery: string, alias: string, e070filList: E070Fil[]): string {\n const ids: string[] = Array.from(new Set(e070filList.map(e070fil => e070fil.id)));\n return this.addFilterIn(filterQuery, alias, 'id', ids);\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 if (filters.length > 0) {\n return this.addFilter(filterQuery, `(${filters.join(' or ')})`);\n }\n\n return '';\n }\n\n private addAlias(alias: string, filter: string): string {\n return (alias ? `${alias}.` : '') + filter;\n }\n}\n\n","import { NgModule } from \"@angular/core\";\nimport { StandardFiltersService } from \"./standard-filters.service\";\n\n@NgModule({\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","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"]}
@@ -2,5 +2,7 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
+ export { CurrentCollaboratorService as ɵb } from './services/current-collaborator';
6
+ export { CurrentTenantService as ɵc } from './services/current-tenant';
5
7
  export { StorageModule as ɵa } from './services/storage/storage.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yLWdlc3Rhby1yZWxhY2lvbmFtZW50by1hbmd1bGFyLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1yZWxhY2lvbmFtZW50by9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJzZW5pb3ItZ2VzdGFvLXJlbGFjaW9uYW1lbnRvLWFuZ3VsYXItY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7U3RvcmFnZU1vZHVsZSBhcyDJtWF9IGZyb20gJy4vc2VydmljZXMvc3RvcmFnZS9zdG9yYWdlLm1vZHVsZSc7Il19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yLWdlc3Rhby1yZWxhY2lvbmFtZW50by1hbmd1bGFyLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1yZWxhY2lvbmFtZW50by9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJzZW5pb3ItZ2VzdGFvLXJlbGFjaW9uYW1lbnRvLWFuZ3VsYXItY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtDdXJyZW50Q29sbGFib3JhdG9yU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vc2VydmljZXMvY3VycmVudC1jb2xsYWJvcmF0b3InO1xuZXhwb3J0IHtDdXJyZW50VGVuYW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vc2VydmljZXMvY3VycmVudC10ZW5hbnQnO1xuZXhwb3J0IHtTdG9yYWdlTW9kdWxlIGFzIMm1YX0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2UubW9kdWxlJzsiXX0=