@n-isi-platform/design-system 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, EventEmitter, Input, Output, Component, SecurityContext, HostListener, ViewChild, ChangeDetectionStrategy, forwardRef } from '@angular/core';
2
+ import { Injectable, inject, EventEmitter, Input, Output, Component, SecurityContext, HostListener, ViewChild, ChangeDetectionStrategy, forwardRef } from '@angular/core';
3
3
  import * as i1 from '@angular/router';
4
- import { BehaviorSubject, throwError, of, interval, firstValueFrom, Subscription, take } from 'rxjs';
4
+ import { Router } from '@angular/router';
5
+ import * as i1$2 from '@ngx-translate/core';
6
+ import { TranslateService, TranslateModule } from '@ngx-translate/core';
7
+ import { BehaviorSubject, throwError, interval, firstValueFrom, Subscription, take } from 'rxjs';
5
8
  import { catchError } from 'rxjs/operators';
6
9
  import * as i1$1 from 'primeng/api';
7
10
  import { PrimeTemplate, ConfirmEventType } from 'primeng/api';
8
- import * as i1$2 from '@ngx-translate/core';
9
- import { TranslateModule } from '@ngx-translate/core';
10
11
  import * as i1$4 from '@angular/forms';
11
12
  import { FormsModule, ReactiveFormsModule, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
12
13
  import * as i1$3 from 'primeng/accordion';
@@ -352,81 +353,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
352
353
  }]
353
354
  }], ctorParameters: () => [] });
354
355
 
355
- /**
356
- * 2024-07-04 Mare:
357
- * pustil samo ta generalni error.interceptor v design-system, prej je bil za backoffice posebej
358
- * * loči se preko this.injector.get('ENVIRONMENT') === 'backoffice' oz. 'public'
359
- */
360
- class ErrorInterceptor {
361
- messageService;
362
- translateService;
363
- localStorageService;
364
- router;
365
- injector;
366
- constructor(messageService, translateService, localStorageService, router, injector) {
367
- this.messageService = messageService;
368
- this.translateService = translateService;
369
- this.localStorageService = localStorageService;
370
- this.router = router;
371
- this.injector = injector;
372
- }
373
- intercept(httpRequest, next) {
374
- return next.handle(httpRequest).pipe(catchError((err) => {
375
- if (err.status === 401) {
376
- this.messageService.add({
377
- key: 'notification',
378
- severity: 'error',
379
- summary: this.translateService?.instant('errors.jwtTokenExpired'),
380
- life: 5000
381
- });
382
- this.localStorageService.removeItem('userData');
383
- // backoffice vs public: preveže na različen url
384
- this.injector.get('ENVIRONMENT') === 'backoffice' ?
385
- this.router.navigateByUrl('/login') : this.router.navigateByUrl('/sl');
386
- }
387
- else if (err.status === 403) {
388
- this.router.navigate([""]);
389
- }
390
- else {
391
- // Seznam end-pointov pri katerih se error ne prikaže.
392
- const whiteListEndPoints = ["preveri-nove-dokumente-v-krpanu", "preveri-nove-zadeve-v-krpanu"];
393
- let displayError = true;
394
- whiteListEndPoints.forEach(item => {
395
- if (err.url?.includes(item)) {
396
- displayError = false;
397
- }
398
- });
399
- if (displayError) {
400
- // Mapping of error codes and their corresponding translation keys
401
- const errorTranslationKeyMapping = {
402
- 'VE-0001': 'errors.timeslotNotAvailable',
403
- 'VE-0002': 'errors.jwtTokenExpired',
404
- 'VE-0003': 'errors.unauthorizedRole',
405
- 'VE-0007': 'errors.applicationNotFound',
406
- };
407
- const translationKey = errorTranslationKeyMapping[err.error] || 'errors.thereWasAnError';
408
- // If error message exists in the response display it, otherwise take error message from error code
409
- const errorMessage = err.error.message ? err.error.message : this.translateService?.instant(translationKey);
410
- // ES-307; 2024-07-02: Mare; dodajanje kode napake uporabniku
411
- const errorCode = err.error?.code ? `${this.translateService.instant('errors.errorCode')} ${err.error.code}` : '';
412
- this.messageService.add({
413
- key: 'notification',
414
- severity: 'error',
415
- summary: `${errorMessage} ${errorCode}`,
416
- life: 5000
417
- });
418
- }
419
- }
420
- return throwError(() => new Error(err.error?.error?.message + '\n' + err.message));
421
- }));
422
- }
423
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ErrorInterceptor, deps: [{ token: i1$1.MessageService }, { token: i1$2.TranslateService }, { token: LocalStorageService }, { token: i1.Router }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
424
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ErrorInterceptor });
425
- }
426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ErrorInterceptor, decorators: [{
427
- type: Injectable
428
- }], ctorParameters: () => [{ type: i1$1.MessageService }, { type: i1$2.TranslateService }, { type: LocalStorageService }, { type: i1.Router }, { type: i0.Injector }] });
429
-
430
356
  class SharedAuthService {
431
357
  router;
432
358
  localStorageService;
@@ -484,35 +410,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
484
410
  }]
