{"version":3,"sources":["webpack:///src/app/models/device/device.model.ts","webpack:///src/app/models/news/news.service.ts","webpack:///src/app/service/rest/device-type/rest-device-types.service.ts","webpack:///src/app/models/article-code/article-codes-repository.service.ts","webpack:///src/app/models/device/device.service.ts","webpack:///src/app/models/plant/plant-repository.service.ts","webpack:///src/app/models/plant/plant.model.ts","webpack:///src/app/service/rest/plant/rest-plant.service.ts","webpack:///src/app/models/user/user.model.ts","webpack:///src/app/view/login/login.component.html","webpack:///src/app/service/rest/article-code/rest-article-code.service.ts","webpack:///src/app/models/procedure/step.service.ts","webpack:///src/app/models/device/device-repository.service.ts","webpack:///src/environments/environment.ts","webpack:///src/app/models/serial-number/serial-number-repository.service.ts","webpack:///src/app/models/models.module.ts","webpack:///src/app/service/authentication/auth.service.ts","webpack:///src/app/service/utils/custom-date.service.ts","webpack:///src/app/models/maintenance/maintenance-repository.service.ts","webpack:///src/app/service/utils/last-searched.service.ts","webpack:///src/app/service/upload-cache.interceptor.ts","webpack:///src/app/service/utils/gallery.service.ts","webpack:///src/app/models/maintenance/maintenance-check.service.ts","webpack:///src/app/models/agenda/agenda-repository.service.ts","webpack:///src/app/models/catalog/search-catalog.service.ts","webpack:///src/app/models/news/news-repository.service.ts","webpack:///src/app/models/device/device-history-repository.service.ts","webpack:///src/app/models/country/country-repository.service.ts","webpack:///src/app/service/rest/agenda/rest-agenda.service.ts","webpack:///src/app/models/product-families/product-family.service.ts","webpack:///src/app/models/procedure/procedure-repository.service.ts","webpack:///src/app/service/utils/page-backoffice.service.ts","webpack:///src/app/models/device-documentation/device-documentation-repository.service.ts","webpack:///src/app/models/user/user.service.ts","webpack:///src/app/service/utils/order-by.service.ts","webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/service/rest/user/rest-user.service.ts","webpack:///src/app/app.component.ts","webpack:///src/app/view/login/prelogin/prelogin.component.scss","webpack:///src/app/service/base-api.service.ts","webpack:///src/app/models/procedure/procedure.service.ts","webpack:///src/app/guards/auth.guard.ts","webpack:///src/app/app.component.html","webpack:///src/app/models/device/device-history.service.ts","webpack:///src/app/models/utils.model.ts","webpack:///src/app/service/utils/backoffice-sort.service.ts","webpack:///src/app/service/rest/procedure/rest-procedure.service.ts","webpack:///src/app/service/rest/device/rest-device.service.ts","webpack:///src/app/app.module.ts","webpack:///src/app/service/base-api.interceptor.ts","webpack:///src/app/models/article-code/article-code.service.ts","webpack:///src/app/service/rest/product-families/rest-product-families.service.ts","webpack:///src/app/view/login/login.component.ts","webpack:///src/app/models/serial-number/serial-number.service.ts","webpack:///src/app/service/utils/page.service.ts","webpack:///src/app/view/login/policy-terms/policy-terms.component.html","webpack:///src/app/service/rest/device-documentation/rest-device-documentation.service.ts","webpack:///src/app/view/qr-code/qr-code.component.html","webpack:///src/app/models/roles.model.ts","webpack:///src/app/models/maintenance/maintenance-reminder.service.ts","webpack:///src/app/models/event/event-academy.service.ts","webpack:///src/app/service/rest/maintenance/rest-maintenance.service.ts","webpack:///src/app/models/language/language-repository.service.ts","webpack:///src/app/view/qr-code/qr-code.component.scss","webpack:///src/app/service/utils/backoffice-gallery.service.ts","webpack:///src/app/service/utils/page-dialog.service.ts","webpack:///src/app/models/maintenance/maintenance.service.ts","webpack:///src/app/service/utils/calendar.service.ts","webpack:///src/app/service/service.module.ts","webpack:///src/app/models/procedure/obj-repository.service.ts","webpack:///src/app/service/rest/utils/rest-utils.service.ts","webpack:///src/app/service/rest/serial/rest-serial.service.ts","webpack:///src/app/service/utils/documentation.service.ts","webpack:///src/app/view/qr-code/qr-code.component.ts","webpack:///src/app/guards/backoffice-role.guard.ts","webpack:///src/app/view/login/policy-terms/policy-terms.component.scss","webpack:///src/app/models/agenda/calendar.model.ts","webpack:///src/app/view/login/prelogin/prelogin.component.html","webpack:///src/app/models/event/event-academy-repository.service.ts","webpack:///src/app/service/utils/server-sent/server-sent.service.ts","webpack:///src/app/service/utils/translate-firebase.service.ts","webpack:///src/app/models/device-documentation/device-documentation.model.ts","webpack:///src/app/view/login/login.component.scss","webpack:///src/app/app-routing.module.ts","webpack:///src/app/models/product-families/product-family-repository.service.ts","webpack:///src/app/models/device-type/device-type.service.ts","webpack:///src/app/service/utils/agenda-dialog.service.ts","webpack:///src/app/view/login/prelogin/prelogin.component.ts","webpack:///src/app/view/login/policy-terms/policy-terms.component.ts","webpack:///src/app/models/user/user-repository.service.ts","webpack:///src/app/models/device-type/device-type-repository.service.ts","webpack:///src/app/app.component.scss","webpack:///src/app/service/rest/ar-files/rest-ar-files.service.ts","webpack:///src/app/models/plant/plant.service.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["Device","entityId","id","internalId","serialNumber","ownerId","creationDate","activationDate","purchaseDate","country","status","deviceType","deviceModel","device","deviceSystem","model","articleId","serialNumberId","snDevicetype","certificatePath","articleCode","plantId","tags","userNotes","name","description","firmwareVersion","hardwareVersion","warrantyExpiration","warrantyName","warrantyPlus","warrantyStatus","documents","DeviceNameSerial","serialnumber","deviceName","SerialNumber","devicetype","deviceId","article","warrantyExp","installedBy","productionDate","marketingConsent","SerialNumbersImportStatus","success","message","importedAt","erroredRows","skippedRows","importedRows","SerialNumberUpdate","SerialEditing","bool","SubscribeSerialNumbers","serialNumberIds","userId","clear","SubscribeSerialNumber","userIds","UnsubscribeSerialNumber","SearchDevice","DeviceType","WarrantyStatusDTO","WarrantyStatus","DeviceHistory","type","eventDate","title","HistoryType","WarrantyVersionEnum","NewsService","agendaRest","news","createAgendaElement","updateAgendaElement","newsId","deleteAgendaElement","_news","value","RestDeviceTypesService","httpClient","translate","authService","post","headers","upsHttpHeaders","put","get","ArticleCodesRepositoryService","restArticle","_articleCodesLoaded","_dataSourceArticleCodes","shouldBeReloaded","getAllArticleCodes","subscribe","result","articleCodes","selectedArticleCodes","error","console","log","familyId","getAllArticleCodesByFamilyId","_articleCodes","JSON","parse","sessionStorage","getItem","storage","setItem","stringify","_selectedArticleCode","_selectedArticleCodeVideos","_selectedArticleCodeImages","_selectedArticleCodeDocuments","_selectedArticleCodes","deviceStorageKey","deviceApplicationsStorageKey","DeviceService","_saveTemporaryDevice","data","temporaryDevice","saveTemporaryDevice","removeItem","_device","_temporaryDevice","applicationsList","getTranslation","_applicationsList","USER_PLANTS_STORAGE_KEY","PlantRepositoryService","plantService","plantRest","pageService","pageDialogService","router","userService","_plants","plantsLoaded","loadPlants","plants","getPlantsList","forEach","plant","find","tag","key","toLowerCase","Date","companyName","navigateByUrl","createPlant","addPlantFromDevice","NONE","addPlant","ADD","dialogTitle","addDevice","EDIT","editDevice","openSnackBar","setHours","push","openErrorSnackBar","updatePlant","index","map","indexOf","deletePlant","splice","getPlant","date","filter","undefined","order","ele","array","findIndex","i","sort","a","b","ascending","charAt","char","totalAllowedUsers","allowedUsersArray","allowedUsers","plantAllowedUsers","user","totalOwners","ownerArray","ownerEmail","plantOwner","upsUser","oid","po","allowedUser","owner","email","inviteUserOnPlant","removeUserFromPlant","authorization","changePlantOwner","length","Plant","zipCode","address","offset","invitedUsers","establishment","floor","SearchPlant","OwnerAuthorization","password","shouldCurrentUserRightsBeRemoved","AddPlantFromDeviceType","plantAPIVersion","RestPlantService","eliotHttpHeaders","patch","body","language","EliotUser","username","givenName","displayName","surname","role","languageId","marketingCampaigns","profiling","UpsUser","appRole","backofficeRole","reminderDuration","warrantyReminderDuration","firstName","newUser","AllowedUser","PlantOwner","InvitedUser","UserConsent","UserConsentStatus","document","url","version","action","BaseUser","ConsentDocumentType","ConsentDocumentTypeParam","ConsentDocumentAction","ConsentStatusType","RestArticleCodeService","StepService","_selectedStep","_step","step","USER_DEVICES_STORAGE_KEY","DeviceRepositoryService","deviceRest","deviceService","agendaRepo","plantRepository","serialRest","lastSearchedService","_userDevices","_plantDevices","userDevicesLoaded","plantDevicesLoaded","loadUserDevices","loadPlantDevices","plantDevices","getUserDeviceList","toString","userDevices","subscribeSerialNumbers","getAllAgendaByUser","getUserNotificationCount","getDeviceListByPlantId","createDevice","subscribeSerialNumber","deleteDevice","unsubscribeSerial","unsubscribeSerialNumber","getDevice","updateDevice","clearFromHistory","documentId","downloadDocument","element","toUpperCase","deviceIndex","plantIndex","devices","environment","production","UpsApiEndpoint","EliotApiEndpoint","eliot_ocp_key","ups_ocp_key","profileWebviewUrl","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","codeAuth","clientId","responseType","redirectUri","loginUrl","clientSecret","timeoutFactor","scope","tokenAuth","tokenEndpoint","grantType","logOutUrl","logoutRedirectUri","accessToken","sasToken","idToken","refreshToken","tokenExpiresIn","eliotUser","searchHistory","upsBackofficeLanguages","upsSelectedDocument","settingsDateFormat","selectedArticleCode","agenda","SERIAL_NUMBERS_STORAGE_KEY","SerialNumberRepositoryService","_serialNumbers","_possibleSerialNumbers","_installedSerialNumbers","_dataSourceSerialNumbers","_dataSourceInstalledSerialNumbers","serialNumbersLoaded","possibleSerialNumbersLoaded","serial","checkSerial","getSerialNumberBySerialNumber","getPossibleSerials","serials","possibleSerialNumbers","getAllSerials","deviceTypeId","getAllSerialsByDeviceType","getInstalledSerials","serialNumberToSearch","filterDate","preFilter","installedSerialNumbers","includes","getTime","ALL","warrantyStatusKey","Object","keys","dataSourceInstalledSerialNumbers","getAllSerialsByArticleCode","formData","uploadSerialNumbers","serialNumbers","ModelsModule","providers","imports","AuthService","oauthService","_languageId","res","window","location","href","code","tokenAuthConfig","getTokenConfiguration","getAccessToken","addressOAuth","confObj","encoder","httpParams","append","encodeKey","encodeValue","codeAuthConfig","getCodeConfiguration","configure","setStorage","initCodeFlow","config","access_token","refresh_token","expires_in","logout","setInterval","tryRefreshToken","token","_accessToken","ms","String","Number","isProduction","Authorization","moment","CustomDateService","dateYear","format","dateDay","dateMonth","MaintenanceRepositoryService","maintenanceRest","_maintenances","_dataSourceMaintenances","getMaintenancesByArticleIdAndLanguageId","maintenances","maintenance","HISTORY_MAX_LENGTH","HISTORY_STORAGE_KEY","LastSearchedService","_searchHistory","searchedDev","elem","searchedPlant","history","UploadCacheInterceptor","request","next","clone","handle","GalleryService","_imgsSrc","_selectedIndex","MaintenanceCheckService","_selectedMaintenanceCheck","_maintenanceCheck","maintenanceCheck","AgendaRepositoryService","agendaRestService","calendarService","_userNews","_userAgenda","_userNotificationCount","getAgendaElementsByUser","userAgenda","userNews","elemType","expireAt","NEWS","ACADEMY","EVENT","MAINTENANCE_USER","MAINTENANCE","getCalendarDatesByMonthAndYear","buildRows","elementId","getAgendaElementById","getUserReminderById","getMaintenanceReminderById","getNotificationCount","userNotificationCount","hideAgendaElement","indexToDelete","parseByType","replace","month","year","eventDays","getUTCMonth","getUTCFullYear","day","getDate","trad","agendaType","savedUserNews","savedUserAgenda","SearchCatalogService","utilsRest","deviceRepository","buildCatalog","catalog","searchPlant","searchDevice","searchCatalog","_searchCatalog","NewsRepositoryService","restAgenda","getAgendaElementsByType","_dataSourceNews","DeviceHistoryRepositoryService","restDevice","_deviceHistory","getDeviceHistoryByDeviceId","deviceHistory","CountryRepositoryService","_countries","countriesLoaded","loadCountries","countries","countryCode","alpha2Code","timezones","RestAgendaService","cardType","ProductFamilyService","restProductFamilyService","deleteProductFamily","productFamily","updateProductFamily","createProductFamily","_productFamily","ProcedureRepositoryService","procedureRest","procedureService","_procedures","proceduresLoaded","_dataSourceProcedures","getProceduresByArticleIdAndLanguageId","orderArray","orderProcedures","PageBackofficeService","_addSerial","_editSerial","_deleteSerial","_addProcedure","_editProcedure","_cloneProcedure","_deleteProcedure","_addStep","_editStep","_deleteStep","_addArticleCode","_editArticleCode","_deleteArticleCode","_addDocument","_editDocument","_deleteDocument","_addNews","_editNews","_deleteNews","_addEvent","_editEvent","_deleteEvent","_addAcademy","_editAcademy","_deleteAcademy","_deleteMedia","_addMaintenance","_editMaintenance","_cloneMaintenance","_deleteMaintenance","_addMaintenanceCheck","_editMaintenanceCheck","_deleteMaintenanceCheck","_addProductFamily","_editProductFamily","_deleteProductFamily","_addSerialNumberButton","_addButton","_importSerialNumberButton","addSerial","editSerial","deleteSerial","addProcedure","editProcedure","cloneProcedure","deleteProcedure","addStep","editStep","deleteStep","addArticleCode","editArticleCode","deleteArticleCode","addDocument","editDocument","deleteDocument","addNews","editNews","deleteNews","addEvent","editEvent","deleteEvent","addAcademy","editAcademy","deleteAcademy","addMaintenance","editMaintenance","cloneMaintenance","deleteMaintenance","addMaintenanceCheck","editMaintenanceCheck","deleteMaintenanceCheck","deleteMedia","addProductFamily","editProductFamily","addButton","addSerialNumberButton","importSerialNumberButton","DeviceDocumentationRepositoryService","documentationRest","_imageMedia","_videoMedia","_imgSrcs","_videoSrcs","refreshMedia","refreshMedia$","asObservable","getDocumentsByArticleId","articleDocuments","getDocumentsBySerialNumber","serialNumberDocuments","getAllDocumentsByArticleIdAndLanguageId","getMediaByArticleId","imageMedia","imgSrcs","videoMedia","videoSrcs","contentType","startsWith","media","storageUri","video","externalLink","thumbnailLink","getMediaByArticleIdandLanguageId","uploadNewVideoMediaExternal","uploadNewVideoMedia","uploadNewImageMedia","src","mediaToDeleteId","srcIndex","updateDocumentOrder","updateMediaOrder","_articleDocuments","_dataSourceDocuments","_serialNumberDocuments","UserService","restUser","restUtils","_eliotUserLoaded","_upsUserLoaded","_eliotUser","_touDocs","dataUpsUser","dataEliotUser","dateFormat","localStorage","getUser","getEliotUser","getUserConsent","documentType","updateConditions","LEGRAND_ADMIN","LEGRAND_SERVICE","plantOwnerId","updateUser","getPromotionalVideo","getBackendVersion","backendVersion","queryString","isBackofficeUser","getSasToken","sas","getConsentStatus","reminderDays","saveMaintenanceReminderDays","saveWarrantyReminderDays","_upsUser","_sasToken","_backendVersion","doc","_dateFormat","OrderByService","_ascending","_orderType","_orderFor","orderType","orderFor","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","webpackContextKeys","resolve","module","exports","userAPIVersion","touAPIVersion","RestUserService","maintenanceDays","warrantyDays","AppComponent","translateFirebase","matIconRegistry","domSanitizer","_iconPaths","setIcons","getIconsPaths","addIcons","addSvgIcon","icon","bypassSecurityTrustResourceUrl","path","selector","template","BaseApiService","ProcedureService","sseService","_dataSourceSteps","updateProcedure","procedure","createProcedure","clonedProcedure","orderSteps","importFile","FormData","uploadProcedureCSV","downloadProcedureCSV","observer","eventSource","getEventSourceWithPost","onmessage","event","onerror","stream","procedureData","_procedure","dataSourceSteps","steps","AuthGuard","route","state","isAuthenticated","DeviceHistoryService","getDeviceMaintenanceHistoryById","maintenanceHistory","getDeviceInstallationHistoryById","installationHistory","_maintenanceHistory","_installationHistory","_historyType","Tag","SearchCatalog","UpsSasToken","AgendaCardType","OccurrenceOptions","DateFormat","BackofficeSortService","isAsc","localeCompare","numeric","dateA","dateB","RestProcedureService","importFileData","RestDeviceService","docId","HttpLoaderFactory","http","AppModule","declarations","forRoot","loader","provide","useFactory","deps","defaultLanguage","initializeApp","useClass","multi","bootstrap","schemas","BaseApiInterceptor","pipe","response","ArticleCodeService","articleCodeRest","_articleCode","createArticleCode","updateArticleCode","getArticleCodeById","RestProductFamiliesService","file","certificateId","UpsUserStorageKey","LoginComponent","activatedRoute","deviceRepo","articleRepo","plantRepositoryService","deviceTypesRepoService","familiesRepoService","loginCompleted","codeString","queryParams","params","getAuthToken","id_token","setTimeoutRefreshToken","loadEliotUser","profile","saveUser","getUserConsentStatus","toUpdateConsent","touDocs","loadUpsUser","CONSENT","UPDATE","loggedUser","account","loadArticleCodes","getPlants","getUserDevices","SerialNumberService","_serialNumber","_serialNumberUpdate","_importStatus","createSerial","updateSerial","serialNumberUpdate","getLastImportStatus","importStatusResponse","importStatus","PageService","snackBar","addMaintenanceReminder","breadCrumb","showVideo","myInstallation","settings","lastVisit","open","duration","panelClass","RestDeviceDocumentationService","publish","obj","WebAppRoles","BackofficeRoles","MaintenanceReminderService","createMaintenanceReminderUser","maintenanceReminder","updateMaintenanceReminderUser","deleteMaintenanceReminderUser","_maintenanceReminder","EventAcademyService","_eventAcademy","RestMaintenanceService","maintenanceHistoryId","LanguageRepositoryService","_selectedLanguage","languagesLoaded","loadLanguages","setTimeout","languages","_languages","lang","BackofficeGalleryService","PageDialogService","_dialogTitle","_addPlant","_editPlant","_sharePlant","_addPlantFromDevice","_addDevice","_editDevice","_addMaintenanceReminder","_editMaintenanceReminder","_deleteReminderMode","_deleteAgendaMode","_archiveDeviceMode","_deletePlantMode","_cannotDeletePlantMode","_unsharePlantMode","_searchMode","_deviceGallery","_confirmChangeOwner","_videoPreview","_plantId","editPlant","sharePlant","archiveDeviceMode","deletePlantMode","cannotDeletePlantMode","unsharePlantMode","searchMode","deviceGallery","confirmChangeOwner","editMaintenanceReminder","deleteReminderMode","deleteAgendaMode","videoPreview","_agendaType","MaintenanceService","_dataSourceChecks","updateMaintenance","createMaintenance","clonedMaintenance","orderChecks","_maintenance","dataSourceChecks","maintenanceChecks","CalendarService","nextYear","thisMonthName","thisMonthNumber","thisMonthDaysNumber","previousMonthNumber","previousMonthDaysNumber","rows","daysInMonth","firstMonthWeekDay","dayCounter","firstRowCompleted","calendarRow","days","eventDay","dateCheck","ServiceModule","ObjRepositoryService","restArFiles","_arFiles","_objFiles","_imgFiles","_dataSourceObjFile","_dataSourceImgFile","arFilesLoaded","loadARFiles","uploadFile","getAllFiles","getFileBase64","deleteFile","RestUtilsService","RestSerialService","serialId","DocumentationService","_documentType","_documentDescription","uploadDocument","updateDocument","changeDocumentStatus","_document","QrCodeComponent","redirectToStore","BackofficeRoleGuard","providedIn","CalendarRow","CalendarDay","NotificationRead","readingDate","notificationNumber","EventAcademyRepositoryService","_eventsAndAcademies","_dataSourceEventsAndAcademies","eventAcademy","ServerSentService","buildEventSource","meth","options","buildOptions","close","auth","payload","method","mobileOS","TranslateFirebaseService","analytics","remoteConfig","osStoreStringBase","setup","setupTranslations","navigator","minimumFetchIntervalMillis","setUserProperties","fetchAndActivate","then","translations","getAll","defaultTranslations","_value","userAgent","vendor","opera","test","ANDROID","MSStream","IOS","getMobileOperatingSystem","Document","filename","isWarranty","link","DocumentStatus","Media","articleIds","ImageMedia","VideoMedia","VideoLinks","VideoMediaPost","ImageMediaPost","CustomContentType","CustomContentString","ContentType","validDocumentExtensions","validImagesExtensions","validVideosExtensions","VideoType","routes","component","canActivate","loadChildren","m","BackofficeModule","WebappModule","redirectTo","AppRoutingModule","ProductFamilyRepositoryService","_dataSourceProductFamilies","_productFamilies","_productFamiliesLoaded","_familiesCertificates","_productFamiliesCertificatesLoaded","getAllProductFamilies","getAllProductFamiliesCertificates","uploadFamilyCertificate","_selectedFamily","DeviceTypeService","AgendaDialogService","_dialogTile","hideElement","agendaElement","dialogTile","_agendaElement","PreloginComponent","userRestService","configureLogin","PolicyTermsComponent","TERMS_OF_USE","PRIVACY_POLICY","touLink","privacyLink","UserRepositoryService","userRest","_backofficeUsers","dataSourceUsers","usersLoaded","getUsers","users","DeviceTypeRepositoryService","restDeviceTypeService","_selectedDeviceType","_deviceTypes","getAllDeviceTypes","RestArFilesService","plantStorageKey","PlantService","restService","_deviceList","_plant","plantTypes","list","bootstrapModule","err","webpackEmptyAsyncContext","Promise"],"mappings":"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","file":"main-es5.0119c869c506dd835f26.js","sourcesContent":["import { ArticleCode } from \"../article-code/article-code.model\";\r\nimport { Document } from \"../device-documentation/device-documentation.model\";\r\nimport { Tag } from \"../utils.model\";\r\n\r\nexport class Device {\r\n constructor(\r\n public entityId?: string,\r\n public id?: string,\r\n public internalId?: string,\r\n public serialNumber?: string,\r\n public ownerId?: string,\r\n public creationDate?: Date,\r\n public activationDate?: Date,\r\n public purchaseDate?: Date,\r\n public country?: string,\r\n public status?: string,\r\n public deviceType?: string,\r\n public deviceModel?: string,\r\n public device?: string,\r\n public deviceSystem?: string,\r\n public model?: string,\r\n public articleId?: number,\r\n public serialNumberId?: number,\r\n public snDevicetype?: string,\r\n public certificatePath?: string,\r\n public articleCode?: string,\r\n public plantId?: string,\r\n public tags?: Tag[],\r\n // public applications?: string[],\r\n public userNotes?: string,\r\n public name?: string,\r\n public description?: string,\r\n public firmwareVersion?: string,\r\n public hardwareVersion?: string,\r\n public warrantyExpiration?: Date,\r\n public warrantyName?: string,\r\n public warrantyPlus?: string,\r\n public warrantyStatus?: string,\r\n public documents?: Document[]\r\n ) {}\r\n}\r\n\r\nexport class DeviceNameSerial {\r\n constructor(public serialnumber?: string, public deviceName?: string) {}\r\n}\r\n\r\nexport class SerialNumber {\r\n constructor(\r\n public id?: number,\r\n public serialnumber?: string,\r\n public devicetype?: string,\r\n public certificatePath?: string,\r\n public deviceId?: string,\r\n public article?: ArticleCode,\r\n public articleId?: number,\r\n public articleCode?: string,\r\n public description?: string,\r\n public warrantyExp?: Date,\r\n public installedBy?: string,\r\n public productionDate?: Date,\r\n public marketingConsent?: boolean,\r\n public warrantyStatus?: WarrantyStatus,\r\n public country?: string,\r\n ) {}\r\n}\r\n\r\nexport class SerialNumbersImportStatus {\r\n constructor(\r\n public success?: boolean,\r\n public message?: string,\r\n public importedAt?: Date,\r\n public erroredRows?: number,\r\n public skippedRows?: number,\r\n public importedRows?: number\r\n ) {}\r\n}\r\n\r\nexport class SerialNumberUpdate {\r\n constructor(\r\n public serialnumber?: string,\r\n public certificatePath?: string,\r\n public deviceId?: string,\r\n public articleId?: number,\r\n public description?: string,\r\n public warrantyExp?: Date,\r\n public productionDate?: Date\r\n ) {}\r\n}\r\n\r\nexport class SerialEditing {\r\n constructor(public bool: boolean, public id: number) {}\r\n}\r\n\r\nexport class SubscribeSerialNumbers {\r\n constructor(public serialNumberIds?: number[], public userId?: number, public clear?: boolean) {}\r\n}\r\n\r\nexport class SubscribeSerialNumber {\r\n constructor(public serialNumberId?: number, public userIds?: number[]) {}\r\n}\r\n\r\nexport class UnsubscribeSerialNumber {\r\n constructor(public serialNumberId?: number, public userIds?: number[]) {}\r\n}\r\n\r\nexport class SearchDevice {\r\n constructor(public id?: string, public serialNumber?: string, public name?: string, public tags?: Tag[]) {}\r\n}\r\n\r\nexport enum DeviceType {\r\n AudioVideoTerminal = \"audioVideoTerminal\",\r\n Automation = \"automation\",\r\n Breaker = \"breaker\",\r\n Gateway = \"gateway\",\r\n ELC = \"ELC\",\r\n ELU = \"ELU\",\r\n Hygrometer = \"hygrometer\",\r\n Light = \"light\",\r\n Lock = \"lock\",\r\n Meter = \"meter\",\r\n Plug = \"plug\",\r\n Scene = \"scene\",\r\n Shutter = \"shutter\",\r\n Thermometer = \"thermometer\",\r\n Thermostat = \"thermostat\",\r\n}\r\n\r\nexport enum WarrantyStatusDTO {\r\n UNDER_WARRANTY = \"UNDER_WARRANTY\",\r\n WARRANTY_EXPIRED = \"WARRANTY_EXPIRED\",\r\n WARRANTY_ALMOST_EXPIRED = \"WARRANTY_ALMOST_EXPIRED\",\r\n}\r\n\r\nexport enum WarrantyStatus {\r\n ALL = \"All\",\r\n UNDER_WARRANTY = \"device_under_warranty\",\r\n WARRANTY_EXPIRED = \"device_warranty_expired\",\r\n WARRANTY_ALMOST_EXPIRED = \"device_warranty_almost_expired\",\r\n}\r\n\r\nexport class DeviceHistory {\r\n constructor(public id?: number, public type?: HistoryType, public eventDate?: Date, public title?: string) {}\r\n}\r\n\r\nexport enum HistoryType {\r\n MAINTENANCE = 0,\r\n INSTALLATION = 1,\r\n WARRANTY_EXPIRATION_UPDATED = 2,\r\n DEVICE_ACTIVATION = 3,\r\n}\r\n\r\nexport interface WarrantyVersion {\r\n country: string;\r\n version: WarrantyVersionEnum;\r\n}\r\n\r\nexport enum WarrantyVersionEnum {\r\n A = 0,\r\n B = 1,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestAgendaService } from 'src/app/service/rest/agenda/rest-agenda.service';\r\nimport { News } from './news.model';\r\n\r\n@Injectable()\r\nexport class NewsService {\r\n\r\n private _news: News;\r\n\r\n constructor(private agendaRest : RestAgendaService) { }\r\n\r\n public get news(): News {\r\n return this._news;\r\n }\r\n public set news(value: News) {\r\n this._news = value;\r\n }\r\n\r\n createNews(news: FormData) : Observable {\r\n return this.agendaRest.createAgendaElement(news);\r\n }\r\n\r\n updateNews(news: FormData) {\r\n return this.agendaRest.updateAgendaElement(news);\r\n }\r\n\r\n deleteNews(newsId : number) {\r\n return this.agendaRest.deleteAgendaElement(newsId);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { DeviceType } from 'src/app/models/device-type/device-type-model';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class RestDeviceTypesService extends BaseApiService {\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n createDeviceType(deviceType: DeviceType): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"DeviceTypes\", deviceType, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n updateDeviceType(deviceType: DeviceType): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"DeviceTypes/\" + deviceType.id, deviceType, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n deleteDeviceType(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"DeviceTypes/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getDeviceTypeById(id: number) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"DeviceTypes/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getAllDeviceTypes() : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"DeviceTypes\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestArticleCodeService } from 'src/app/service/rest/article-code/rest-article-code.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ArticleCode } from './article-code.model';\r\n\r\n@Injectable()\r\nexport class ArticleCodesRepositoryService {\r\n\r\n private _articleCodes: ArticleCode[];\r\n private _selectedArticleCodes: ArticleCode[];\r\n private _articleCodesLoaded: boolean = false;\r\n private _selectedArticleCode: ArticleCode;\r\n private _selectedArticleCodeDocuments: Document[];\r\n private _selectedArticleCodeImages: Document[];\r\n private _selectedArticleCodeVideos: Document[];\r\n \r\n private _dataSourceArticleCodes = new MatTableDataSource();\r\n \r\n \r\n constructor(private restArticle : RestArticleCodeService) {}\r\n \r\n get articleCodes(): ArticleCode[] {\r\n let articleCodes: ArticleCode[];\r\n if (!this._articleCodes) {\r\n articleCodes = JSON.parse(sessionStorage.getItem(environment.storage.articleCodes));\r\n return articleCodes;\r\n } else{ \r\n return this._articleCodes};\r\n }\r\n \r\n set articleCodes(value: ArticleCode[]) {\r\n if(value) sessionStorage.setItem(environment.storage.articleCodes, JSON.stringify(value));\r\n this._articleCodes = value;\r\n }\r\n \r\n public get selectedArticleCode(): ArticleCode | undefined {\r\n return this._selectedArticleCode;\r\n }\r\n \r\n public set selectedArticleCode(value: ArticleCode | undefined) {\r\n this._selectedArticleCode = value;\r\n }\r\n \r\n public get dataSourceArticleCodes() {\r\n return this._dataSourceArticleCodes;\r\n }\r\n public set dataSourceArticleCodes(value) {\r\n this._dataSourceArticleCodes = value;\r\n }\r\n \r\n public get selectedArticleCodeVideos(): Document[] {\r\n return this._selectedArticleCodeVideos;\r\n }\r\n public set selectedArticleCodeVideos(value: Document[]) {\r\n this._selectedArticleCodeVideos = value;\r\n }\r\n \r\n public get selectedArticleCodeImages(): Document[] {\r\n return this._selectedArticleCodeImages;\r\n }\r\n public set selectedArticleCodeImages(value: Document[]) {\r\n this._selectedArticleCodeImages = value;\r\n }\r\n \r\n public get selectedArticleCodeDocuments(): Document[] {\r\n return this._selectedArticleCodeDocuments;\r\n }\r\n public set selectedArticleCodeDocuments(value: Document[]) {\r\n this._selectedArticleCodeDocuments = value;\r\n }\r\n \r\n public get selectedArticleCodes(): ArticleCode[] {\r\n return this._selectedArticleCodes;\r\n }\r\n public set selectedArticleCodes(value: ArticleCode[]) {\r\n this._selectedArticleCodes = value;\r\n }\r\n\r\n loadArticleCodes(shouldBeReloaded:boolean = false) {\r\n if (shouldBeReloaded || !this._articleCodesLoaded) {\r\n this.restArticle.getAllArticleCodes()\r\n .subscribe(result => {\r\n this.articleCodes = result;\r\n this.selectedArticleCodes = result;\r\n // this.selectedArticleCode = this.articleCodes[0];\r\n }, error => {\r\n console.log(error);\r\n });\r\n }\r\n \r\n this._articleCodesLoaded = true;\r\n }\r\n\r\n loadArticleCodesByFamilyId(familyId: number): Observable {\r\n return this.restArticle.getAllArticleCodesByFamilyId(familyId);\r\n }\r\n \r\n getArticleCodes() : Observable{\r\n return this.restArticle.getAllArticleCodes();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Device } from './device.model';\r\nimport { Tag } from '../utils.model';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\n\r\nconst deviceStorageKey = 'UPS-device';\r\nconst deviceApplicationsStorageKey = 'UPS-device-applicationsList';\r\n\r\n@Injectable()\r\nexport class DeviceService {\r\n private _device: Device;\r\n private _temporaryDevice: Device;\r\n private _applicationsList: any;\r\n\r\n private _saveTemporaryDevice: boolean = false;\r\n\r\n constructor(private translate: TranslateFirebaseService) {\r\n const data = sessionStorage.getItem(deviceStorageKey);\r\n if (data != null) this.device = JSON.parse(data);\r\n else this.device = new Device();\r\n }\r\n\r\n get device(): Device {\r\n return this._device;\r\n }\r\n\r\n set device(device: Device) {\r\n this._device = device;\r\n sessionStorage.setItem(deviceStorageKey, JSON.stringify(device));\r\n }\r\n\r\n get temporaryDevice(): Device {\r\n return this._temporaryDevice;\r\n }\r\n\r\n set temporaryDevice(device: Device) {\r\n this._temporaryDevice = device;\r\n }\r\n\r\n get saveTemporaryDevice(): boolean {\r\n return this._saveTemporaryDevice;\r\n }\r\n\r\n set saveTemporaryDevice(value: boolean) {\r\n this._saveTemporaryDevice = value;\r\n }\r\n\r\n public get applicationsList(): Tag[] {\r\n let applicationsList = null\r\n if (this.translate.getTranslation('enum_device_application'))\r\n applicationsList = JSON.parse(this.translate.getTranslation('enum_device_application'));\r\n const data: Tag[] = JSON.parse(sessionStorage.getItem(deviceApplicationsStorageKey));\r\n if (applicationsList){\r\n this.applicationsList = applicationsList;\r\n return applicationsList;\r\n }\r\n else if (data){\r\n return data;\r\n } else return [];\r\n }\r\n\r\n public set applicationsList(value: Tag[]) {\r\n this._applicationsList = value;\r\n sessionStorage.setItem(deviceApplicationsStorageKey, JSON.stringify(value));\r\n }\r\n\r\n reset() {\r\n this.device = new Device();\r\n this.temporaryDevice = new Device();\r\n this.saveTemporaryDevice = false;\r\n sessionStorage.removeItem(deviceStorageKey);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { RestPlantService } from 'src/app/service/rest/plant/rest-plant.service';\r\nimport { PageDialogService } from 'src/app/service/utils/page-dialog.service';\r\nimport { PageService } from 'src/app/service/utils/page.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { AllowedUser, PlantOwner } from '../user/user.model';\r\nimport { UserService } from '../user/user.service';\r\nimport {\r\n AddPlantFromDeviceType,\r\n OwnerAuthorization,\r\n Plant,\r\n} from './plant.model';\r\nimport { PlantService } from './plant.service';\r\n\r\nexport const USER_PLANTS_STORAGE_KEY = 'Upservice-user-plants';\r\n\r\n@Injectable()\r\nexport class PlantRepositoryService {\r\n private _plants: Plant[] = [];\r\n plantsLoaded: boolean = false;\r\n\r\n constructor(\r\n private plantService: PlantService,\r\n private plantRest: RestPlantService,\r\n private pageService: PageService,\r\n private pageDialogService: PageDialogService,\r\n private translate: TranslateFirebaseService,\r\n private router: Router,\r\n private userService: UserService\r\n ) {\r\n //if (!this.plantsLoaded) this.loadPlants();\r\n }\r\n\r\n public get plants(): Plant[] {\r\n let data: Plant[] = JSON.parse(\r\n sessionStorage.getItem(USER_PLANTS_STORAGE_KEY)\r\n );\r\n if (this._plants.length == 0 && !this.plantsLoaded && data) {\r\n data.forEach((plant: Plant) => {\r\n if (plant.tags) {\r\n if (\r\n plant.tags.find((tag) => tag.key?.toLowerCase() == 'creationdate')\r\n ) {\r\n plant.creationDate = new Date(\r\n plant.tags.find(\r\n (tag) => tag.key.toLowerCase() == 'creationdate'\r\n ).value\r\n );\r\n }\r\n if (plant.tags.find((tag) => tag.key?.toLowerCase() == 'companyname'))\r\n plant.companyName = plant.tags.find(\r\n (tag) => tag.key.toLowerCase() == 'companyname'\r\n ).value;\r\n if (plant.tags.find((tag) => tag.key?.toLowerCase() == 'planttype'))\r\n plant.type = plant.tags.find(\r\n (tag) => tag.key.toLowerCase() == 'planttype'\r\n ).value;\r\n }\r\n\r\n if (!plant.creationDate) plant.creationDate = new Date();\r\n });\r\n\r\n this.plants = data;\r\n\r\n this.loadPlants();\r\n\r\n return data;\r\n } else return this._plants;\r\n }\r\n\r\n public set plants(value: Plant[]) {\r\n sessionStorage.setItem(USER_PLANTS_STORAGE_KEY, JSON.stringify(value));\r\n this._plants = value;\r\n }\r\n\r\n getPlants(): Plant[] {\r\n if (!this.plantsLoaded) this.loadPlants();\r\n\r\n return this.plants;\r\n }\r\n\r\n private loadPlants() {\r\n //TODO COMPANY NAME quando sarà presente come parametro non ci sarà bisogno di salvare in tag\r\n this.plantRest.getPlantsList().subscribe(\r\n (plants: Plant[]) => {\r\n if (plants) {\r\n this.plants = [];\r\n plants.forEach((plant: Plant) => {\r\n if (plant.tags) {\r\n if (\r\n plant.tags.find(\r\n (tag) => tag.key && tag.key.toLowerCase() == 'creationdate'\r\n )\r\n ) {\r\n plant.creationDate = new Date(\r\n plant.tags.find(\r\n (tag) => tag.key.toLowerCase() == 'creationdate'\r\n ).value\r\n );\r\n }\r\n if (\r\n plant.tags.find(\r\n (tag) => tag.key && tag.key.toLowerCase() == 'companyname'\r\n )\r\n )\r\n plant.companyName = plant.tags.find(\r\n (tag) => tag.key.toLowerCase() == 'companyname'\r\n ).value;\r\n if (\r\n plant.tags.find(\r\n (tag) => tag.key && tag.key.toLowerCase() == 'planttype'\r\n )\r\n )\r\n plant.type = plant.tags.find(\r\n (tag) => tag.key.toLowerCase() == 'planttype'\r\n ).value;\r\n }\r\n if (!plant.creationDate) plant.creationDate = new Date();\r\n });\r\n this.plants = plants;\r\n this.plantsLoaded = true;\r\n }\r\n },\r\n (error) => {\r\n if (error.status == 401) this.router.navigateByUrl('/prelogin');\r\n console.log(error.status);\r\n }\r\n );\r\n }\r\n\r\n createPlant(plant: Plant) {\r\n this.plantRest.createPlant(plant).subscribe(\r\n (result: Plant) => {\r\n if (result) {\r\n if (\r\n this.pageDialogService.addPlantFromDevice !=\r\n AddPlantFromDeviceType.NONE\r\n ) {\r\n this.pageDialogService.plantId = result.id;\r\n this.pageDialogService.addPlant = false;\r\n if (\r\n this.pageDialogService.addPlantFromDevice ==\r\n AddPlantFromDeviceType.ADD\r\n ) {\r\n this.pageDialogService.dialogTitle = 'add_device_title';\r\n this.pageDialogService.addDevice = true;\r\n } else if (\r\n this.pageDialogService.addPlantFromDevice ==\r\n AddPlantFromDeviceType.EDIT\r\n ) {\r\n this.pageDialogService.dialogTitle = 'edit_device_title';\r\n this.pageDialogService.editDevice = true;\r\n }\r\n this.pageDialogService.addPlantFromDevice =\r\n AddPlantFromDeviceType.NONE;\r\n }\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('add_plant_success'),\r\n 'Ok'\r\n );\r\n result.creationDate = new Date();\r\n result.creationDate.setHours(0, 0, 0, 0);\r\n if (result.tags.find((tag) => tag.key.toLowerCase() == 'companyname'))\r\n result.companyName = result.tags.find(\r\n (tag) => tag.key.toLowerCase() == 'companyname'\r\n ).value;\r\n this.plants.push(result);\r\n sessionStorage.setItem(\r\n USER_PLANTS_STORAGE_KEY,\r\n JSON.stringify(this.plants)\r\n );\r\n }\r\n },\r\n (error) => {\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('add_plant_failed'),\r\n 'Ok'\r\n );\r\n console.log(error.status);\r\n }\r\n );\r\n }\r\n\r\n updatePlant(plant: Plant) {\r\n this.plantRest.updatePlant(plant).subscribe(\r\n (result: string) => {\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('update_plant_success'),\r\n 'Ok'\r\n );\r\n const index: number = this.plants\r\n .map((plant) => plant.id)\r\n .indexOf(plant.id);\r\n this.plantService.plant = plant;\r\n this.plants[index] = plant;\r\n sessionStorage.setItem(\r\n USER_PLANTS_STORAGE_KEY,\r\n JSON.stringify(this.plants)\r\n );\r\n },\r\n (error) => {\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('update_plant_failed'),\r\n 'Ok'\r\n );\r\n console.log(error.status);\r\n }\r\n );\r\n }\r\n\r\n deletePlant(plant: Plant) {\r\n this.plantRest.deletePlant(plant.id).subscribe(\r\n (result) => {\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('delete_plant_success'),\r\n 'Ok'\r\n );\r\n const index = this.plants.map((plant) => plant.id).indexOf(plant.id);\r\n if (index > -1) this.plants.splice(index, 1);\r\n sessionStorage.setItem(\r\n USER_PLANTS_STORAGE_KEY,\r\n JSON.stringify(this.plants)\r\n );\r\n },\r\n (error) => {\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('delete_plant_failed'),\r\n 'Ok'\r\n );\r\n console.log(error.status);\r\n }\r\n );\r\n }\r\n\r\n getPlantById(id: string) {\r\n if (this.plantsLoaded) {\r\n let plant: Plant = this.plants.find((plant: Plant) => plant.id == id);\r\n this.plantService.plant = plant;\r\n } else\r\n this.plantRest.getPlant(id).subscribe((result) => {\r\n this.plantService.plant = result;\r\n });\r\n }\r\n\r\n getPlantsByDate(date: Date): Plant[] {\r\n return this.plants.filter(\r\n (plant) =>\r\n date == undefined ||\r\n plant.creationDate.setHours(0, 0, 0) == date.setHours(0, 0, 0)\r\n );\r\n }\r\n\r\n getPlantDates(order: boolean) {\r\n //IF order == true newest to oldest, else oldest to newest\r\n if (order)\r\n return this.plants\r\n .map((plant) => plant.creationDate)\r\n .filter(\r\n (ele, index, array) =>\r\n array.findIndex(\r\n (i) => i.setHours(0, 0, 0) == ele.setHours(0, 0, 0)\r\n ) == index\r\n )\r\n .sort((a, b) => (a > b ? -1 : 1));\r\n else\r\n return this.plants\r\n .map((plant) => plant.creationDate)\r\n .filter(\r\n (ele, index, array) =>\r\n array.findIndex(\r\n (i) => i.setHours(0, 0, 0) == ele.setHours(0, 0, 0)\r\n ) == index\r\n )\r\n .sort((a, b) => (a > b ? 1 : -1));\r\n }\r\n\r\n getPlantsChars(ascending: boolean) {\r\n if (ascending)\r\n return this.plants\r\n .map((plant) => plant.name.toLowerCase().charAt(0))\r\n .filter((ele, index, array) => array.indexOf(ele) == index)\r\n .sort((a, b) => (a > b ? 1 : -1));\r\n else\r\n return this.plants\r\n .map((plant) => plant.name.toLowerCase().charAt(0))\r\n .filter((ele, index, array) => array.indexOf(ele) == index)\r\n .sort((a, b) => (a > b ? -1 : 1));\r\n }\r\n\r\n getPlantsByChar(char: string): Plant[] {\r\n return this.plants.filter(\r\n (plant) =>\r\n char == undefined ||\r\n plant.name.toLowerCase().charAt(0) == char.toLowerCase()\r\n );\r\n }\r\n\r\n getPlantsAllowedUsers(ascending: boolean): AllowedUser[] {\r\n let totalAllowedUsers: AllowedUser[] = [];\r\n let allowedUsersArray = this.plants.map((plant) => plant.allowedUsers);\r\n allowedUsersArray.forEach((plantAllowedUsers) => {\r\n if (plantAllowedUsers)\r\n plantAllowedUsers.forEach((user: AllowedUser) => {\r\n if (totalAllowedUsers.indexOf(user) == -1)\r\n totalAllowedUsers.push(user);\r\n });\r\n });\r\n\r\n if (ascending) return totalAllowedUsers.sort((a, b) => (a > b ? 1 : -1));\r\n else return totalAllowedUsers.sort((a, b) => (a > b ? -1 : 1));\r\n }\r\n\r\n getPlantsOwners(ascending: boolean): PlantOwner[] {\r\n let totalOwners: PlantOwner[] = [];\r\n let ownerArray: PlantOwner[] = this.plants.map((plant) => {\r\n return new PlantOwner(plant.ownerId, plant.ownerEmail);\r\n });\r\n\r\n ownerArray.forEach((plantOwner: PlantOwner) => {\r\n if (\r\n plantOwner.ownerId !== this.userService.upsUser.oid &&\r\n totalOwners.findIndex((po) => po.ownerId == plantOwner.ownerId) == -1\r\n )\r\n totalOwners.push(plantOwner);\r\n });\r\n\r\n if (ascending) return totalOwners.sort((a, b) => (a > b ? 1 : -1));\r\n else return totalOwners.sort((a, b) => (a > b ? -1 : 1));\r\n }\r\n\r\n getPlantsByAllowedUser(allowedUser: AllowedUser): Plant[] {\r\n return this.plants.filter(\r\n (plant) =>\r\n plant.allowedUsers && plant.allowedUsers.indexOf(allowedUser) > -1\r\n );\r\n }\r\n\r\n getPlantsByOwner(owner: PlantOwner): Plant[] {\r\n return this.plants\r\n .filter((plant) => plant.ownerId === owner.ownerId)\r\n .sort((a: Plant, b: Plant) =>\r\n a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1\r\n );\r\n }\r\n\r\n getPlantsAsOwner(): Plant[] {\r\n return this.plants\r\n .filter((plant) => plant.ownerId === this.userService.upsUser.oid)\r\n .sort((a: Plant, b: Plant) =>\r\n a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1\r\n );\r\n }\r\n\r\n sharePlant(id: string, email: string) {\r\n return this.plantRest.inviteUserOnPlant(id, email);\r\n }\r\n\r\n unsharePlant(id: string, email: string): Observable {\r\n return this.plantRest.removeUserFromPlant(id, email);\r\n }\r\n\r\n changeOwner(id: string, email: string, authorization: OwnerAuthorization) {\r\n return this.plantRest.changePlantOwner(id, email, authorization);\r\n }\r\n\r\n getPlantName(id: string): string {\r\n let plant: Plant = this.plants.find((plant: Plant) => plant.id == id);\r\n if (plant) return plant?.name;\r\n else return '';\r\n }\r\n\r\n getPlantCountry(id: string): string {\r\n let plant: Plant = this.plants.find((plant: Plant) => plant.id == id);\r\n if (plant) return plant?.country;\r\n else return '';\r\n }\r\n}\r\n","import { AllowedUser, InvitedUser } from \"../user/user.model\";\r\nimport { Tag } from \"../utils.model\";\r\n\r\nexport class Plant {\r\n\r\n constructor(\r\n public name? : string,\r\n public country? : string,\r\n public type? : string,\r\n public creationDate? : Date,\r\n public ownerId? : string,\r\n public ownerEmail? : string,\r\n public status? : string,\r\n public zipCode? : number,\r\n public address? : string,\r\n public offset? : string,\r\n public allowedUsers? : AllowedUser[],\r\n public invitedUsers? : InvitedUser[],\r\n public tags? : Tag[],\r\n public internalId? : string,\r\n public establishment? : string,\r\n public floor? : number,\r\n public companyName?: string,\r\n public id? : string){}\r\n\r\n}\r\n\r\nexport class SearchPlant {\r\n\r\n constructor(\r\n public name? : string,\r\n public id? : string){}\r\n\r\n}\r\n\r\nexport class OwnerAuthorization {\r\n constructor(\r\n public password : string,\r\n public shouldCurrentUserRightsBeRemoved? : boolean){}\r\n}\r\n\r\n/* export enum PlantType {\r\n HOTEL = 'hotel',\r\n HOUSE = 'house',\r\n OFFICE = 'office',\r\n HOSPITAL = 'hospital'\r\n} */\r\n\r\nexport enum AddPlantFromDeviceType {\r\n NONE = '',\r\n ADD = 'add',\r\n EDIT = 'edit'\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Device } from 'src/app/models/device/device.model';\r\nimport { OwnerAuthorization, Plant } from 'src/app/models/plant/plant.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\nconst plantAPIVersion = \"v3.0\";\r\n\r\n\r\n@Injectable()\r\nexport class RestPlantService extends BaseApiService {\r\n\r\n\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n //PLANT APIs\r\n\r\n deletePlant(id: string) {\r\n return this.httpClient.delete(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants/\" + id, {headers: this.authService.eliotHttpHeaders});\r\n }\r\n\r\n createPlant(plant: Plant): Observable {\r\n return this.httpClient.post(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants\", plant, {headers: this.authService.eliotHttpHeaders});\r\n }\r\n\r\n getPlantsList(): Observable {\r\n return this.httpClient.get(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants\", {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n getPlant(id: string): Observable {\r\n return this.httpClient.get(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants/\" + id, {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n updatePlant(plant: Plant): Observable {\r\n return this.httpClient.patch(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants/\" + plant.id, plant, {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n getDeviceListByPlantId(id: string) : Observable{\r\n return this.httpClient.get(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants/\" + id + \"/modules\");\r\n }\r\n\r\n inviteUserOnPlant(id: string, email: string) {\r\n let body = {\r\n language : \"it\"\r\n }\r\n return this.httpClient.post(super.getEliotApiHost()+ \"servicecatalog/api/\" + plantAPIVersion + \"/plants/\" + id + \"/delegatedusers/\" + email + \"/\", body, {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n removeUserFromPlant(id : string, email: string) {\r\n return this.httpClient.delete(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants/\" + id + \"/delegatedusers/\" + email + \"/\", {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n changePlantOwner(id : string, email : string, body : OwnerAuthorization) : Observable {\r\n\r\n return this.httpClient.post(super.getEliotApiHost() + \"servicecatalog/api/\" + plantAPIVersion + \"/plants/\" + id + \"/owner/\" + email +\"/\", body, {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n}\r\n","export class EliotUser {\r\n\r\n constructor(public id? : string,\r\n public username? : string,\r\n public password? : string,\r\n public givenName? : string,\r\n public displayName? : string,\r\n public surname? : string,\r\n public email? : string,\r\n public country? : string,\r\n public role? : number,\r\n public language?: string,\r\n public languageId?: string,\r\n public marketingCampaigns? : boolean,\r\n public profiling? : boolean){}\r\n}\r\n\r\nexport class UpsUser {\r\n\r\n constructor(public id : number,\r\n public oid : string,\r\n public email : string,\r\n public appRole : number,\r\n public backofficeRole : number,\r\n public reminderDuration : number,\r\n public warrantyReminderDuration : number,\r\n public username : string,\r\n public surname: string,\r\n public firstName: string,\r\n public newUser? : boolean) { }\r\n public promotionalVideoShowed? : boolean\r\n public languageId?: string \r\n}\r\n\r\nexport class AllowedUser {\r\n\r\n constructor(public id : string,\r\n public email : string){}\r\n}\r\n\r\nexport class PlantOwner {\r\n\r\n constructor(public ownerId : string,\r\n public ownerEmail : string){}\r\n}\r\n\r\nexport class InvitedUser {\r\n\r\n constructor(public email : string){}\r\n}\r\n\r\nexport class UserConsent {\r\n constructor(public marketingCampaigns? : boolean,\r\n public profiling? : boolean){}\r\n}\r\n\r\nexport class UserConsentStatus {\r\n constructor(public document?: ConsentDocumentType,\r\n public url?: string,\r\n public date?: Date,\r\n public version?: string,\r\n public action?: ConsentDocumentAction) { }\r\n}\r\n\r\nexport class BaseUser {\r\n constructor(public userId?: number,\r\n public username? : string) { }\r\n}\r\n\r\nexport enum ConsentDocumentType {\r\n TERMS_OF_USE = 'TermsOfUse',\r\n PRIVACY_POLICY = 'PrivacyPolicy'\r\n}\r\n\r\nexport enum ConsentDocumentTypeParam {\r\n TERMS_OF_USE = 'ToU',\r\n PRIVACY_POLICY = 'Privacy_Policy'\r\n}\r\n\r\nexport class ConsentDocumentAction {\r\n constructor(public type?: ConsentStatusType,\r\n public version?: string,\r\n public url?: string) { }\r\n}\r\n\r\nexport enum ConsentStatusType {\r\n UPDATE = 'update',\r\n CONSENT = 'consent',\r\n NONE = 'none\"'\r\n}\r\n","export default \"\\r\\n
\\r\\n
\\r\\n

UPservice

\\r\\n \\\"Legrand
\\r\\n
\\r\\n
\\r\\n
\\r\\n Loading...\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ArticleCode } from 'src/app/models/article-code/article-code.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestArticleCodeService extends BaseApiService {\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n createArticleCode(articleCode: ArticleCode): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"Articles\", articleCode, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n updateArticleCode(articleCode: ArticleCode): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Articles/\" + articleCode.id, articleCode, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n deleteArticleCode(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"Articles/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getArticleCodeById(id: number) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Articles/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getAllArticleCodes(): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'Articles', { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getAllArticleCodesByFamilyId(familyId: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'Articles/DeviceTypeFamily/' + familyId, { headers: this.authService.upsHttpHeaders });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Step, StepOrder } from './procedure.model';\r\n\r\n@Injectable()\r\nexport class StepService {\r\n\r\n private _step: Step;\r\n private _selectedStep: number = -1;\r\n\r\n constructor() { }\r\n\r\n get step() : Step{\r\n return this._step;\r\n }\r\n\r\n set step(step : Step) {\r\n this._step = step;\r\n }\r\n\r\n get selectedStep(): number {\r\n return this._selectedStep;\r\n }\r\n\r\n set selectedStep(value: number) {\r\n this._selectedStep = value;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestDeviceService } from 'src/app/service/rest/device/rest-device.service';\r\nimport { RestPlantService } from 'src/app/service/rest/plant/rest-plant.service';\r\nimport { RestSerialService } from 'src/app/service/rest/serial/rest-serial.service';\r\nimport { LastSearchedService } from 'src/app/service/utils/last-searched.service';\r\nimport { PageService } from 'src/app/service/utils/page.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { AgendaRepositoryService } from '../agenda/agenda-repository.service';\r\nimport { PlantRepositoryService } from '../plant/plant-repository.service';\r\nimport { UserService } from '../user/user.service';\r\nimport {\r\n Device,\r\n DeviceNameSerial,\r\n SubscribeSerialNumber,\r\n SubscribeSerialNumbers,\r\n UnsubscribeSerialNumber,\r\n} from './device.model';\r\nimport { DeviceService } from './device.service';\r\n\r\nexport const USER_DEVICES_STORAGE_KEY = 'Upservice-user-devices';\r\n\r\n@Injectable()\r\nexport class DeviceRepositoryService {\r\n private _userDevices: Device[] = [];\r\n private _plantDevices: Device[] = [];\r\n\r\n public userDevicesLoaded: boolean = false;\r\n plantDevicesLoaded: boolean = false;\r\n plantId: string;\r\n\r\n constructor(\r\n private deviceRest: RestDeviceService,\r\n private pageService: PageService,\r\n private plantRest: RestPlantService,\r\n private deviceService: DeviceService,\r\n private userService: UserService,\r\n private agendaRepo: AgendaRepositoryService,\r\n private plantRepository: PlantRepositoryService,\r\n private serialRest: RestSerialService,\r\n private translate: TranslateFirebaseService,\r\n private lastSearchedService: LastSearchedService\r\n ) {}\r\n\r\n getUserDevices() {\r\n this.loadUserDevices();\r\n }\r\n\r\n get userDevices(): Device[] {\r\n let data: Device[] = JSON.parse(\r\n sessionStorage.getItem(USER_DEVICES_STORAGE_KEY)\r\n );\r\n if (this._userDevices.length == 0 && !this.userDevicesLoaded && data) {\r\n data.forEach((device, index) => {\r\n this.userDevicesLoaded = true;\r\n if (device.creationDate)\r\n device.creationDate = new Date(device.creationDate?.toString());\r\n if (device.activationDate)\r\n device.activationDate = new Date(device.activationDate?.toString());\r\n });\r\n\r\n this.userDevices = data;\r\n return data;\r\n } else return this._userDevices;\r\n }\r\n\r\n set userDevices(devices: Device[]) {\r\n sessionStorage.setItem(USER_DEVICES_STORAGE_KEY, JSON.stringify(devices));\r\n this._userDevices = devices;\r\n }\r\n\r\n get plantDevices(): Device[] {\r\n return this._plantDevices;\r\n }\r\n\r\n set plantDevices(devices: Device[]) {\r\n this._plantDevices = devices;\r\n }\r\n\r\n set device(device: Device) {\r\n this.deviceService.device = device;\r\n }\r\n\r\n get device(): Device {\r\n return this.deviceService.device;\r\n }\r\n\r\n getPlantDevices(id: string): Device[] {\r\n if (!this.plantDevicesLoaded && id != this.plantId)\r\n this.loadPlantDevices(id);\r\n\r\n return this.plantDevices;\r\n }\r\n\r\n private loadUserDevices() {\r\n this.deviceRest.getUserDeviceList().subscribe(\r\n (result: Device[]) => {\r\n this.userDevicesLoaded = true;\r\n if (result)\r\n result.forEach((device, index) => {\r\n if (device.creationDate)\r\n device.creationDate = new Date(device.creationDate?.toString());\r\n if (device.activationDate)\r\n device.activationDate = new Date(\r\n device.activationDate?.toString()\r\n );\r\n //TODO da rimettere se i documenti di garanzia non sono fatti\r\n //if (index == 0) device.certificatePath = 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf';\r\n });\r\n this.userDevices = result;\r\n\r\n let subscribeSerialNumbers = new SubscribeSerialNumbers();\r\n\r\n subscribeSerialNumbers.serialNumberIds = this.userDevices.map(\r\n (device: Device) => device.serialNumberId\r\n );\r\n subscribeSerialNumbers.userId = this.userService.upsUser.id;\r\n subscribeSerialNumbers.clear = true;\r\n\r\n this.deviceRest\r\n .subscribeSerialNumbers(subscribeSerialNumbers)\r\n .subscribe(\r\n () => {\r\n console.log(\r\n 'Serials subscribe for user ID:' + this.userService.upsUser.id\r\n );\r\n this.agendaRepo.getAllAgendaByUser();\r\n this.agendaRepo.getUserNotificationCount();\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n },\r\n (error) => {\r\n this.userDevicesLoaded = false;\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n private loadPlantDevices(id: string) {\r\n this.plantId = id;\r\n\r\n this.plantRest.getDeviceListByPlantId(id).subscribe(\r\n (result) => {\r\n this.plantDevices = result;\r\n },\r\n (error) => {\r\n console.log(error.status);\r\n }\r\n );\r\n }\r\n\r\n createDevice(): Observable {\r\n return this.deviceRest.createDevice(this.device);\r\n }\r\n\r\n subscribeSerialNumber(serialNumberId: number): Observable {\r\n let subscribeSerialNumber: SubscribeSerialNumber =\r\n new SubscribeSerialNumber();\r\n subscribeSerialNumber.serialNumberId = serialNumberId;\r\n subscribeSerialNumber.userIds = [this.userService.upsUser.id];\r\n\r\n return this.deviceRest.subscribeSerialNumber(subscribeSerialNumber);\r\n }\r\n\r\n archiveDevice(id: string): Observable {\r\n return this.deviceRest.deleteDevice(id);\r\n }\r\n\r\n unsubscribeSerialNumber(serialNumberId: number) {\r\n let unsubscribeSerial = new UnsubscribeSerialNumber();\r\n unsubscribeSerial.serialNumberId = serialNumberId;\r\n unsubscribeSerial.userIds = [this.userService.upsUser.id];\r\n\r\n this.deviceRest.unsubscribeSerialNumber(unsubscribeSerial).subscribe(\r\n () => {\r\n console.log('Unsubscribed Serial with ID:' + serialNumberId);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n getUserDeviceById(id: string) {\r\n if (this.userDevicesLoaded) {\r\n let device: Device = this.userDevices.find(\r\n (device: Device) => device.id == id\r\n );\r\n this.device = device;\r\n } else\r\n this.deviceRest.getDevice(id).subscribe((result) => {\r\n this.device = result;\r\n });\r\n }\r\n\r\n getPlantDeviceById(id: string) {\r\n if (this.plantDevicesLoaded) {\r\n let device: Device = this.plantDevices.find(\r\n (device: Device) => device.id == id\r\n );\r\n this.deviceService.device = device;\r\n } else\r\n this.deviceRest.getDevice(id).subscribe((result) => {\r\n this.deviceService.device = result;\r\n });\r\n }\r\n\r\n getDevicesPlants(ascending: boolean) {\r\n if (ascending)\r\n return this.userDevices\r\n .map((device) => device.plantId)\r\n .filter((ele, index, array) => array.indexOf(ele) == index)\r\n .sort((a, b) => (a > b ? 1 : -1));\r\n else\r\n return this.userDevices\r\n .map((device) => device.plantId)\r\n .filter((ele, index, array) => array.indexOf(ele) == index)\r\n .sort((a, b) => (a > b ? -1 : 1));\r\n }\r\n\r\n getDevicesByPlant(plantId: string): Device[] {\r\n return this.userDevices.filter(\r\n (device) => plantId == undefined || device.plantId == plantId\r\n );\r\n }\r\n\r\n getDevicesTotByPlant(plantId: string): number {\r\n return this.userDevices.filter(\r\n (device) => plantId == undefined || device.plantId == plantId\r\n ).length;\r\n }\r\n\r\n getDevicesByDate(date: Date): Device[] {\r\n return this.userDevices.filter(\r\n (device) =>\r\n date == undefined ||\r\n device.activationDate.setHours(0, 0, 0) == date.setHours(0, 0, 0)\r\n );\r\n }\r\n\r\n getDevicesDates(order: boolean) {\r\n //IF order == true newest to oldest, else oldest to newest\r\n if (order)\r\n return this.userDevices\r\n .map((device) => device.activationDate)\r\n .filter(\r\n (ele, index, array) =>\r\n array.findIndex(\r\n (i) => i.setHours(0, 0, 0) === ele.setHours(0, 0, 0)\r\n ) == index\r\n )\r\n .sort((a, b) => (a > b ? -1 : 1));\r\n else\r\n return this.userDevices\r\n .map((device) => device.activationDate)\r\n .filter(\r\n (ele, index, array) =>\r\n array.findIndex(\r\n (i) => i.setHours(0, 0, 0) === ele.setHours(0, 0, 0)\r\n ) == index\r\n )\r\n .sort((a, b) => (a > b ? 1 : -1));\r\n }\r\n\r\n getDevicesChars(ascending: boolean) {\r\n if (ascending)\r\n return this.userDevices\r\n .map((device) => device.name.toLowerCase().charAt(0))\r\n .filter((ele, index, array) => array.indexOf(ele) == index)\r\n .sort((a, b) => (a > b ? 1 : -1));\r\n else\r\n return this.userDevices\r\n .map((device) => device.name.toLowerCase().charAt(0))\r\n .filter((ele, index, array) => array.indexOf(ele) == index)\r\n .sort((a, b) => (a > b ? -1 : 1));\r\n }\r\n\r\n getDevicesByChar(char: string): Device[] {\r\n return this.userDevices.filter(\r\n (device) =>\r\n char == undefined ||\r\n device.name.toLowerCase().charAt(0) == char.toLowerCase()\r\n );\r\n }\r\n\r\n updateDevice() {\r\n this.deviceRest.updateDevice(this.device).subscribe(\r\n (result: Device) => {\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('update_device_success'),\r\n 'Ok'\r\n );\r\n const index: number = this.userDevices\r\n .map((device) => device.id)\r\n .indexOf(this.device.id);\r\n this.deviceService.device = this.device;\r\n this.userDevices[index] = this.device;\r\n sessionStorage.setItem(\r\n USER_DEVICES_STORAGE_KEY,\r\n JSON.stringify(this.userDevices)\r\n );\r\n },\r\n (error) => {\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('update_device_failed'),\r\n 'Ok'\r\n );\r\n console.log(error.status);\r\n }\r\n );\r\n }\r\n\r\n reset() {\r\n this.userDevices = [];\r\n this.plantDevices = [];\r\n sessionStorage.removeItem(USER_DEVICES_STORAGE_KEY);\r\n }\r\n\r\n clearFromHistory(id: string) {\r\n this.lastSearchedService.clearFromHistory(id);\r\n }\r\n\r\n downloadDocument(documentId: number): Observable {\r\n return this.deviceRest.downloadDocument(documentId);\r\n }\r\n\r\n getUserDevicesSerials(): DeviceNameSerial[] {\r\n return this.userDevices.map(\r\n (device) => new DeviceNameSerial(device.serialNumber, device.name)\r\n );\r\n }\r\n\r\n getDeviceNameBySerialNumber(serialNumber: string): string {\r\n let index: number = this.userDevices.findIndex(\r\n (element) =>\r\n element.serialNumber.toUpperCase() == serialNumber.toUpperCase()\r\n );\r\n return this.userDevices[index].name;\r\n }\r\n\r\n getSerialNumberByDeviceName(deviceName: string): string {\r\n let index: number = this.userDevices.findIndex(\r\n (element) =>\r\n element.name.toUpperCase() == deviceName.toUpperCase()\r\n );\r\n return this.userDevices[index].serialNumber;\r\n }\r\n\r\n getPlantName(serialNumber: string): string {\r\n let deviceIndex: number = this.userDevices.findIndex(\r\n (element) =>\r\n element.serialNumber.toUpperCase() == serialNumber.toUpperCase()\r\n );\r\n let plantIndex: number = this.plantRepository.plants.findIndex(\r\n (element) => element.id == this.userDevices[deviceIndex].plantId\r\n );\r\n return this.plantRepository.plants[plantIndex].name;\r\n }\r\n\r\n getPlantNameByDeviceName(deviceName: string): string {\r\n let deviceIndex: number = this.userDevices.findIndex(\r\n (element) =>\r\n element.name.toUpperCase() == deviceName.toUpperCase()\r\n );\r\n let plantIndex: number = this.plantRepository.plants.findIndex(\r\n (element) => element.id == this.userDevices[deviceIndex].plantId\r\n );\r\n return this.plantRepository.plants[plantIndex].name;\r\n }\r\n}\r\n","export const environment = {\r\n production: true,\r\n environment: 'PROD',\r\n version: 'v1.1.20',\r\n UpsApiEndpoint: 'https://upservice.legrand.com/',\r\n EliotApiEndpoint: 'https://upservice.legrand.com/',\r\n eliot_ocp_key: 'ac9f9c0ffcb94e959062160efb6058ac',\r\n ups_ocp_key: '378d45106b0743b49d3e88c8193c151a',\r\n profileWebviewUrl: 'https://myconnectedaccount.legrand.com/',\r\n firebaseConfig: {\r\n apiKey: 'AIzaSyAF9aggxa0Uef41bk0FEruEAKPhdlgRz-k',\r\n authDomain: 'upservice-legrand.firebaseapp.com',\r\n projectId: 'upservice-legrand',\r\n storageBucket: 'upservice-legrand.appspot.com',\r\n messagingSenderId: '548145135865',\r\n appId: '1:548145135865:web:3794bbbf643f195226e228',\r\n measurementId: 'G-VY77BK72NM',\r\n },\r\n codeAuth: {\r\n clientId: 'a2008729-1868-41d2-aaee-3190001d29bd',\r\n responseType: 'code',\r\n redirectUri: 'https://upservice.legrand.com/login',\r\n loginUrl:\r\n 'https://login.eliotbylegrand.com/0d8816d5-3e7f-4c86-8229-645137e0f222/oauth2/v2.0/authorize?p=B2C_1A_UpServiceWeb',\r\n clientSecret: 'no_need',\r\n timeoutFactor: 300000,\r\n scope:\r\n 'openid offline_access https://EliotCloudUAMPRD.onmicrosoft.com/security/access.full',\r\n },\r\n tokenAuth: {\r\n clientId: 'a2008729-1868-41d2-aaee-3190001d29bd',\r\n responseType: 'token',\r\n tokenEndpoint:\r\n 'https://login.eliotbylegrand.com/0d8816d5-3e7f-4c86-8229-645137e0f222/oauth2/v2.0/token?p=B2C_1A_UpServiceWeb',\r\n grantType: 'authorization_code',\r\n clientSecret: 'no_need',\r\n },\r\n logOutUrl:\r\n 'https://login.eliotbylegrand.com/0d8816d5-3e7f-4c86-8229-645137e0f222/oauth2/v2.0/logout?p=B2C_1A_UpServiceWeb',\r\n logoutRedirectUri: 'https://upservice.legrand.com/prelogin',\r\n storage: {\r\n accessToken: 'UPService-access-token',\r\n sasToken: 'UPService-sas-token',\r\n idToken: 'UPService-id-token',\r\n refreshToken: 'UPService-refresh-token',\r\n tokenExpiresIn: 'UPService-expires-in',\r\n eliotUser: 'UPS-EliotUser',\r\n searchHistory: 'UPService-search-history',\r\n upsUser: 'UPS-UpsUser',\r\n upsBackofficeLanguages: 'UPService-backoffice-languages',\r\n upsSelectedDocument: 'UPService-selected-document',\r\n settingsDateFormat: 'UPService-date-format',\r\n articleCodes: 'UPService-article-codes',\r\n selectedArticleCode: 'UPService-selected-article-code',\r\n agenda: 'UPService-agenda',\r\n news: 'UPService-news',\r\n },\r\n};\r\n","import { WarrantyStatus } from 'src/app/models/device/device.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestSerialService } from 'src/app/service/rest/serial/rest-serial.service';\r\nimport { SerialNumber } from '../device/device.model';\r\n\r\nexport const SERIAL_NUMBERS_STORAGE_KEY = 'Upservice-serial-numbers';\r\n\r\n@Injectable()\r\nexport class SerialNumberRepositoryService {\r\n \r\n \r\n\r\n private _serialNumbers: SerialNumber[] = [];\r\n private _possibleSerialNumbers: SerialNumber[] = [];\r\n private _installedSerialNumbers: SerialNumber[] = [];\r\n private _dataSourceSerialNumbers = new MatTableDataSource();\r\n private _dataSourceInstalledSerialNumbers =\r\n new MatTableDataSource();\r\n\r\n serialNumbersLoaded: boolean = false;\r\n possibleSerialNumbersLoaded: boolean = false;\r\n\r\n constructor(private serialRest: RestSerialService) {}\r\n\r\n public checkSerial(serial: string): Observable {\r\n return this.serialRest.checkSerial(serial);\r\n }\r\n\r\n public getSerialNumberBySerialNumber(serial: string) {\r\n return this.serialRest.getSerialNumberBySerialNumber(serial);\r\n }\r\n\r\n public loadPossibleSerialNumbers() {\r\n this.serialRest.getPossibleSerials().subscribe(\r\n (serials: SerialNumber[]) => {\r\n if (serials) {\r\n this.possibleSerialNumbers = serials;\r\n this.possibleSerialNumbersLoaded = true;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n public loadSerialNumbers(): Observable {\r\n return this.serialRest.getAllSerials();\r\n }\r\n\r\n public loadSerialNumbersByDeviceType(deviceTypeId : number): Observable {\r\n return this.serialRest.getAllSerialsByDeviceType(deviceTypeId);\r\n }\r\n\r\n get serialNumbers(): SerialNumber[] {\r\n let data: SerialNumber[] = JSON.parse(\r\n sessionStorage.getItem(SERIAL_NUMBERS_STORAGE_KEY)\r\n );\r\n if (this._serialNumbers.length == 0 && !this.serialNumbersLoaded && data) {\r\n\r\n this.serialNumbersLoaded = true;\r\n\r\n this.serialNumbers = data;\r\n return data;\r\n } else return this._serialNumbers;\r\n }\r\n\r\n set serialNumbers(data: SerialNumber[]) {\r\n // sessionStorage.setItem(SERIAL_NUMBERS_STORAGE_KEY, JSON.stringify(data));\r\n this._serialNumbers = data;\r\n }\r\n\r\n public get dataSourceSerialNumbers() {\r\n return this._dataSourceSerialNumbers;\r\n }\r\n public set dataSourceSerialNumbers(value) {\r\n this._dataSourceSerialNumbers = value;\r\n }\r\n\r\n get possibleSerialNumbers(): SerialNumber[] {\r\n return this._possibleSerialNumbers;\r\n }\r\n\r\n set possibleSerialNumbers(data: SerialNumber[]) {\r\n this._possibleSerialNumbers = data;\r\n }\r\n\r\n public get installedSerialNumbers(): SerialNumber[] {\r\n return this._installedSerialNumbers;\r\n }\r\n public set installedSerialNumbers(value: SerialNumber[]) {\r\n this._installedSerialNumbers = value;\r\n }\r\n\r\n public get dataSourceInstalledSerialNumbers(): MatTableDataSource {\r\n return this._dataSourceInstalledSerialNumbers;\r\n }\r\n public set dataSourceInstalledSerialNumbers(\r\n value: MatTableDataSource\r\n ) {\r\n this._dataSourceInstalledSerialNumbers = value;\r\n }\r\n\r\n public getInstalledSerialNumbers(): Observable {\r\n return this.serialRest.getInstalledSerials();\r\n }\r\n\r\n filterResults(\r\n warrantyStatus: string,\r\n serialNumberToSearch: string,\r\n country: string,\r\n filterDate?: Date,\r\n ): boolean {\r\n let preFilter = this.installedSerialNumbers;\r\n if (serialNumberToSearch != '' && serialNumberToSearch != null) {\r\n preFilter = preFilter.filter((element) =>\r\n element.serialnumber.toLowerCase().includes(serialNumberToSearch.toLowerCase())\r\n );\r\n }\r\n if (filterDate != null) {\r\n preFilter = preFilter.filter(\r\n (serialNumber) =>\r\n new Date(serialNumber.warrantyExp).getTime() <= filterDate.getTime()\r\n );\r\n }\r\n if (warrantyStatus != WarrantyStatus.ALL) {\r\n const warrantyStatusKey = Object.keys(WarrantyStatus).find(\r\n (key) => WarrantyStatus[key] === warrantyStatus\r\n );\r\n preFilter = preFilter.filter(\r\n (serialNumber) => serialNumber.warrantyStatus === warrantyStatusKey\r\n );\r\n }\r\n if (country) {\r\n preFilter = preFilter.filter(serialNumber => serialNumber?.country.toLowerCase() === country.toLowerCase());\r\n }\r\n this.dataSourceInstalledSerialNumbers = new MatTableDataSource(preFilter);\r\n return true;\r\n }\r\n\r\n resetFilter(): boolean {\r\n this.dataSourceInstalledSerialNumbers = new MatTableDataSource(\r\n this.installedSerialNumbers\r\n );\r\n return true;\r\n }\r\n\r\n loadSerialNumbersByArticleCode(articleCode: string): Observable {\r\n return this.serialRest.getAllSerialsByArticleCode(articleCode);\r\n }\r\n\r\n uploadSerials(formData: FormData): Observable {\r\n return this.serialRest.uploadSerialNumbers(formData);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PlantService } from './plant/plant.service';\r\nimport { PlantRepositoryService } from './plant/plant-repository.service';\r\nimport { DeviceService } from './device/device.service';\r\nimport { DeviceRepositoryService } from './device/device-repository.service';\r\nimport { UserService } from './user/user.service';\r\nimport { CountryRepositoryService } from './country/country-repository.service';\r\nimport { SearchCatalogService } from './catalog/search-catalog.service';\r\nimport { SerialNumberService } from './serial-number/serial-number.service';\r\nimport { SerialNumberRepositoryService } from './serial-number/serial-number-repository.service';\r\nimport { UserRepositoryService } from './user/user-repository.service';\r\nimport { ProcedureRepositoryService } from './procedure/procedure-repository.service';\r\nimport { ProcedureService } from './procedure/procedure.service';\r\nimport { StepService } from './procedure/step.service';\r\nimport { ArticleCodesRepositoryService } from './article-code/article-codes-repository.service';\r\nimport { LanguageRepositoryService } from './language/language-repository.service';\r\nimport { ObjRepositoryService } from './procedure/obj-repository.service';\r\nimport { ArticleCodeService } from './article-code/article-code.service';\r\nimport { MaintenanceService } from './maintenance/maintenance.service';\r\nimport { MaintenanceRepositoryService } from './maintenance/maintenance-repository.service';\r\nimport { MaintenanceCheckService } from './maintenance/maintenance-check.service';\r\nimport { NewsService } from './news/news.service';\r\nimport { NewsRepositoryService } from './news/news-repository.service';\r\nimport { EventAcademyService } from './event/event-academy.service';\r\nimport { EventAcademyRepositoryService } from './event/event-academy-repository.service';\r\nimport { DeviceDocumentationRepositoryService } from './device-documentation/device-documentation-repository.service';\r\nimport { AgendaRepositoryService } from './agenda/agenda-repository.service';\r\nimport { MaintenanceReminderService } from './maintenance/maintenance-reminder.service';\r\nimport { DeviceHistoryService } from './device/device-history.service';\r\nimport { DeviceHistoryRepositoryService } from './device/device-history-repository.service';\r\nimport { ProductFamilyService } from './product-families/product-family.service';\r\nimport { ProductFamilyRepositoryService } from './product-families/product-family-repository.service';\r\nimport { DeviceTypeService } from './device-type/device-type.service';\r\nimport { DeviceTypeRepositoryService } from './device-type/device-type-repository.service';\r\n\r\n@NgModule({\r\n providers: [PlantService,\r\n PlantRepositoryService,\r\n DeviceService,\r\n DeviceRepositoryService,\r\n UserService,\r\n CountryRepositoryService,\r\n SearchCatalogService,\r\n SerialNumberService,\r\n SerialNumberRepositoryService,\r\n UserRepositoryService,\r\n ProcedureRepositoryService,\r\n ProcedureService,\r\n StepService,\r\n ArticleCodeService,\r\n ArticleCodesRepositoryService,\r\n LanguageRepositoryService,\r\n ObjRepositoryService,\r\n MaintenanceService,\r\n MaintenanceRepositoryService,\r\n MaintenanceCheckService,\r\n NewsService,\r\n NewsRepositoryService,\r\n EventAcademyService,\r\n EventAcademyRepositoryService,\r\n DeviceDocumentationRepositoryService,\r\n AgendaRepositoryService,\r\n MaintenanceReminderService,\r\n DeviceHistoryService,\r\n DeviceHistoryRepositoryService,\r\n ProductFamilyService,\r\n ProductFamilyRepositoryService,\r\n DeviceTypeService,\r\n DeviceTypeRepositoryService],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class ModelsModule { }\r\n","import {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpParams,\r\n HttpUrlEncodingCodec,\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n EliotRefreshTokenResponse,\r\n EliotTokenResponse,\r\n} from 'src/app/models/eliotToken.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n private _accessToken: string;\r\n private _languageId: string = sessionStorage.getItem(environment.storage.eliotUser) ? JSON.parse(sessionStorage.getItem(environment.storage.eliotUser)).language : 'en';\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private oauthService: OAuthService\r\n ) {}\r\n\r\n //AUTH APIs\r\n\r\n set accessToken(token: string | undefined) {\r\n if (token) {\r\n sessionStorage.setItem(environment.storage.accessToken, token);\r\n this._accessToken = token;\r\n }\r\n }\r\n\r\n get accessToken(): string | undefined {\r\n let data: string;\r\n if (this._accessToken) return this._accessToken;\r\n else data = sessionStorage.getItem(environment.storage.accessToken);\r\n if (data != null) return data;\r\n else return undefined;\r\n }\r\n\r\n set idToken(token: string | undefined) {\r\n if (token) sessionStorage.setItem(environment.storage.idToken, token);\r\n }\r\n\r\n get idToken(): string | undefined {\r\n const data = sessionStorage.getItem(environment.storage.idToken);\r\n if (data != null) return data;\r\n else return undefined;\r\n }\r\n\r\n set refreshToken(token: string | undefined) {\r\n if (token) sessionStorage.setItem(environment.storage.refreshToken, token);\r\n }\r\n\r\n get refreshToken(): string | undefined {\r\n const data = sessionStorage.getItem(environment.storage.refreshToken);\r\n if (data != null) return data;\r\n else return undefined;\r\n }\r\n\r\n set tokenExpiresIn(ms: number | undefined) {\r\n if (ms)\r\n sessionStorage.setItem(environment.storage.tokenExpiresIn, String(ms));\r\n }\r\n\r\n get tokenExpiresIn(): number | undefined {\r\n const data = Number(\r\n sessionStorage.getItem(environment.storage.tokenExpiresIn)\r\n );\r\n if (data != null) return data;\r\n else return undefined;\r\n }\r\n\r\n public get languageId(): string {\r\n return this._languageId;\r\n }\r\n public set languageId(value: string) {\r\n this._languageId = value;\r\n }\r\n\r\n isAuthenticated(): Boolean {\r\n let res = false;\r\n if (this.accessToken != undefined) res = true;\r\n return res;\r\n }\r\n\r\n logout() {\r\n sessionStorage.removeItem(environment.storage.accessToken);\r\n sessionStorage.removeItem(environment.storage.refreshToken);\r\n sessionStorage.removeItem(environment.storage.idToken);\r\n sessionStorage.removeItem(environment.storage.tokenExpiresIn);\r\n sessionStorage.removeItem(environment.storage.eliotUser);\r\n sessionStorage.removeItem(environment.storage.upsUser);\r\n sessionStorage.removeItem(environment.storage.searchHistory);\r\n sessionStorage.removeItem(environment.storage.upsBackofficeLanguages);\r\n sessionStorage.removeItem(environment.storage.sasToken);\r\n sessionStorage.removeItem(environment.storage.articleCodes);\r\n sessionStorage.removeItem(environment.storage.selectedArticleCode);\r\n\r\n window.location.href =\r\n environment.logOutUrl +\r\n '&post_logout_redirect_uri=' +\r\n environment.logoutRedirectUri;\r\n }\r\n\r\n getAuthToken(code: string): Observable {\r\n const tokenAuthConfig = this.getTokenConfiguration();\r\n sessionStorage.setItem(\r\n 'UPService-token-endpoint',\r\n tokenAuthConfig.tokenEndpoint\r\n );\r\n return this.getAccessToken(\r\n code,\r\n tokenAuthConfig.tokenEndpoint,\r\n tokenAuthConfig\r\n );\r\n }\r\n\r\n getTokenConfiguration() {\r\n return environment.tokenAuth;\r\n }\r\n\r\n public getAccessToken(\r\n code: string,\r\n addressOAuth: string,\r\n confObj: any\r\n ): Observable {\r\n const encoder: HttpUrlEncodingCodec = new HttpUrlEncodingCodec();\r\n const httpParams: HttpParams = new HttpParams()\r\n .append(encoder.encodeKey('code'), encoder.encodeValue(code))\r\n .append(\r\n encoder.encodeKey('client_id'),\r\n encoder.encodeValue(confObj.clientId)\r\n )\r\n .append(\r\n encoder.encodeKey('grant_type'),\r\n encoder.encodeValue(confObj.grantType)\r\n )\r\n .append(\r\n encoder.encodeKey('code_verifier'),\r\n encoder.encodeValue(sessionStorage.getItem('PKCE_verifier'))\r\n );\r\n return this.httpClient.post(addressOAuth, httpParams);\r\n }\r\n\r\n configureLogin() {\r\n const codeAuthConfig = this.getCodeConfiguration();\r\n this.oauthService.configure(codeAuthConfig);\r\n this.oauthService.setStorage(sessionStorage);\r\n this.oauthService.initCodeFlow();\r\n }\r\n\r\n getCodeConfiguration() {\r\n return environment.codeAuth;\r\n }\r\n\r\n tryRefreshToken() {\r\n const config = this.getTokenConfiguration();\r\n const encoder: HttpUrlEncodingCodec = new HttpUrlEncodingCodec();\r\n const httpParams: HttpParams = new HttpParams()\r\n .append(\r\n encoder.encodeKey('grant_type'),\r\n encoder.encodeValue('refresh_token')\r\n )\r\n .append(\r\n encoder.encodeKey('refresh_token'),\r\n encoder.encodeValue(this.refreshToken)\r\n )\r\n .append(\r\n encoder.encodeKey('client_id'),\r\n encoder.encodeValue(config.clientId)\r\n )\r\n .append(\r\n encoder.encodeKey('code_verifier'),\r\n encoder.encodeValue(sessionStorage.getItem('PKCE_verifier'))\r\n );\r\n this.httpClient\r\n .post(config.tokenEndpoint, httpParams)\r\n .subscribe((res: EliotRefreshTokenResponse) => {\r\n if (\r\n res.access_token != null &&\r\n res.refresh_token != null &&\r\n res.expires_in != null\r\n ) {\r\n this.accessToken = res.access_token;\r\n this.refreshToken = res.refresh_token;\r\n this.tokenExpiresIn = res.expires_in;\r\n } else {\r\n this.logout();\r\n }\r\n });\r\n }\r\n\r\n setTimeoutRefreshToken() {\r\n setInterval(() => {\r\n this.tryRefreshToken();\r\n }, this.tokenExpiresIn * 100);\r\n }\r\n\r\n get eliotHttpHeaders(): HttpHeaders {\r\n if (!this.isProduction())\r\n return new HttpHeaders({\r\n Authorization: `Bearer ${this.accessToken}`,\r\n 'Ocp-Apim-Subscription-Key': environment.eliot_ocp_key,\r\n 'x-Backend-Endpoint': 'eliot',\r\n });\r\n if (this.isProduction())\r\n return new HttpHeaders({\r\n Authorization: `Bearer ${this.accessToken}`,\r\n 'x-Backend-Endpoint': 'eliot',\r\n });\r\n }\r\n\r\n get upsHttpHeaders(): HttpHeaders {\r\n return new HttpHeaders({\r\n 'x-Backend-Endpoint': 'ups',\r\n 'x-LanguageId': this.languageId,\r\n Authorization: `Bearer ${this.accessToken}`,\r\n });\r\n //return new HttpHeaders({'Authorization': `Bearer ${this.accessToken}`, 'x-Backend-Endpoint': 'ups'});\r\n }\r\n\r\n isProduction(): boolean {\r\n return environment.production;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as _moment from 'moment';\r\n// tslint:disable-next-line:no-duplicate-imports\r\nimport {default as _rollupMoment} from 'moment';\r\n\r\nconst moment = _rollupMoment || _moment;\r\n\r\n@Injectable()\r\nexport class CustomDateService {\r\n\r\n constructor() { }\r\n\r\n public get momentToday() : moment.Moment {\r\n return moment();\r\n }\r\n\r\n getDateFromMoment(value : moment.Moment): Date {\r\n let dateYear: string = value.format('YYYY');\r\n let dateDay: string = value.format('DD');\r\n let dateMonth: string = value.format('MM');\r\n\r\n return new Date(dateYear + '-' + dateMonth + '-' + dateDay);\r\n }\r\n\r\n getMomentFromDate(value: Date): moment.Moment {\r\n return moment(value);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestMaintenanceService } from 'src/app/service/rest/maintenance/rest-maintenance.service';\r\nimport { Maintenance } from './maintenance.model';\r\n\r\n@Injectable()\r\nexport class MaintenanceRepositoryService {\r\n\r\n private _maintenances: Maintenance[] = [];\r\n private _dataSourceMaintenances = new MatTableDataSource();\r\n\r\n constructor(private maintenanceRest: RestMaintenanceService) { }\r\n\r\n public get maintenances(): Maintenance[] {\r\n return this._maintenances;\r\n }\r\n public set maintenances(value: Maintenance[]) {\r\n this._maintenances = value;\r\n }\r\n\r\n public get dataSourceMaintenances() {\r\n return this._dataSourceMaintenances;\r\n }\r\n public set dataSourceMaintenances(value) {\r\n this._dataSourceMaintenances = value;\r\n }\r\n\r\n getMaintenances(articleId : number, languageId : string) : Observable {\r\n return this.maintenanceRest.getMaintenancesByArticleIdAndLanguageId(articleId, languageId);\r\n }\r\n\r\n getMaintenancesByArticleId(articleId: number) : Maintenance[]{\r\n return this.maintenances.filter((maintenance: Maintenance) => maintenance.articleId == articleId);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Device, SearchDevice } from 'src/app/models/device/device.model';\r\nimport { Plant, SearchPlant } from 'src/app/models/plant/plant.model';\r\n\r\nconst HISTORY_MAX_LENGTH : number = 2;\r\nconst HISTORY_STORAGE_KEY : string = 'UPService-search-history';\r\n\r\n@Injectable()\r\nexport class LastSearchedService {\r\n\r\n private _searchHistory : any[] = [];\r\n\r\n constructor() {\r\n const data = JSON.parse(sessionStorage.getItem(HISTORY_STORAGE_KEY));\r\n if(data) this.searchHistory = data;\r\n }\r\n\r\n addDeviceToSearchHistory(device : SearchDevice){\r\n\r\n const searchedDev : Device = this.searchHistory.find((elem : Device) => elem.id == device.id);\r\n if(searchedDev) return;\r\n\r\n if(this.searchHistory.length == HISTORY_MAX_LENGTH) {\r\n this.searchHistory.splice(0, 1);\r\n this.searchHistory.push(device);\r\n }\r\n else this.searchHistory.push(device);\r\n sessionStorage.setItem(HISTORY_STORAGE_KEY, JSON.stringify(this.searchHistory));\r\n }\r\n\r\n addPlantToSearchHistory(plant : SearchPlant){\r\n\r\n const searchedPlant : Plant = this.searchHistory.find((elem : Plant) => elem.id == plant.id);\r\n if(searchedPlant) return;\r\n\r\n if(this.searchHistory.length == HISTORY_MAX_LENGTH) {\r\n this.searchHistory.splice(0, 1);\r\n this.searchHistory.push(plant);\r\n }\r\n else this.searchHistory.push(plant);\r\n sessionStorage.setItem(HISTORY_STORAGE_KEY, JSON.stringify(this.searchHistory));\r\n }\r\n\r\n get searchHistory() : any[] {\r\n return this._searchHistory;\r\n }\r\n\r\n set searchHistory(history : any[]) {\r\n this._searchHistory = history;\r\n }\r\n\r\n clearFromHistory(id : string) {\r\n\r\n const elem : number = this.searchHistory.findIndex((elem : Device | Plant) => elem.id == id);\r\n if(elem < 0) return;\r\n else this.searchHistory.splice(elem, 1);\r\n\r\n sessionStorage.setItem(HISTORY_STORAGE_KEY, JSON.stringify(this.searchHistory));\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class UploadCacheInterceptor implements HttpInterceptor {\r\n constructor() {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n if (request.url.includes(\"importProcedureCSV\")) {\r\n request = request.clone({\r\n headers: request.headers.append(\"Cache-Control\", \"no-cache\"),\r\n });\r\n return next.handle(request);\r\n }\r\n return next.handle(request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class GalleryService {\r\n\r\n private _imgsSrc : string[] = [];\r\n private _selectedIndex : number = 0;\r\n\r\n constructor() { }\r\n\r\n get imgsSrc() : string[] {\r\n return this._imgsSrc;\r\n }\r\n\r\n set imgsSrc(data : string[]) {\r\n this._imgsSrc = data;\r\n }\r\n\r\n get selectedIndex() : number {\r\n return this._selectedIndex;\r\n }\r\n\r\n set selectedIndex(index : number) {\r\n this._selectedIndex = index;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MaintenanceCheck } from './maintenance.model';\r\n\r\n@Injectable()\r\nexport class MaintenanceCheckService {\r\n\r\n private _maintenanceCheck: MaintenanceCheck;\r\n private _selectedMaintenanceCheck: number = -1;\r\n\r\n constructor() { }\r\n\r\n get maintenanceCheck() : MaintenanceCheck{\r\n return this._maintenanceCheck;\r\n }\r\n\r\n set maintenanceCheck(maintenanceCheck : MaintenanceCheck) {\r\n this._maintenanceCheck = maintenanceCheck;\r\n }\r\n\r\n get selectedMaintenanceCheck(): number {\r\n return this._selectedMaintenanceCheck;\r\n }\r\n\r\n set selectedMaintenanceCheck(value: number) {\r\n this._selectedMaintenanceCheck = value;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestAgendaService } from 'src/app/service/rest/agenda/rest-agenda.service';\r\nimport { RestMaintenanceService } from 'src/app/service/rest/maintenance/rest-maintenance.service';\r\nimport { EventAcademy } from '../event/event.model';\r\nimport { Maintenance, MaintenanceReminder, MaintenanceReminderUser } from '../maintenance/maintenance.model';\r\nimport { News } from '../news/news.model';\r\nimport { UserService } from '../user/user.service';\r\nimport { AgendaCardType } from '../utils.model';\r\nimport * as moment from 'moment';\r\nimport { PageService } from 'src/app/service/utils/page.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { PageDialogService } from 'src/app/service/utils/page-dialog.service';\r\nimport { CalendarService } from 'src/app/service/utils/calendar.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\nexport class AgendaRepositoryService {\r\n\r\n private _userNews: News[] = [];\r\n private _userAgenda: any[] = [];\r\n private _userNotificationCount: number = -1;\r\n\r\n constructor(private agendaRestService: RestAgendaService,\r\n private calendarService : CalendarService,\r\n private translate: TranslateFirebaseService,\r\n private pageDialogService : PageDialogService,\r\n private pageService: PageService,\r\n private userService : UserService) { }\r\n\r\n public get userNews(): News[] {\r\n let savedUserNews: any[];\r\n if (!this._userNews) {\r\n savedUserNews = JSON.parse(sessionStorage.getItem(environment.storage.news));\r\n return savedUserNews;\r\n } else return this._userNews;\r\n }\r\n public set userNews(value: News[]) {\r\n sessionStorage.setItem(environment.storage.news, JSON.stringify(value));\r\n this._userNews = value;\r\n }\r\n\r\n public get userAgenda(): any[] {\r\n let savedUserAgenda: any[];\r\n if (!this._userAgenda) {\r\n savedUserAgenda = JSON.parse(sessionStorage.getItem(environment.storage.agenda));\r\n return savedUserAgenda;\r\n } else return this._userAgenda;\r\n }\r\n\r\n public set userAgenda(value: any[]) {\r\n sessionStorage.setItem(environment.storage.agenda, JSON.stringify(value));\r\n this._userAgenda = value;\r\n }\r\n\r\n public get userNotificationCount(): number {\r\n return this._userNotificationCount;\r\n }\r\n public set userNotificationCount(value: number) {\r\n this._userNotificationCount = value;\r\n }\r\n\r\n getAllAgendaByUser() {\r\n this.agendaRestService.getAgendaElementsByUser(this.userService.eliotUser.language)\r\n .subscribe(result => {\r\n this.userAgenda = [];\r\n this.userNews = [];\r\n if(result) result.forEach((elem: News | EventAcademy | MaintenanceReminderUser | MaintenanceReminder) => {\r\n let elemType = elem.type;\r\n if (elem.expireAt) elem.expireAt = new Date(elem.expireAt?.toString());\r\n switch (elemType) {\r\n case AgendaCardType.NEWS:\r\n this.userNews.push(elem);\r\n break;\r\n case AgendaCardType.ACADEMY:\r\n this.userAgenda.push(elem);\r\n break;\r\n case AgendaCardType.EVENT:\r\n this.userAgenda.push(elem);\r\n break;\r\n case AgendaCardType.MAINTENANCE_USER:\r\n this.userAgenda.push(elem);\r\n break;\r\n case AgendaCardType.MAINTENANCE:\r\n this.userAgenda.push(elem);\r\n break;\r\n }\r\n\r\n })\r\n\r\n this.getCalendarDatesByMonthAndYear(Number(moment().format('MM')), Number(moment().format('YYYY')));\r\n this.calendarService.buildRows();\r\n });\r\n }\r\n\r\n getAgendaElementsByDate(date: Date): EventAcademy[] | MaintenanceReminderUser[] | MaintenanceReminder[] {\r\n return this.userAgenda\r\n .filter((element: EventAcademy | MaintenanceReminderUser | MaintenanceReminder) => date == undefined || element.expireAt.setHours(0,0,0,0) == date.setHours(0,0,0,0));\r\n }\r\n\r\n getAgendaDates() {\r\n return this.userAgenda\r\n .map((element: EventAcademy | MaintenanceReminderUser | MaintenanceReminder) => element.expireAt)\r\n .filter((ele, index, array) => array.findIndex(i => i.setHours(0,0,0,0) === ele?.setHours(0,0,0,0)) == index)\r\n .sort((a, b) => (a > b ? 1 : -1));\r\n }\r\n\r\n getAgendaElementById(elementId : number) {\r\n return this.agendaRestService.getAgendaElementById(elementId);\r\n }\r\n\r\n getUserReminderById(elementId : number) {\r\n return this.agendaRestService.getUserReminderById(elementId);\r\n }\r\n\r\n getMaintenanceReminderById(elementId : number) {\r\n return this.agendaRestService.getMaintenanceReminderById(elementId);\r\n }\r\n\r\n getUserNotificationCount() {\r\n this.agendaRestService.getNotificationCount(this.userService.eliotUser.language)\r\n .subscribe((result: number) => {\r\n if (result) this.userNotificationCount = result;\r\n });\r\n }\r\n\r\n hideElement(elementId : number) {\r\n this.agendaRestService.hideAgendaElement(elementId)\r\n .subscribe((result) => {\r\n const indexToDelete = this.userAgenda.findIndex(elem => elem.id === elementId);\r\n if (indexToDelete > -1) this.userAgenda.splice(indexToDelete, 1);\r\n this.pageService.openSnackBar(this.parseByType(this.translate.getTranslation('general_delete_success')), 'Ok');\r\n }, error => {\r\n this.pageService.openErrorSnackBar(this.parseByType(this.translate.getTranslation('general_delete_failed')), 'Ok');\r\n })\r\n }\r\n\r\n hideNews(elementId : number) {\r\n this.agendaRestService.hideAgendaElement(elementId)\r\n .subscribe((result) => {\r\n const indexToDelete = this.userNews.findIndex(news => news.id === elementId);\r\n if(indexToDelete> -1)this.userNews.splice(indexToDelete, 1);\r\n this.pageService.openSnackBar(this.translate.getTranslation('general_delete_success').replace('{0}', this.translate.getTranslation('agenda_news')), 'Ok')\r\n }, error => {\r\n this.pageService.openErrorSnackBar(this.translate.getTranslation('general_delete_failed').replace('{0}', this.translate.getTranslation('agenda_news')), 'Ok')\r\n })\r\n }\r\n\r\n getCalendarDatesByMonthAndYear(month: number, year: number) {\r\n this.calendarService.eventDays = [];\r\n this.userAgenda.forEach((element: EventAcademy | MaintenanceReminderUser | MaintenanceReminder) => {\r\n let date: Date = new Date(element.expireAt);\r\n if (date.getUTCMonth() + 1 == month\r\n && date.getUTCFullYear() == year) this.calendarService.eventDays.push({ day : date.getDate(), month : date.getUTCMonth() + 1 })\r\n })\r\n }\r\n\r\n parseByType(trad: string): string {\r\n switch (this.pageDialogService.agendaType) {\r\n case AgendaCardType.EVENT:\r\n trad = trad.replace('{0}', this.translate.getTranslation('event_title'));\r\n break;\r\n case AgendaCardType.ACADEMY:\r\n trad = trad.replace('{0}', this.translate.getTranslation('academy_title'));\r\n }\r\n\r\n return trad;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestUtilsService } from 'src/app/service/rest/utils/rest-utils.service';\r\nimport { DeviceRepositoryService } from '../device/device-repository.service';\r\nimport { Device, SearchDevice } from '../device/device.model';\r\nimport { PlantRepositoryService } from '../plant/plant-repository.service';\r\nimport { Plant, SearchPlant } from '../plant/plant.model';\r\nimport { SearchCatalog } from '../utils.model';\r\n\r\n@Injectable()\r\nexport class SearchCatalogService {\r\n\r\n private _searchCatalog : SearchCatalog;\r\n\r\n constructor(private utilsRest : RestUtilsService,\r\n private plantRepository : PlantRepositoryService,\r\n private deviceRepository : DeviceRepositoryService) {\r\n\r\n this.buildCatalog();\r\n }\r\n\r\n get searchCatalog() : SearchCatalog {\r\n return this._searchCatalog;\r\n }\r\n\r\n set searchCatalog(catalog : SearchCatalog) {\r\n this._searchCatalog = catalog;\r\n }\r\n\r\n buildCatalog() {\r\n let catalog = new SearchCatalog([],[]);\r\n\r\n this.plantRepository.plants.forEach((plant : Plant) => {\r\n let searchPlant : SearchPlant = new SearchPlant(plant.name, plant.id);\r\n catalog.plants.push(searchPlant);\r\n });\r\n\r\n this.deviceRepository.userDevices.forEach((device : Device) => {\r\n let searchDevice : SearchDevice = new SearchDevice(device.id, device.serialNumber, device.name, device.tags);\r\n catalog.devices.push(searchDevice);\r\n });\r\n\r\n this.searchCatalog = catalog;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestAgendaService } from 'src/app/service/rest/agenda/rest-agenda.service';\r\nimport { AgendaCardType } from '../utils.model';\r\nimport { News } from './news.model';\r\n\r\n@Injectable()\r\nexport class NewsRepositoryService {\r\n\r\n private _news: News[] = [];\r\n private _dataSourceNews: MatTableDataSource;\r\n\r\n constructor(private restAgenda : RestAgendaService) { }\r\n\r\n public get news(): News[] {\r\n return this._news;\r\n }\r\n public set news(value: News[]) {\r\n this._news = value;\r\n }\r\n\r\n public get filteredNews(): News[] {\r\n return this._news.filter((news: News) => new Date(news.expireAt).getTime() > new Date().getTime());\r\n }\r\n\r\n public get dataSourceNews(): MatTableDataSource {\r\n return this._dataSourceNews;\r\n }\r\n public set dataSourceNews(value: MatTableDataSource) {\r\n this._dataSourceNews = value;\r\n }\r\n\r\n loadNews() : Observable {\r\n return this.restAgenda.getAgendaElementsByType(AgendaCardType.NEWS);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestDeviceService } from 'src/app/service/rest/device/rest-device.service';\r\nimport { DeviceHistory } from './device.model';\r\n\r\n@Injectable()\r\nexport class DeviceHistoryRepositoryService {\r\n\r\n private _deviceHistory: DeviceHistory[] = [];\r\n\r\n constructor(private restDevice : RestDeviceService) { }\r\n\r\n public get deviceHistory(): DeviceHistory[] {\r\n return this._deviceHistory;\r\n }\r\n public set deviceHistory(value: DeviceHistory[]) {\r\n this._deviceHistory = value;\r\n }\r\n\r\n loadDeviceHistory(id: string) {\r\n this.restDevice.getDeviceHistoryByDeviceId(id)\r\n .subscribe((result: DeviceHistory[]) => {\r\n if (result) {\r\n result.forEach((deviceHistory, index) => {\r\n if (deviceHistory.eventDate) deviceHistory.eventDate = new Date(deviceHistory.eventDate?.toString());\r\n });\r\n }\r\n this.deviceHistory = result;\r\n })\r\n }\r\n\r\n getHistoryDates() {\r\n return this.deviceHistory\r\n .map(history => history.eventDate)\r\n .filter((ele, index, array) => array.findIndex(i => i.setHours(0,0,0,0) === ele.setHours(0,0,0,0)) == index)\r\n .sort((a, b) => (a > b ? -1 : 1));\r\n }\r\n\r\n getHistoriesByDate(date: Date): DeviceHistory[] {\r\n return this.deviceHistory.filter(history => date == undefined || history.eventDate.setHours(0,0,0,0) == date.setHours(0,0,0,0));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestUtilsService } from 'src/app/service/rest/utils/rest-utils.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { Country } from './country.model';\r\n\r\n@Injectable()\r\nexport class CountryRepositoryService {\r\n\r\n private _countries: Country[] = [];\r\n\r\n countriesLoaded: boolean = false;\r\n\r\n constructor(private utilsRest: RestUtilsService,\r\n private translate : TranslateFirebaseService) {\r\n this.loadCountries();\r\n }\r\n\r\n get countries() : Country[]{\r\n return this._countries;\r\n }\r\n\r\n set countries(countries : Country[]){\r\n this._countries = countries;\r\n }\r\n\r\n private loadCountries() {\r\n if(!this.countriesLoaded){\r\n this.countries = JSON.parse(this.translate.getTranslation('enum_countries'));\r\n /* this.utilsRest.getCountries()\r\n .subscribe(result => {\r\n this.countries = result;\r\n }, error => {\r\n console.log(error.status);\r\n }); */\r\n }\r\n\r\n this.countriesLoaded = true;\r\n }\r\n\r\n getTimezone(countryCode : string) : string {\r\n return this.countries.find(country => countryCode == country.alpha2Code.toLowerCase()).timezones[0];\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { EventAcademy } from 'src/app/models/event/event.model';\r\nimport { MaintenanceReminder, MaintenanceReminderUser } from 'src/app/models/maintenance/maintenance.model';\r\nimport { News } from 'src/app/models/news/news.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestAgendaService extends BaseApiService {\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n createAgendaElement(element: FormData | News | EventAcademy): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"Agenda\", element, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n createMaintenanceReminderUser(element: MaintenanceReminderUser): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"Agenda/reminder\", element, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n updateAgendaElement(element: FormData | News | EventAcademy): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Agenda\", element, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n updateMaintenanceReminderUser(element: MaintenanceReminderUser): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Agenda/reminder\", element, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n deleteAgendaElement(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"Agenda/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n deleteMaintenanceReminderUser(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"Agenda/reminder/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n hideAgendaElement(id: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Agenda/hide/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n //***********GET APIs\r\n\r\n getAgendaElementsByType(cardType: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Agenda/all/\" + cardType, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getAgendaElementsByUser(languageId: string): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'Agenda/user/' + languageId, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getNotificationCount(languageId: string) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Agenda/usernotificationcount/\" + languageId, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getAgendaElementById(id: number) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Agenda/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getUserReminderById(id: number) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Agenda/reminder/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getMaintenanceReminderById(id: number) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Maintenance/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getUserCountNotification(languageId : string): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'Agenda​/usernotificationcount​/' + languageId, { headers: this.authService.upsHttpHeaders });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ProductFamily } from './product-family.model';\r\nimport { RestProductFamiliesService } from 'src/app/service/rest/product-families/rest-product-families.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ProductFamilyService {\r\n \r\n private _productFamily: ProductFamily;\r\n \r\n constructor(private restProductFamilyService: RestProductFamiliesService) { }\r\n \r\n public get productFamily(): ProductFamily {\r\n return this._productFamily;\r\n }\r\n public set productFamily(value: ProductFamily) {\r\n this._productFamily = value;\r\n }\r\n \r\n deleteProductFamily(): Observable {\r\n return this.restProductFamilyService.deleteProductFamily(this.productFamily.id);\r\n }\r\n\r\n updateProductFamily(): Observable {\r\n return this.restProductFamilyService.updateProductFamily(this.productFamily);\r\n }\r\n\r\n createProductFamily(): Observable {\r\n return this.restProductFamilyService.createProductFamily(this.productFamily);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestProcedureService } from 'src/app/service/rest/procedure/rest-procedure.service';\r\nimport { LanguageRepositoryService } from '../language/language-repository.service';\r\nimport { Marker, Procedure, ProcedureOrder, Step } from './procedure.model';\r\nimport { ProcedureService } from './procedure.service';\r\n\r\n@Injectable()\r\nexport class ProcedureRepositoryService {\r\n\r\n\r\n\r\n private _procedures: Procedure[] = [];\r\n\r\n proceduresLoaded: boolean = false;\r\n private _dataSourceProcedures = new MatTableDataSource();\r\n\r\n\r\n constructor(private procedureRest: RestProcedureService,\r\n private procedureService : ProcedureService) { }\r\n\r\n get procedures() : Procedure[] {\r\n return this._procedures;\r\n }\r\n\r\n set procedures(data : Procedure[]) {\r\n this._procedures = data;\r\n }\r\n\r\n public get dataSourceProcedures() {\r\n return this._dataSourceProcedures;\r\n }\r\n\r\n public set dataSourceProcedures(value) {\r\n this._dataSourceProcedures = value;\r\n }\r\n\r\n public getProcedures(articleId: number, languageId: string) : Observable {\r\n return this.procedureRest.getProceduresByArticleIdAndLanguageId(articleId, languageId);\r\n }\r\n\r\n orderProcedures(orderArray: ProcedureOrder[]) {\r\n this.procedureRest.orderProcedures(orderArray).subscribe(result => { }, error => { console.log(error);});\r\n }\r\n\r\n getProceduresByArticleId(articleId: number) : Observable {\r\n return this.procedureRest.getProceduresByArticleIdAndLanguageId(articleId, 'en');\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class PageBackofficeService {\r\n\r\n private _addSerial : boolean = false;\r\n private _editSerial: boolean = false;\r\n private _deleteSerial: boolean = false;\r\n private _addProcedure : boolean = false;\r\n private _editProcedure: boolean = false;\r\n private _cloneProcedure: boolean = false;\r\n\r\n private _deleteProcedure: boolean = false;\r\n private _addStep : boolean = false;\r\n private _editStep: boolean = false;\r\n private _deleteStep: boolean = false;\r\n\r\n private _addArticleCode: boolean = false;\r\n private _editArticleCode: boolean = false;\r\n private _deleteArticleCode: boolean = false;\r\n\r\n private _addDocument: boolean = false;\r\n private _editDocument: boolean = false;\r\n private _deleteDocument: boolean = false;\r\n\r\n private _addNews: boolean = false;\r\n private _editNews: boolean = false;\r\n private _deleteNews: boolean = false;\r\n\r\n private _addEvent: boolean = false;\r\n private _editEvent: boolean = false;\r\n private _deleteEvent: boolean = false;\r\n\r\n private _addAcademy: boolean = false;\r\n private _editAcademy: boolean = false;\r\n private _deleteAcademy: boolean = false;\r\n\r\n private _deleteMedia: boolean = false;\r\n\r\n\r\n private _addMaintenance: boolean = false;\r\n private _editMaintenance: boolean = false;\r\n private _cloneMaintenance: boolean = false;\r\n private _deleteMaintenance: boolean = false;\r\n\r\n private _addMaintenanceCheck: boolean = false;\r\n private _editMaintenanceCheck: boolean = false;\r\n private _deleteMaintenanceCheck: boolean = false;\r\n\r\n private _addProductFamily: boolean = false;\r\n private _editProductFamily: boolean = false;\r\n private _deleteProductFamily: boolean = false;\r\n \r\n private _addSerialNumberButton: boolean = false;\r\n private _addButton: boolean = false;\r\n private _importSerialNumberButton: boolean = false;\r\n \r\n constructor() { }\r\n\r\n get addSerial() {\r\n return this._addSerial;\r\n }\r\n\r\n set addSerial(value : boolean) {\r\n this._addSerial = value;\r\n }\r\n\r\n get editSerial() {\r\n return this._editSerial;\r\n }\r\n\r\n set editSerial(value : boolean) {\r\n this._editSerial = value;\r\n }\r\n\r\n public get deleteSerial(): boolean {\r\n return this._deleteSerial;\r\n }\r\n public set deleteSerial(value: boolean) {\r\n this._deleteSerial = value;\r\n }\r\n\r\n get addProcedure() {\r\n return this._addProcedure;\r\n }\r\n\r\n set addProcedure(value : boolean) {\r\n this._addProcedure = value;\r\n }\r\n\r\n get editProcedure() {\r\n return this._editProcedure;\r\n }\r\n\r\n set editProcedure(value : boolean) {\r\n this._editProcedure = value;\r\n }\r\n\r\n get cloneProcedure() {\r\n return this._cloneProcedure;\r\n }\r\n\r\n set cloneProcedure(value : boolean) {\r\n this._cloneProcedure = value;\r\n }\r\n\r\n public get deleteProcedure(): boolean {\r\n return this._deleteProcedure;\r\n }\r\n public set deleteProcedure(value: boolean) {\r\n this._deleteProcedure = value;\r\n }\r\n\r\n get addStep() {\r\n return this._addStep;\r\n }\r\n\r\n set addStep(value : boolean) {\r\n this._addStep = value;\r\n }\r\n\r\n get editStep() {\r\n return this._editStep;\r\n }\r\n\r\n set editStep(value : boolean) {\r\n this._editStep = value;\r\n }\r\n\r\n public get deleteStep(): boolean {\r\n return this._deleteStep;\r\n }\r\n public set deleteStep(value: boolean) {\r\n this._deleteStep = value;\r\n }\r\n\r\n public get deleteArticleCode(): boolean {\r\n return this._deleteArticleCode;\r\n }\r\n public set deleteArticleCode(value: boolean) {\r\n this._deleteArticleCode = value;\r\n }\r\n\r\n public get deleteDocument(): boolean {\r\n return this._deleteDocument;\r\n }\r\n public set deleteDocument(value: boolean) {\r\n this._deleteDocument = value;\r\n }\r\n\r\n public get deleteNews(): boolean {\r\n return this._deleteNews;\r\n }\r\n public set deleteNews(value: boolean) {\r\n this._deleteNews = value;\r\n }\r\n\r\n public get deleteMaintenance(): boolean {\r\n return this._deleteMaintenance;\r\n }\r\n public set deleteMaintenance(value: boolean) {\r\n this._deleteMaintenance = value;\r\n }\r\n\r\n public get deleteMaintenanceCheck(): boolean {\r\n return this._deleteMaintenanceCheck;\r\n }\r\n public set deleteMaintenanceCheck(value: boolean) {\r\n this._deleteMaintenanceCheck = value;\r\n }\r\n\r\n public get addArticleCode(): boolean {\r\n return this._addArticleCode;\r\n }\r\n public set addArticleCode(value: boolean) {\r\n this._addArticleCode = value;\r\n }\r\n\r\n public get editArticleCode(): boolean {\r\n return this._editArticleCode;\r\n }\r\n public set editArticleCode(value: boolean) {\r\n this._editArticleCode = value;\r\n }\r\n\r\n public get addDocument(): boolean {\r\n return this._addDocument;\r\n }\r\n public set addDocument(value: boolean) {\r\n this._addDocument = value;\r\n }\r\n\r\n public get editDocument(): boolean {\r\n return this._editDocument;\r\n }\r\n public set editDocument(value: boolean) {\r\n this._editDocument = value;\r\n }\r\n\r\n public get addNews(): boolean {\r\n return this._addNews;\r\n }\r\n public set addNews(value: boolean) {\r\n this._addNews = value;\r\n }\r\n\r\n public get editNews(): boolean {\r\n return this._editNews;\r\n }\r\n public set editNews(value: boolean) {\r\n this._editNews = value;\r\n }\r\n\r\n public get addEvent(): boolean {\r\n return this._addEvent;\r\n }\r\n public set addEvent(value: boolean) {\r\n this._addEvent = value;\r\n }\r\n\r\n public get editEvent(): boolean {\r\n return this._editEvent;\r\n }\r\n public set editEvent(value: boolean) {\r\n this._editEvent = value;\r\n }\r\n\r\n public get addAcademy(): boolean {\r\n return this._addAcademy;\r\n }\r\n public set addAcademy(value: boolean) {\r\n this._addAcademy = value;\r\n }\r\n\r\n public get editAcademy(): boolean {\r\n return this._editAcademy;\r\n }\r\n public set editAcademy(value: boolean) {\r\n this._editAcademy = value;\r\n }\r\n\r\n public get deleteAcademy(): boolean {\r\n return this._deleteAcademy;\r\n }\r\n public set deleteAcademy(value: boolean) {\r\n this._deleteAcademy = value;\r\n }\r\n public get deleteEvent(): boolean {\r\n return this._deleteEvent;\r\n }\r\n public set deleteEvent(value: boolean) {\r\n this._deleteEvent = value;\r\n }\r\n public get addMaintenance(): boolean {\r\n return this._addMaintenance;\r\n }\r\n public set addMaintenance(value: boolean) {\r\n this._addMaintenance = value;\r\n }\r\n\r\n public get editMaintenance(): boolean {\r\n return this._editMaintenance;\r\n }\r\n public set editMaintenance(value: boolean) {\r\n this._editMaintenance = value;\r\n }\r\n\r\n public get cloneMaintenance(): boolean {\r\n return this._cloneMaintenance;\r\n }\r\n public set cloneMaintenance(value: boolean) {\r\n this._cloneMaintenance = value;\r\n }\r\n\r\n public get addMaintenanceCheck(): boolean {\r\n return this._addMaintenanceCheck;\r\n }\r\n public set addMaintenanceCheck(value: boolean) {\r\n this._addMaintenanceCheck = value;\r\n }\r\n\r\n public get editMaintenanceCheck(): boolean {\r\n return this._editMaintenanceCheck;\r\n }\r\n public set editMaintenanceCheck(value: boolean) {\r\n this._editMaintenanceCheck = value;\r\n }\r\n\r\n public get deleteMedia(): boolean {\r\n return this._deleteMedia;\r\n }\r\n public set deleteMedia(value: boolean) {\r\n this._deleteMedia = value;\r\n }\r\n\r\n public get addProductFamily(): boolean {\r\n return this._addProductFamily;\r\n }\r\n public set addProductFamily(value: boolean) {\r\n this._addProductFamily = value;\r\n }\r\n\r\n public get editProductFamily(): boolean {\r\n return this._editProductFamily;\r\n }\r\n public set editProductFamily(value: boolean) {\r\n this._editProductFamily = value;\r\n }\r\n\r\n public get deleteProductFamily(): boolean {\r\n return this._deleteProductFamily;\r\n }\r\n public set deleteProductFamily(value: boolean) {\r\n this._deleteProductFamily = value;\r\n }\r\n\r\n public get addSerialNumberButton(): boolean {\r\n return this._addSerialNumberButton;\r\n }\r\n public set addSerialNumberButton(value: boolean) {\r\n this._addSerialNumberButton = value;\r\n }\r\n\r\n public get addButton(): boolean {\r\n return this._addButton;\r\n }\r\n public set addButton(value: boolean) {\r\n this._addButton = value;\r\n }\r\n\r\n public get importSerialNumberButton(): boolean {\r\n return this._importSerialNumberButton;\r\n }\r\n public set importSerialNumberButton(value: boolean) {\r\n this._importSerialNumberButton = value;\r\n }\r\n\r\n reset() {\r\n this.addSerial = false;\r\n this.editSerial = false;\r\n this.deleteSerial = false;\r\n\r\n this.addProcedure = false;\r\n this.editProcedure = false;\r\n this.cloneProcedure = false;\r\n this.deleteProcedure = false;\r\n\r\n this.addStep = false;\r\n this.editStep = false;\r\n this.deleteStep = false;\r\n\r\n this.addArticleCode = false;\r\n this.editArticleCode = false;\r\n this.deleteArticleCode = false;\r\n\r\n this.addDocument = false;\r\n this.editDocument = false;\r\n this.deleteDocument = false;\r\n\r\n this.addNews = false;\r\n this.editNews = false;\r\n this.deleteNews = false;\r\n\r\n this.addEvent = false;\r\n this.editEvent = false;\r\n this.deleteEvent = false;\r\n\r\n this.addAcademy = false;\r\n this.editAcademy = false;\r\n this.deleteAcademy = false;\r\n\r\n this.addMaintenance = false;\r\n this.editMaintenance = false;\r\n this.cloneMaintenance = false;\r\n this.deleteMaintenance = false;\r\n\r\n this.addMaintenanceCheck = false;\r\n this.editMaintenanceCheck = false;\r\n this.deleteMaintenanceCheck = false;\r\n\r\n this.deleteMedia = false;\r\n\r\n this.addProductFamily = false;\r\n this.editProductFamily = false;\r\n this.deleteProductFamily = false;\r\n\r\n this.addButton = false;\r\n this.addSerialNumberButton = false;\r\n this.importSerialNumberButton = false;\r\n }\r\n}\r\n\r\n","import { typeWithParameters } from '@angular/compiler/src/render3/util';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { RestDeviceDocumentationService } from 'src/app/service/rest/device-documentation/rest-device-documentation.service';\r\nimport { PageService } from 'src/app/service/utils/page.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport {\r\n CustomContentType,\r\n Document,\r\n DocumentStatus,\r\n ImageMedia,\r\n ImageMediaPost,\r\n VideoLinks,\r\n VideoMedia,\r\n VideoMediaPost,\r\n} from './device-documentation.model';\r\n\r\n@Injectable()\r\nexport class DeviceDocumentationRepositoryService {\r\n private _articleDocuments: Document[];\r\n private _serialNumberDocuments: Document[];\r\n private _imageMedia: ImageMedia[] = [];\r\n private _videoMedia: VideoMedia[] = [];\r\n private _imgSrcs: string[] = [];\r\n private _videoSrcs: VideoLinks[] = [];\r\n private _dataSourceDocuments: MatTableDataSource;\r\n\r\n private refreshMedia = new Subject();\r\n refreshMedia$ = this.refreshMedia.asObservable();\r\n\r\n constructor(\r\n private documentationRest: RestDeviceDocumentationService,\r\n private pageService: PageService,\r\n private translate: TranslateFirebaseService\r\n ) {}\r\n\r\n public get articleDocuments(): Document[] {\r\n return this._articleDocuments;\r\n }\r\n public set articleDocuments(value: Document[]) {\r\n this._articleDocuments = value;\r\n }\r\n\r\n public get videoMedia(): VideoMedia[] {\r\n return this._videoMedia;\r\n }\r\n public set videoMedia(value: VideoMedia[]) {\r\n this._videoMedia = value;\r\n }\r\n\r\n public get imageMedia(): ImageMedia[] {\r\n return this._imageMedia;\r\n }\r\n public set imageMedia(value: ImageMedia[]) {\r\n this._imageMedia = value;\r\n }\r\n\r\n public get dataSourceDocuments(): MatTableDataSource {\r\n return this._dataSourceDocuments;\r\n }\r\n public set dataSourceDocuments(value: MatTableDataSource) {\r\n this._dataSourceDocuments = value;\r\n }\r\n\r\n public get imgSrcs(): string[] {\r\n return this._imgSrcs;\r\n }\r\n public set imgSrcs(value: string[]) {\r\n this._imgSrcs = value;\r\n }\r\n\r\n public get videoSrcs(): VideoLinks[] {\r\n return this._videoSrcs;\r\n }\r\n public set videoSrcs(value: VideoLinks[]) {\r\n this._videoSrcs = value;\r\n }\r\n\r\n public get serialNumberDocuments(): Document[] {\r\n return this._serialNumberDocuments;\r\n }\r\n public set serialNumberDocuments(value: Document[]) {\r\n this._serialNumberDocuments = value;\r\n }\r\n\r\n getDocumentsByArticle(articleId: number) {\r\n this.documentationRest.getDocumentsByArticleId(articleId).subscribe(\r\n (result: Document[]) => {\r\n this.articleDocuments = result;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n getDocumentsBySerialNumber(serialNumberId: number) {\r\n this.documentationRest.getDocumentsBySerialNumber(serialNumberId).subscribe(\r\n (result: Document[]) => {\r\n this.serialNumberDocuments = result;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n getDocumentsByArticleAndLanguage(\r\n articleId: number,\r\n languageId: string\r\n ): Observable {\r\n return this.documentationRest.getAllDocumentsByArticleIdAndLanguageId(\r\n articleId,\r\n languageId\r\n );\r\n }\r\n\r\n getMediaByArticleId(articleId: number) {\r\n this.documentationRest\r\n .getMediaByArticleId(articleId)\r\n .subscribe((result: ImageMedia[] | VideoMedia[]) => {\r\n this.imageMedia = [];\r\n this.imgSrcs = [];\r\n this.videoMedia = [];\r\n this.videoSrcs = [];\r\n result.forEach((element: any) => {\r\n if (element.contentType.toString().startsWith('image/'))\r\n this.imageMedia.push(element);\r\n else if (element.contentType.toString().startsWith('video/'))\r\n this.videoMedia.push(element);\r\n this.imgSrcs = this.imageMedia.map((media) => media.storageUri);\r\n this.videoSrcs = this.videoMedia.map(\r\n (video) => new VideoLinks(video.externalLink, video.thumbnailLink)\r\n );\r\n });\r\n });\r\n }\r\n\r\n getMediaByArticleIdAndLanguageId(articleId: number,languageId:string = 'en') {\r\n this.documentationRest\r\n .getMediaByArticleIdandLanguageId(articleId,languageId)\r\n .subscribe((result: ImageMedia[] | VideoMedia[]) => {\r\n this.imageMedia = [];\r\n this.imgSrcs = [];\r\n this.videoMedia = [];\r\n this.videoSrcs = [];\r\n result.forEach((element: any) => {\r\n if (element.contentType.toString().startsWith('image/'))\r\n this.imageMedia.push(element);\r\n else if (element.contentType.toString().startsWith('video/'))\r\n this.videoMedia.push(element);\r\n this.imgSrcs = this.imageMedia.map((media) => media.storageUri);\r\n this.videoSrcs = this.videoMedia.map(\r\n (video) => new VideoLinks(video.externalLink, video.thumbnailLink)\r\n );\r\n });\r\n });\r\n }\r\n\r\n uploadNewVideoMediaExternal(media: VideoMediaPost) {\r\n this.documentationRest.uploadNewVideoMediaExternal(media).subscribe(\r\n (result: VideoMedia) => {\r\n this.videoMedia.push(result);\r\n this.videoSrcs.push(\r\n new VideoLinks(result.externalLink, result.thumbnailLink)\r\n );\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('backoffice_general_add_success'),\r\n 'Ok'\r\n );\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('backoffice_general_add_failed'),\r\n 'Ok'\r\n );\r\n }\r\n );\r\n }\r\n\r\n uploadNewVideoMedia(media: FormData) {\r\n this.documentationRest.uploadNewVideoMedia(media).subscribe(\r\n (result: VideoMedia) => {\r\n this.videoMedia.push(result);\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('backoffice_general_add_success'),\r\n 'Ok'\r\n );\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('backoffice_general_add_failed'),\r\n 'Ok'\r\n );\r\n }\r\n );\r\n }\r\n\r\n uploadNewImageMedia(media: FormData) {\r\n this.documentationRest.uploadNewImageMedia(media).subscribe(\r\n (result: ImageMedia) => {\r\n this.imageMedia.push(result);\r\n this.imgSrcs.push(result.storageUri);\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('backoffice_general_add_success'),\r\n 'Ok'\r\n );\r\n this.refreshMedia.next();\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('backoffice_general_add_failed'),\r\n 'Ok'\r\n );\r\n this.refreshMedia.next();\r\n }\r\n );\r\n }\r\n\r\n deleteImageMediaBySrc(src: string) {\r\n const mediaToDeleteId = this.imageMedia.find(\r\n (media) => media.storageUri == src\r\n ).id;\r\n this.documentationRest.deleteMedia(mediaToDeleteId).subscribe(\r\n (result: any) => {\r\n const index = this.imageMedia.findIndex(\r\n (media) => media.id === mediaToDeleteId\r\n );\r\n this.imageMedia.splice(index, 1);\r\n const srcIndex = this.imgSrcs.findIndex((media) => media === src);\r\n this.imgSrcs.splice(srcIndex, 1);\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('backoffice_general_delete_success'),\r\n 'Ok'\r\n );\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('backoffice_general_delete_failed'),\r\n 'Ok'\r\n );\r\n }\r\n );\r\n }\r\n\r\n deleteVideoMediaBySrc(src: string) {\r\n const mediaToDeleteId = this.videoMedia.find(\r\n (media) => {\r\n if (media.externalLink) {\r\n return media.externalLink == src;\r\n }\r\n return media.storageUri == src;\r\n }\r\n ).id;\r\n this.documentationRest.deleteMedia(mediaToDeleteId).subscribe(\r\n (result: any) => {\r\n const index = this.videoMedia.findIndex(\r\n (media) => media.id === mediaToDeleteId\r\n );\r\n this.videoMedia.splice(index, 1);\r\n const srcIndex = this.videoSrcs.findIndex(\r\n (media) => media.externalLink === src\r\n );\r\n this.videoSrcs.splice(srcIndex, 1);\r\n this.pageService.openSnackBar(\r\n this.translate.getTranslation('backoffice_general_delete_success'),\r\n 'Ok'\r\n );\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.pageService.openErrorSnackBar(\r\n this.translate.getTranslation('backoffice_general_delete_failed'),\r\n 'Ok'\r\n );\r\n }\r\n );\r\n }\r\n\r\n updateDocOrder(articleCode: number, orderArray: Document[]) {\r\n this.documentationRest\r\n .updateDocumentOrder(articleCode, orderArray)\r\n .subscribe(\r\n (result) => {},\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n updateMediaOrder(articleCode: number, orderArray: any[]) {\r\n this.documentationRest.updateMediaOrder(articleCode, orderArray).subscribe(\r\n (result) => {},\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestUserService } from 'src/app/service/rest/user/rest-user.service';\r\nimport { RestUtilsService } from 'src/app/service/rest/utils/rest-utils.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BackofficeRoles } from '../roles.model';\r\nimport { UpsSasToken } from '../utils.model';\r\nimport {\r\n EliotUser,\r\n UpsUser,\r\n UserConsent,\r\n UserConsentStatus,\r\n} from './user.model';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private _eliotUserLoaded: boolean = false;\r\n private _upsUserLoaded: boolean = false;\r\n private _eliotUser: EliotUser = new EliotUser();\r\n private _upsUser: UpsUser;\r\n private _touDocs: UserConsentStatus[] = [];\r\n private _sasToken: string;\r\n private _dateFormat: string;\r\n private _backendVersion: string;\r\n\r\n constructor(\r\n private restUser: RestUserService,\r\n private restUtils: RestUtilsService\r\n ) {\r\n const dataUpsUser = sessionStorage.getItem(environment.storage.upsUser);\r\n const dataEliotUser = sessionStorage.getItem(environment.storage.eliotUser);\r\n this.dateFormat = localStorage.getItem(\r\n environment.storage.settingsDateFormat\r\n );\r\n\r\n if (dataUpsUser != null) this.upsUser = JSON.parse(dataUpsUser);\r\n if (dataUpsUser == null)\r\n this.upsUser = new UpsUser(\r\n 1,\r\n 'oid1',\r\n 'upserviceweb@yopmail.com',\r\n 0,\r\n 0,\r\n 10,\r\n 10,\r\n 'UPservice',\r\n 'Web',\r\n 'UPservice'\r\n );\r\n\r\n if (dataEliotUser != null) this.eliotUser = JSON.parse(dataEliotUser);\r\n }\r\n\r\n get eliotUser(): EliotUser {\r\n return this._eliotUser;\r\n }\r\n\r\n set eliotUser(eliotUser: EliotUser) {\r\n this._eliotUser = eliotUser;\r\n sessionStorage.setItem(\r\n environment.storage.eliotUser,\r\n JSON.stringify(eliotUser)\r\n );\r\n }\r\n\r\n get upsUser(): UpsUser {\r\n return this._upsUser;\r\n }\r\n\r\n set upsUser(upsUser: UpsUser) {\r\n this._upsUser = upsUser;\r\n }\r\n\r\n public get sasToken(): string | undefined {\r\n let data: string;\r\n if (this._sasToken) return this._sasToken;\r\n else data = sessionStorage.getItem(environment.storage.sasToken);\r\n if (data != null) return data;\r\n else return undefined;\r\n }\r\n\r\n public set sasToken(value: string | undefined) {\r\n if (value) {\r\n sessionStorage.setItem(environment.storage.sasToken, value);\r\n this._sasToken = value;\r\n }\r\n }\r\n\r\n public get backendVersion(): string {\r\n return this._backendVersion;\r\n }\r\n public set backendVersion(value: string) {\r\n this._backendVersion = value;\r\n }\r\n\r\n get touLink() {\r\n return this._touDocs.find((doc) => doc.document == 'TermsOfUse').url;\r\n }\r\n\r\n get privacyLink() {\r\n return this._touDocs.find((doc) => doc.document == 'PrivacyPolicy').url;\r\n }\r\n\r\n public get touDocs(): UserConsentStatus[] {\r\n return this._touDocs;\r\n }\r\n public set touDocs(value: UserConsentStatus[]) {\r\n this._touDocs = value;\r\n }\r\n\r\n public get dateFormat(): string {\r\n return this._dateFormat;\r\n }\r\n public set dateFormat(value: string) {\r\n localStorage.setItem(environment.storage.settingsDateFormat, value);\r\n this._dateFormat = value;\r\n }\r\n\r\n loadUpsUser() {\r\n if (!this._upsUserLoaded) {\r\n console.log('LOAD UPS USER REST CALL');\r\n return this.restUser.getUser();\r\n }\r\n this._upsUserLoaded = true;\r\n }\r\n\r\n loadEliotUser() {\r\n if (!this._eliotUserLoaded) return this.restUser.getEliotUser();\r\n }\r\n\r\n loadUserConsent() {\r\n return this.restUser.getUserConsent();\r\n }\r\n\r\n public updateConditions(documentType: string) {\r\n /* let consent : UserConsent = new UserConsent();\r\n consent.marketingCampaigns = this.eliotUser.marketingCampaigns;\r\n consent.profiling = value; */\r\n return this.restUser.updateConditions(documentType);\r\n }\r\n\r\n public isBackofficeUser(): boolean {\r\n if (\r\n this.upsUser.backofficeRole == Number(BackofficeRoles.LEGRAND_ADMIN) ||\r\n this.upsUser.backofficeRole == Number(BackofficeRoles.LEGRAND_SERVICE)\r\n )\r\n return true;\r\n else return false;\r\n }\r\n\r\n public isPlantOwner(plantOwnerId: string): boolean {\r\n return this.upsUser.oid == plantOwnerId;\r\n }\r\n\r\n public updateUser(upsUser: UpsUser): Observable {\r\n return this.restUser.updateUser(upsUser);\r\n }\r\n\r\n public getPromotionalVideo(): Observable {\r\n return this.restUser.getPromotionalVideo();\r\n }\r\n\r\n public getBackendVersion() {\r\n this.restUser.getBackendVersion().subscribe((version: string) => {\r\n this.backendVersion = version;\r\n });\r\n }\r\n\r\n public getSasToken() {\r\n let queryString = '';\r\n\r\n if (this.isBackofficeUser())\r\n queryString = '?hasDocsResources=true&hasArFileResources=true';\r\n else queryString = '?hasDocsResources=true&hasArFileResources=false';\r\n\r\n this.restUtils.getSasToken(queryString).subscribe((result: UpsSasToken) => {\r\n this.sasToken = '?' + result.sas;\r\n });\r\n }\r\n\r\n getUserConsentStatus(): Observable {\r\n return this.restUser.getConsentStatus(this.eliotUser.language);\r\n }\r\n\r\n saveMaintenanceReminderDays(reminderDays: number) {\r\n this.restUser\r\n .saveMaintenanceReminderDays(reminderDays)\r\n .subscribe((result: UpsUser) => {\r\n this.upsUser = result;\r\n });\r\n }\r\n\r\n saveWarrantyReminderDays(reminderDays: number) {\r\n this.restUser\r\n .saveWarrantyReminderDays(reminderDays)\r\n .subscribe((result: UpsUser) => {\r\n this.upsUser = result;\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class OrderByService {\r\n\r\n private _ascending : boolean = true;\r\n private _orderType : number = 0;\r\n private _orderFor : string = 'plant';\r\n\r\n constructor() { }\r\n\r\n get ascending() {\r\n return this._ascending;\r\n }\r\n set ascending(value: boolean) {\r\n this._ascending = value;\r\n }\r\n\r\n get orderType() {\r\n return this._orderType;\r\n }\r\n set orderType(value: number) {\r\n this._orderType = value;\r\n }\r\n\r\n get orderFor() : string {\r\n return this._orderFor;\r\n }\r\n\r\n set orderFor(value:string) {\r\n this._orderFor = value;\r\n }\r\n\r\n reset() {\r\n this.ascending = true;\r\n this.orderType = 0;\r\n this.orderFor = 'plant';\r\n }\r\n\r\n}\r\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UpsUser, EliotUser, UserConsent, UserConsentStatus } from 'src/app/models/user/user.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\nconst userAPIVersion = \"v3.0\";\r\nconst touAPIVersion = \"v2.0\";\r\n\r\n@Injectable()\r\nexport class RestUserService extends BaseApiService {\r\n\r\n\r\n constructor(httpClient : HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n getEliotUser() : Observable{\r\n return this.httpClient.get(super.getEliotApiHost() + \"users/api/\" + userAPIVersion + \"/users/profile\", {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n getUser() : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"Users/GetCurrentUser\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n updateUser(user : UpsUser): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Users/\" + user.id , user, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getPromotionalVideo(): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Users/PromotionalVideo\",null, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getUserConsent() : Observable{\r\n return this.httpClient.get(super.getEliotApiHost()+\"users/api/\" + userAPIVersion + \"/users/consents\", {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n getConsentStatus(languageId : string) : Observable{\r\n return this.httpClient.get(super.getEliotApiHost() + \"termsandconditions/api/\" + touAPIVersion + \"/consent?language=\" + languageId, {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n updateConditions(documentType: string): Observable{\r\n let elem : any = {};\r\n return this.httpClient.post(super.getEliotApiHost() + \"termsandconditions/api/\" + touAPIVersion + '/consent?documentType=' + documentType, elem, {headers : this.authService.eliotHttpHeaders});\r\n }\r\n\r\n getUsers() : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"Users\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n saveMaintenanceReminderDays(maintenanceDays: number): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + 'Users/MaintenanceDaysReminder/' + maintenanceDays, null, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n saveWarrantyReminderDays(warrantyDays: number): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + 'Users/WarrantyDaysReminder/' + warrantyDays, null, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getBackendVersion(): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"version\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { TranslateFirebaseService } from './service/utils/translate-firebase.service';\r\n\r\nimport firebase from \"firebase/app\";\r\nimport \"firebase/analytics\";\r\nimport { environment } from 'src/environments/environment';\r\n\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { UserService } from './models/user/user.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'upservice-frontend';\r\n _iconPaths : any[] = [];\r\n\r\n constructor(private translateFirebase : TranslateFirebaseService,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer,\r\n private httpClient: HttpClient,\r\n private userService : UserService,\r\n public router : Router) {\r\n\r\n //this.setPropertiesFirebase();\r\n\r\n /* this.router.events.subscribe(event => {\r\n if(this.userService.eliotUser.profiling) this.setPage(event);\r\n }); */\r\n\r\n this.setIcons();\r\n }\r\n\r\n /* private setPage(event:any){\r\n if (event instanceof NavigationEnd) {\r\n firebase.analytics().logEvent('page_view' , { page_location: event.urlAfterRedirects , page_path: event.urlAfterRedirects , page_title: event.urlAfterRedirects });\r\n }\r\n }\r\n\r\n private setPropertiesFirebase() {\r\n firebase.analytics();\r\n firebase.analytics().setUserProperties({environment: environment.environment, version: environment.version});\r\n } */\r\n\r\n private setIcons() {\r\n\r\n this.getIconsPaths()\r\n .subscribe(result => {\r\n this._iconPaths = result;\r\n this.addIcons();\r\n });\r\n }\r\n\r\n private getIconsPaths() : Observable {\r\n return this.httpClient.get(\"assets/icons/content.json\");\r\n }\r\n\r\n private addIcons(){\r\n this._iconPaths.forEach(element => {\r\n this.matIconRegistry.addSvgIcon(\r\n element.icon,\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(element.path)\r\n );\r\n });\r\n }\r\n\r\n}\r\n","export default \"#prelogin {\\n min-height: 100vh;\\n}\\n\\n.logo-splash {\\n width: 46%;\\n margin-top: 18%;\\n margin-left: 27% !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uXFwuLlxcLi5cXC4uXFwuLlxccHJlbG9naW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBQTtBQUNGOztBQUVBO0VBQ0UsVUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtBQUNGIiwiZmlsZSI6InByZWxvZ2luLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3ByZWxvZ2luIHtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxufVxyXG5cclxuLmxvZ28tc3BsYXNoIHtcclxuICB3aWR0aDogNDYlO1xyXG4gIG1hcmdpbi10b3A6IDE4JTtcclxuICBtYXJnaW4tbGVmdDogMjclICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\";","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EliotUser } from 'src/app/models/user/user.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AuthService } from './authentication/auth.service';\r\nimport { TranslateFirebaseService } from './utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class BaseApiService {\r\n\r\n constructor(protected httpClient: HttpClient,\r\n protected translate?: TranslateFirebaseService) {\r\n }\r\n\r\n protected getUpsApiHost(): string {\r\n return environment.UpsApiEndpoint;\r\n }\r\n\r\n protected getEliotApiHost(): string {\r\n return environment.EliotApiEndpoint;\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SSE } from 'sse.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestProcedureService } from 'src/app/service/rest/procedure/rest-procedure.service';\r\nimport { Procedure, ProcedureCloneBody, Step, StepOrder } from './procedure.model';\r\nimport { ServerSentService } from 'src/app/service/utils/server-sent/server-sent.service';\r\n\r\n@Injectable()\r\nexport class ProcedureService {\r\n\r\n private _procedure: Procedure;\r\n private _dataSourceSteps: MatTableDataSource = new MatTableDataSource();\r\n\r\n constructor(private procedureRest: RestProcedureService,private sseService: ServerSentService) { }\r\n\r\n get procedure() : Procedure {\r\n return this._procedure;\r\n }\r\n\r\n set procedure(procedure : Procedure) {\r\n this._procedure = procedure;\r\n if(procedure) this.dataSourceSteps = new MatTableDataSource(procedure.steps);\r\n }\r\n\r\n get procedureSteps() : Step[] {\r\n if(this.procedure) return this.procedure.steps;\r\n else return [];\r\n }\r\n\r\n set procedureSteps(steps : Step[]) {\r\n if(this.procedure) this.procedure.steps = steps;\r\n }\r\n\r\n public get dataSourceSteps(): MatTableDataSource {\r\n return this._dataSourceSteps;\r\n }\r\n public set dataSourceSteps(value: MatTableDataSource) {\r\n this._dataSourceSteps = value;\r\n }\r\n\r\n updateProcedure() : Observable {\r\n return this.procedureRest.updateProcedure(this.procedure);\r\n }\r\n\r\n addProcedure() : Observable{\r\n return this.procedureRest.createProcedure(this.procedure);\r\n }\r\n\r\n cloneProcedure(clonedProcedure : Procedure): Observable{\r\n return this.procedureRest.createProcedure(clonedProcedure);\r\n }\r\n\r\n deleteProcedure() : Observable{\r\n return this.procedureRest.deleteProcedure(this.procedure.id);\r\n }\r\n\r\n orderSteps(order: StepOrder[]) {\r\n this.procedureRest.orderSteps(order).subscribe(result => { }, error => { console.log(error) });\r\n }\r\n\r\n importProcedureCSVFile(importFile: File) {\r\n const formData = new FormData();\r\n formData.append('file',importFile, importFile.name);\r\n return this.procedureRest.uploadProcedureCSV(formData);\r\n }\r\n\r\n exportProcedureCSVFile(): Observable {\r\n return this.procedureRest.downloadProcedureCSV();\r\n }\r\n\r\n // returns an observable of the sse call\r\n private getServerSentEvent(url: string, importFile: FormData): Observable {\r\n return new Observable((observer) => {\r\n const eventSource = this.sseService.getEventSourceWithPost(url, importFile);\r\n // on answer from message listener\r\n eventSource.onmessage = (event) => {\r\n observer.next(JSON.parse(event.data));\r\n };\r\n eventSource.onerror = (error) => {\r\n observer.error(error);\r\n };\r\n eventSource.stream();\r\n });\r\n }\r\n\r\n cloneSelectedProcedure(procedureData : ProcedureCloneBody,languageId:string): Observable{\r\n return this.procedureRest.cloneProcedure(procedureData,languageId);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n Router,\r\n} from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../service/authentication/auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private authService: AuthService, private router: Router) {}\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ):\r\n | Observable\r\n | Promise\r\n | boolean\r\n | UrlTree {\r\n if (!this.authService.isAuthenticated()) {\r\n this.router.navigateByUrl('/prelogin');\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","export default \"\\r\\n\";","import { Injectable } from '@angular/core';\r\nimport { RestDeviceService } from 'src/app/service/rest/device/rest-device.service';\r\nimport { MaintenanceHistory } from '../maintenance/maintenance.model';\r\nimport { InstallationHistory } from '../procedure/procedure.model';\r\nimport { HistoryType } from './device.model';\r\n\r\n@Injectable()\r\nexport class DeviceHistoryService {\r\n\r\n private _maintenanceHistory: MaintenanceHistory;\r\n private _installationHistory: InstallationHistory;\r\n\r\n private _historyType: HistoryType;\r\n\r\n constructor(private restDevice : RestDeviceService) { }\r\n\r\n public get maintenanceHistory(): MaintenanceHistory {\r\n return this._maintenanceHistory;\r\n }\r\n public set maintenanceHistory(value: MaintenanceHistory) {\r\n this._maintenanceHistory = value;\r\n }\r\n\r\n public get installationHistory(): InstallationHistory {\r\n return this._installationHistory;\r\n }\r\n public set installationHistory(value: InstallationHistory) {\r\n this._installationHistory = value;\r\n }\r\n\r\n public get historyType(): HistoryType {\r\n return this._historyType;\r\n }\r\n public set historyType(value: HistoryType) {\r\n this._historyType = value;\r\n }\r\n\r\n getMaintenanceHistoryById(id : number){\r\n this.restDevice.getDeviceMaintenanceHistoryById(id)\r\n .subscribe((result: MaintenanceHistory) => {\r\n this.maintenanceHistory = result;\r\n })\r\n }\r\n\r\n getInstallationHistoryById(id: number) {\r\n this.restDevice.getDeviceInstallationHistoryById(id)\r\n .subscribe((result: InstallationHistory) => {\r\n console.log(result);\r\n this.installationHistory = result;\r\n })\r\n }\r\n}\r\n","import { SearchDevice } from './device/device.model';\r\nimport { SearchPlant } from './plant/plant.model';\r\n\r\nexport class Tag {\r\n constructor(public key?: string, public value?: string) {}\r\n}\r\n\r\nexport class SearchCatalog {\r\n constructor(public plants?: SearchPlant[], public devices?: SearchDevice[]) {}\r\n}\r\n\r\nexport class UpsSasToken {\r\n constructor(public sas?: string) {}\r\n}\r\n\r\nexport enum AgendaCardType {\r\n NEWS = 0,\r\n ACADEMY = 1,\r\n EVENT = 2,\r\n MAINTENANCE = 3,\r\n MAINTENANCE_USER = 4,\r\n}\r\n\r\nexport enum OccurrenceOptions {\r\n settings_one_day_before = '1',\r\n settings_two_days_before = '2',\r\n settings_one_week_before = '7',\r\n settings_two_weeks_before = '14',\r\n settings_one_month_before = '30',\r\n settings_two_months_before = '60',\r\n}\r\n\r\nexport enum DateFormat {\r\n settings_date_it_IT = 'dd/MM/yyyy',\r\n settings_date_en_US = 'MM/dd/yyyy',\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class BackofficeSortService {\r\n\r\n constructor() { }\r\n\r\n public sortNumeric(a: number, b: number, isAsc: boolean): number {\r\n return isAsc ? a.toString()?.localeCompare(b.toString(), 'en', { numeric: true }) : b.toString()?.localeCompare(a.toString(), 'en', { numeric: true });\r\n }\r\n\r\n public sortAlphanumeric(a: string, b: string, isAsc: boolean): number {\r\n return isAsc ? a?.localeCompare(b, 'en', { numeric: true }) : b?.localeCompare(a, 'en', { numeric: true });\r\n }\r\n\r\n public sortDate(dateA: Date, dateB: Date, isAsc : boolean) : number{\r\n return isAsc ? dateA?.getTime().toString()?.localeCompare(dateB?.getTime().toString()) : dateB?.getTime().toString().localeCompare(dateA?.getTime().toString());\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Procedure, ProcedureCloneBody, ProcedureOrder, StepOrder } from \"src/app/models/procedure/procedure.model\";\r\nimport { AuthService } from \"../../authentication/auth.service\";\r\nimport { BaseApiService } from \"../../base-api.service\";\r\nimport { TranslateFirebaseService } from \"../../utils/translate-firebase.service\";\r\n\r\n@Injectable()\r\nexport class RestProcedureService extends BaseApiService {\r\n constructor(httpClient: HttpClient, translate: TranslateFirebaseService, private authService: AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n createProcedure(procedure: Procedure): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"InstallationProcedure\", procedure, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n\r\n updateProcedure(procedure: Procedure): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"InstallationProcedure\", procedure, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n\r\n deleteProcedure(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"InstallationProcedure/\" + id, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n\r\n getProcedureById(id: number, languageId: string): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"InstallationProcedure/\" + id + \"/\" + languageId, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n\r\n getProceduresByArticleIdAndLanguageId(articleId: number, languageId: string): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"InstallationProcedure/article/\" + articleId + \"/\" + languageId, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n\r\n orderProcedures(orderArray: ProcedureOrder[]): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"InstallationProcedure/update_procedures_order\", orderArray, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n\r\n orderSteps(orderArray: StepOrder[]): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"InstallationProcedure/update_steps_order\", orderArray, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n\r\n uploadProcedureCSV(importFileData: FormData): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"InstallationProcedure/country/importProcedureCSV\", importFileData, {\r\n headers: this.authService.upsHttpHeaders,\r\n responseType: \"blob\" as \"json\",\r\n });\r\n }\r\n\r\n downloadProcedureCSV(): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"InstallationProcedure/country/downloadProcedureCSV\", {\r\n headers: this.authService.upsHttpHeaders,\r\n responseType: \"blob\" as \"json\",\r\n });\r\n }\r\n\r\n cloneProcedure(procedureData: ProcedureCloneBody, languageId?: string): Observable {\r\n return this.httpClient.post(`${super.getUpsApiHost()}InstallationProcedure/clone/${languageId}`, procedureData, {\r\n headers: this.authService.upsHttpHeaders,\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Device, DeviceHistory, SubscribeSerialNumber, SubscribeSerialNumbers, UnsubscribeSerialNumber } from 'src/app/models/device/device.model';\r\nimport { MaintenanceHistory } from 'src/app/models/maintenance/maintenance.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestDeviceService extends BaseApiService {\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n //DEVICE APIs\r\n\r\n deleteDevice(id: string) : Observable{\r\n return this.httpClient.delete(super.getUpsApiHost() + \"Devices/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n createDevice(device: Device): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"Devices\", device, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n updateDevice(device: Device) {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Devices/\" + device.id, device, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getUserDeviceList() : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"Devices\", { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getDevice(id: string) : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"Devices/\" + id);\r\n }\r\n\r\n downloadDocument(docId: number) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Documents/\" + docId + \"/file\");\r\n }\r\n\r\n getDeviceHistoryByDeviceId(deviceId: string): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'Devices/history/' + deviceId, {headers: this.authService.upsHttpHeaders})\r\n }\r\n\r\n getDeviceMaintenanceHistoryById(id: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'MaintenanceHistory/' + id , {headers: this.authService.upsHttpHeaders})\r\n }\r\n\r\n getDeviceInstallationHistoryById(id: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'InstallationHistory/' + id , {headers: this.authService.upsHttpHeaders})\r\n }\r\n\r\n subscribeSerialNumbers(subscribeSerialNumbers : SubscribeSerialNumbers) : Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + 'Notification/SubscribeSerialNumbers', subscribeSerialNumbers, { headers: this.authService.upsHttpHeaders});\r\n }\r\n\r\n subscribeSerialNumber(subscribeSerialNumber : SubscribeSerialNumber) : Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + 'Notification/SubscribeSerialNumber', subscribeSerialNumber, { headers: this.authService.upsHttpHeaders});\r\n }\r\n\r\n unsubscribeSerialNumber(unsubscribeSerialNumber : UnsubscribeSerialNumber) : Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + 'Notification/UnsubscribeSerialNumber', unsubscribeSerialNumber, { headers: this.authService.upsHttpHeaders});\r\n }\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ModelsModule } from './models/models.module';\r\nimport { ServiceModule } from './service/service.module';\r\nimport { LoginComponent } from './view/login/login.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { environment } from '../environments/environment';\r\nimport { AngularFireModule } from '@angular/fire';\r\nimport { AngularFirestoreModule } from '@angular/fire/firestore';\r\nimport { AngularFireAnalyticsModule } from '@angular/fire/analytics';\r\nimport { OAuthModule } from 'angular-oauth2-oidc';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { PreloginComponent } from './view/login/prelogin/prelogin.component';\r\nimport { NgDialogAnimationService } from 'ng-dialog-animation';\r\nimport { PolicyTermsComponent } from './view/login/policy-terms/policy-terms.component';\r\nimport { BaseApiInterceptor } from './service/base-api.interceptor';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QrCodeComponent } from './view/qr-code/qr-code.component';\r\nimport { UploadCacheInterceptor } from './service/upload-cache.interceptor';\r\n// AoT requires an exported function for factories\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n PreloginComponent,\r\n PolicyTermsComponent,\r\n QrCodeComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n ModelsModule,\r\n MatIconModule,\r\n DragDropModule,\r\n MatListModule,\r\n ServiceModule,\r\n MatTooltipModule,\r\n ReactiveFormsModule,\r\n OAuthModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient],\r\n },\r\n defaultLanguage: 'en',\r\n }),\r\n AngularFireModule.initializeApp(environment.firebaseConfig),\r\n AngularFirestoreModule,\r\n AngularFireAnalyticsModule,\r\n ],\r\n providers: [\r\n NgDialogAnimationService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: BaseApiInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: UploadCacheInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class AppModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from './authentication/auth.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\nexport class BaseApiInterceptor implements HttpInterceptor {\r\n constructor(private authService: AuthService) {}\r\n\r\n intercept(\r\n request: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n if (\r\n !request.headers.get('Authorization') &&\r\n (request.url.includes(environment.UpsApiEndpoint) ||\r\n request.url.includes(environment.EliotApiEndpoint))\r\n ) {\r\n request = request.clone({\r\n headers: request.headers.append(\r\n 'Authorization',\r\n `Bearer <${this.authService.accessToken}>`\r\n ),\r\n });\r\n }\r\n\r\n let handle: Observable> = next.handle(request);\r\n\r\n return handle.pipe(\r\n catchError((response) => {\r\n if (response.status === 401) {\r\n this.authService.tryRefreshToken();\r\n return handle;\r\n }\r\n\r\n return handle;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestArticleCodeService } from 'src/app/service/rest/article-code/rest-article-code.service';\r\nimport { PageService } from 'src/app/service/utils/page.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { ArticleCode } from './article-code.model';\r\nimport { ArticleCodesRepositoryService } from './article-codes-repository.service';\r\n\r\n@Injectable()\r\nexport class ArticleCodeService {\r\n\r\n private _articleCode: ArticleCode = null;\r\n \r\n constructor(private articleCodeRest: RestArticleCodeService,) { }\r\n \r\n public get articleCode(): ArticleCode {\r\n return this._articleCode;\r\n }\r\n public set articleCode(value: ArticleCode) {\r\n this._articleCode = value;\r\n }\r\n\r\n createArticleCode() : Observable {\r\n return this.articleCodeRest.createArticleCode(this.articleCode);\r\n }\r\n\r\n updateArticleCode() : Observable {\r\n return this.articleCodeRest.updateArticleCode(this.articleCode);\r\n }\r\n\r\n deleteArticleCode(articleId: number) {\r\n return this.articleCodeRest.deleteArticleCode(articleId);\r\n }\r\n\r\n getArticleCodeById(articleId: number) : Observable{\r\n return this.articleCodeRest.getArticleCodeById(articleId);\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { FamilyCertificate, ProductFamily } from 'src/app/models/product-families/product-family.model';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class RestProductFamiliesService extends BaseApiService {\r\n \r\n \r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);}\r\n \r\n createProductFamily(productFamily: ProductFamily): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"DeviceTypeFamilies\", productFamily, {headers : this.authService.upsHttpHeaders});\r\n }\r\n \r\n updateProductFamily(productFamily: ProductFamily): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"DeviceTypeFamilies/\" + productFamily.id, productFamily, {headers : this.authService.upsHttpHeaders});\r\n }\r\n \r\n deleteProductFamily(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"DeviceTypeFamilies/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n \r\n getProductFamilyById(id: number) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"DeviceTypeFamilies/\" + id, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getAllProductFamilies() : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"DeviceTypeFamilies\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n \r\n getAllProductFamiliesCertificates(): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Documents/FamilyCertificates\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n \r\n uploadFamilyCertificate(file: File): Observable {\r\n const formData: FormData = new FormData();\r\n formData.append('File', file, file.name);\r\n return this.httpClient.post(super.getUpsApiHost() + \"Documents/FamilyCertificates\", formData, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n deleteFamilyCertificate(certificateId: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"Documents/FamilyCertificates/\" + certificateId, {headers : this.authService.upsHttpHeaders});\r\n }\r\n }\r\n ","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AgendaRepositoryService } from 'src/app/models/agenda/agenda-repository.service';\r\nimport { ArticleCodesRepositoryService } from 'src/app/models/article-code/article-codes-repository.service';\r\nimport { DeviceTypeRepositoryService } from 'src/app/models/device-type/device-type-repository.service';\r\nimport { DeviceRepositoryService } from 'src/app/models/device/device-repository.service';\r\nimport { EliotTokenResponse } from 'src/app/models/eliotToken.model';\r\nimport { PlantRepositoryService } from 'src/app/models/plant/plant-repository.service';\r\nimport { ProductFamilyRepositoryService } from 'src/app/models/product-families/product-family-repository.service';\r\nimport { BackofficeRoles } from 'src/app/models/roles.model';\r\nimport { ConsentStatusType, EliotUser, UpsUser, UserConsentStatus } from 'src/app/models/user/user.model';\r\nimport { UserService } from 'src/app/models/user/user.service';\r\nimport { AuthService } from 'src/app/service/authentication/auth.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nconst UpsUserStorageKey = 'UPS-UpsUser';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n public loginCompleted = false;\r\n private codeString = 'code';\r\n\r\n constructor(private router: Router,\r\n public translate: TranslateService,\r\n private activatedRoute: ActivatedRoute,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private deviceRepo: DeviceRepositoryService,\r\n private articleRepo: ArticleCodesRepositoryService,\r\n private agendaRepo: AgendaRepositoryService,\r\n private plantRepositoryService: PlantRepositoryService,\r\n private deviceTypesRepoService: DeviceTypeRepositoryService,\r\n private familiesRepoService: ProductFamilyRepositoryService) { }\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.queryParams.subscribe((params: any) => {\r\n if (params[this.codeString]) {\r\n this.authService.getAuthToken(params[this.codeString])\r\n .subscribe((res: EliotTokenResponse) => {\r\n if (res) {\r\n this.authService.accessToken = res.access_token;\r\n this.authService.idToken = res.id_token;\r\n this.authService.refreshToken = res.refresh_token;\r\n this.authService.tokenExpiresIn = res.expires_in;\r\n this.authService.setTimeoutRefreshToken();\r\n\r\n this.userService.loadEliotUser()\r\n .subscribe((user: any) => {\r\n if (user.profile.language) { this.authService.languageId = user.profile.language; }\r\n else { this.authService.languageId = user.profile.country; }\r\n\r\n const dateFormat = localStorage.getItem(environment.storage.settingsDateFormat);\r\n if (dateFormat === 'null') { this.userService.dateFormat = 'dd/MM/yyyy'; }\r\n this.saveUser(user);\r\n\r\n this.userService.getUserConsentStatus()\r\n .subscribe((result: any[]) => {\r\n let toUpdateConsent = false;\r\n this.userService.touDocs = result;\r\n if (!this.userService.touDocs) { this.loadUpsUser(false); }\r\n if (this.userService.touDocs.length === 0) {\r\n this.loadUpsUser(false);\r\n } else {\r\n this.userService.touDocs.forEach((doc: UserConsentStatus) => {\r\n if (doc.action.type === ConsentStatusType.CONSENT || doc.action.type === ConsentStatusType.UPDATE) {\r\n toUpdateConsent = true;\r\n }\r\n });\r\n this.loadUpsUser(toUpdateConsent);\r\n }\r\n });\r\n }, error => {\r\n console.log(error);\r\n });\r\n this.loginCompleted = true;\r\n\r\n }\r\n\r\n }, (error) => {\r\n console.log(error);\r\n this.router.navigateByUrl('/prelogin');\r\n });\r\n }\r\n });\r\n }\r\n\r\n saveUser(user: any): void {\r\n if (user) {\r\n const loggedUser = new EliotUser();\r\n loggedUser.email = user.profile.email;\r\n loggedUser.givenName = user.profile.givenName;\r\n loggedUser.displayName = user.profile.displayName;\r\n loggedUser.surname = user.profile.surname;\r\n if (user.profile.language) { loggedUser.language = user.profile.language; }\r\n else { loggedUser.language = user.profile.country; }\r\n loggedUser.country = user.profile.country;\r\n loggedUser.marketingCampaigns = user.account.marketingCampaigns.status;\r\n loggedUser.profiling = user.account.profiling.status;\r\n this.userService.eliotUser = loggedUser;\r\n }\r\n }\r\n\r\n loadUpsUser(toUpdateConsent: boolean): void {\r\n this.userService.loadUpsUser()\r\n .subscribe((user: UpsUser) => {\r\n this.userService.upsUser = user;\r\n sessionStorage.setItem(UpsUserStorageKey, JSON.stringify(user));\r\n this.agendaRepo.getAllAgendaByUser();\r\n this.agendaRepo.getUserNotificationCount();\r\n this.userService.getSasToken();\r\n this.articleRepo.loadArticleCodes();\r\n this.plantRepositoryService.getPlants();\r\n if (user.backofficeRole !== null) {\r\n if (toUpdateConsent) { this.router.navigateByUrl('/policy-terms'); }\r\n else if (user.backofficeRole === BackofficeRoles.LEGRAND_ADMIN) {\r\n this.router.navigateByUrl('/backoffice');\r\n }\r\n else if (user.backofficeRole === BackofficeRoles.LEGRAND_SERVICE) { this.router.navigateByUrl('/backoffice/home/warranty'); }\r\n } else {\r\n this.deviceRepo.getUserDevices();\r\n if (toUpdateConsent) { this.router.navigateByUrl('/policy-terms'); }\r\n else { this.router.navigateByUrl('/app'); }\r\n }\r\n }, error => {\r\n console.log('LOAD UPS USER ERROR');\r\n console.log(error);\r\n this.router.navigateByUrl('/app');\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestSerialService } from 'src/app/service/rest/serial/rest-serial.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { SerialNumber, SerialNumberUpdate, SerialNumbersImportStatus } from '../device/device.model';\r\nimport { Tag } from '../utils.model';\r\n\r\n@Injectable()\r\nexport class SerialNumberService {\r\n \r\n\r\n private _serialNumber : SerialNumber = new SerialNumber();\r\n private _serialNumberUpdate: SerialNumberUpdate = new SerialNumberUpdate();\r\n private _importStatus: SerialNumbersImportStatus = new SerialNumbersImportStatus();\r\n \r\n constructor(private serialRest : RestSerialService,\r\n private translate : TranslateFirebaseService) { }\r\n \r\n get serialNumber() : SerialNumber {\r\n return this._serialNumber;\r\n }\r\n \r\n set serialNumber(serial : SerialNumber) {\r\n this._serialNumber = serial;\r\n }\r\n \r\n public get serialNumberUpdate(): SerialNumberUpdate {\r\n return this._serialNumberUpdate;\r\n }\r\n public set serialNumberUpdate(value: SerialNumberUpdate) {\r\n this._serialNumberUpdate = value;\r\n }\r\n \r\n get deviceType() : Tag[]{\r\n return JSON.parse(this.translate.getTranslation('enum_device_type'));\r\n }\r\n\r\n public get importStatus(): SerialNumbersImportStatus {\r\n return this._importStatus;\r\n }\r\n public set importStatus(value: SerialNumbersImportStatus) {\r\n this._importStatus = value;\r\n }\r\n\r\n createSerial() :Observable {\r\n return this.serialRest.createSerial(this.serialNumber);\r\n }\r\n\r\n updateSerial(): Observable {\r\n return this.serialRest.updateSerial(this.serialNumber.id, this.serialNumberUpdate);\r\n }\r\n\r\n deleteSerial(): Observable {\r\n return this.serialRest.deleteSerial(this.serialNumber.id);\r\n }\r\n\r\n getLastImportStatus() {\r\n this.serialRest.getLastImportStatus().subscribe((importStatusResponse: SerialNumbersImportStatus) => {\r\n this.importStatus = importStatusResponse;\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class PageService {\r\n\r\n title : string = \"\"\r\n addDevice : boolean = false;\r\n addPlant : boolean = false;\r\n addMaintenanceReminder : boolean = false;\r\n addButton : boolean = true;\r\n breadCrumb : boolean = false;\r\n showVideo : boolean = false;\r\n\r\n myInstallation: boolean = false;\r\n agenda : boolean = false;\r\n settings : boolean = false;\r\n\r\n lastVisit : string = \"\";\r\n private _ascending : boolean = true;\r\n\r\n constructor(public router : Router,\r\n private snackBar : MatSnackBar) {}\r\n\r\n set ascending(value:boolean){\r\n this._ascending = value;\r\n }\r\n\r\n get ascending() : boolean{\r\n return this._ascending;\r\n }\r\n\r\n setTitle(name : string){\r\n this.title = name;\r\n }\r\n\r\n setLastVisit(path: string) {\r\n this.lastVisit = path;\r\n }\r\n\r\n setDeviceButton(value : boolean) {\r\n this.addDevice = value;\r\n }\r\n\r\n setPlantButton(value : boolean) {\r\n this.addPlant = value;\r\n }\r\n\r\n setMaintenanceReminderButton(value : boolean) {\r\n this.addMaintenanceReminder = value;\r\n }\r\n\r\n setAddButton(value : boolean){\r\n this.addButton = value;\r\n }\r\n\r\n setBreadCrumb(value : boolean){\r\n this.breadCrumb = value;\r\n }\r\n\r\n navigateTo(path : string){\r\n this.router.navigateByUrl(path);\r\n }\r\n\r\n openSnackBar(message: string, action: string) {\r\n this.snackBar.open(message, action, {\r\n duration: 3000,\r\n panelClass: ['success-snackbar']\r\n });\r\n }\r\n\r\n openErrorSnackBar(message: string, action: string) {\r\n this.snackBar.open(message, action, {\r\n duration: 5000,\r\n panelClass: ['error-snackbar']\r\n });\r\n }\r\n\r\n}\r\n","export default \"
\\r\\n

UPservice

\\r\\n \\\"Legrand\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{translate.getTranslation('terms_condition_title') | uppercase}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{translate.getTranslation('terms_condition_subtitle')}}\\r\\n \\r\\n
\\r\\n
\\r\\n Terms and Conditions \\r\\n \\r\\n
\\r\\n
\\r\\n Privacy Policy \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n Document,\r\n DocumentStatus,\r\n ImageMedia,\r\n ImageMediaPost,\r\n VideoMedia,\r\n VideoMediaPost,\r\n} from 'src/app/models/device-documentation/device-documentation.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestDeviceDocumentationService extends BaseApiService {\r\n constructor(\r\n httpClient: HttpClient,\r\n translate: TranslateFirebaseService,\r\n private authService: AuthService\r\n ) {\r\n super(httpClient, translate);\r\n }\r\n\r\n getDocumentsByArticleId(articleId: number): Observable {\r\n return this.httpClient.get(\r\n super.getUpsApiHost() + 'Documents/Article/' + articleId,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n getDocumentsBySerialNumber(serialNumberId: number): Observable {\r\n return this.httpClient.get(\r\n super.getUpsApiHost() + 'Documents/SerialNumber/' + serialNumberId,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n getAllDocumentsByArticleIdAndLanguageId(\r\n articleId: number,\r\n languageId: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n super.getUpsApiHost() +\r\n 'Documents/Article/' +\r\n articleId +\r\n '/' +\r\n languageId,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n // replaced with getMediaByArticleIdandLanguageId\r\n getMediaByArticleId(\r\n articleId: number\r\n ): Observable {\r\n return this.httpClient.get(\r\n super.getUpsApiHost() + 'Media/article/' + articleId,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n getMediaByArticleIdandLanguageId(\r\n articleId: number,\r\n languageId: string = 'en'\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${super.getUpsApiHost()}Media/article/${articleId}/${languageId}`,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n getVideoByArticleIdandLanguageId(\r\n articleId: number,\r\n languageId: string = 'en'\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${super.getUpsApiHost()}Media/article/${articleId}/${languageId}`,\r\n { headers: this.authService.upsHttpHeaders }\r\n ).pipe(map((media) => media.filter((video => video?.contentType.toString().startsWith('video/')))));\r\n }\r\n\r\n uploadNewImageMedia(media: FormData): Observable {\r\n return this.httpClient.post(\r\n super.getUpsApiHost() + 'Media',\r\n media,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n uploadNewVideoMediaExternal(media: VideoMediaPost): Observable {\r\n return this.httpClient.post(\r\n super.getUpsApiHost() + 'Media/external',\r\n media,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n uploadNewVideoMedia(media: FormData): Observable {\r\n return this.httpClient.post(\r\n super.getUpsApiHost() + 'Media',\r\n media,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n uploadDocument(document: FormData): Observable {\r\n return this.httpClient.post(\r\n super.getUpsApiHost() + 'Documents/Advanced',\r\n document,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n updateDocument(documentId: number, document: FormData): Observable {\r\n return this.httpClient.put(\r\n super.getUpsApiHost() + 'Documents/Advanced/' + documentId,\r\n document,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n changeDocumentStatus(documentId: number, publish: number): Observable {\r\n return this.httpClient.put(\r\n super.getUpsApiHost() + 'Documents/Status/' + documentId + '/' + publish,\r\n null,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n deleteMedia(id: number): Observable {\r\n return this.httpClient.delete(\r\n super.getUpsApiHost() + 'Media/entity/' + id,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n deleteDocumentEntity(id: number): Observable {\r\n return this.httpClient.delete(\r\n super.getUpsApiHost() + 'Documents/entity/' + id,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n deleteDocument(articleId: number, documentId: number): Observable {\r\n return this.httpClient.delete(\r\n super.getUpsApiHost() +\r\n 'Documents/Article/' +\r\n articleId +\r\n '/' +\r\n documentId,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n updateDocumentOrder(articleId: number, obj: any): Observable {\r\n return this.httpClient.put(\r\n super.getUpsApiHost() + 'Documents/ArticleOrder/' + articleId,\r\n obj,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n\r\n updateMediaOrder(articleId: number, obj: any): Observable {\r\n return this.httpClient.put(\r\n super.getUpsApiHost() + 'Media/ArticleOrder/' + articleId,\r\n obj,\r\n { headers: this.authService.upsHttpHeaders }\r\n );\r\n }\r\n}\r\n","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Loading...\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\";","export enum WebAppRoles {\r\n GENERIC_USER = '1',\r\n LEGRAND_PARTNER = '2'\r\n}\r\n\r\nexport enum BackofficeRoles {\r\n LEGRAND_SERVICE = 1,\r\n LEGRAND_ADMIN = 2\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestAgendaService } from 'src/app/service/rest/agenda/rest-agenda.service';\r\nimport { MaintenanceReminder, MaintenanceReminderUser } from './maintenance.model';\r\n\r\n@Injectable()\r\nexport class MaintenanceReminderService {\r\n\r\n private _maintenanceReminder: MaintenanceReminderUser;\r\n\r\n constructor(private restAgenda : RestAgendaService) { }\r\n\r\n public get maintenanceReminder(): MaintenanceReminderUser {\r\n return this._maintenanceReminder;\r\n }\r\n public set maintenanceReminder(value: MaintenanceReminderUser) {\r\n this._maintenanceReminder = value;\r\n }\r\n\r\n createReminder() : Observable {\r\n return this.restAgenda.createMaintenanceReminderUser(this.maintenanceReminder);\r\n }\r\n\r\n updateReminder() : Observable {\r\n return this.restAgenda.updateMaintenanceReminderUser(this.maintenanceReminder);\r\n }\r\n\r\n deleteReminder() : Observable {\r\n return this.restAgenda.deleteMaintenanceReminderUser(this.maintenanceReminder.id);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestAgendaService } from 'src/app/service/rest/agenda/rest-agenda.service';\r\nimport { EventAcademy } from './event.model';\r\n\r\n@Injectable()\r\nexport class EventAcademyService {\r\n\r\n private _eventAcademy: EventAcademy;\r\n\r\n constructor(private restAgenda : RestAgendaService) { }\r\n\r\n public get eventAcademy(): EventAcademy {\r\n return this._eventAcademy;\r\n }\r\n public set eventAcademy(value: EventAcademy) {\r\n this._eventAcademy = value;\r\n }\r\n\r\n createEventOrAcademy(event : FormData) : Observable{\r\n return this.restAgenda.createAgendaElement(event);\r\n }\r\n\r\n updateEventOrAcademy(event : FormData) : Observable{\r\n return this.restAgenda.updateAgendaElement(event);\r\n }\r\n\r\n deleteEventOrAcademy(id : number) : Observable {\r\n return this.restAgenda.deleteAgendaElement(id);\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CheckOrder, Maintenance } from 'src/app/models/maintenance/maintenance.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestMaintenanceService extends BaseApiService {\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n createMaintenance(maintenance: Maintenance): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"Maintenance\", maintenance, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n updateMaintenance(maintenance: Maintenance): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Maintenance/\" + maintenance.id, maintenance, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n deleteMaintenance(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"Maintenance/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getMaintenanceById(id: number, languageId: string) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Maintenance/\" + id + \"/\" + languageId, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getMaintenancesByArticleIdAndLanguageId(articleId: number, languageId: string) : Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"Maintenance/\" + articleId + \"/\" + languageId, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n orderChecks(orderArray: CheckOrder[]): Observable {\r\n return this.httpClient.put(super.getUpsApiHost() + \"Maintenance/orderchecks\", orderArray, { headers: this.authService.upsHttpHeaders});\r\n }\r\n\r\n getMaintenanceHistoryById(maintenanceHistoryId: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + '​/api​/MaintenanceHistory​/' + maintenanceHistoryId, {headers: this.authService.upsHttpHeaders})\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Tag } from '../utils.model';\r\n\r\n@Injectable()\r\nexport class LanguageRepositoryService {\r\n\r\n private _languages: Tag[];\r\n private _selectedLanguage: string = localStorage.getItem('selectedLanguage') || 'en';\r\n private languagesLoaded: boolean = false;\r\n\r\n constructor(private translate: TranslateFirebaseService) {\r\n if(!this.languagesLoaded) this.loadLanguages();\r\n }\r\n\r\n public get languages(): Tag[] | undefined {\r\n let data : Tag[];\r\n if (this._languages) return this._languages;\r\n else data = JSON.parse(sessionStorage.getItem(environment.storage.upsBackofficeLanguages));\r\n if (data != null) return data;\r\n else return undefined;\r\n }\r\n\r\n public set languages(value: Tag[] | undefined) {\r\n if (value) {\r\n sessionStorage.setItem(environment.storage.upsBackofficeLanguages, JSON.stringify(value));\r\n this._languages = value;\r\n }\r\n }\r\n\r\n get selectedLanguage(): string {\r\n return this._selectedLanguage;\r\n }\r\n\r\n set selectedLanguage(lang: string) {\r\n this._selectedLanguage = lang;\r\n }\r\n\r\n loadLanguages() {\r\n if (!this.languagesLoaded) {\r\n setTimeout(() => { this.languages = JSON.parse(this.translate.getTranslation('enum_languages')); }, 300);\r\n this.languagesLoaded = true;\r\n }\r\n }\r\n}\r\n","export default \"#qr-code {\\n min-height: 100vh;\\n}\\n\\n.logo-splash {\\n width: 46%;\\n margin-top: 18%;\\n margin-left: 27% !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uXFwuLlxcLi5cXC4uXFxxci1jb2RlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUFDSjs7QUFFQTtFQUNJLFVBQUE7RUFDQSxlQUFBO0VBQ0EsMkJBQUE7QUFDSiIsImZpbGUiOiJxci1jb2RlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI3FyLWNvZGUge1xyXG4gICAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcbi5sb2dvLXNwbGFzaCB7XHJcbiAgICB3aWR0aDogNDYlO1xyXG4gICAgbWFyZ2luLXRvcDogMTglO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDI3JSAhaW1wb3J0YW50O1xyXG59XHJcbiAgIl19 */\";","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class BackofficeGalleryService {\r\n\r\n private _imgsSrc : string[] = [];\r\n private _selectedIndex : number = 0;\r\n\r\n constructor() { }\r\n\r\n get imgsSrc() : string[] {\r\n return this._imgsSrc;\r\n }\r\n\r\n set imgsSrc(data : string[]) {\r\n this._imgsSrc = data;\r\n }\r\n\r\n get selectedIndex() : number {\r\n return this._selectedIndex;\r\n }\r\n\r\n set selectedIndex(index : number) {\r\n this._selectedIndex = index;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AddPlantFromDeviceType } from 'src/app/models/plant/plant.model';\r\nimport { AgendaCardType } from 'src/app/models/utils.model';\r\n\r\n@Injectable()\r\nexport class PageDialogService {\r\n\r\n private _dialogTitle : string = \"\";\r\n\r\n private _addPlant : boolean = false;\r\n private _editPlant : boolean = false;\r\n private _sharePlant : boolean = false;\r\n private _addPlantFromDevice : AddPlantFromDeviceType = AddPlantFromDeviceType.NONE;\r\n\r\n private _addDevice : boolean = false;\r\n private _editDevice: boolean = false;\r\n\r\n private _addMaintenanceReminder: boolean = false;\r\n private _editMaintenanceReminder: boolean = false;\r\n private _deleteReminderMode: boolean = false;\r\n\r\n private _agendaType: AgendaCardType;\r\n private _deleteAgendaMode: boolean = false;\r\n\r\n private _archiveDeviceMode : boolean = false;\r\n private _deletePlantMode : boolean = false;\r\n private _cannotDeletePlantMode : boolean = false;\r\n private _unsharePlantMode: boolean = false;\r\n private _searchMode : boolean = false;\r\n private _deviceGallery : boolean = false;\r\n private _confirmChangeOwner: boolean = false;\r\n\r\n private _videoPreview: boolean = false;\r\n\r\n\r\n private _plantId : string = '';\r\n\r\n constructor() { }\r\n\r\n get dialogTitle() : string {\r\n return this._dialogTitle;\r\n }\r\n\r\n set dialogTitle(title: string) {\r\n this._dialogTitle = title;\r\n }\r\n\r\n get addPlant() : boolean {\r\n return this._addPlant;\r\n }\r\n\r\n set addPlant(value: boolean) {\r\n this._addPlant = value;\r\n }\r\n\r\n get editPlant() : boolean {\r\n return this._editPlant;\r\n }\r\n\r\n set editPlant(value: boolean) {\r\n this._editPlant = value;\r\n }\r\n\r\n get sharePlant() : boolean {\r\n return this._sharePlant;\r\n }\r\n\r\n set sharePlant(value: boolean) {\r\n this._sharePlant = value;\r\n }\r\n\r\n get addPlantFromDevice() : AddPlantFromDeviceType {\r\n return this._addPlantFromDevice;\r\n }\r\n\r\n set addPlantFromDevice(value: AddPlantFromDeviceType) {\r\n this._addPlantFromDevice = value;\r\n }\r\n\r\n get addDevice() : boolean {\r\n return this._addDevice;\r\n }\r\n\r\n set addDevice(value: boolean) {\r\n this._addDevice = value;\r\n }\r\n\r\n get editDevice() : boolean {\r\n return this._editDevice;\r\n }\r\n\r\n set editDevice(value: boolean) {\r\n this._editDevice = value;\r\n }\r\n\r\n get archiveDeviceMode() : boolean {\r\n return this._archiveDeviceMode;\r\n }\r\n\r\n set archiveDeviceMode(value: boolean) {\r\n this._archiveDeviceMode = value;\r\n }\r\n\r\n get searchMode() : boolean {\r\n return this._searchMode;\r\n }\r\n\r\n set searchMode(value: boolean) {\r\n this._searchMode = value;\r\n }\r\n\r\n get deletePlantMode() : boolean {\r\n return this._deletePlantMode;\r\n }\r\n\r\n set deletePlantMode(value: boolean) {\r\n this._deletePlantMode = value;\r\n }\r\n\r\n get cannotDeletePlantMode() : boolean {\r\n return this._cannotDeletePlantMode;\r\n }\r\n\r\n set cannotDeletePlantMode(value: boolean) {\r\n this._cannotDeletePlantMode = value;\r\n }\r\n\r\n public get unsharePlantMode(): boolean {\r\n return this._unsharePlantMode;\r\n }\r\n\r\n public set unsharePlantMode(value: boolean) {\r\n this._unsharePlantMode = value;\r\n }\r\n\r\n get deviceGallery() : boolean {\r\n return this._deviceGallery;\r\n }\r\n\r\n set deviceGallery(value : boolean) {\r\n this._deviceGallery = value;\r\n }\r\n\r\n get plantId() : string {\r\n return this._plantId;\r\n }\r\n\r\n set plantId(value : string) {\r\n this._plantId = value;\r\n }\r\n\r\n public get confirmChangeOwner(): boolean {\r\n return this._confirmChangeOwner;\r\n }\r\n public set confirmChangeOwner(value: boolean) {\r\n this._confirmChangeOwner = value;\r\n }\r\n\r\n public get addMaintenanceReminder(): boolean {\r\n return this._addMaintenanceReminder;\r\n }\r\n public set addMaintenanceReminder(value: boolean) {\r\n this._addMaintenanceReminder = value;\r\n }\r\n\r\n public get editMaintenanceReminder(): boolean {\r\n return this._editMaintenanceReminder;\r\n }\r\n public set editMaintenanceReminder(value: boolean) {\r\n this._editMaintenanceReminder = value;\r\n }\r\n\r\n public get deleteReminderMode(): boolean {\r\n return this._deleteReminderMode;\r\n }\r\n public set deleteReminderMode(value: boolean) {\r\n this._deleteReminderMode = value;\r\n }\r\n\r\n public get deleteAgendaMode(): boolean {\r\n return this._deleteAgendaMode;\r\n }\r\n public set deleteAgendaMode(value: boolean) {\r\n this._deleteAgendaMode = value;\r\n }\r\n\r\n public get agendaType(): AgendaCardType {\r\n return this._agendaType;\r\n }\r\n public set agendaType(value: AgendaCardType) {\r\n this._agendaType = value;\r\n }\r\n\r\n public get videoPreview(): boolean {\r\n return this._videoPreview;\r\n }\r\n public set videoPreview(value: boolean) {\r\n this._videoPreview = value;\r\n }\r\n\r\n public reset() {\r\n this.addDevice = false;\r\n this.addPlant = false;\r\n this.editDevice = false;\r\n this.editPlant = false;\r\n this.sharePlant = false;\r\n this.addPlantFromDevice = AddPlantFromDeviceType.NONE;\r\n this.archiveDeviceMode = false;\r\n this.deletePlantMode = false;\r\n this.cannotDeletePlantMode = false;\r\n this.unsharePlantMode = false;\r\n this.searchMode = false;\r\n this.deviceGallery = false;\r\n this.confirmChangeOwner = false;\r\n this.plantId = '';\r\n this.addMaintenanceReminder = false;\r\n this.editMaintenanceReminder = false;\r\n this.deleteReminderMode = false;\r\n this.deleteAgendaMode = false;\r\n this.videoPreview = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestMaintenanceService } from 'src/app/service/rest/maintenance/rest-maintenance.service';\r\nimport { CheckOrder, Maintenance, MaintenanceCheck } from './maintenance.model';\r\n\r\n@Injectable()\r\nexport class MaintenanceService {\r\n\r\n private _maintenance: Maintenance;\r\n private _dataSourceChecks: MatTableDataSource = new MatTableDataSource();\r\n\r\n constructor(private maintenanceRest: RestMaintenanceService) { }\r\n\r\n public get maintenance(): Maintenance {\r\n return this._maintenance;\r\n }\r\n public set maintenance(value: Maintenance) {\r\n this._maintenance = value;\r\n if(value) this.dataSourceChecks = new MatTableDataSource(value.maintenanceChecks);\r\n }\r\n\r\n public get dataSourceChecks(): MatTableDataSource {\r\n return this._dataSourceChecks;\r\n }\r\n public set dataSourceChecks(value: MatTableDataSource) {\r\n this._dataSourceChecks = value;\r\n }\r\n\r\n get maintenanceChecks(): MaintenanceCheck[] {\r\n return this.maintenance.maintenanceChecks;\r\n }\r\n\r\n set maintenanceChecks(value : MaintenanceCheck[]){\r\n this.maintenance.maintenanceChecks = value;\r\n }\r\n\r\n updateMaintenance() : Observable {\r\n return this.maintenanceRest.updateMaintenance(this.maintenance);\r\n }\r\n\r\n addMaintenance() : Observable{\r\n return this.maintenanceRest.createMaintenance(this.maintenance);\r\n }\r\n\r\n cloneMaintenance(clonedMaintenance : Maintenance): Observable{\r\n return this.maintenanceRest.updateMaintenance(clonedMaintenance);\r\n }\r\n\r\n deleteMaintenance() : Observable{\r\n return this.maintenanceRest.deleteMaintenance(this.maintenance.id);\r\n }\r\n\r\n orderChecks(order: CheckOrder[]) {\r\n this.maintenanceRest.orderChecks(order).subscribe(result => { }, error => { console.log(error) });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CalendarDay, CalendarRow } from 'src/app/models/agenda/calendar.model';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class CalendarService {\r\n\r\n public year: number = -1;\r\n public nextYear: number = -1;\r\n\r\n public thisMonthName: string = '';\r\n private thisMonthNumber: number = -1;\r\n private thisMonthDaysNumber: CalendarDay = new CalendarDay(-1, false);\r\n\r\n private previousMonthNumber: number = -1;\r\n private previousMonthDaysNumber: number = -1;\r\n\r\n public rows: CalendarRow[] = [];\r\n\r\n public eventDays: any[] = [];\r\n\r\n constructor() {\r\n this.year = Number(moment().format('YYYY'));\r\n this.nextYear = this.year + 1;\r\n\r\n this.thisMonthName = moment().format('MMMM');\r\n this.thisMonthNumber = Number(moment().format('MM'));\r\n\r\n if (this.thisMonthNumber > 1) this.previousMonthNumber = this.thisMonthNumber - 1;\r\n else this.previousMonthNumber = 12;\r\n\r\n this.thisMonthDaysNumber.day = moment(this.year.toString() + '-' + this.thisMonthNumber.toString(), \"YYYY-MM\").daysInMonth();\r\n this.previousMonthDaysNumber = moment(this.year.toString() + '-' + this.previousMonthNumber.toString(), \"YYYY-MM\").daysInMonth();\r\n this.buildRows();\r\n }\r\n\r\n public buildRows() {\r\n this.rows = [];\r\n let firstMonthWeekDay : number = Number(moment(this.year.toString() + '-' + this.thisMonthNumber.toString() + '-01', \"YYYY-MM-DD\").format('d'));\r\n let dayCounter = 0;\r\n let firstRowCompleted: boolean = false;\r\n\r\n do {\r\n let calendarRow: CalendarRow = new CalendarRow();\r\n calendarRow.days = [];\r\n for (let i = 0; i < 7; i++) {\r\n if ((i + 1 >= firstMonthWeekDay) || firstRowCompleted) {\r\n let day: number = -1;\r\n let eventDay: boolean = false;\r\n let dateCheck: any = { day : day, month : this.thisMonthNumber };\r\n if (dayCounter >= this.thisMonthDaysNumber.day) {\r\n day = dayCounter - this.thisMonthDaysNumber.day + 1;\r\n dateCheck.day = day;\r\n eventDay = this.eventDays.findIndex((date : any) => date.day == dateCheck.day && date.month == dateCheck.month) > -1 ? true : false;\r\n calendarRow.days.push(new CalendarDay(day, eventDay));\r\n } else {\r\n day = dayCounter + 1;\r\n dateCheck.day = day;\r\n eventDay = this.eventDays.findIndex((date : any) => date.day == dateCheck.day && date.month == dateCheck.month) > -1 ? true : false;\r\n calendarRow.days.push(new CalendarDay(day, eventDay));\r\n }\r\n dayCounter++;\r\n } else calendarRow.days.push(new CalendarDay((this.previousMonthDaysNumber - firstMonthWeekDay) + 1 + (i+1)));\r\n\r\n }\r\n this.rows.push(calendarRow);\r\n if(this.rows.length === 1) firstRowCompleted = true;\r\n }\r\n while (dayCounter < this.thisMonthDaysNumber.day);\r\n\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http'\r\nimport { AuthService } from './authentication/auth.service';\r\nimport { PageService } from './utils/page.service';\r\nimport { PageDialogService } from './utils/page-dialog.service';\r\nimport { OrderByService } from './utils/order-by.service';\r\nimport { RestDeviceService } from './rest/device/rest-device.service';\r\nimport { RestPlantService } from './rest/plant/rest-plant.service';\r\nimport { RestUtilsService } from './rest/utils/rest-utils.service';\r\nimport { LastSearchedService } from './utils/last-searched.service';\r\nimport { RestUserService } from './rest/user/rest-user.service';\r\n\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { GalleryService } from './utils/gallery.service';\r\nimport { PageBackofficeService } from './utils/page-backoffice.service';\r\nimport { RestSerialService } from './rest/serial/rest-serial.service';\r\nimport { DocumentationService } from './utils/documentation.service';\r\nimport { RestProcedureService } from './rest/procedure/rest-procedure.service';\r\nimport { RestArFilesService } from './rest/ar-files/rest-ar-files.service';\r\nimport { RestMaintenanceService } from './rest/maintenance/rest-maintenance.service';\r\nimport { RestArticleCodeService } from './rest/article-code/rest-article-code.service';\r\nimport { RestDeviceDocumentationService } from './rest/device-documentation/rest-device-documentation.service';\r\nimport { RestAgendaService } from './rest/agenda/rest-agenda.service';\r\nimport { AgendaDialogService } from './utils/agenda-dialog.service';\r\nimport { CalendarService } from './utils/calendar.service';\r\nimport { CustomDateService } from './utils/custom-date.service';\r\nimport { BackofficeGalleryService } from './utils/backoffice-gallery.service';\r\nimport { BackofficeSortService } from './utils/backoffice-sort.service';\r\nimport { RestProductFamiliesService } from './rest/product-families/rest-product-families.service';\r\nimport { RestDeviceTypesService } from './rest/device-type/rest-device-types.service';\r\n\r\n\r\n@NgModule({\r\n providers: [RestDeviceService,\r\n RestPlantService,\r\n RestUserService,\r\n RestUtilsService,\r\n RestSerialService,\r\n RestProcedureService,\r\n RestArFilesService,\r\n RestMaintenanceService,\r\n RestArticleCodeService,\r\n RestDeviceDocumentationService,\r\n RestAgendaService,\r\n RestProductFamiliesService,\r\n RestDeviceTypesService,\r\n AuthService,\r\n PageService,\r\n PageBackofficeService,\r\n PageDialogService,\r\n OrderByService,\r\n LastSearchedService,\r\n GalleryService,\r\n DocumentationService,\r\n AgendaDialogService,\r\n CalendarService,\r\n CustomDateService,\r\n BackofficeGalleryService,\r\n BackofficeSortService\r\n ],\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n MatSnackBarModule\r\n ]\r\n})\r\nexport class ServiceModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestArFilesService } from 'src/app/service/rest/ar-files/rest-ar-files.service';\r\nimport { ARFile, ARFileBase64, } from './procedure.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Injectable()\r\nexport class ObjRepositoryService {\r\n\r\n private _arFiles: ARFile[] = [];\r\n private _objFiles: ARFile[] = [];\r\n private _imgFiles: ARFile[] = [];\r\n private _dataSourceObjFile: MatTableDataSource = new MatTableDataSource();\r\n private _dataSourceImgFile: MatTableDataSource = new MatTableDataSource();\r\n public arFilesLoaded: boolean = false;\r\n\r\n constructor(private restArFiles: RestArFilesService) {\r\n if(!this.arFilesLoaded) this.loadARFiles();\r\n }\r\n\r\n public get imgFiles(): ARFile[] {\r\n return this._imgFiles;\r\n }\r\n public set imgFiles(value: ARFile[]) {\r\n this._imgFiles = value;\r\n }\r\n\r\n public get objFiles(): ARFile[] {\r\n return this._objFiles;\r\n }\r\n\r\n public set objFiles(value: ARFile[]) {\r\n this._objFiles = value;\r\n }\r\n\r\n public get arFiles(): ARFile[] {\r\n return this._arFiles;\r\n }\r\n public set arFiles(value: ARFile[]) {\r\n this._arFiles = value;\r\n }\r\n\r\n public get dataSourceImgFile(): MatTableDataSource {\r\n return this._dataSourceImgFile;\r\n }\r\n public set dataSourceImgFile(value: MatTableDataSource) {\r\n this._dataSourceImgFile = value;\r\n }\r\n\r\n public get dataSourceObjFile(): MatTableDataSource {\r\n return this._dataSourceObjFile;\r\n }\r\n public set dataSourceObjFile(value: MatTableDataSource) {\r\n this._dataSourceObjFile = value;\r\n }\r\n\r\n postFile(file: File) : Observable {\r\n return this.restArFiles.uploadFile(file);\r\n }\r\n\r\n loadARFiles() : Observable {\r\n return this.restArFiles.getAllFiles();\r\n }\r\n\r\n getBase64File(id: number) : Observable {\r\n return this.restArFiles.getFileBase64(id);\r\n }\r\n\r\n deleteFile(id: number): Observable {\r\n return this.restArFiles.deleteFile(id);\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UpsSasToken } from 'src/app/models/utils.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestUtilsService extends BaseApiService {\r\n\r\n constructor(httpClient: HttpClient,\r\n translate: TranslateFirebaseService,\r\n private authService: AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n getSasToken(queryString : string): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'Sas' + queryString, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n getVersion(): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'version', { headers: this.authService.upsHttpHeaders, responseType: 'blob' });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SerialNumber, SerialNumberUpdate, SerialNumbersImportStatus } from 'src/app/models/device/device.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestSerialService extends BaseApiService{\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n //SERIAL APIs\r\n\r\n deleteSerial(id: number) {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"SerialNumbers/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n checkSerial(serial : string) : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/Validate/\" + serial, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n createSerial(serial: SerialNumber): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"SerialNumbers\", serial, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n updateSerial(serialId : number, serial: SerialNumberUpdate) {\r\n return this.httpClient.put(super.getUpsApiHost() + \"SerialNumbers/\" + serialId, serial, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getAllSerials() : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getPossibleSerials() : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/NotInstalled\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getInstalledSerials(): Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/Installed\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getSerialNumberById(id: string) : Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getSerialNumberBySerialNumber(serial: String): Observable{\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/Search/\" + serial, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getAllSerialsByArticleCode(articleCode: string): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/ArticleCode/\" + articleCode, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getAllSerialsByDeviceType(deviceTypeId: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/DeviceType/\" + deviceTypeId, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n uploadSerialNumbers(formData: FormData): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"SerialNumbers/Import\", formData, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getLastImportStatus(): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"SerialNumbers/Import/Status\", {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Document } from 'src/app/models/device-documentation/device-documentation.model';\r\nimport { DeviceRepositoryService } from 'src/app/models/device/device-repository.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { RestDeviceDocumentationService } from '../rest/device-documentation/rest-device-documentation.service';\r\nimport { PageService } from './page.service';\r\nimport { TranslateFirebaseService } from './translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class DocumentationService {\r\n\r\n private _document : Document;\r\n\r\n private _documentType: string = '';\r\n private _documentDescription: string = '';\r\n\r\n constructor(private deviceRepo: DeviceRepositoryService,\r\n private documentationRest: RestDeviceDocumentationService,\r\n private pageService: PageService,\r\n private translate : TranslateFirebaseService) { }\r\n\r\n get type(): string {\r\n return this._documentType;\r\n }\r\n\r\n set type(value: string) {\r\n this._documentType = value;\r\n }\r\n\r\n get description(): string {\r\n return this._documentDescription;\r\n }\r\n\r\n set description(value: string) {\r\n this._documentDescription = value;\r\n }\r\n\r\n get document(): Document {\r\n if (this._document) return this._document;\r\n else return JSON.parse(sessionStorage.getItem(environment.storage.upsSelectedDocument));\r\n }\r\n\r\n set document(doc : Document) {\r\n this._document = doc;\r\n sessionStorage.setItem(environment.storage.upsSelectedDocument, JSON.stringify(doc));\r\n }\r\n\r\n downloadPdf() : Observable {\r\n return this.deviceRepo.downloadDocument(this.document.id);\r\n }\r\n\r\n uploadDocument(value: FormData) {\r\n return this.documentationRest.uploadDocument(value);\r\n }\r\n\r\n updateDocument(documentId: number, document: FormData) {\r\n return this.documentationRest.updateDocument(documentId, document);\r\n }\r\n\r\n changeDocumentStatus(documentId: number, status: number) {\r\n this.documentationRest.changeDocumentStatus(documentId, status)\r\n .subscribe((result) => {\r\n this.pageService.openSnackBar(this.translate.getTranslation('backoffice_general_edit_success'), 'Ok');\r\n }, error => {\r\n this.pageService.openErrorSnackBar(this.translate.getTranslation('backoffice_general_edit_failed'), 'Ok');\r\n console.log(error);\r\n })\r\n }\r\n\r\n deleteDocument(articleId: number, documentId: number): Observable {\r\n return this.documentationRest.deleteDocument(articleId, documentId);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-qr-code',\r\n templateUrl: './qr-code.component.html',\r\n styleUrls: ['./qr-code.component.scss']\r\n})\r\nexport class QrCodeComponent implements OnInit {\r\n\r\n \r\n\r\n constructor(private translate : TranslateFirebaseService) { }\r\n\r\n ngOnInit(): void {\r\n this.translate.redirectToStore();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n \r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { BackofficeRoles } from '../models/roles.model';\r\nimport { UserService } from '../models/user/user.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BackofficeRoleGuard implements CanActivate {\r\n\r\n constructor(private userService : UserService,\r\n private router : Router) { }\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n if (this.userService.upsUser.backofficeRole == BackofficeRoles.LEGRAND_ADMIN\r\n || this.userService.upsUser.backofficeRole == BackofficeRoles.LEGRAND_SERVICE) return true;\r\n else this.router.navigateByUrl('/prelogin');\r\n }\r\n\r\n}\r\n","export default \".container-fluid {\\n min-height: 100vh;\\n}\\n\\n.policy-container {\\n position: absolute;\\n height: 100vh;\\n width: 600px;\\n right: 0;\\n}\\n\\n.logo-splash {\\n position: absolute;\\n width: 32%;\\n top: 40%;\\n left: 15%;\\n}\\n\\n.app-name {\\n position: absolute;\\n top: 32%;\\n left: 15% !important;\\n font-size: xx-large;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uXFwuLlxcLi5cXC4uXFwuLlxccG9saWN5LXRlcm1zLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQUE7QUFDRjs7QUFFQTtFQUNFLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxRQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtBQUNGOztBQUVBO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtBQUNGIiwiZmlsZSI6InBvbGljeS10ZXJtcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXItZmx1aWQge1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG59XHJcblxyXG4ucG9saWN5LWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgd2lkdGg6IDYwMHB4O1xyXG4gIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4ubG9nby1zcGxhc2gge1xyXG4gIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gIHdpZHRoOiAzMiU7XHJcbiAgdG9wOiA0MCU7XHJcbiAgbGVmdDogMTUlO1xyXG59XHJcblxyXG4uYXBwLW5hbWUge1xyXG4gIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gIHRvcDogMzIlO1xyXG4gIGxlZnQ6IDE1JSAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogeHgtbGFyZ2U7XHJcbn1cclxuIl19 */\";","export class CalendarRow {\r\n\r\n constructor(public days?: CalendarDay[]) { }\r\n\r\n}\r\n\r\nexport class CalendarDay {\r\n constructor(\r\n public day: number,\r\n public event: boolean = false\r\n ) { }\r\n}\r\n\r\nexport class NotificationRead {\r\n constructor(\r\n public readingDate: string,\r\n public notificationNumber: number\r\n ) { }\r\n}\r\n","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Loading...\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestAgendaService } from 'src/app/service/rest/agenda/rest-agenda.service';\r\nimport { AgendaCardType } from '../utils.model';\r\nimport { EventAcademy } from './event.model';\r\n\r\n@Injectable()\r\nexport class EventAcademyRepositoryService {\r\n\r\n private _eventsAndAcademies: EventAcademy[] = [];\r\n private _dataSourceEventsAndAcademies: MatTableDataSource;\r\n\r\n constructor(private restAgenda: RestAgendaService) { }\r\n\r\n public get dataSourceEventsAndAcademies(): MatTableDataSource {\r\n return this._dataSourceEventsAndAcademies;\r\n }\r\n public set dataSourceEventsAndAcademies(value: MatTableDataSource) {\r\n this._dataSourceEventsAndAcademies = value;\r\n }\r\n\r\n public get eventsAndAcademies(): EventAcademy[] {\r\n return this._eventsAndAcademies;\r\n }\r\n public set eventsAndAcademies(value: EventAcademy[]) {\r\n this._eventsAndAcademies = value;\r\n }\r\n\r\n public get filteredEventAcademies(): EventAcademy[] {\r\n return this._eventsAndAcademies.filter((eventAcademy: EventAcademy) => new Date(eventAcademy.expireAt).getTime() > new Date().getTime());\r\n }\r\n\r\n public getByType(type : AgendaCardType) : Observable {\r\n return this.restAgenda.getAgendaElementsByType(type);\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SSE } from 'sse.js';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServerSentService {\r\n eventSource: SSE;\r\n\r\n constructor(private authService : AuthService) { }\r\n \r\n /**\r\n * Create an event source of POST request\r\n *\r\n * @param API url\r\n * @formData data (file, ...etc.)\r\n */\r\n public getEventSourceWithPost(url: string, formData: FormData): SSE {\r\n return this.buildEventSource(url, 'POST', formData);\r\n }\r\n\r\n /**\r\n * Create an event source of GET request\r\n *\r\n * @param API url\r\n */\r\n public getEventSourceWithGet(url: string): SSE {\r\n return this.buildEventSource(url, 'GET');\r\n }\r\n\r\n /**\r\n * Building the event source\r\n *\r\n * @param url API URL\r\n * @param meth (POST, GET, ...etc.)\r\n * @param formData data\r\n */\r\n private buildEventSource(url: string, meth: string, formData?: FormData): SSE {\r\n const options = this.buildOptions(meth, formData);\r\n this.eventSource = new SSE(url, options);\r\n return this.eventSource;\r\n }\r\n\r\n closeEventSource() {\r\n if (!!this.eventSource) {\r\n this.eventSource.close();\r\n }\r\n }\r\n\r\n /**\r\n * Build query options\r\n *\r\n * @param meth POST or GET\r\n * @param formData data\r\n */\r\n private buildOptions(\r\n meth: string,\r\n formData?: FormData\r\n ): {\r\n payload: FormData;\r\n method: string;\r\n headers: HttpHeaders | null;\r\n } {\r\n \r\n const auth = this.authService.upsHttpHeaders;\r\n return {\r\n payload: formData,\r\n method: meth,\r\n headers: auth,\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport firebase from \"firebase/app\";\r\nimport 'firebase/remote-config';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Router } from '@angular/router';\r\nimport { AngularFireAnalytics } from \"@angular/fire/analytics\";\r\n\r\nexport enum mobileOS {\r\n ANDROID = 'android',\r\n IOS = 'ios',\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslateFirebaseService {\r\n \r\n private remoteConfig = firebase.remoteConfig();\r\n private osStoreStringBase: string = 'webapp_qr_code_';\r\n\r\n public translations : any;\r\n private setup : boolean = false;\r\n \r\n constructor(private httpClient : HttpClient,\r\n public router : Router, private analytics: AngularFireAnalytics) {\r\n if(!this.setup){\r\n this.setupTranslations();\r\n }\r\n }\r\n \r\n private setupTranslations() {\r\n const languageId = window.navigator.language || 'en';\r\n\r\n if(environment.production) {\r\n //this.remoteConfig.settings.minimumFetchIntervalMillis = 43200000;\r\n this.remoteConfig.settings.minimumFetchIntervalMillis = 3600000;\r\n this.analytics.setUserProperties({ language: languageId });\r\n } else {\r\n this.analytics.setUserProperties({ language: languageId, environment: \"QA\" });\r\n this.remoteConfig.settings.minimumFetchIntervalMillis = 60000;\r\n }\r\n this.remoteConfig.fetchAndActivate().then(res => {\r\n this.translations = this.remoteConfig.getAll();\r\n this.setup = true;\r\n }, error => {\r\n this.defaultTranslations();\r\n });\r\n }\r\n \r\n defaultTranslations() {\r\n this.httpClient.get(\"assets/i18n/en.json\")\r\n .subscribe(result => {\r\n this.translations = result;\r\n });\r\n }\r\n \r\n getTranslation(key: string): string {\r\n if (this.translations == undefined) return;\r\n else if (!this.setup) return this.translations[key];\r\n else if (this.translations[key]) return this.translations[key]._value;\r\n else return \"\";\r\n }\r\n \r\n /**\r\n * Determine the mobile operating system.\r\n * This function returns one of 'iOS', 'Android', 'Windows Phone', or 'unknown'.\r\n *\r\n * @returns {String}\r\n */\r\n getMobileOperatingSystem(): string {\r\n var userAgent = navigator.userAgent || navigator.vendor || (window as any).opera;\r\n \r\n // Windows Phone must come first because its UA also contains \"Android\"\r\n if (/windows phone/i.test(userAgent)) {\r\n return \"Windows Phone\";\r\n }\r\n \r\n if (/android/i.test(userAgent)) {\r\n return mobileOS.ANDROID;\r\n }\r\n \r\n // iOS detection from: http://stackoverflow.com/a/9039885/177710\r\n if (/iPad|iPhone|iPod/.test(userAgent) && !(window as any).MSStream) {\r\n return mobileOS.IOS;\r\n }\r\n \r\n return \"default\";\r\n }\r\n\r\n redirectToStore() {\r\n this.remoteConfig.fetchAndActivate().then(res => {\r\n this.translations = this.remoteConfig.getAll();\r\n if(this.getTranslation(this.osStoreStringBase + this.getMobileOperatingSystem())) {\r\n window.open(this.getTranslation(this.osStoreStringBase + this.getMobileOperatingSystem()), '_self');\r\n } else {\r\n this.router.navigateByUrl('/prelogin');\r\n }\r\n }, error => {\r\n this.defaultTranslations();\r\n });\r\n }\r\n\r\n}\r\n","export class Document {\r\n constructor(\r\n public id?: number,\r\n public index?: number,\r\n public url?: string,\r\n public title?: string,\r\n public filename?: string,\r\n public languageId?: string,\r\n public isWarranty?: boolean,\r\n public contentType?: string,\r\n public link?: string,\r\n public file?: File | null,\r\n public storageUri?: string,\r\n public externalLink?: string,\r\n public status?: DocumentStatus,\r\n public description?: string,\r\n public serialNumbers?: string[],\r\n public articleCodes?: string[]\r\n ) {}\r\n}\r\n\r\nexport enum DocumentStatus {\r\n NOT_PUBLISHED = 0,\r\n PUBLISHED = 1,\r\n}\r\n\r\nexport class Media {\r\n constructor(\r\n public id?: number,\r\n public articleIds?: number[],\r\n public storageUri?: string,\r\n public contentType?: string | CustomContentType\r\n ) {}\r\n}\r\n\r\nexport class ImageMedia {\r\n constructor(\r\n public id?: number,\r\n public index?: number,\r\n\r\n public articleIds?: number[],\r\n public storageUri?: string,\r\n public contentType?: CustomContentType,\r\n public file?: File,\r\n public languageId?: string,\r\n ) {}\r\n}\r\n\r\nexport class VideoMedia {\r\n constructor(\r\n public id?: number,\r\n public index?: number,\r\n\r\n public articleIds?: number[],\r\n public storageUri?: string,\r\n public externalLink?: string,\r\n public thumbnailLink?: string,\r\n public contentType?: CustomContentType,\r\n public file?: File,\r\n public src?:string,\r\n public languageId?: string,\r\n ) {}\r\n}\r\n\r\nexport class VideoLinks {\r\n constructor(public externalLink?: string, public thumbnailLink?: string) {}\r\n}\r\n\r\nexport class VideoMediaPost {\r\n constructor(\r\n public articleIds?: number[],\r\n public externalLink?: string,\r\n public contentType?: CustomContentType\r\n ) {}\r\n}\r\n\r\nexport class ImageMediaPost {\r\n constructor(public articleIds?: number[], public file?: File) {}\r\n}\r\n\r\nexport enum CustomContentType {\r\n IMAGE = 0,\r\n VIDEO = 1,\r\n}\r\n\r\nexport enum CustomContentString {\r\n IMAGE = 'image/external-link',\r\n VIDEO = 'video/external-link',\r\n}\r\n\r\nexport enum ContentType {\r\n IMAGE,\r\n VIDEO,\r\n UNKNOWN,\r\n}\r\n\r\nexport const validDocumentExtensions: string[] = [\r\n 'pdf',\r\n 'doc',\r\n 'docx',\r\n 'xls',\r\n 'xlsx',\r\n 'csv',\r\n];\r\n\r\nexport const validImagesExtensions: string[] = [\r\n 'jpg',\r\n 'jpeg',\r\n 'png',\r\n 'bmp',\r\n 'tiff',\r\n];\r\n\r\nexport const validVideosExtensions: string[] = [\r\n 'mp4',\r\n 'webm',\r\n];\r\n\r\nexport enum VideoType {\r\n EXTERNAL = 'External',\r\n FILE = 'File'\r\n}\r\n","export default \"#login {\\n min-height: 100vh;\\n}\\n\\n.logo-splash {\\n width: 46%;\\n margin-top: 0.5%;\\n margin-left: 27% !important;\\n}\\n\\n.app-name {\\n padding-top: 18%;\\n padding-left: 27% !important;\\n font-size: xx-large;\\n}\\n\\n.hidden {\\n visibility: hidden;\\n opacity: 0;\\n transition: visibility 0s 1.5s, opacity 1.5s linear;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uXFwuLlxcLi5cXC4uXFxsb2dpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFBO0FBQ0Y7O0FBRUE7RUFDRSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSwyQkFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7RUFDQSw0QkFBQTtFQUNBLG1CQUFBO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxtREFBQTtBQUNGIiwiZmlsZSI6ImxvZ2luLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2xvZ2luIHtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxufVxyXG5cclxuLmxvZ28tc3BsYXNoIHtcclxuICB3aWR0aDogNDYlO1xyXG4gIG1hcmdpbi10b3A6IDAuNSU7XHJcbiAgbWFyZ2luLWxlZnQ6IDI3JSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYXBwLW5hbWUge1xyXG4gIHBhZGRpbmctdG9wOiAxOCU7XHJcbiAgcGFkZGluZy1sZWZ0OiAyNyUgIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IHh4LWxhcmdlO1xyXG59XHJcblxyXG4uaGlkZGVuIHtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgb3BhY2l0eTogMDtcclxuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIDEuNXMsIG9wYWNpdHkgMS41cyBsaW5lYXI7XHJcbn1cclxuXHJcbiJdfQ== */\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from './guards/auth.guard';\r\nimport { BackofficeRoleGuard } from './guards/backoffice-role.guard';\r\nimport { LoginComponent } from './view/login/login.component';\r\nimport { PolicyTermsComponent } from './view/login/policy-terms/policy-terms.component';\r\nimport { PreloginComponent } from './view/login/prelogin/prelogin.component';\r\nimport { QrCodeComponent } from './view/qr-code/qr-code.component';\r\n\r\nconst routes: Routes = [\r\n { path: \"prelogin\", component: PreloginComponent},\r\n { path: \"login\", component: LoginComponent},\r\n { path: \"policy-terms\", component: PolicyTermsComponent},\r\n { path: \"backoffice\", canActivate:[BackofficeRoleGuard],\r\n loadChildren: () => import('./view/backoffice/backoffice.module').then( m => m.BackofficeModule)\r\n },\r\n { path: \"app\", canActivate:[AuthGuard],\r\n loadChildren: () => import('./view/webapp/webapp.module').then( m => m.WebappModule)\r\n },\r\n { path: \"qr\", component: QrCodeComponent},\r\n {path: '**', redirectTo: \"/prelogin\"},\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n providers: [AuthGuard]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { FamilyCertificate, ProductFamily } from './product-family.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { RestProductFamiliesService } from 'src/app/service/rest/product-families/rest-product-families.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ProductFamilyRepositoryService {\r\n \r\n private _dataSourceProductFamilies: MatTableDataSource = new MatTableDataSource();\r\n private _productFamilies: ProductFamily[] = [];\r\n private _productFamiliesLoaded: boolean = false;\r\n private _familiesCertificates: FamilyCertificate[] = [];\r\n private _productFamiliesCertificatesLoaded: boolean = false;\r\n private _selectedFamily: ProductFamily;\r\n \r\n \r\n constructor(private restProductFamilyService: RestProductFamiliesService) { }\r\n \r\n public get dataSourceProductFamilies(): MatTableDataSource {\r\n return this._dataSourceProductFamilies;\r\n }\r\n public set dataSourceProductFamilies(value: MatTableDataSource) {\r\n this._dataSourceProductFamilies = value;\r\n }\r\n \r\n public get productFamilies(): ProductFamily[] {\r\n return this._productFamilies;\r\n }\r\n public set productFamilies(value: ProductFamily[]) {\r\n this._productFamilies = value;\r\n }\r\n \r\n public get productFamiliesLoaded(): boolean {\r\n return this._productFamiliesLoaded;\r\n }\r\n public set productFamiliesLoaded(value: boolean) {\r\n this._productFamiliesLoaded = value;\r\n }\r\n \r\n public get familiesCertificates(): FamilyCertificate[] {\r\n return this._familiesCertificates;\r\n }\r\n public set familiesCertificates(value: FamilyCertificate[]) {\r\n this._familiesCertificates = value;\r\n }\r\n \r\n public get productFamiliesCertificatesLoaded(): boolean {\r\n return this._productFamiliesCertificatesLoaded;\r\n }\r\n public set productFamiliesCertificatesLoaded(value: boolean) {\r\n this._productFamiliesCertificatesLoaded = value;\r\n }\r\n \r\n public get selectedFamily(): ProductFamily | undefined {\r\n return this._selectedFamily;\r\n }\r\n public set selectedFamily(value: ProductFamily | undefined) {\r\n this._selectedFamily = value;\r\n }\r\n \r\n loadProductFamilies(): Observable {\r\n return this.restProductFamilyService.getAllProductFamilies();\r\n }\r\n \r\n loadFamiliesCertificates(): Observable {\r\n return this.restProductFamilyService.getAllProductFamiliesCertificates();\r\n }\r\n \r\n uploadCertificateFile(file: File): Observable {\r\n return this.restProductFamilyService.uploadFamilyCertificate(file);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DeviceTypeService {\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AgendaRepositoryService } from 'src/app/models/agenda/agenda-repository.service';\r\nimport { EventAcademy } from 'src/app/models/event/event.model';\r\nimport { MaintenanceReminder, MaintenanceReminderUser } from 'src/app/models/maintenance/maintenance.model';\r\nimport { News } from 'src/app/models/news/news.model';\r\n\r\n@Injectable()\r\nexport class AgendaDialogService {\r\n\r\n private _dialogTile: string = '';\r\n\r\n private _agendaElement: News | EventAcademy;\r\n private _maintenanceReminder: MaintenanceReminder | MaintenanceReminderUser;\r\n\r\n constructor(private agendaRepo : AgendaRepositoryService) { }\r\n\r\n public get dialogTile(): string {\r\n return this._dialogTile;\r\n }\r\n public set dialogTile(value: string) {\r\n this._dialogTile = value;\r\n }\r\n\r\n public get agendaElement(): News | EventAcademy {\r\n return this._agendaElement;\r\n }\r\n public set agendaElement(value: News | EventAcademy) {\r\n this._agendaElement = value;\r\n }\r\n\r\n public get maintenanceReminder(): MaintenanceReminder | MaintenanceReminderUser {\r\n return this._maintenanceReminder;\r\n }\r\n public set maintenanceReminder(value: MaintenanceReminder | MaintenanceReminderUser) {\r\n this._maintenanceReminder = value;\r\n }\r\n\r\n hideElement() {\r\n this.agendaRepo.hideElement(this.agendaElement.id);\r\n }\r\n\r\n reset() {\r\n this.dialogTile = null;\r\n this.maintenanceReminder = null;\r\n this.agendaElement = null;\r\n\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from 'src/app/service/authentication/auth.service';\r\nimport { RestUserService } from 'src/app/service/rest/user/rest-user.service';\r\n\r\n@Component({\r\n selector: 'app-prelogin',\r\n templateUrl: './prelogin.component.html',\r\n styleUrls: ['./prelogin.component.scss']\r\n})\r\nexport class PreloginComponent implements OnInit {\r\n\r\n constructor(private authService: AuthService,\r\n private userRestService: RestUserService){}\r\n\r\n\r\n ngOnInit(): void {\r\n this.configure();\r\n }\r\n\r\n configure(): void {\r\n this.authService.configureLogin();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ConsentDocumentType, ConsentDocumentTypeParam, UserConsentStatus } from 'src/app/models/user/user.model';\r\nimport { UserService } from 'src/app/models/user/user.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\n\r\n@Component({\r\n selector: 'app-policy-terms',\r\n templateUrl: './policy-terms.component.html',\r\n styleUrls: ['./policy-terms.component.scss']\r\n})\r\nexport class PolicyTermsComponent implements OnInit {\r\n\r\n constructor(public translate: TranslateFirebaseService,\r\n private userService: UserService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n get touLink(): string {\r\n return this.userService.touLink;\r\n }\r\n\r\n get privacyLink(): string {\r\n return this.userService.privacyLink;\r\n }\r\n\r\n goToLink(url: string): void {\r\n window.open(url, '_blank');\r\n }\r\n\r\n accept(): void {\r\n this.userService.touDocs.forEach((doc: UserConsentStatus) => {\r\n if (doc.document === ConsentDocumentType.TERMS_OF_USE) {\r\n this.userService.updateConditions(ConsentDocumentTypeParam.TERMS_OF_USE)\r\n .subscribe(() => {});\r\n } else if (doc.document === ConsentDocumentType.PRIVACY_POLICY) {\r\n this.userService.updateConditions(ConsentDocumentTypeParam.PRIVACY_POLICY)\r\n .subscribe(result => {\r\n console.log(result);\r\n });\r\n }\r\n });\r\n if (this.userService.upsUser.backofficeRole != null) {\r\n this.router.navigateByUrl('/backoffice');\r\n } else {\r\n this.router.navigateByUrl('/app');\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable } from 'rxjs';\r\nimport { RestUserService } from 'src/app/service/rest/user/rest-user.service';\r\nimport { UpsUser } from './user.model';\r\n\r\n@Injectable()\r\nexport class UserRepositoryService {\r\n\r\n private _backofficeUsers: UpsUser[] = [];\r\n public dataSourceUsers = new MatTableDataSource();\r\n\r\n usersLoaded : boolean = false;\r\n\r\n constructor(private userRest : RestUserService) { }\r\n\r\n loadBackofficeUsers() : Observable {\r\n return this.userRest.getUsers();\r\n }\r\n\r\n get backofficeUsers(): UpsUser[] {\r\n return this._backofficeUsers;\r\n }\r\n\r\n set backofficeUsers(users : UpsUser[]) {\r\n this._backofficeUsers = users;\r\n this.dataSourceUsers = new MatTableDataSource(users);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DeviceType } from './device-type-model';\r\nimport { RestDeviceTypesService } from 'src/app/service/rest/device-type/rest-device-types.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class DeviceTypeRepositoryService {\r\n\r\n private _selectedDeviceType: DeviceType = null;\r\n private _deviceTypes: DeviceType[] = [];\r\n \r\n constructor(private restDeviceTypeService: RestDeviceTypesService) { }\r\n \r\n public get selectedDeviceType(): DeviceType {\r\n return this._selectedDeviceType;\r\n }\r\n public set selectedDeviceType(value: DeviceType) {\r\n this._selectedDeviceType = value;\r\n }\r\n \r\n public get deviceTypes(): DeviceType[] {\r\n return this._deviceTypes;\r\n }\r\n public set deviceTypes(value: DeviceType[]) {\r\n this._deviceTypes = value;\r\n }\r\n\r\n loadDeviceTypes(): Observable {\r\n return this.restDeviceTypeService.getAllDeviceTypes();\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LnNjc3MifQ== */\";","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ARFileBase64 } from 'src/app/models/procedure/procedure.model';\r\nimport { AuthService } from '../../authentication/auth.service';\r\nimport { BaseApiService } from '../../base-api.service';\r\nimport { TranslateFirebaseService } from '../../utils/translate-firebase.service';\r\n\r\n@Injectable()\r\nexport class RestArFilesService extends BaseApiService {\r\n\r\n constructor(httpClient: HttpClient,\r\n translate : TranslateFirebaseService,\r\n private authService : AuthService) {\r\n super(httpClient, translate);\r\n }\r\n\r\n getAllFiles(): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + 'ArFile', {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n uploadFile(file: File): Observable {\r\n const formData: FormData = new FormData();\r\n formData.append('File', file, file.name);\r\n return this.httpClient.post(super.getUpsApiHost() + \"ArFile\", formData, { headers: this.authService.upsHttpHeaders });\r\n }\r\n\r\n deleteFile(id: number): Observable {\r\n return this.httpClient.delete(super.getUpsApiHost() + \"ArFile/entity/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getFile(file: any): Observable {\r\n return this.httpClient.post(super.getUpsApiHost() + \"ArFile\", file, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n getFileBase64(id: number): Observable {\r\n return this.httpClient.get(super.getUpsApiHost() + \"ArFile/binary-data/base64/\" + id, {headers : this.authService.upsHttpHeaders});\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestPlantService } from 'src/app/service/rest/plant/rest-plant.service';\r\nimport { TranslateFirebaseService } from 'src/app/service/utils/translate-firebase.service';\r\nimport { Device } from '../device/device.model';\r\nimport { Tag } from '../utils.model';\r\nimport { Plant } from './plant.model';\r\n\r\nconst plantStorageKey = \"UPS-plant\";\r\n\r\n@Injectable()\r\nexport class PlantService {\r\n\r\n private _plant : Plant;\r\n private _deviceList : Device[] = [];\r\n\r\n constructor(private translate: TranslateFirebaseService,\r\n private restService : RestPlantService) {\r\n const data = sessionStorage.getItem(plantStorageKey);\r\n if (data != null) this.plant = JSON.parse(data);\r\n else this.plant = new Plant();\r\n }\r\n\r\n get plant(): Plant {\r\n return this._plant;\r\n }\r\n\r\n set plant(plant: Plant) {\r\n this._plant = plant;\r\n sessionStorage.setItem(plantStorageKey, JSON.stringify(plant));\r\n }\r\n\r\n get plantType() : Tag[]{\r\n const plantTypes = this.translate.getTranslation('enum_plant_type');\r\n if (plantTypes) {\r\n return JSON.parse(plantTypes);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n get deviceList() : Device[]{\r\n return this._deviceList;\r\n }\r\n\r\n set deviceList(list : Device[]) {\r\n this._deviceList = list;\r\n }\r\n\r\n reset(){\r\n this.plant = new Plant();\r\n sessionStorage.removeItem(plantStorageKey);\r\n }\r\n\r\n getPlantById(id: string) {\r\n return this.restService.getPlant(id);\r\n }\r\n\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]}