@quadrel-enterprise-ui/framework 18.19.1 → 18.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { HTTP_INTERCEPTORS } from '@angular/common/http';
2
2
  import { NgModule } from '@angular/core';
3
- import { BACKEND_ERROR_CODES, QdNotificationsHttpInterceptorService } from './notifications/services/notifications-http-interceptor.service';
3
+ import { BACKEND_ERROR_CODES, WHITELIST_ERROR_CODES, QdNotificationsHttpInterceptorService } from './notifications/services/notifications-http-interceptor.service';
4
4
  import { APP_ENVIRONMENT } from './core/model/app-enviroment.token';
5
5
  import { QdButtonModule } from './button/button.module';
6
6
  import { QdChipModule } from './chips/chips.module';
@@ -83,12 +83,13 @@ const QD_UI_MODULES = [
83
83
  QdTreeModule
84
84
  ];
85
85
  export class QdUiModule {
86
- static forRoot(config, backendErrorCodes = {}) {
86
+ static forRoot(config, backendErrorCodes = {}, whitelistErrorCodes = []) {
87
87
  return {
88
88
  ngModule: QdUiModule,
89
89
  providers: [
90
90
  { provide: APP_ENVIRONMENT, useValue: config },
91
- { provide: BACKEND_ERROR_CODES, useValue: backendErrorCodes }
91
+ { provide: BACKEND_ERROR_CODES, useValue: backendErrorCodes },
92
+ { provide: WHITELIST_ERROR_CODES, useValue: whitelistErrorCodes }
92
93
  ]
93
94
  };
94
95
  }
@@ -229,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
229
230
  ]
230
231
  }]