485
411
  }], ctorParameters: () => [{ type: i1.Router }, { type: LocalStorageService }] });
486
412
 
487
- class JwtInterceptor {
488
- localStorageService;
489
- sharedAuthService;
490
- constructor(localStorageService, sharedAuthService) {
491
- this.localStorageService = localStorageService;
492
- this.sharedAuthService = sharedAuthService;
413
+ class SharedMessageService {
414
+ messageService;
415
+ translateService;
416
+ constructor(messageService, translateService) {
417
+ this.messageService = messageService;
418
+ this.translateService = translateService;
493
419
  }
494
- intercept(request, next) {
495
- return next.handle(request).pipe(catchError((error) => {
496
- if (error.status === 401) {
497
- this.sharedAuthService.logout();
498
- console.error('Your session has expired. Please log in again.');
499
- return of();
420
+ successMessage(message) {
421
+ this.messageService.add({
422
+ key: 'notification',
423
+ severity: 'success',
424
+ summary: message ? message : this.translateService.instant('common.akcijaUspesna'),
425
+ life: 6000,
426
+ });
427
+ }
428
+ errorMessage(message) {
429
+ this.messageService.add({
430
+ key: 'notification',
431
+ severity: 'error',
432
+ summary: message ? message : this.translateService.instant("errors.thereWasAnError"),
433
+ life: 5000
434
+ });
435
+ }
436
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SharedMessageService, deps: [{ token: i1$1.MessageService }, { token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
437
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SharedMessageService, providedIn: 'root' });
438
+ }
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SharedMessageService, decorators: [{
440
+ type: Injectable,
441
+ args: [{
442
+ providedIn: 'root',
443
+ }]
444
+ }], ctorParameters: () => [{ type: i1$1.MessageService }, { type: i1$2.TranslateService }] });
445
+
446
+ /**
447
+ * 2024-07-04 Mare:
448
+ * pustil samo ta generalni error.interceptor v design-system, prej je bil za backoffice posebej
449
+ * * loči se preko this.injector.get('ENVIRONMENT') === 'backoffice' oz. 'public'
450
+ */
451
+ class ErrorInterceptor {
452
+ sharedAuthService = inject(SharedAuthService);
453
+ sharedMessageService = inject(SharedMessageService);
454
+ translateService = inject(TranslateService);
455
+ router = inject(Router);
456
+ constructor() { }
457
+ intercept(httpRequest, next) {
458
+ return next.handle(httpRequest).pipe(catchError((err) => {
459
+ if (err.status === 401) {
460
+ if (err?.error?.errorCode == 2056) {
461
+ this.sharedMessageService.errorMessage(this.translateService?.instant('errors.deactivatedAccount'));
462
+ this.sharedAuthService.logout();
463
+ }
464
+ else {
465
+ this.sharedMessageService.errorMessage(this.translateService?.instant('errors.jwtTokenExpired'));
466
+ this.sharedAuthService.logout();
467
+ }
500
468
  }
501
- // JWT malformed: če npr. spremeniš jwt token
502
- else if (error.status === 500 && error.error.message && error.error.message.includes('JWT')) {
469
+ else if (err.status === 500 && err.error.message && err.error.message.includes('JWT')) {
470
+ // JWT malformed: če npr. spremeniš jwt token
503
471
  this.sharedAuthService.logout();
504
472
  console.error('Invalid session detected. Please log in again.');
505
- return of();
506
473
  }
507
- return throwError(() => error);
474
+ else if (err.status === 403) {
475
+ this.router.navigate([""]);
476
+ }
477
+ else {
478
+ // Seznam end-pointov pri katerih se error ne prikaže.
479
+ const whiteListEndPoints = ["preveri-nove-dokumente-v-krpanu", "preveri-nove-zadeve-v-krpanu"];
480
+ let displayError = true;
481
+ whiteListEndPoints.forEach(item => {
482
+ if (err.url?.includes(item)) {
483
+ displayError = false;
484
+ }
485
+ });
486
+ if (displayError) {
487
+ // Mapping of error codes and their corresponding translation keys
488
+ const errorTranslationKeyMapping = {
489
+ 'VE-0001': 'errors.timeslotNotAvailable',
490
+ 'VE-0002': 'errors.jwtTokenExpired',
491
+ 'VE-0003': 'errors.unauthorizedRole',
492
+ 'VE-0007': 'errors.applicationNotFound',
493
+ };
494
+ const translationKey = errorTranslationKeyMapping[err.error] || 'errors.thereWasAnError';
495
+ // If error message exists in the response display it, otherwise take error message from error code
496
+ const errorMessage = err.error.message ? err.error.message : this.translateService?.instant(translationKey);
497
+ // ES-307; 2024-07-02: Mare; dodajanje kode napake uporabniku
498
+ const errorCode = err.error?.code ? `${this.translateService.instant('errors.errorCode')} ${err.error.code}` : '';
499
+ this.sharedMessageService.errorMessage(`${errorMessage} ${errorCode}`);
500
+ }
501
+ }
502
+ return throwError(() => new Error(err.error?.error?.message + '\n' + err.message));
508
503
  }));
509
504
  }
510
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: JwtInterceptor, deps: [{ token: LocalStorageService }, { token: SharedAuthService }], target: i0.ɵɵFactoryTarget.Injectable });
511
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: JwtInterceptor });
505
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ErrorInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
506
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ErrorInterceptor });
512
507
  }