231
232
  }] });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWQtdWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL3FkLXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFDQUFxQyxFQUN0QyxNQUFNLGlFQUFpRSxDQUFDO0FBR3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xE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WUFDWixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLFlBQVk7d0dBZUQsVUFBVSxhQVRWO1lBQ1QscUJBQXFCO1lBQ3JCO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixZQVRTLGFBQWEsRUF6Q3ZCLGNBQWM7WUFDZCxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxZQUFZO1lBQ1osWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhO1lBQ2IsY0FBYztZQUNkLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLHFCQUFxQjtZQUNyQixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWU7WUFDZixhQUFhO1lBQ2IsZUFBZTtZQUNmLHVCQUF1QjtZQUN2QixlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixZQUFZOzsyRkFlRCxVQUFVO2tCQVp0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDVCxxQkFBcUI7d0JBQ3JCOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSxxQ0FBcUM7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBCQUNLRU5EX0VSUk9SX0NPREVTLFxuICBRZE5vdGlmaWNhdGlvbnNIdHRwSW50ZXJjZXB0b3JTZXJ2aWNlXG59IGZyb20gJy4vbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb25zLWh0dHAtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFFkQXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL2NvcmUvbW9kZWwvYXBwLWVudmlyb21lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFQUF9FTlZJUk9OTUVOVCB9IGZyb20gJy4vY29yZS9tb2RlbC9hcHAtZW52aXJvbWVudC50b2tlbic7XG5cbmltcG9ydCB7IFFkQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBRZENoaXBNb2R1bGUgfSBmcm9tICcuL2NoaXBzL2NoaXBzLm1vZHVsZSc7XG5pbXBvcnQgeyBRZENvbW1lbnRzTW9kdWxlIH0gZnJvbSAnLi9jb21tZW50cy9jb21tZW50cy5tb2R1bGUnO1xuaW1wb3J0IHsgUWRDb250YWN0Q2FyZE1vZHVsZSB9IGZyb20gJy4vY29udGFjdC1jYXJkL2NvbnRhY3QtY2FyZC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRDb250YWluZXJNb2R1bGUgfSBmcm9tICcuL2NvbnRhaW5lci9jb250YWluZXIubW9kdWxlJztcbmltcG9ydCB7IFFkQ29udGVudEdyaWRNb2R1bGUgfSBmcm9tICcuL2NvbnRlbnQtZ3JpZC9jb250ZW50LWdyaWQubW9kdWxlJztcbmltcG9ydCB7IFFkQ29yZU1vZHVsZSB9IGZyb20gJy4vY29yZS9jb3JlLm1vZHVsZSc7XG5pbXBvcnQgeyBRZERpYWxvZ01vZHVsZSB9IGZyb20gJy4vZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xuaW1wb3J0IHsgUWRGaWxlQ29sbGVjdG9yTW9kdWxlIH0gZnJvbSAnLi9maWxlLWNvbGxlY3Rvci9maWxlLWNvbGxlY3Rvci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRGaWx0ZXJNb2R1bGUgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXIubW9kdWxlJztcbmltcG9ydCB7IFFkRm9ybU1vZHVsZSB9IGZyb20gJy4vZm9ybXMvcWQtZm9ybS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRHcmlkTW9kdWxlIH0gZnJvbSAnLi9ncmlkL2dyaWQubW9kdWxlJztcbmltcG9ydCB7IFFkSWNvbk1vZHVsZSB9IGZyb20gJy4vaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBRZEltYWdlTW9kdWxlIH0gZnJvbSAnLi9pbWFnZS9pbWFnZS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRMYXlvdXRNb2R1bGUgfSBmcm9tICcuL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCB7IFFkTGlzdE1vZHVsZSB9IGZyb20gJy4vbGlzdHMvbGlzdC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRNYXN0ZXJMYXlvdXRNb2R1bGUgfSBmcm9tICcuL21hc3Rlci1sYXlvdXQvbWFzdGVyLWxheW91dC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi9tYXN0ZXItbGF5b3V0L3NlcnZpY2UvbWFzdGVyLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IFFkTmF2aWdhdGlvblRpbGVzTW9kdWxlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXRpbGVzL25hdmlnYXRpb24tdGlsZXMubW9kdWxlJztcbmltcG9ydCB7IFFkTm90aWZpY2F0aW9uc01vZHVsZSB9IGZyb20gJy4vbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLm1vZHVsZSc7XG5pbXBvcnQgeyBRZFBhZ2VNb2R1bGUgfSBmcm9tICcuL3BhZ2UvcGFnZS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQYWdlU3RlcHBlck1vZHVsZSB9IGZyb20gJy4vcGFnZS1zdGVwcGVyL3BhZ2Utc3RlcHBlci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQYWdlVGFic01vZHVsZSB9IGZyb20gJy4vcGFnZS10YWJzL3BhZ2UtdGFicy5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQbGFjZUhvbGRlck1vZHVsZSB9IGZyb20gJy4vcGxhY2UtaG9sZGVyL3BsYWNlLWhvbGRlci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJy4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRRdWlja0VkaXRNb2R1bGUgfSBmcm9tICcuL3F1aWNrLWVkaXQvcXVpY2stZWRpdC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRTZWFyY2hNb2R1bGUgfSBmcm9tICcuL3NlYXJjaC9zZWFyY2gubW9kdWxlJztcbmltcG9ydCB7IFFkU2VjdGlvbk1vZHVsZSB9IGZyb20gJy4vc2VjdGlvbi9zZWN0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBRZFNoZWxsTW9kdWxlIH0gZnJvbSAnLi9zaGVsbC9zaGVsbC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRTcGlubmVyTW9kdWxlIH0gZnJvbSAnLi9zcGlubmVyL3NwaW5uZXIubW9kdWxlJztcbmltcG9ydCB7IFFkU3RhdHVzSW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnLi9zdGF0dXMtaW5kaWNhdG9yL3N0YXR1cy1pbmRpY2F0b3IubW9kdWxlJztcbmltcG9ydCB7IFFkU3RlcHBlck1vZHVsZSB9IGZyb20gJy4vbmF2aWdhdGlvbi9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlJztcbmltcG9ydCB7IFFkVGFiQmFyTW9kdWxlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3RhYi1iYXIvdGFiLWJhci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRUYWJsZU1vZHVsZSB9IGZyb20gJy4vdGFibGUvdGFibGUubW9kdWxlJztcbmltcG9ydCB7IFFkVGFic01vZHVsZSB9IGZyb20gJy4vbmF2aWdhdGlvbi90YWJzL3RhYnMubW9kdWxlJztcbmltcG9ydCB7IFFkVGV4dFNlY3Rpb25Nb2R1bGUgfSBmcm9tICcuL3RleHQtc2VjdGlvbi90ZXh0LXNlY3Rpb24ubW9kdWxlJztcbmltcG9ydCB7IFFkVGlsZXNNb2R1bGUgfSBmcm9tICcuL3RpbGVzL3RpbGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBRZFRyZWVNb2R1bGUgfSBmcm9tICcuL3RyZWUvdHJlZS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQYW5lbFNlY3Rpb25Nb2R1bGUgfSBmcm9tICcuL3BhbmVsLXNlY3Rpb24vcGFuZWwtc2VjdGlvbi5tb2R1bGUnO1xuXG5jb25zdCBRRF9VSV9NT0RVTEVTID0gW1xuICBRZEJ1dHRvbk1vZHVsZSxcbiAgUWRDaGlwTW9kdWxlLFxuICBRZENvbW1lbnRzTW9kdWxlLFxuICBRZENvbnRhY3RDYXJkTW9kdWxlLFxuICBRZENvbnRhaW5lck1vZHVsZSxcbiAgUWRDb250ZW50R3JpZE1vZHVsZSxcbiAgUWRDb3JlTW9kdWxlLFxuICBRZERpYWxvZ01vZHVsZSxcbiAgUWRGaWxlQ29sbGVjdG9yTW9kdWxlLFxuICBRZEZpbHRlck1vZHVsZSxcbiAgUWRGb3JtTW9kdWxlLFxuICBRZEdyaWRNb2R1bGUsXG4gIFFkSWNvbk1vZHVsZSxcbiAgUWRJbWFnZU1vZHVsZSxcbiAgUWRMYXlvdXRNb2R1bGUsXG4gIFFkTGlzdE1vZHVsZSxcbiAgUWRNYXN0ZXJMYXlvdXRNb2R1bGUsXG4gIFFkTmF2aWdhdGlvblRpbGVzTW9kdWxlLFxuICBRZE5vdGlmaWNhdGlvbnNNb2R1bGUsXG4gIFFkUGFnZU1vZHVsZSxcbiAgUWRQYWdlU3RlcHBlck1vZHVsZSxcbiAgUWRQYWdlVGFic01vZHVsZSxcbiAgUWRQYW5lbFNlY3Rpb25Nb2R1bGUsXG4gIFFkUGxhY2VIb2xkZXJNb2R1bGUsXG4gIFFkUHJvZ3Jlc3NCYXJNb2R1bGUsXG4gIFFkUXVpY2tFZGl0TW9kdWxlLFxuICBRZFNlYXJjaE1vZHVsZSxcbiAgUWRTZWN0aW9uTW9kdWxlLFxuICBRZFNoZWxsTW9kdWxlLFxuICBRZFNwaW5uZXJNb2R1bGUsXG4gIFFkU3RhdHVzSW5kaWNhdG9yTW9kdWxlLFxuICBRZFN0ZXBwZXJNb2R1bGUsXG4gIFFkVGFiQmFyTW9kdWxlLFxuICBRZFRhYmxlTW9kdWxlLFxuICBRZFRhYnNNb2R1bGUsXG4gIFFkVGV4dFNlY3Rpb25Nb2R1bGUsXG4gIFFkVGlsZXNNb2R1bGUsXG4gIFFkVHJlZU1vZHVsZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1FEX1VJX01PRFVMRVNdLFxuICBleHBvcnRzOiBRRF9VSV9NT0RVTEVTLFxuICBwcm92aWRlcnM6IFtcbiAgICBRZE1hc3RlckxheW91dFNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICB1c2VDbGFzczogUWROb3RpZmljYXRpb25zSHR0cEludGVyY2VwdG9yU2VydmljZSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFFkVWlNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFFkQXBwRW52aXJvbm1lbnQsIGJhY2tlbmRFcnJvckNvZGVzID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFFkVWlNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFFkVWlNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBUFBfRU5WSVJPTk1FTlQsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgICAgeyBwcm92aWRlOiBCQUNLRU5EX0VSUk9SX0NPREVTLCB1c2VWYWx1ZTogYmFja2VuZEVycm9yQ29kZXMgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWQtdWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL3FkLXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixxQ0FBcUMsRUFDdEMsTUFBTSxpRUFBaUUsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFB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ImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQkFDS0VORF9FUlJPUl9DT0RFUyxcbiAgV0hJVEVMSVNUX0VSUk9SX0NPREVTLFxuICBRZE5vdGlmaWNhdGlvbnNIdHRwSW50ZXJjZXB0b3JTZXJ2aWNlXG59IGZyb20gJy4vbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb25zLWh0dHAtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFFkQXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL2NvcmUvbW9kZWwvYXBwLWVudmlyb21lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFQUF9FTlZJUk9OTUVOVCB9IGZyb20gJy4vY29yZS9tb2RlbC9hcHAtZW52aXJvbWVudC50b2tlbic7XG5cbmltcG9ydCB7IFFkQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBRZENoaXBNb2R1bGUgfSBmcm9tICcuL2NoaXBzL2NoaXBzLm1vZHVsZSc7XG5pbXBvcnQgeyBRZENvbW1lbnRzTW9kdWxlIH0gZnJvbSAnLi9jb21tZW50cy9jb21tZW50cy5tb2R1bGUnO1xuaW1wb3J0IHsgUWRDb250YWN0Q2FyZE1vZHVsZSB9IGZyb20gJy4vY29udGFjdC1jYXJkL2NvbnRhY3QtY2FyZC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRDb250YWluZXJNb2R1bGUgfSBmcm9tICcuL2NvbnRhaW5lci9jb250YWluZXIubW9kdWxlJztcbmltcG9ydCB7IFFkQ29udGVudEdyaWRNb2R1bGUgfSBmcm9tICcuL2NvbnRlbnQtZ3JpZC9jb250ZW50LWdyaWQubW9kdWxlJztcbmltcG9ydCB7IFFkQ29yZU1vZHVsZSB9IGZyb20gJy4vY29yZS9jb3JlLm1vZHVsZSc7XG5pbXBvcnQgeyBRZERpYWxvZ01vZHVsZSB9IGZyb20gJy4vZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xuaW1wb3J0IHsgUWRGaWxlQ29sbGVjdG9yTW9kdWxlIH0gZnJvbSAnLi9maWxlLWNvbGxlY3Rvci9maWxlLWNvbGxlY3Rvci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRGaWx0ZXJNb2R1bGUgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXIubW9kdWxlJztcbmltcG9ydCB7IFFkRm9ybU1vZHVsZSB9IGZyb20gJy4vZm9ybXMvcWQtZm9ybS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRHcmlkTW9kdWxlIH0gZnJvbSAnLi9ncmlkL2dyaWQubW9kdWxlJztcbmltcG9ydCB7IFFkSWNvbk1vZHVsZSB9IGZyb20gJy4vaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBRZEltYWdlTW9kdWxlIH0gZnJvbSAnLi9pbWFnZS9pbWFnZS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRMYXlvdXRNb2R1bGUgfSBmcm9tICcuL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCB7IFFkTGlzdE1vZHVsZSB9IGZyb20gJy4vbGlzdHMvbGlzdC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRNYXN0ZXJMYXlvdXRNb2R1bGUgfSBmcm9tICcuL21hc3Rlci1sYXlvdXQvbWFzdGVyLWxheW91dC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi9tYXN0ZXItbGF5b3V0L3NlcnZpY2UvbWFzdGVyLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IFFkTmF2aWdhdGlvblRpbGVzTW9kdWxlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXRpbGVzL25hdmlnYXRpb24tdGlsZXMubW9kdWxlJztcbmltcG9ydCB7IFFkTm90aWZpY2F0aW9uc01vZHVsZSB9IGZyb20gJy4vbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLm1vZHVsZSc7XG5pbXBvcnQgeyBRZFBhZ2VNb2R1bGUgfSBmcm9tICcuL3BhZ2UvcGFnZS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQYWdlU3RlcHBlck1vZHVsZSB9IGZyb20gJy4vcGFnZS1zdGVwcGVyL3BhZ2Utc3RlcHBlci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQYWdlVGFic01vZHVsZSB9IGZyb20gJy4vcGFnZS10YWJzL3BhZ2UtdGFicy5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQbGFjZUhvbGRlck1vZHVsZSB9IGZyb20gJy4vcGxhY2UtaG9sZGVyL3BsYWNlLWhvbGRlci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJy4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRRdWlja0VkaXRNb2R1bGUgfSBmcm9tICcuL3F1aWNrLWVkaXQvcXVpY2stZWRpdC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRTZWFyY2hNb2R1bGUgfSBmcm9tICcuL3NlYXJjaC9zZWFyY2gubW9kdWxlJztcbmltcG9ydCB7IFFkU2VjdGlvbk1vZHVsZSB9IGZyb20gJy4vc2VjdGlvbi9zZWN0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBRZFNoZWxsTW9kdWxlIH0gZnJvbSAnLi9zaGVsbC9zaGVsbC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRTcGlubmVyTW9kdWxlIH0gZnJvbSAnLi9zcGlubmVyL3NwaW5uZXIubW9kdWxlJztcbmltcG9ydCB7IFFkU3RhdHVzSW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnLi9zdGF0dXMtaW5kaWNhdG9yL3N0YXR1cy1pbmRpY2F0b3IubW9kdWxlJztcbmltcG9ydCB7IFFkU3RlcHBlck1vZHVsZSB9IGZyb20gJy4vbmF2aWdhdGlvbi9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlJztcbmltcG9ydCB7IFFkVGFiQmFyTW9kdWxlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3RhYi1iYXIvdGFiLWJhci5tb2R1bGUnO1xuaW1wb3J0IHsgUWRUYWJsZU1vZHVsZSB9IGZyb20gJy4vdGFibGUvdGFibGUubW9kdWxlJztcbmltcG9ydCB7IFFkVGFic01vZHVsZSB9IGZyb20gJy4vbmF2aWdhdGlvbi90YWJzL3RhYnMubW9kdWxlJztcbmltcG9ydCB7IFFkVGV4dFNlY3Rpb25Nb2R1bGUgfSBmcm9tICcuL3RleHQtc2VjdGlvbi90ZXh0LXNlY3Rpb24ubW9kdWxlJztcbmltcG9ydCB7IFFkVGlsZXNNb2R1bGUgfSBmcm9tICcuL3RpbGVzL3RpbGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBRZFRyZWVNb2R1bGUgfSBmcm9tICcuL3RyZWUvdHJlZS5tb2R1bGUnO1xuaW1wb3J0IHsgUWRQYW5lbFNlY3Rpb25Nb2R1bGUgfSBmcm9tICcuL3BhbmVsLXNlY3Rpb24vcGFuZWwtc2VjdGlvbi5tb2R1bGUnO1xuXG5jb25zdCBRRF9VSV9NT0RVTEVTID0gW1xuICBRZEJ1dHRvbk1vZHVsZSxcbiAgUWRDaGlwTW9kdWxlLFxuICBRZENvbW1lbnRzTW9kdWxlLFxuICBRZENvbnRhY3RDYXJkTW9kdWxlLFxuICBRZENvbnRhaW5lck1vZHVsZSxcbiAgUWRDb250ZW50R3JpZE1vZHVsZSxcbiAgUWRDb3JlTW9kdWxlLFxuICBRZERpYWxvZ01vZHVsZSxcbiAgUWRGaWxlQ29sbGVjdG9yTW9kdWxlLFxuICBRZEZpbHRlck1vZHVsZSxcbiAgUWRGb3JtTW9kdWxlLFxuICBRZEdyaWRNb2R1bGUsXG4gIFFkSWNvbk1vZHVsZSxcbiAgUWRJbWFnZU1vZHVsZSxcbiAgUWRMYXlvdXRNb2R1bGUsXG4gIFFkTGlzdE1vZHVsZSxcbiAgUWRNYXN0ZXJMYXlvdXRNb2R1bGUsXG4gIFFkTmF2aWdhdGlvblRpbGVzTW9kdWxlLFxuICBRZE5vdGlmaWNhdGlvbnNNb2R1bGUsXG4gIFFkUGFnZU1vZHVsZSxcbiAgUWRQYWdlU3RlcHBlck1vZHVsZSxcbiAgUWRQYWdlVGFic01vZHVsZSxcbiAgUWRQYW5lbFNlY3Rpb25Nb2R1bGUsXG4gIFFkUGxhY2VIb2xkZXJNb2R1bGUsXG4gIFFkUHJvZ3Jlc3NCYXJNb2R1bGUsXG4gIFFkUXVpY2tFZGl0TW9kdWxlLFxuICBRZFNlYXJjaE1vZHVsZSxcbiAgUWRTZWN0aW9uTW9kdWxlLFxuICBRZFNoZWxsTW9kdWxlLFxuICBRZFNwaW5uZXJNb2R1bGUsXG4gIFFkU3RhdHVzSW5kaWNhdG9yTW9kdWxlLFxuICBRZFN0ZXBwZXJNb2R1bGUsXG4gIFFkVGFiQmFyTW9kdWxlLFxuICBRZFRhYmxlTW9kdWxlLFxuICBRZFRhYnNNb2R1bGUsXG4gIFFkVGV4dFNlY3Rpb25Nb2R1bGUsXG4gIFFkVGlsZXNNb2R1bGUsXG4gIFFkVHJlZU1vZHVsZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1FEX1VJX01PRFVMRVNdLFxuICBleHBvcnRzOiBRRF9VSV9NT0RVTEVTLFxuICBwcm92aWRlcnM6IFtcbiAgICBRZE1hc3RlckxheW91dFNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICB1c2VDbGFzczogUWROb3RpZmljYXRpb25zSHR0cEludGVyY2VwdG9yU2VydmljZSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFFkVWlNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBjb25maWc6IFFkQXBwRW52aXJvbm1lbnQsXG4gICAgYmFja2VuZEVycm9yQ29kZXMgPSB7fSxcbiAgICB3aGl0ZWxpc3RFcnJvckNvZGVzOiBudW1iZXJbXSA9IFtdXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UWRVaU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUWRVaU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEFQUF9FTlZJUk9OTUVOVCwgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICB7IHByb3ZpZGU6IEJBQ0tFTkRfRVJST1JfQ09ERVMsIHVzZVZhbHVlOiBiYWNrZW5kRXJyb3JDb2RlcyB9LFxuICAgICAgICB7IHByb3ZpZGU6IFdISVRFTElTVF9FUlJPUl9DT0RFUywgdXNlVmFsdWU6IHdoaXRlbGlzdEVycm9yQ29kZXMgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1700,27 +1700,54 @@ const APP_ENVIRONMENT = new InjectionToken('APP_ENVIRONMENT');
1700
1700
 
1701
1701
  // @ts-strict-ignore
1702
1702
  const BACKEND_ERROR_CODES = new InjectionToken('BACKEND_ERROR_CODES');
1703
+ const WHITELIST_ERROR_CODES = new InjectionToken('WHITELIST_ERROR_CODES');
1703
1704
  /**
1704
1705
  * The QdNotificationsHttpInterceptorService is an Angular HTTP interceptor that captures error responses from HTTP requests and generates notifications for backend errors. This Service not only intercepts error responses, but it also handles specific error codes and translates them into appropriate error messages for display.
1705
1706
  */
1706
1707
  class QdNotificationsHttpInterceptorService {
1707
1708
  appEnvironment;
1708
1709
  backendErrorCodes;
1710
+ whitelistErrorCodes;
1709
1711
  notificationService;
1710
- constructor(appEnvironment, backendErrorCodes, notificationService) {
1712
+ blacklistErrorCodes;
1713
+ constructor(appEnvironment, backendErrorCodes, whitelistErrorCodes, notificationService) {
1711
1714
  this.appEnvironment = appEnvironment;
1712
1715
  this.backendErrorCodes = backendErrorCodes;
1716
+ this.whitelistErrorCodes = whitelistErrorCodes;
1713
1717
  this.notificationService = notificationService;
1714
1718
  this.backendErrorCodes = this.backendErrorCodes || {};
1719
+ this.whitelistErrorCodes = this.whitelistErrorCodes || [];
1720
+ this.blacklistErrorCodes = [
1721
+ // 401, 402, 403
1722
+ HttpStatusCode.Unauthorized,
1723
+ HttpStatusCode.PaymentRequired,
1724
+ HttpStatusCode.Forbidden,
1725
+ // All 5xx codes
1726
+ HttpStatusCode.InternalServerError,
1727
+ HttpStatusCode.NotImplemented,
1728
+ HttpStatusCode.BadGateway,
1729
+ HttpStatusCode.ServiceUnavailable,
1730
+ HttpStatusCode.GatewayTimeout,
1731
+ HttpStatusCode.HttpVersionNotSupported,
1732
+ HttpStatusCode.VariantAlsoNegotiates,
1733
+ HttpStatusCode.InsufficientStorage,
1734
+ HttpStatusCode.LoopDetected,
1735
+ HttpStatusCode.NotExtended,
1736
+ HttpStatusCode.NetworkAuthenticationRequired
1737
+ ];
1715
1738
  }
1716
1739
  intercept(request, next) {
1717
1740
  if (this.appEnvironment.disableBackendNotifications)
1718
1741
  return next.handle(request);
1719
1742
  return next.handle(request).pipe(catchError((error) => {
1720
- let i18n = this.getErrorTranslationKeyForHttpStatus(error.status);
1721
- if (error.error?.errorCode && error.error.errorCode in this.backendErrorCodes)
1722
- i18n = 'ERROR.' + error.error.errorCode;
1723
- this.notificationService.add('qdPanel', { type: 'critical', i18n, showAsSnackbar: true });
1743
+ const isBlacklisted = this.blacklistErrorCodes.includes(error.status);
1744
+ const shouldShowNotification = isBlacklisted || !this.whitelistErrorCodes.includes(error.status);
1745
+ if (shouldShowNotification) {
1746
+ let i18n = this.getErrorTranslationKeyForHttpStatus(error.status);
1747
+ if (error.error?.errorCode && error.error.errorCode in this.backendErrorCodes)
1748
+ i18n = 'ERROR.' + error.error.errorCode;
1749
+ this.notificationService.add('qdPanel', { type: 'critical', i18n, showAsSnackbar: true });
1750
+ }
1724
1751
  return throwError(() => error);
1725
1752
  }));
1726
1753
  }
@@ -1747,7 +1774,7 @@ class QdNotificationsHttpInterceptorService {
1747
1774
  return 'UnknownError';
1748
1775
  }
1749
1776
  }
1750
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdNotificationsHttpInterceptorService, deps: [{ token: APP_ENVIRONMENT, optional: true }, { token: BACKEND_ERROR_CODES, optional: true }, { token: QdNotificationsService }], target: i0.ɵɵFactoryTarget.Injectable });
1777
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdNotificationsHttpInterceptorService, deps: [{ token: APP_ENVIRONMENT, optional: true }, { token: BACKEND_ERROR_CODES, optional: true }, { token: WHITELIST_ERROR_CODES, optional: true }, { token: QdNotificationsService }], target: i0.ɵɵFactoryTarget.Injectable });
1751
1778
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdNotificationsHttpInterceptorService, providedIn: 'root' });
1752
1779
  }