513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: JwtInterceptor, decorators: [{
508
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ErrorInterceptor, decorators: [{
514
509
  type: Injectable
515
- }], ctorParameters: () => [{ type: LocalStorageService }, { type: SharedAuthService }] });
510
+ }], ctorParameters: () => [] });
516
511
 
517
512
  var ButtonColor;
518
513
  (function (ButtonColor) {
@@ -2560,39 +2555,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
2560
2555
  type: Output
2561
2556
  }] } });
2562
2557
 
2563
- class SharedMessageService {
2564
- messageService;
2565
- translateService;
2566
- constructor(messageService, translateService) {
2567
- this.messageService = messageService;
2568
- this.translateService = translateService;
2569
- }
2570
- successMessage(message) {
2571
- this.messageService.add({
2572
- key: 'notification',
2573
- severity: 'success',
2574
- summary: message ? message : this.translateService.instant('common.akcijaUspesna'),
2575
- life: 6000,
2576
- });
2577
- }
2578
- errorMessage(message) {
2579
- this.messageService.add({
2580
- key: 'notification',
2581
- severity: 'error',
2582
- summary: message ? message : this.translateService.instant("errors.thereWasAnError"),
2583
- life: 5000
2584
- });
2585
- }
2586
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SharedMessageService, deps: [{ token: i1$1.MessageService }, { token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
2587
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SharedMessageService, providedIn: 'root' });
2588
- }
2589
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SharedMessageService, decorators: [{
2590
- type: Injectable,
2591
- args: [{
2592
- providedIn: 'root',
2593
- }]
2594
- }], ctorParameters: () => [{ type: i1$1.MessageService }, { type: i1$2.TranslateService }] });
2595
-
2596
2558
  class FileUploadComponent {
2597
2559
  config;
2598
2560
  sharedMessageService;
@@ -4052,6 +4014,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
4052
4014
  }]
4053
4015
  }], ctorParameters: () => [{ type: i1$2.TranslateService }] });
4054
4016
 
4017
+ class DateService {
4018
+ constructor() { }
4019
+ formatDate(inputDate) {
4020
+ const date = new Date(inputDate);
4021
+ const year = date.getFullYear();
4022
+ let month = date.getMonth() + 1;
4023
+ let day = date.getDate();
4024
+ // Ensure month and day are two digits
4025
+ month = month < 10 ? '0' + month : month;
4026
+ day = day < 10 ? '0' + day : day;
4027
+ return `${year}-${month}-${day}`;
4028
+ }
4029
+ formatMonth(inputDate) {
4030
+ const date = new Date(inputDate);
4031
+ const year = date.getFullYear();
4032
+ let month = date.getMonth() + 1;
4033
+ let day = date.getDate();
4034
+ // Ensure month and day are two digits
4035
+ month = month < 10 ? '0' + month : month;
4036
+ return `${year}-${month}`;
4037
+ }
4038
+ dateWithoutTimeZone(date) {
4039
+ const tzoffset = date.getTimezoneOffset() * 60000; //offset in milliseconds
4040
+ const withoutTimezone = new Date(date.valueOf() - tzoffset).toISOString();
4041
+ return withoutTimezone;
4042
+ }
4043
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4044
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: DateService, providedIn: 'root' });
4045
+ }
4046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: DateService, decorators: [{
4047
+ type: Injectable,
4048
+ args: [{
4049
+ providedIn: 'root',
4050
+ }]
4051
+ }], ctorParameters: () => [] });
4052
+
4055
4053
  // Utility function to check if an object is empty
4056
4054
  function isEmptyObject(obj) {
4057
4055
  return obj && Object.keys(obj).length === 0 && obj.constructor === Object;
@@ -4173,5 +4171,5 @@ function emailListValidator() {
4173
4171
  * Generated bundle index. Do not edit.
4174
4172
  */
4175
4173
 
4176
- export { AccordionComponent, AppConfigService, AutocompleteComponent, BreadcrumbsComponent, ButtonColor, ButtonComponent, ButtonIconPosition, ButtonLinkComponent, ButtonSize, CacheService, CaptionColor, CardComponent, CheckboxComponent, ConfirmModalComponent, ConfirmModalService, CustomTableComponent, DateInputComponent, DialogColor, DividerComponent, DropdownComponent, DynamicRouteService, ErrorComponent, ErrorInterceptor, ExpandedTable, ExpandedTableComponent, ExportService, FileUploadComponent, FilterHeaderComponent, FilterHeaderService, FooterComponent, GenericTableComponent, GlobalErrorHandler, IconButtonComponent, InputComponent, InputMaskComponent, InputType, IsNotBlank, IsNotDecimal, JwtInterceptor, LoaderComponent, LocalStorageService, MainMenuComponent, ModalComponent, NavbarComponent, NoDataFoundComponent, NoInternetService, PicklistComponent, PositionKey, ProgressBarComponent, SelectionMode, SharedAuthService, SharedMessageService, TableColumnSelectComponent, TableColumnsService, TagColor, TagComponent, TextareaComponent, TinymceEditorComponent, ToastSeverity, ToggleSwitchComponent, TooltipComponent, TooltipHoverEventEnum, TooltipPosition, TranslateSanitizerService, TranslationService, TreeSelectComponent, atLeastOneFieldPresentValidator, cleanMobilePhoneNumber, coordinateValidator, dateAndTimeMismatchValidator, dateMismatchValidator, emailListValidator, findUnavailableDates, formatDate, formatDateTime, formatDateToLocalISOString, getTomorrowDate, isEmpty, isFormInvalid, isMultipleOfFiveValidator, isOnePhoneNumberValidator, localFormatDate, mobilePhoneAreaCodeValidator, transformDateTime };
4174
+ export { AccordionComponent, AppConfigService, AutocompleteComponent, BreadcrumbsComponent, ButtonColor, ButtonComponent, ButtonIconPosition, ButtonLinkComponent, ButtonSize, CacheService, CaptionColor, CardComponent, CheckboxComponent, ConfirmModalComponent, ConfirmModalService, CustomTableComponent, DateInputComponent, DateService, DialogColor, DividerComponent, DropdownComponent, DynamicRouteService, ErrorComponent, ErrorInterceptor, ExpandedTable, ExpandedTableComponent, ExportService, FileUploadComponent, FilterHeaderComponent, FilterHeaderService, FooterComponent, GenericTableComponent, GlobalErrorHandler, IconButtonComponent, InputComponent, InputMaskComponent, InputType, IsNotBlank, IsNotDecimal, LoaderComponent, LocalStorageService, MainMenuComponent, ModalComponent, NavbarComponent, NoDataFoundComponent, NoInternetService, PicklistComponent, PositionKey, ProgressBarComponent, SelectionMode, SharedAuthService, SharedMessageService, TableColumnSelectComponent, TableColumnsService, TagColor, TagComponent, TextareaComponent, TinymceEditorComponent, ToastSeverity, ToggleSwitchComponent, TooltipComponent, TooltipHoverEventEnum, TooltipPosition, TranslateSanitizerService, TranslationService, TreeSelectComponent, atLeastOneFieldPresentValidator, cleanMobilePhoneNumber, coordinateValidator, dateAndTimeMismatchValidator, dateMismatchValidator, emailListValidator, findUnavailableDates, formatDate, formatDateTime, formatDateToLocalISOString, getTomorrowDate, isEmpty, isFormInvalid, isMultipleOfFiveValidator, isOnePhoneNumberValidator, localFormatDate, mobilePhoneAreaCodeValidator, transformDateTime };
4177
4175
  //# sourceMappingURL=n-isi-platform-design-system.mjs.map