1753
1780
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdNotificationsHttpInterceptorService, decorators: [{
@@ -1765,6 +1792,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1765
1792
  }, {
1766
1793
  type: Inject,
1767
1794
  args: [BACKEND_ERROR_CODES]
1795
+ }] }, { type: undefined, decorators: [{
1796
+ type: Optional
1797
+ }, {
1798
+ type: Inject,
1799
+ args: [WHITELIST_ERROR_CODES]
1768
1800
  }] }, { type: QdNotificationsService }] });
1769
1801
 
1770
1802
  // @ts-strict-ignore
@@ -15600,9 +15632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
15600
15632
 
15601
15633
  // @ts-strict-ignore
15602
15634
  class QdSwitchComponent {
15603
- // TODO: Refactor FormInput for better internal interface
15604
15635
  inputData;
15605
- value;
15606
15636
  id;
15607
15637
  disabled = false;
15608
15638
  testId = 'switch';
@@ -15623,60 +15653,19 @@ class QdSwitchComponent {
15623
15653
  get labelPosition() {
15624
15654
  return this.inputData.labelPosition || 'right';
15625
15655
  }
15626
- _onChange = () => { };
15627
- _onTouch = () => { };
15628
15656
  ngOnInit() {
15629
15657
  if (!this.id) {
15630
15658
  this.id = v4();
15631
15659
  }
15632
15660
  }
15633
- registerOnChange(fn) {
15634
- this._onChange = fn;
15635
- this._onChange(this.value);
15636
- }
15637
- registerOnTouched(fn) {
15638
- this._onTouch = fn;
15639
- }
15640
- setDisabledState(state) {
15641
- this.disabled = state;
15642
- }
15643
- writeValue(value) {
15644
- this.value = value;
15645
- this.valueChange.emit(this.value);
15646
- }
15647
- handleClick(value, event) {
15648
- event.stopPropagation();
15649
- if (this.disabled) {
15650
- return;
15651
- }
15652
- const _value = value !== this.value ? value : null;
15653
- this._onChange(_value);
15654
- this._onTouch(_value);
15655
- this.value = _value;
15656
- this.valueChange.emit(this.value);
15657
- }
15658
15661
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15659
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdSwitchComponent, selector: "qd-switch", inputs: { inputData: "inputData", value: "value", id: "id", disabled: "disabled", testId: ["data-test-id", "testId"] }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.qd-switch-active": "this.active", "class.qd-switch-disabled": "this.isDisabled" }, classAttribute: "qd-switch" }, providers: [
15660
- {
15661
- provide: NG_VALUE_ACCESSOR,
15662
- useExisting: QdSwitchComponent,
15663
- multi: true
15664
- }
15665
- ], ngImport: i0, template: "<label [for]=\"toggleId\">\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'left'\" [attr.data-test-id]=\"testId + '-label'\">\n {{ label | translate }}\n </div>\n <div class=\"switch-toggle-bar\">\n <input\n class=\"switch-toggle-input\"\n name=\"switch-toggle\"\n type=\"checkbox\"\n [id]=\"toggleId\"\n (click)=\"handleClick(value, $event)\"\n [value]=\"value\"\n [disabled]=\"isDisabled\"\n [attr.data-test-id]=\"testId + '-input'\"\n />\n <div class=\"switch-toggle-button\"></div>\n </div>\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'right'\" [attr.data-test-id]=\"testId + '-content'\">\n {{ label | translate }}\n </div>\n</label>\n", styles: [".qd-switch label{display:flex;width:max-content;align-items:center}.qd-switch label:hover{cursor:pointer}.qd-switch .switch-toggle-bar{position:relative;width:2.5rem;height:1.25rem;border-radius:1.25rem;background-color:#e5e5e5}.qd-switch .switch-toggle-bar input{appearance:none}.qd-switch .switch-toggle-bar .switch-toggle-button{position:absolute;top:0;width:1.25rem;height:1.25rem;border-radius:1.25rem;background-color:#b4b4b4;transition:all 80ms linear;transition-property:transform}.qd-switch .switch-content{margin-right:.75rem;margin-left:.75rem;color:#171717;font-size:.875rem;font-weight:400;line-height:.875rem}.qd-switch:hover .switch-toggle-bar{background-color:#d5d5d5}.qd-switch:hover .switch-toggle-bar .switch-toggle-button{background-color:#979797}.qd-switch.qd-switch-active .switch-toggle-bar{background-color:#c3e8cd}.qd-switch.qd-switch-active .switch-toggle-bar .switch-toggle-button{background-color:#00813a;transform:translate(1.25rem)}.qd-switch.qd-switch-active:hover .switch-toggle-bar .switch-toggle-button{background-color:#006226}.qd-switch.qd-switch-disabled label:hover{cursor:initial}.qd-switch.qd-switch-disabled .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}.qd-switch.qd-switch-disabled .switch-content{color:#757575}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
15662
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdSwitchComponent, selector: "qd-switch", inputs: { inputData: "inputData", id: "id", disabled: "disabled", testId: ["data-test-id", "testId"] }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.qd-switch-active": "this.active", "class.qd-switch-disabled": "this.isDisabled" }, classAttribute: "qd-switch" }, ngImport: i0, template: "<label [for]=\"toggleId\">\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'left'\" [attr.data-test-id]=\"testId + '-label'\">\n {{ label | translate }}\n </div>\n <div class=\"switch-toggle-bar\">\n <div class=\"switch-toggle-button\"></div>\n </div>\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'right'\" [attr.data-test-id]=\"testId + '-content'\">\n {{ label | translate }}\n </div>\n</label>\n", styles: [".qd-switch label{display:flex;width:max-content;align-items:center}.qd-switch label:hover{cursor:pointer}.qd-switch .switch-toggle-bar{position:relative;width:2.5rem;height:1.25rem;border-radius:1.25rem;background-color:#e5e5e5}.qd-switch .switch-toggle-bar .switch-toggle-button{position:absolute;top:0;width:1.25rem;height:1.25rem;border-radius:1.25rem;background-color:#b4b4b4;transition:all 80ms linear;transition-property:transform}.qd-switch .switch-content{margin-right:.75rem;margin-left:.75rem;color:#171717;font-size:.875rem;font-weight:400;line-height:.875rem}.qd-switch:hover .switch-toggle-bar{background-color:#d5d5d5}.qd-switch:hover .switch-toggle-bar .switch-toggle-button{background-color:#979797}.qd-switch.qd-switch-active .switch-toggle-bar{background-color:#c3e8cd}.qd-switch.qd-switch-active .switch-toggle-bar .switch-toggle-button{background-color:#00813a;transform:translate(1.25rem)}.qd-switch.qd-switch-active:hover .switch-toggle-bar .switch-toggle-button{background-color:#006226}.qd-switch.qd-switch-disabled label:hover{cursor:initial}.qd-switch.qd-switch-disabled .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}.qd-switch.qd-switch-disabled .switch-content{color:#757575}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
15666
15663
  }
15667
15664
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchComponent, decorators: [{
15668
15665
  type: Component,
15669
- args: [{ selector: 'qd-switch', encapsulation: ViewEncapsulation.None, providers: [
15670
- {
15671
- provide: NG_VALUE_ACCESSOR,
15672
- useExisting: QdSwitchComponent,
15673
- multi: true
15674
- }
15675
- ], host: { class: 'qd-switch' }, template: "<label [for]=\"toggleId\">\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'left'\" [attr.data-test-id]=\"testId + '-label'\">\n {{ label | translate }}\n </div>\n <div class=\"switch-toggle-bar\">\n <input\n class=\"switch-toggle-input\"\n name=\"switch-toggle\"\n type=\"checkbox\"\n [id]=\"toggleId\"\n (click)=\"handleClick(value, $event)\"\n [value]=\"value\"\n [disabled]=\"isDisabled\"\n [attr.data-test-id]=\"testId + '-input'\"\n />\n <div class=\"switch-toggle-button\"></div>\n </div>\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'right'\" [attr.data-test-id]=\"testId + '-content'\">\n {{ label | translate }}\n </div>\n</label>\n", styles: [".qd-switch label{display:flex;width:max-content;align-items:center}.qd-switch label:hover{cursor:pointer}.qd-switch .switch-toggle-bar{position:relative;width:2.5rem;height:1.25rem;border-radius:1.25rem;background-color:#e5e5e5}.qd-switch .switch-toggle-bar input{appearance:none}.qd-switch .switch-toggle-bar .switch-toggle-button{position:absolute;top:0;width:1.25rem;height:1.25rem;border-radius:1.25rem;background-color:#b4b4b4;transition:all 80ms linear;transition-property:transform}.qd-switch .switch-content{margin-right:.75rem;margin-left:.75rem;color:#171717;font-size:.875rem;font-weight:400;line-height:.875rem}.qd-switch:hover .switch-toggle-bar{background-color:#d5d5d5}.qd-switch:hover .switch-toggle-bar .switch-toggle-button{background-color:#979797}.qd-switch.qd-switch-active .switch-toggle-bar{background-color:#c3e8cd}.qd-switch.qd-switch-active .switch-toggle-bar .switch-toggle-button{background-color:#00813a;transform:translate(1.25rem)}.qd-switch.qd-switch-active:hover .switch-toggle-bar .switch-toggle-button{background-color:#006226}.qd-switch.qd-switch-disabled label:hover{cursor:initial}.qd-switch.qd-switch-disabled .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}.qd-switch.qd-switch-disabled .switch-content{color:#757575}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}\n"] }]
15666
+ args: [{ selector: 'qd-switch', encapsulation: ViewEncapsulation.None, host: { class: 'qd-switch' }, template: "<label [for]=\"toggleId\">\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'left'\" [attr.data-test-id]=\"testId + '-label'\">\n {{ label | translate }}\n </div>\n <div class=\"switch-toggle-bar\">\n <div class=\"switch-toggle-button\"></div>\n </div>\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'right'\" [attr.data-test-id]=\"testId + '-content'\">\n {{ label | translate }}\n </div>\n</label>\n", styles: [".qd-switch label{display:flex;width:max-content;align-items:center}.qd-switch label:hover{cursor:pointer}.qd-switch .switch-toggle-bar{position:relative;width:2.5rem;height:1.25rem;border-radius:1.25rem;background-color:#e5e5e5}.qd-switch .switch-toggle-bar .switch-toggle-button{position:absolute;top:0;width:1.25rem;height:1.25rem;border-radius:1.25rem;background-color:#b4b4b4;transition:all 80ms linear;transition-property:transform}.qd-switch .switch-content{margin-right:.75rem;margin-left:.75rem;color:#171717;font-size:.875rem;font-weight:400;line-height:.875rem}.qd-switch:hover .switch-toggle-bar{background-color:#d5d5d5}.qd-switch:hover .switch-toggle-bar .switch-toggle-button{background-color:#979797}.qd-switch.qd-switch-active .switch-toggle-bar{background-color:#c3e8cd}.qd-switch.qd-switch-active .switch-toggle-bar .switch-toggle-button{background-color:#00813a;transform:translate(1.25rem)}.qd-switch.qd-switch-active:hover .switch-toggle-bar .switch-toggle-button{background-color:#006226}.qd-switch.qd-switch-disabled label:hover{cursor:initial}.qd-switch.qd-switch-disabled .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}.qd-switch.qd-switch-disabled .switch-content{color:#757575}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}\n"] }]
15676
15667
  }], propDecorators: { inputData: [{
15677
15668
  type: Input
15678
- }], value: [{
15679
- type: Input
15680
15669
  }], id: [{
15681
15670
  type: Input
15682
15671
  }], disabled: [{
@@ -15966,7 +15955,7 @@ class QdSwitchesComponent {
15966
15955
  },
15967
15956
  QdSwitchesService,
15968
15957
  QdFormsActionEmitterService
15969
- ], usesOnChanges: true, ngImport: i0, template: "<qd-form-label\n [label]=\"label\"\n [readonly]=\"readonly\"\n [viewonly]=\"viewonly\"\n [control]=\"control\"\n [tooltip]=\"config?.tooltip\"\n [data-test-id]=\"testId\"\n></qd-form-label>\n\n<div class=\"qd-switches__input-section\" *ngIf=\"!readonly && !viewonly\">\n <div class=\"qd-switches__switch-section\">\n <qd-switch\n *ngFor=\"let input of switchesInputs\"\n [inputData]=\"input\"\n [(value)]=\"switchesValues[input.index]\"\n (click)=\"handleClick(input)\"\n [data-test-id]=\"testId + '-switch-' + input.index\"\n [disabled]=\"disabled\"\n ></qd-switch>\n </div>\n</div>\n\n<qd-form-hint\n *ngIf=\"!readonly && !viewonly\"\n [hint]=\"hasHint ? config.hint.i18n : ''\"\n [control]=\"control\"\n [hasError]=\"hasError\"\n [hintAction]=\"hintAction\"\n [data-test-id]=\"testId\"\n></qd-form-hint>\n\n<qd-form-readonly\n *ngIf=\"readonly\"\n [values]=\"selectedValuesTranslated\"\n [readonlyAction]=\"readonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-readonly>\n\n<qd-form-viewonly\n *ngIf=\"viewonly\"\n [values]=\"selectedValuesTranslated\"\n [viewonlyAction]=\"viewonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-viewonly>\n", styles: [".qd-switches{display:block;flex-direction:column;margin-bottom:.75rem}.qd-switches .qd-switches__input-section{display:flex;flex-direction:column;margin-bottom:.375rem}.qd-switches .qd-switches__switch-section{display:flex;flex-direction:row}.qd-switches .qd-switches__switch-section .switch-toggle-bar{margin-right:.375rem}.qd-switches .qd-switches__switch-section .switch-content{margin:0 1rem 0 0}.qd-switches qd-switch:last-child .switch-content{margin-right:0}.qd-switches.qd-switches-vertical .qd-switches__switch-section{display:flex;flex-direction:column}.qd-switches.qd-switches-vertical .qd-switches__switch-section .qd-switch:not(:last-child){margin-bottom:.5rem}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section{align-items:center}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section .qd-switch{display:flex;height:2.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdFormHintComponent, selector: "qd-form-hint", inputs: ["hint", "control", "hasError", "hintAction", "data-test-id"] }, { kind: "component", type: QdFormLabelComponent, selector: "qd-form-label", inputs: ["label", "isDisabled", "readonly", "viewonly", "control", "tooltip", "data-test-id"] }, { kind: "component", type: QdFormReadonlyComponent, selector: "qd-form-readonly", inputs: ["values", "readonlyAction", "data-test-id"] }, { kind: "component", type: QdFormViewonlyComponent, selector: "qd-form-viewonly", inputs: ["values", "viewonlyAction", "data-test-id"] }, { kind: "component", type: QdSwitchComponent, selector: "qd-switch", inputs: ["inputData", "value", "id", "disabled", "data-test-id"], outputs: ["valueChange"] }], encapsulation: i0.ViewEncapsulation.None });
15958
+ ], usesOnChanges: true, ngImport: i0, template: "<qd-form-label\n [label]=\"label\"\n [readonly]=\"readonly\"\n [viewonly]=\"viewonly\"\n [control]=\"control\"\n [tooltip]=\"config?.tooltip\"\n [data-test-id]=\"testId\"\n></qd-form-label>\n\n<div class=\"qd-switches__input-section\" *ngIf=\"!readonly && !viewonly\">\n <div class=\"qd-switches__switch-section\">\n <qd-switch\n *ngFor=\"let input of switchesInputs\"\n [inputData]=\"input\"\n (click)=\"handleClick(input)\"\n [data-test-id]=\"testId + '-switch-' + input.index\"\n [disabled]=\"disabled\"\n ></qd-switch>\n </div>\n</div>\n\n<qd-form-hint\n *ngIf=\"!readonly && !viewonly\"\n [hint]=\"hasHint ? config.hint.i18n : ''\"\n [control]=\"control\"\n [hasError]=\"hasError\"\n [hintAction]=\"hintAction\"\n [data-test-id]=\"testId\"\n></qd-form-hint>\n\n<qd-form-readonly\n *ngIf=\"readonly\"\n [values]=\"selectedValuesTranslated\"\n [readonlyAction]=\"readonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-readonly>\n\n<qd-form-viewonly\n *ngIf=\"viewonly\"\n [values]=\"selectedValuesTranslated\"\n [viewonlyAction]=\"viewonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-viewonly>\n", styles: [".qd-switches{display:block;flex-direction:column;margin-bottom:.75rem}.qd-switches .qd-switches__input-section{display:flex;flex-direction:column;margin-bottom:.375rem}.qd-switches .qd-switches__switch-section{display:flex;flex-direction:row}.qd-switches .qd-switches__switch-section .switch-toggle-bar{margin-right:.375rem}.qd-switches .qd-switches__switch-section .switch-content{margin:0 1rem 0 0}.qd-switches qd-switch:last-child .switch-content{margin-right:0}.qd-switches.qd-switches-vertical .qd-switches__switch-section{display:flex;flex-direction:column}.qd-switches.qd-switches-vertical .qd-switches__switch-section .qd-switch:not(:last-child){margin-bottom:.5rem}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section{align-items:center}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section .qd-switch{display:flex;height:2.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdFormHintComponent, selector: "qd-form-hint", inputs: ["hint", "control", "hasError", "hintAction", "data-test-id"] }, { kind: "component", type: QdFormLabelComponent, selector: "qd-form-label", inputs: ["label", "isDisabled", "readonly", "viewonly", "control", "tooltip", "data-test-id"] }, { kind: "component", type: QdFormReadonlyComponent, selector: "qd-form-readonly", inputs: ["values", "readonlyAction", "data-test-id"] }, { kind: "component", type: QdFormViewonlyComponent, selector: "qd-form-viewonly", inputs: ["values", "viewonlyAction", "data-test-id"] }, { kind: "component", type: QdSwitchComponent, selector: "qd-switch", inputs: ["inputData", "id", "disabled", "data-test-id"], outputs: ["valueChange"] }], encapsulation: i0.ViewEncapsulation.None });
15970
15959
  }
15971
15960
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchesComponent, decorators: [{
15972
15961
  type: Component,
@@ -15978,7 +15967,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
15978
15967
  },
15979
15968
  QdSwitchesService,
15980
15969
  QdFormsActionEmitterService
15981
- ], encapsulation: ViewEncapsulation.None, host: { class: 'qd-switches' }, template: "<qd-form-label\n [label]=\"label\"\n [readonly]=\"readonly\"\n [viewonly]=\"viewonly\"\n [control]=\"control\"\n [tooltip]=\"config?.tooltip\"\n [data-test-id]=\"testId\"\n></qd-form-label>\n\n<div class=\"qd-switches__input-section\" *ngIf=\"!readonly && !viewonly\">\n <div class=\"qd-switches__switch-section\">\n <qd-switch\n *ngFor=\"let input of switchesInputs\"\n [inputData]=\"input\"\n [(value)]=\"switchesValues[input.index]\"\n (click)=\"handleClick(input)\"\n [data-test-id]=\"testId + '-switch-' + input.index\"\n [disabled]=\"disabled\"\n ></qd-switch>\n </div>\n</div>\n\n<qd-form-hint\n *ngIf=\"!readonly && !viewonly\"\n [hint]=\"hasHint ? config.hint.i18n : ''\"\n [control]=\"control\"\n [hasError]=\"hasError\"\n [hintAction]=\"hintAction\"\n [data-test-id]=\"testId\"\n></qd-form-hint>\n\n<qd-form-readonly\n *ngIf=\"readonly\"\n [values]=\"selectedValuesTranslated\"\n [readonlyAction]=\"readonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-readonly>\n\n<qd-form-viewonly\n *ngIf=\"viewonly\"\n [values]=\"selectedValuesTranslated\"\n [viewonlyAction]=\"viewonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-viewonly>\n", styles: [".qd-switches{display:block;flex-direction:column;margin-bottom:.75rem}.qd-switches .qd-switches__input-section{display:flex;flex-direction:column;margin-bottom:.375rem}.qd-switches .qd-switches__switch-section{display:flex;flex-direction:row}.qd-switches .qd-switches__switch-section .switch-toggle-bar{margin-right:.375rem}.qd-switches .qd-switches__switch-section .switch-content{margin:0 1rem 0 0}.qd-switches qd-switch:last-child .switch-content{margin-right:0}.qd-switches.qd-switches-vertical .qd-switches__switch-section{display:flex;flex-direction:column}.qd-switches.qd-switches-vertical .qd-switches__switch-section .qd-switch:not(:last-child){margin-bottom:.5rem}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section{align-items:center}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section .qd-switch{display:flex;height:2.25rem}\n"] }]
15970
+ ], encapsulation: ViewEncapsulation.None, host: { class: 'qd-switches' }, template: "<qd-form-label\n [label]=\"label\"\n [readonly]=\"readonly\"\n [viewonly]=\"viewonly\"\n [control]=\"control\"\n [tooltip]=\"config?.tooltip\"\n [data-test-id]=\"testId\"\n></qd-form-label>\n\n<div class=\"qd-switches__input-section\" *ngIf=\"!readonly && !viewonly\">\n <div class=\"qd-switches__switch-section\">\n <qd-switch\n *ngFor=\"let input of switchesInputs\"\n [inputData]=\"input\"\n (click)=\"handleClick(input)\"\n [data-test-id]=\"testId + '-switch-' + input.index\"\n [disabled]=\"disabled\"\n ></qd-switch>\n </div>\n</div>\n\n<qd-form-hint\n *ngIf=\"!readonly && !viewonly\"\n [hint]=\"hasHint ? config.hint.i18n : ''\"\n [control]=\"control\"\n [hasError]=\"hasError\"\n [hintAction]=\"hintAction\"\n [data-test-id]=\"testId\"\n></qd-form-hint>\n\n<qd-form-readonly\n *ngIf=\"readonly\"\n [values]=\"selectedValuesTranslated\"\n [readonlyAction]=\"readonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-readonly>\n\n<qd-form-viewonly\n *ngIf=\"viewonly\"\n [values]=\"selectedValuesTranslated\"\n [viewonlyAction]=\"viewonlyAction\"\n [data-test-id]=\"testId\"\n></qd-form-viewonly>\n", styles: [".qd-switches{display:block;flex-direction:column;margin-bottom:.75rem}.qd-switches .qd-switches__input-section{display:flex;flex-direction:column;margin-bottom:.375rem}.qd-switches .qd-switches__switch-section{display:flex;flex-direction:row}.qd-switches .qd-switches__switch-section .switch-toggle-bar{margin-right:.375rem}.qd-switches .qd-switches__switch-section .switch-content{margin:0 1rem 0 0}.qd-switches qd-switch:last-child .switch-content{margin-right:0}.qd-switches.qd-switches-vertical .qd-switches__switch-section{display:flex;flex-direction:column}.qd-switches.qd-switches-vertical .qd-switches__switch-section .qd-switch:not(:last-child){margin-bottom:.5rem}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section{align-items:center}.qd-switches:not(.qd-switches-vertical) .qd-switches__switch-section .qd-switch{display:flex;height:2.25rem}\n"] }]
15982
15971
  }], ctorParameters: () => [{ type: QdSwitchesService }, { type: i0.ChangeDetectorRef }, { type: QdFormsActionEmitterService }, { type: i1$4.ControlContainer, decorators: [{
15983
15972
  type: Optional
15984
15973
  }, {
@@ -16961,6 +16950,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
16961
16950
  * }
16962
16951
  * ```
16963
16952
  *
16953
+ * ### Whitelisting HTTP status codes
16954
+ *
16955
+ * In some cases, you might want to prevent certain HTTP status codes from triggering error notifications. For example, a 304 Not Modified response is not actually an error and should not display an error notification. The **QdUiModule** allows you to whitelist specific HTTP status codes.
16956
+ *
16957
+ * To whitelist HTTP status codes, pass an array of status codes as the third parameter to the **QdUiModule.forRoot** method:
16958
+ *
16959
+ * ```typescript
16960
+ * import { HttpStatusCode } from '@angular/common/http';
16961
+ *
16962
+ * imports: [
16963
+ * ...
16964
+ * QdUiModule.forRoot(
16965
+ * appEnvironment,
16966
+ * ErrorCodes,
16967
+ * [HttpStatusCode.NotModified, HttpStatusCode.NoContent] // Whitelist 304 Not Modified and 204 No Content
16968
+ * ),
16969
+ * ...
16970
+ * ]
16971
+ * ```
16972
+ *
16973
+ * When a response with a whitelisted status code is received, no error notification will be displayed, even if it would normally be treated as an error by the HTTP client.
16974
+ *
16975
+ * ### Blacklisting HTTP status codes
16976
+ *
16977
+ * For critical errors, notifications are always shown, even if the status code is whitelisted. The **QdUiModule** implements a fixed blacklist that takes precedence over the whitelist.
16978
+ *
16979
+ * The following status codes are permanently blacklisted:
16980
+ * - 401 Unauthorized
16981
+ * - 402 Payment Required
16982
+ * - 403 Forbidden
16983
+ * - All 5xx server error codes (500-511)
16984
+ *
16985
+ * These critical errors will always show notifications, even if they are included in the whitelist.
16986
+ *
16987
+ * **Important**: The blacklist has higher precedence than the whitelist. If a status code appears in both the whitelist and the blacklist, it will be treated as blacklisted, and an error notification will be shown.
16988
+ *
16964
16989
  * ### Component:
16965
16990
  *
16966
16991
  * ```typescript
@@ -37736,12 +37761,13 @@ const QD_UI_MODULES = [
37736
37761
  QdTreeModule
37737
37762
  ];
37738
37763
  class QdUiModule {
37739
- static forRoot(config, backendErrorCodes = {}) {
37764
+ static forRoot(config, backendErrorCodes = {}, whitelistErrorCodes = []) {
37740
37765
  return {
37741
37766
  ngModule: QdUiModule,
37742
37767
  providers: [
37743
37768
  { provide: APP_ENVIRONMENT, useValue: config },
37744
- { provide: BACKEND_ERROR_CODES, useValue: backendErrorCodes }
37769
+ { provide: BACKEND_ERROR_CODES, useValue: backendErrorCodes },
37770
+ { provide: WHITELIST_ERROR_CODES, useValue: whitelistErrorCodes }
37745
37771
  ]
37746
37772
  };
37747
37773
  }