@dflat-core/web 1.0.48 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +40 -0
  2. package/fesm2022/dflat-core-web-core-data.mjs +19 -18
  3. package/fesm2022/dflat-core-web-core-data.mjs.map +1 -1
  4. package/fesm2022/dflat-core-web-core-model.mjs.map +1 -1
  5. package/fesm2022/dflat-core-web-core-services.mjs +275 -3
  6. package/fesm2022/dflat-core-web-core-services.mjs.map +1 -1
  7. package/fesm2022/dflat-core-web-core-ux-testing.mjs +391 -0
  8. package/fesm2022/dflat-core-web-core-ux-testing.mjs.map +1 -0
  9. package/fesm2022/dflat-core-web-core-ux.mjs +1 -1
  10. package/fesm2022/dflat-core-web-core-ux.mjs.map +1 -1
  11. package/fesm2022/dflat-core-web-system-data.mjs +51 -1
  12. package/fesm2022/dflat-core-web-system-data.mjs.map +1 -1
  13. package/fesm2022/dflat-core-web-system-model.mjs +7 -1
  14. package/fesm2022/dflat-core-web-system-model.mjs.map +1 -1
  15. package/fesm2022/dflat-core-web-system-root.mjs +29 -0
  16. package/fesm2022/dflat-core-web-system-root.mjs.map +1 -1
  17. package/fesm2022/dflat-core-web-system-ux.mjs +246 -10
  18. package/fesm2022/dflat-core-web-system-ux.mjs.map +1 -1
  19. package/fesm2022/dflat-core-web.mjs.map +1 -1
  20. package/package.json +5 -1
  21. package/types/dflat-core-web-core-data.d.ts +9 -0
  22. package/types/dflat-core-web-core-model.d.ts +9 -0
  23. package/types/dflat-core-web-core-services.d.ts +106 -2
  24. package/types/dflat-core-web-core-ux-testing.d.ts +232 -0
  25. package/types/dflat-core-web-core-ux.d.ts +8 -1
  26. package/types/dflat-core-web-system-data.d.ts +11 -1
  27. package/types/dflat-core-web-system-model.d.ts +35 -0
  28. package/types/dflat-core-web-system-root.d.ts +8 -0
  29. package/types/dflat-core-web-system-ux.d.ts +70 -24
@@ -5,7 +5,7 @@ import { ApiErrorTypes, CoreModelModule, ImageFormats, User } from "@dflat-core/
5
5
  import * as i4$2 from "@dflat-core/web/core-ux";
6
6
  import { Action, BaseComponent, BaseEditorComponent, CanDeactivateGuard, CoreUxModule, DefaultLayoutComponent, DialogType, DynamicFormComponent, EntitySelectors, MessageSeverity, NewEditorComponent, PP_SERVICE, SelectorMapperServiceBase, downloadFile, filterFromId } from "@dflat-core/web/core-ux";
7
7
  import * as i0 from "@angular/core";
8
- import { ChangeDetectionStrategy, Component, Directive, EventEmitter, Inject, Injectable, InjectionToken, Input, LOCALE_ID, NgModule, Optional, Output, ViewChild, ViewEncapsulation, effect, runInInjectionContext, viewChild } from "@angular/core";
8
+ import { ChangeDetectionStrategy, Component, Directive, EventEmitter, Inject, Injectable, InjectionToken, Input, LOCALE_ID, NgModule, Optional, Output, ViewChild, ViewEncapsulation, effect, inject, runInInjectionContext, viewChild } from "@angular/core";
9
9
  import { Observable, Subject, combineLatest, forkJoin, map, of, takeUntil } from "rxjs";
10
10
  import { catchError, filter, map as map$1, take, takeUntil as takeUntil$1 } from "rxjs/operators";
11
11
  import { ActivationResults, CustomFieldGroupTypes, FileTypes, ImageUploadEventType, PresentationProfilePurposes, PresentationProfileScopes, SystemModelModule } from "@dflat-core/web/system-model";
@@ -16,7 +16,7 @@ import { FormsModule, ReactiveFormsModule, Validators } from "@angular/forms";
16
16
  import * as i3$1 from "@angular/cdk/drag-drop";
17
17
  import { DragDropModule, moveItemInArray } from "@angular/cdk/drag-drop";
18
18
  import * as i1$3 from "@dflat-core/web/system-data";
19
- import { AddressDataService, CompanyDataService, CountryDataService, CurrencyDataService, CustomFieldDataService, CustomFieldGroupDataService, CustomFieldGroupEntityDataService, CustomFieldGroupItemDataService, CustomFieldOptionsDataService, CustomFieldValueDataService, DayInfoDataService, ErrorCategoryDataService, ExchangeRateDataService, FilesDataService, KeywordDataService, MetaEntityDataService, MetaEntityFieldDataService, MetaEntityFormDataService, MetaEntityFormFieldDataService, MetaEntityFormSectionDataService, MetaEntityKeywordDataService, MetaEntityRelationDataService, MetaEntityRelationDefinitionDataService, MetaEntityTranslationDataService, MetaEntityViewFieldDataService, NewsDataService, ParameterDataService, ParameterSectionDataService, ParameterValueDataService, PermissionDataService, PresentationProfileItemDataService, RatingDataService, RatingSummaryDataService, RequestDataService, RequestEntityDataService, RequestResultDataService, RequestTypeDataService, ResourceKeyDataService, ResourceLanguageDataService, ResourceTranslationDataService, RoleDataService, RolePermissionDataService, SubcompanyDataService, SupplierCompanyDataService, SupplierDataService, SynchronizedCompanyDataService, SystemDataModule, TvaRateDataService, UserAccountCompanyDataService, UserAccountDataService, UserAccountNewsDataService, UserAccountRoleDataService, UserAccountTokenDataService, UserFavoriteDataService, UserGroupDataService, UserGroupDefinitionDataService, UserHistoryDataService, UserPermissionViewDataService, UserSessionDataService, VersionDataService } from "@dflat-core/web/system-data";
19
+ import { AddressDataService, CompanyDataService, CountryDataService, CurrencyDataService, CustomFieldDataService, CustomFieldGroupDataService, CustomFieldGroupEntityDataService, CustomFieldGroupItemDataService, CustomFieldOptionsDataService, CustomFieldValueDataService, DayInfoDataService, ErrorCategoryDataService, ExchangeRateDataService, FilesDataService, KeywordDataService, MetaEntityDataService, MetaEntityFieldDataService, MetaEntityFormDataService, MetaEntityFormFieldDataService, MetaEntityFormSectionDataService, MetaEntityKeywordDataService, MetaEntityRelationDataService, MetaEntityRelationDefinitionDataService, MetaEntityTranslationDataService, MetaEntityViewFieldDataService, NewsDataService, ParameterDataService, ParameterSectionDataService, ParameterValueDataService, PermissionDataService, PresentationProfileItemDataService, RatingDataService, RatingSummaryDataService, RequestDataService, RequestEntityDataService, RequestResultDataService, RequestTypeDataService, ResourceKeyDataService, ResourceLanguageDataService, ResourceTranslationDataService, RoleDataService, RolePermissionDataService, SubcompanyDataService, SupplierCompanyDataService, SupplierDataService, SynchronizedCompanyDataService, SystemDataModule, TvaRateDataService, UserAccountCompanyDataService, UserAccountDataService, UserAccountLoginDataService, UserAccountNewsDataService, UserAccountRoleDataService, UserAccountTokenDataService, UserFavoriteDataService, UserGroupDataService, UserGroupDefinitionDataService, UserHistoryDataService, UserPermissionViewDataService, UserSessionDataService, VersionDataService } from "@dflat-core/web/system-data";
20
20
  import * as i1$2 from "ngx-bootstrap/modal";
21
21
  import { ModalModule, ModalOptions } from "ngx-bootstrap/modal";
22
22
  import * as i2$1 from "@angular/router";
@@ -28,7 +28,7 @@ import { NgSelectModule } from "@ng-select/ng-select";
28
28
  import * as i6$1 from "ngx-dropzone";
29
29
  import { NgxDropzoneModule } from "ngx-dropzone";
30
30
  import * as i1$1 from "@dflat-core/web/core-services";
31
- import { AppKeys, ApplicationMenuService, AuthInterceptor, CoreServicesModule, MenuItem, MenuService, PermissionService } from "@dflat-core/web/core-services";
31
+ import { AppKeys, ApplicationMenuService, AuthInterceptor, CoreServicesModule, ExternalLoginService, MenuItem, MenuService, PermissionService } from "@dflat-core/web/core-services";
32
32
  import * as i3 from "ngx-toastr";
33
33
  import { ToastrModule } from "ngx-toastr";
34
34
  import * as i1 from "@dflat-core/web/core";
@@ -8563,6 +8563,177 @@ i0.ɵɵngDeclareClassMetadata({
8563
8563
  }]
8564
8564
  }]
8565
8565
  });
8566
+ var BaseUserAccountLoginComponent = class BaseUserAccountLoginComponent extends BaseComponent {
8567
+ getTitle() {
8568
+ return "Identité externe";
8569
+ }
8570
+ getPath() {
8571
+ return SystemMenuItemProvider.GetLink(this.getEntityKey());
8572
+ }
8573
+ getEntityKey() {
8574
+ return SystemEntityKeys.UserAccountLogin;
8575
+ }
8576
+ get PermissionKey() {
8577
+ return SystemPermissions.SYSTEM_USERACCOUNTLOGIN;
8578
+ }
8579
+ constructor(app, route) {
8580
+ super(app, route);
8581
+ this.route = route;
8582
+ }
8583
+ static {
8584
+ this.ɵfac = i0.ɵɵngDeclareFactory({
8585
+ minVersion: "12.0.0",
8586
+ version: "22.2.1",
8587
+ ngImport: i0,
8588
+ type: BaseUserAccountLoginComponent,
8589
+ deps: [{ token: i4$2.ApplicationService }, { token: i2$1.ActivatedRoute }],
8590
+ target: i0.ɵɵFactoryTarget.Directive
8591
+ });
8592
+ }
8593
+ static {
8594
+ this.ɵdir = i0.ɵɵngDeclareDirective({
8595
+ minVersion: "14.0.0",
8596
+ version: "22.2.1",
8597
+ type: BaseUserAccountLoginComponent,
8598
+ isStandalone: true,
8599
+ usesInheritance: true,
8600
+ ngImport: i0
8601
+ });
8602
+ }
8603
+ };
8604
+ i0.ɵɵngDeclareClassMetadata({
8605
+ minVersion: "12.0.0",
8606
+ version: "22.2.1",
8607
+ ngImport: i0,
8608
+ type: BaseUserAccountLoginComponent,
8609
+ decorators: [{ type: Directive }],
8610
+ ctorParameters: () => [{ type: i4$2.ApplicationService }, { type: i2$1.ActivatedRoute }]
8611
+ });
8612
+ var UserAccountLoginComponent = class UserAccountLoginComponent extends BaseUserAccountLoginComponent {
8613
+ static {
8614
+ this.ɵfac = i0.ɵɵngDeclareFactory({
8615
+ minVersion: "12.0.0",
8616
+ version: "22.2.1",
8617
+ ngImport: i0,
8618
+ type: UserAccountLoginComponent,
8619
+ deps: null,
8620
+ target: i0.ɵɵFactoryTarget.Component
8621
+ });
8622
+ }
8623
+ static {
8624
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
8625
+ minVersion: "14.0.0",
8626
+ version: "22.2.1",
8627
+ type: UserAccountLoginComponent,
8628
+ isStandalone: false,
8629
+ selector: "msw-user-account-login-search",
8630
+ usesInheritance: true,
8631
+ ngImport: i0,
8632
+ template: "<div\r\n [class]=\"this.baseComponentClass\"\r\n [class.visible]=\"this.displayComponent\"\r\n [class.invisible]=\"!this.displayComponent\"\r\n >\r\n <alg-standard-page-layout #pageLayout [layoutKey]=\"this.layoutKey\" \r\n [entityKey]=\"this.getEntityKey()\" [guid]=\"this.guid\" >\r\n <div actionsContent *ngIf=\"this.facade.layout.showActionBar$ | async\">\r\n <alg-action-panel\r\n #actionComponent\r\n [entityKey]=\"this.getEntityKey()\"\r\n [guid]=\"this.guid\"\r\n [title]=\"this.actionTitle\"\r\n [searchText]=\"this.actionBarSearchText\">\r\n <ng-content select=\"[actionsPanelContent]\"> </ng-content>\r\n </alg-action-panel>\r\n </div>\r\n \r\n <div middleHeader \r\n *ngIf=\"this.facade.layout.showFilterSummary$ | async\"\r\n >\r\n <alg-filter-summary-panel [entityKey]=\"this.getEntityKey()\" [guid]=\"this.guid\">\r\n </alg-filter-summary-panel>\r\n </div>\r\n\r\n <ng-container middleContent>\r\n <div class=\"panel-middle-content\" [class.with-filters]=\"this.HasFilter\">\r\n <ng-container *ngIf=\"!isCardVisible\">\r\n <alg-data-grid #datagrid [entityKey]=\"getEntityKey()\" [guid]=\"this.guid\">\r\n </alg-data-grid>\r\n </ng-container>\r\n <!-- <alg-list-display \r\n #listDisplayComponent\r\n [entityKey]=\"getEntityKey()\"\r\n [guid]=\"this.guid\"\r\n >\r\n </alg-list-display> -->\r\n </div>\r\n <ng-container *ngIf=\"isCardVisible\">\r\n <ng-content #itemListComponent></ng-content>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container rightContent>\r\n <alg-editor #editor [entityKey]=\"getEntityKey()\" [guid]=\"this.guid\">\r\n </alg-editor>\r\n </ng-container>\r\n\r\n <div middleFooter>\r\n <alg-validation-error\r\n #validationErrorComponent\r\n ></alg-validation-error>\r\n <alg-new-paginator *ngIf=\"this.facade.layout.showPaginator$ | async\"\r\n [entityKey]=\"getEntityKey()\" \r\n [guid]=\"this.guid\"\r\n [log]=\"this.log\"\r\n >\r\n </alg-new-paginator>\r\n </div>\r\n </alg-standard-page-layout>\r\n</div>\r\n",
8633
+ dependencies: [
8634
+ {
8635
+ kind: "directive",
8636
+ type: i2$2.NgIf,
8637
+ selector: "[ngIf]",
8638
+ inputs: [
8639
+ "ngIf",
8640
+ "ngIfThen",
8641
+ "ngIfElse"
8642
+ ]
8643
+ },
8644
+ {
8645
+ kind: "component",
8646
+ type: i4$2.DataGridComponent,
8647
+ selector: "alg-data-grid",
8648
+ inputs: [
8649
+ "datagridClass",
8650
+ "entityKey",
8651
+ "guid"
8652
+ ]
8653
+ },
8654
+ {
8655
+ kind: "component",
8656
+ type: i4$2.ValidationErrorComponent,
8657
+ selector: "alg-validation-error"
8658
+ },
8659
+ {
8660
+ kind: "component",
8661
+ type: i4$2.NewEditorComponent,
8662
+ selector: "alg-editor",
8663
+ inputs: [
8664
+ "saveButtonLabel",
8665
+ "IsTheMainComponent",
8666
+ "showButtons",
8667
+ "showBreadCrumb",
8668
+ "entityKey",
8669
+ "guid"
8670
+ ],
8671
+ outputs: ["propertyChanged"]
8672
+ },
8673
+ {
8674
+ kind: "component",
8675
+ type: i4$2.NewPaginatorComponent,
8676
+ selector: "alg-new-paginator",
8677
+ inputs: [
8678
+ "guid",
8679
+ "log",
8680
+ "displayInfo",
8681
+ "currentRowsPerPage",
8682
+ "entityKey"
8683
+ ]
8684
+ },
8685
+ {
8686
+ kind: "component",
8687
+ type: i4$2.FilterSummaryPanelComponent,
8688
+ selector: "alg-filter-summary-panel",
8689
+ inputs: ["entityKey", "guid"]
8690
+ },
8691
+ {
8692
+ kind: "component",
8693
+ type: i4$2.ActionPanelComponent,
8694
+ selector: "alg-action-panel",
8695
+ inputs: [
8696
+ "searchText",
8697
+ "title",
8698
+ "entityKey",
8699
+ "guid"
8700
+ ]
8701
+ },
8702
+ {
8703
+ kind: "component",
8704
+ type: i4$2.StandardPageLayoutComponent,
8705
+ selector: "alg-standard-page-layout",
8706
+ inputs: [
8707
+ "layoutKey",
8708
+ "entityKey",
8709
+ "guid"
8710
+ ]
8711
+ },
8712
+ {
8713
+ kind: "pipe",
8714
+ type: i2$2.AsyncPipe,
8715
+ name: "async"
8716
+ }
8717
+ ],
8718
+ changeDetection: i0.ChangeDetectionStrategy.Eager
8719
+ });
8720
+ }
8721
+ };
8722
+ i0.ɵɵngDeclareClassMetadata({
8723
+ minVersion: "12.0.0",
8724
+ version: "22.2.1",
8725
+ ngImport: i0,
8726
+ type: UserAccountLoginComponent,
8727
+ decorators: [{
8728
+ type: Component,
8729
+ args: [{
8730
+ selector: "msw-user-account-login-search",
8731
+ standalone: false,
8732
+ changeDetection: ChangeDetectionStrategy.Eager,
8733
+ template: "<div\r\n [class]=\"this.baseComponentClass\"\r\n [class.visible]=\"this.displayComponent\"\r\n [class.invisible]=\"!this.displayComponent\"\r\n >\r\n <alg-standard-page-layout #pageLayout [layoutKey]=\"this.layoutKey\" \r\n [entityKey]=\"this.getEntityKey()\" [guid]=\"this.guid\" >\r\n <div actionsContent *ngIf=\"this.facade.layout.showActionBar$ | async\">\r\n <alg-action-panel\r\n #actionComponent\r\n [entityKey]=\"this.getEntityKey()\"\r\n [guid]=\"this.guid\"\r\n [title]=\"this.actionTitle\"\r\n [searchText]=\"this.actionBarSearchText\">\r\n <ng-content select=\"[actionsPanelContent]\"> </ng-content>\r\n </alg-action-panel>\r\n </div>\r\n \r\n <div middleHeader \r\n *ngIf=\"this.facade.layout.showFilterSummary$ | async\"\r\n >\r\n <alg-filter-summary-panel [entityKey]=\"this.getEntityKey()\" [guid]=\"this.guid\">\r\n </alg-filter-summary-panel>\r\n </div>\r\n\r\n <ng-container middleContent>\r\n <div class=\"panel-middle-content\" [class.with-filters]=\"this.HasFilter\">\r\n <ng-container *ngIf=\"!isCardVisible\">\r\n <alg-data-grid #datagrid [entityKey]=\"getEntityKey()\" [guid]=\"this.guid\">\r\n </alg-data-grid>\r\n </ng-container>\r\n <!-- <alg-list-display \r\n #listDisplayComponent\r\n [entityKey]=\"getEntityKey()\"\r\n [guid]=\"this.guid\"\r\n >\r\n </alg-list-display> -->\r\n </div>\r\n <ng-container *ngIf=\"isCardVisible\">\r\n <ng-content #itemListComponent></ng-content>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container rightContent>\r\n <alg-editor #editor [entityKey]=\"getEntityKey()\" [guid]=\"this.guid\">\r\n </alg-editor>\r\n </ng-container>\r\n\r\n <div middleFooter>\r\n <alg-validation-error\r\n #validationErrorComponent\r\n ></alg-validation-error>\r\n <alg-new-paginator *ngIf=\"this.facade.layout.showPaginator$ | async\"\r\n [entityKey]=\"getEntityKey()\" \r\n [guid]=\"this.guid\"\r\n [log]=\"this.log\"\r\n >\r\n </alg-new-paginator>\r\n </div>\r\n </alg-standard-page-layout>\r\n</div>\r\n"
8734
+ }]
8735
+ }]
8736
+ });
8566
8737
  var BaseUserAccountNewsComponent = class BaseUserAccountNewsComponent extends BaseComponent {
8567
8738
  getTitle() {
8568
8739
  return "Actualité de l'utilisateur";
@@ -9473,6 +9644,7 @@ var BaseUserAccountComponent = class BaseUserAccountComponent extends BaseCompon
9473
9644
  this.facade.sections.registerRelatedSection("Évaluations", RatingComponent, "UserAccountId");
9474
9645
  this.facade.sections.registerRelatedSection("Requêtes", RequestComponent, "UserAccountId");
9475
9646
  this.facade.sections.registerRelatedSection("Sociétés des utilisateurs", UserAccountCompanyComponent, "UserAccountId");
9647
+ this.facade.sections.registerRelatedSection("Identités externes", UserAccountLoginComponent, "UserAccountId");
9476
9648
  this.facade.sections.registerRelatedSection("Actualité de l'utilisateur", UserAccountNewsComponent, "UserAccountId");
9477
9649
  this.facade.sections.registerRelatedSection("Rôles des utilisateurs", UserAccountRoleComponent, "UserAccountId");
9478
9650
  this.facade.sections.registerRelatedSection("Jeton utilisateur", UserAccountTokenComponent, "UserAccountId");
@@ -15411,6 +15583,7 @@ const SystemGeneratedComponents = [
15411
15583
  TvaRateComponent,
15412
15584
  UserAccountComponent,
15413
15585
  UserAccountCompanyComponent,
15586
+ UserAccountLoginComponent,
15414
15587
  UserAccountNewsComponent,
15415
15588
  UserAccountRoleComponent,
15416
15589
  UserAccountTokenComponent,
@@ -15668,6 +15841,11 @@ const SystemGeneratedRoutes = [
15668
15841
  component: UserAccountCompanyComponent,
15669
15842
  canDeactivate: [CanDeactivateGuard]
15670
15843
  },
15844
+ {
15845
+ path: SystemEntityKeys.UserAccountLogin,
15846
+ component: UserAccountLoginComponent,
15847
+ canDeactivate: [CanDeactivateGuard]
15848
+ },
15671
15849
  {
15672
15850
  path: SystemEntityKeys.UserAccountNews,
15673
15851
  component: UserAccountNewsComponent,
@@ -16014,6 +16192,12 @@ const SystemGeneratedSelectors = [
16014
16192
  title: "Société de l'utilisateur",
16015
16193
  dataService: UserAccountCompanyDataService
16016
16194
  },
16195
+ {
16196
+ key: SystemEntityKeys.UserAccountLogin,
16197
+ component: UserAccountLoginComponent,
16198
+ title: "Identité externe",
16199
+ dataService: UserAccountLoginDataService
16200
+ },
16017
16201
  {
16018
16202
  key: SystemEntityKeys.UserAccountNews,
16019
16203
  component: UserAccountNewsComponent,
@@ -18555,6 +18739,10 @@ i0.ɵɵngDeclareClassMetadata({
18555
18739
  ctorParameters: () => [{ type: PresentationProfileResolver }, { type: PresentationProfileActionService }]
18556
18740
  });
18557
18741
  var LoginComponent = class LoginComponent {
18742
+ set googleButton(element) {
18743
+ const google = this.getProvider(ExternalLoginService.google);
18744
+ if (element && google) this.externalLoginService.renderGoogleButton(element.nativeElement, google, (result) => this.loginExternal(result)).catch((error) => this.onExternalError(error));
18745
+ }
18558
18746
  constructor(userServ, authService, router, route, selectUserCompanyActionService) {
18559
18747
  this.userServ = userServ;
18560
18748
  this.authService = authService;
@@ -18571,9 +18759,12 @@ var LoginComponent = class LoginComponent {
18571
18759
  this.loading = false;
18572
18760
  this.hasErrors = false;
18573
18761
  this.errorMessage = "";
18762
+ this.providers = [];
18763
+ this.externalLoginService = inject(ExternalLoginService);
18574
18764
  }
18575
18765
  ngOnInit() {
18576
18766
  this.rememberMe = this.authService.rememberMe;
18767
+ this.authService.getLoginProviders().subscribe((providers) => this.providers = providers || [], () => this.providers = []);
18577
18768
  if (this.getShouldRedirect()) this.authService.redirectLoginUser();
18578
18769
  else window.dispatchEvent(new Event("resize"));
18579
18770
  }
@@ -18586,9 +18777,42 @@ var LoginComponent = class LoginComponent {
18586
18777
  this.OnLogin(data);
18587
18778
  }, (error) => {
18588
18779
  this.hasErrors = true;
18589
- this.errorMessage = "Login ou mot de passe incorrect";
18780
+ this.errorMessage = this.getLoginError(error);
18590
18781
  });
18591
18782
  }
18783
+ hasProvider(name) {
18784
+ return !!this.getProvider(name);
18785
+ }
18786
+ loginWithMicrosoft() {
18787
+ this.hasErrors = false;
18788
+ this.externalLoginService.signInWithMicrosoft(this.getProvider(ExternalLoginService.microsoft)).then((result) => this.loginExternal(result)).catch((error) => this.onExternalError(error));
18789
+ }
18790
+ loginWithApple() {
18791
+ this.hasErrors = false;
18792
+ this.externalLoginService.signInWithApple(this.getProvider(ExternalLoginService.apple)).then((result) => this.loginExternal(result)).catch((error) => this.onExternalError(error));
18793
+ }
18794
+ loginExternal(result) {
18795
+ this.hasErrors = false;
18796
+ this.authService.loginExternal(result.provider, result.idToken, this.rememberMe, result.firstName, result.lastName).subscribe((data) => {
18797
+ this.OnLogin(data);
18798
+ }, (error) => {
18799
+ this.hasErrors = true;
18800
+ this.errorMessage = typeof error?.error === "string" && error.error ? error.error : "La connexion a échoué";
18801
+ });
18802
+ }
18803
+ onExternalError(error) {
18804
+ if (this.externalLoginService.isCancellation(error)) return;
18805
+ this.hasErrors = true;
18806
+ this.errorMessage = error?.message || "La connexion a échoué";
18807
+ }
18808
+ getLoginError(error) {
18809
+ const failure = error?.error;
18810
+ if (failure?.Code === "ExternalLoginRequired" && failure.Providers?.length) return "Ce compte n'a pas de mot de passe : connectez-vous avec " + failure.Providers.join(" ou ") + ".";
18811
+ return "Login ou mot de passe incorrect";
18812
+ }
18813
+ getProvider(name) {
18814
+ return this.providers.find((p) => p.Provider === name);
18815
+ }
18592
18816
  OnLogin(data) {
18593
18817
  const user = new User(data);
18594
18818
  user.IsConnected = true;
@@ -18640,9 +18864,15 @@ var LoginComponent = class LoginComponent {
18640
18864
  resetPasswordClick: "resetPasswordClick",
18641
18865
  afterLogin: "afterLogin"
18642
18866
  },
18867
+ viewQueries: [{
18868
+ propertyName: "googleButton",
18869
+ first: true,
18870
+ predicate: ["googleButton"],
18871
+ descendants: true
18872
+ }],
18643
18873
  ngImport: i0,
18644
- template: "<form class=\"login-form\" (ngSubmit)=\"f.form.valid && login()\" #f=\"ngForm\" novalidate>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"text\" class=\"form-control login-control\" placeholder=\"Identifiant\" required name=\"eml\" [(ngModel)]=\"username\" #eml=\"ngModel\">\r\n <!-- <span class=\"fa fa-user form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"eml.errors && (eml.dirty && eml.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!eml.errors.required\">\r\n L'Identifiant est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"password\" class=\"form-control login-control\" placeholder=\"Password\" required name=\"passwd\" [(ngModel)]=\"password\" #passwd=\"ngModel\">\r\n <!-- <span class=\"fa fa-lock form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"passwd.errors && (passwd.dirty || passwd.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!passwd.errors.required\">\r\n Le mot de passe est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group has-feedback\">\r\n <div class=\"custom-control custom-switch\">\r\n <input type=\"checkbox\" class=\"custom-control-input\" id=\"customSwitch1\" name=\"rememberMe\" [(ngModel)]=\"rememberMe\">\r\n <label class=\"custom-control-label\" for=\"customSwitch1\">Se souvenir de moi</label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <button [disabled]=\"!f.form.valid\" class=\"btn btn-primary btn-block login-button\">Connexion</button>\r\n </div>\r\n</form>\r\n<div class=\"btn-bar\">\r\n <ng-container *ngIf=\"allowCreation\">\r\n <button class=\"btn btn-primary\" (click)=\"onRegisterClick()\"><span>Créer un compte</span></button> \r\n </ng-container>\r\n <button class=\"btn btn-link btn-reset-pwd\" (click)=\"onResetPasswordClick()\">Mot de passe oublié ?</button>\r\n</div>\r\n\r\n<div class=\"error-message\">\r\n <div>\r\n <ng-container *ngIf=\"hasErrors\">\r\n {{this.errorMessage}}\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrors\">\r\n &nbsp; \r\n </ng-container>\r\n </div>\r\n</div>\r\n",
18645
- styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}.login-form .form-group{margin-bottom:12px}.login-form .form-control{height:34px;padding:6px 12px}.login-form .btn{width:100%}.text-error,.error-message{color:#f78383}.error-message{text-align:center;padding-top:15px}.login-control:before{position:relative;display:block;float:left;width:16px;height:16px;content:\" \";background-size:16px 16px;-webkit-background-size:16px 16px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"49.485\" height=\"49.485\" viewBox=\"0 0 49.485 49.485\">%0D%0A <path id=\"Recherche\" d=\"M31.88,37.039A20.324,20.324,0,1,1,12.411,1.6,20.324,20.324,0,0,1,37.039,31.88L49.485,44.326l-5.158,5.158ZM10.373,10.373a14.07,14.07,0,1,0,9.948-4.12A13.977,13.977,0,0,0,10.373,10.373Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:9px -40px 0 9px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.login-control.ng-invalid.ng-touched,.login-control.ng-select.ng-invalid,.login-control.ng-invalid{border-color:#cbc8d0!important}.login-button{border-radius:5px}.btn-reset-pwd{padding:0}\n"],
18874
+ template: "<form class=\"login-form\" (ngSubmit)=\"f.form.valid && login()\" #f=\"ngForm\" novalidate>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"text\" class=\"form-control login-control\" placeholder=\"Identifiant\" required name=\"eml\" [(ngModel)]=\"username\" #eml=\"ngModel\">\r\n <!-- <span class=\"fa fa-user form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"eml.errors && (eml.dirty && eml.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!eml.errors.required\">\r\n L'Identifiant est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"password\" class=\"form-control login-control\" placeholder=\"Password\" required name=\"passwd\" [(ngModel)]=\"password\" #passwd=\"ngModel\">\r\n <!-- <span class=\"fa fa-lock form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"passwd.errors && (passwd.dirty || passwd.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!passwd.errors.required\">\r\n Le mot de passe est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group has-feedback\">\r\n <div class=\"custom-control custom-switch\">\r\n <input type=\"checkbox\" class=\"custom-control-input\" id=\"customSwitch1\" name=\"rememberMe\" [(ngModel)]=\"rememberMe\">\r\n <label class=\"custom-control-label\" for=\"customSwitch1\">Se souvenir de moi</label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <button [disabled]=\"!f.form.valid\" class=\"btn btn-primary btn-block login-button\">Connexion</button>\r\n </div>\r\n</form>\r\n<div class=\"btn-bar\">\r\n <ng-container *ngIf=\"allowCreation\">\r\n <button class=\"btn btn-primary\" (click)=\"onRegisterClick()\"><span>Créer un compte</span></button> \r\n </ng-container>\r\n <button class=\"btn btn-link btn-reset-pwd\" (click)=\"onResetPasswordClick()\">Mot de passe oublié ?</button>\r\n</div>\r\n\r\n<div class=\"external-login\" *ngIf=\"providers.length\">\r\n <div class=\"external-login-separator\"><span>ou</span></div>\r\n <div class=\"external-login-google\" *ngIf=\"hasProvider('Google')\" #googleButton></div>\r\n <button type=\"button\" class=\"btn external-login-button\" *ngIf=\"hasProvider('Microsoft')\" (click)=\"loginWithMicrosoft()\">\r\n <svg class=\"external-login-logo\" viewBox=\"0 0 21 21\" aria-hidden=\"true\">\r\n <rect x=\"1\" y=\"1\" width=\"9\" height=\"9\" fill=\"#f25022\"/><rect x=\"11\" y=\"1\" width=\"9\" height=\"9\" fill=\"#7fba00\"/>\r\n <rect x=\"1\" y=\"11\" width=\"9\" height=\"9\" fill=\"#00a4ef\"/><rect x=\"11\" y=\"11\" width=\"9\" height=\"9\" fill=\"#ffb900\"/>\r\n </svg>\r\n <span>Continuer avec Microsoft</span>\r\n </button>\r\n <button type=\"button\" class=\"btn external-login-button\" *ngIf=\"hasProvider('Apple')\" (click)=\"loginWithApple()\">\r\n <svg class=\"external-login-logo\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M16.37 12.78c-.02-2.3 1.88-3.4 1.96-3.46-1.07-1.56-2.73-1.77-3.32-1.8-1.41-.14-2.76.83-3.48.83-.72 0-1.83-.81-3-.79-1.55.02-2.97.9-3.77 2.28-1.61 2.79-.41 6.92 1.15 9.19.77 1.11 1.68 2.35 2.88 2.31 1.16-.05 1.59-.75 2.99-.75 1.39 0 1.79.75 3.01.72 1.24-.02 2.03-1.13 2.79-2.25.88-1.29 1.24-2.54 1.26-2.6-.03-.01-2.42-.93-2.47-3.68zM14.08 5.99c.63-.77 1.06-1.84.94-2.9-.91.04-2.02.61-2.67 1.38-.59.68-1.1 1.76-.96 2.8 1.02.08 2.05-.52 2.69-1.28z\"/>\r\n </svg>\r\n <span>Continuer avec Apple</span>\r\n </button>\r\n</div>\r\n\r\n<div class=\"error-message\">\r\n <div>\r\n <ng-container *ngIf=\"hasErrors\">\r\n {{this.errorMessage}}\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrors\">\r\n &nbsp; \r\n </ng-container>\r\n </div>\r\n</div>\r\n",
18875
+ styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}.login-form .form-group{margin-bottom:12px}.login-form .form-control{height:34px;padding:6px 12px}.login-form .btn{width:100%}.text-error,.error-message{color:#f78383}.error-message{text-align:center;padding-top:15px}.login-control:before{position:relative;display:block;float:left;width:16px;height:16px;content:\" \";background-size:16px 16px;-webkit-background-size:16px 16px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"49.485\" height=\"49.485\" viewBox=\"0 0 49.485 49.485\">%0D%0A <path id=\"Recherche\" d=\"M31.88,37.039A20.324,20.324,0,1,1,12.411,1.6,20.324,20.324,0,0,1,37.039,31.88L49.485,44.326l-5.158,5.158ZM10.373,10.373a14.07,14.07,0,1,0,9.948-4.12A13.977,13.977,0,0,0,10.373,10.373Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:9px -40px 0 9px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.login-control.ng-invalid.ng-touched,.login-control.ng-select.ng-invalid,.login-control.ng-invalid{border-color:#cbc8d0!important}.login-button{border-radius:5px}.btn-reset-pwd{padding:0}.external-login{margin-top:16px;display:flex;flex-direction:column;align-items:stretch;gap:10px}.external-login-separator{display:flex;align-items:center;gap:12px;color:#8a8f98;font-size:13px}.external-login-separator:before,.external-login-separator:after{content:\"\";flex:1;border-top:1px solid #dadce0}.external-login-google{display:flex;justify-content:center;min-height:40px}.external-login-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:400px;height:40px;margin:0 auto;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:4px;font-size:14px;font-weight:500}.external-login-button:hover{background:#f8fafe;border-color:#d2e3fc}.external-login-logo{width:18px;height:18px}\n"],
18646
18876
  dependencies: [
18647
18877
  {
18648
18878
  kind: "directive",
@@ -18722,8 +18952,8 @@ i0.ɵɵngDeclareClassMetadata({
18722
18952
  selector: "alg-login",
18723
18953
  changeDetection: ChangeDetectionStrategy.Eager,
18724
18954
  standalone: false,
18725
- template: "<form class=\"login-form\" (ngSubmit)=\"f.form.valid && login()\" #f=\"ngForm\" novalidate>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"text\" class=\"form-control login-control\" placeholder=\"Identifiant\" required name=\"eml\" [(ngModel)]=\"username\" #eml=\"ngModel\">\r\n <!-- <span class=\"fa fa-user form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"eml.errors && (eml.dirty && eml.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!eml.errors.required\">\r\n L'Identifiant est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"password\" class=\"form-control login-control\" placeholder=\"Password\" required name=\"passwd\" [(ngModel)]=\"password\" #passwd=\"ngModel\">\r\n <!-- <span class=\"fa fa-lock form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"passwd.errors && (passwd.dirty || passwd.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!passwd.errors.required\">\r\n Le mot de passe est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group has-feedback\">\r\n <div class=\"custom-control custom-switch\">\r\n <input type=\"checkbox\" class=\"custom-control-input\" id=\"customSwitch1\" name=\"rememberMe\" [(ngModel)]=\"rememberMe\">\r\n <label class=\"custom-control-label\" for=\"customSwitch1\">Se souvenir de moi</label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <button [disabled]=\"!f.form.valid\" class=\"btn btn-primary btn-block login-button\">Connexion</button>\r\n </div>\r\n</form>\r\n<div class=\"btn-bar\">\r\n <ng-container *ngIf=\"allowCreation\">\r\n <button class=\"btn btn-primary\" (click)=\"onRegisterClick()\"><span>Créer un compte</span></button> \r\n </ng-container>\r\n <button class=\"btn btn-link btn-reset-pwd\" (click)=\"onResetPasswordClick()\">Mot de passe oublié ?</button>\r\n</div>\r\n\r\n<div class=\"error-message\">\r\n <div>\r\n <ng-container *ngIf=\"hasErrors\">\r\n {{this.errorMessage}}\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrors\">\r\n &nbsp; \r\n </ng-container>\r\n </div>\r\n</div>\r\n",
18726
- styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}.login-form .form-group{margin-bottom:12px}.login-form .form-control{height:34px;padding:6px 12px}.login-form .btn{width:100%}.text-error,.error-message{color:#f78383}.error-message{text-align:center;padding-top:15px}.login-control:before{position:relative;display:block;float:left;width:16px;height:16px;content:\" \";background-size:16px 16px;-webkit-background-size:16px 16px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"49.485\" height=\"49.485\" viewBox=\"0 0 49.485 49.485\">%0D%0A <path id=\"Recherche\" d=\"M31.88,37.039A20.324,20.324,0,1,1,12.411,1.6,20.324,20.324,0,0,1,37.039,31.88L49.485,44.326l-5.158,5.158ZM10.373,10.373a14.07,14.07,0,1,0,9.948-4.12A13.977,13.977,0,0,0,10.373,10.373Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:9px -40px 0 9px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.login-control.ng-invalid.ng-touched,.login-control.ng-select.ng-invalid,.login-control.ng-invalid{border-color:#cbc8d0!important}.login-button{border-radius:5px}.btn-reset-pwd{padding:0}\n"]
18955
+ template: "<form class=\"login-form\" (ngSubmit)=\"f.form.valid && login()\" #f=\"ngForm\" novalidate>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"text\" class=\"form-control login-control\" placeholder=\"Identifiant\" required name=\"eml\" [(ngModel)]=\"username\" #eml=\"ngModel\">\r\n <!-- <span class=\"fa fa-user form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"eml.errors && (eml.dirty && eml.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!eml.errors.required\">\r\n L'Identifiant est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"form-group has-feedback\">\r\n <input type=\"password\" class=\"form-control login-control\" placeholder=\"Password\" required name=\"passwd\" [(ngModel)]=\"password\" #passwd=\"ngModel\">\r\n <!-- <span class=\"fa fa-lock form-control-feedback\"></span> -->\r\n <!-- <div *ngIf=\"passwd.errors && (passwd.dirty || passwd.touched)\" class=\"input-alert\">\r\n <div [hidden]=\"!passwd.errors.required\">\r\n Le mot de passe est requis\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"form-group has-feedback\">\r\n <div class=\"custom-control custom-switch\">\r\n <input type=\"checkbox\" class=\"custom-control-input\" id=\"customSwitch1\" name=\"rememberMe\" [(ngModel)]=\"rememberMe\">\r\n <label class=\"custom-control-label\" for=\"customSwitch1\">Se souvenir de moi</label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <button [disabled]=\"!f.form.valid\" class=\"btn btn-primary btn-block login-button\">Connexion</button>\r\n </div>\r\n</form>\r\n<div class=\"btn-bar\">\r\n <ng-container *ngIf=\"allowCreation\">\r\n <button class=\"btn btn-primary\" (click)=\"onRegisterClick()\"><span>Créer un compte</span></button> \r\n </ng-container>\r\n <button class=\"btn btn-link btn-reset-pwd\" (click)=\"onResetPasswordClick()\">Mot de passe oublié ?</button>\r\n</div>\r\n\r\n<div class=\"external-login\" *ngIf=\"providers.length\">\r\n <div class=\"external-login-separator\"><span>ou</span></div>\r\n <div class=\"external-login-google\" *ngIf=\"hasProvider('Google')\" #googleButton></div>\r\n <button type=\"button\" class=\"btn external-login-button\" *ngIf=\"hasProvider('Microsoft')\" (click)=\"loginWithMicrosoft()\">\r\n <svg class=\"external-login-logo\" viewBox=\"0 0 21 21\" aria-hidden=\"true\">\r\n <rect x=\"1\" y=\"1\" width=\"9\" height=\"9\" fill=\"#f25022\"/><rect x=\"11\" y=\"1\" width=\"9\" height=\"9\" fill=\"#7fba00\"/>\r\n <rect x=\"1\" y=\"11\" width=\"9\" height=\"9\" fill=\"#00a4ef\"/><rect x=\"11\" y=\"11\" width=\"9\" height=\"9\" fill=\"#ffb900\"/>\r\n </svg>\r\n <span>Continuer avec Microsoft</span>\r\n </button>\r\n <button type=\"button\" class=\"btn external-login-button\" *ngIf=\"hasProvider('Apple')\" (click)=\"loginWithApple()\">\r\n <svg class=\"external-login-logo\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M16.37 12.78c-.02-2.3 1.88-3.4 1.96-3.46-1.07-1.56-2.73-1.77-3.32-1.8-1.41-.14-2.76.83-3.48.83-.72 0-1.83-.81-3-.79-1.55.02-2.97.9-3.77 2.28-1.61 2.79-.41 6.92 1.15 9.19.77 1.11 1.68 2.35 2.88 2.31 1.16-.05 1.59-.75 2.99-.75 1.39 0 1.79.75 3.01.72 1.24-.02 2.03-1.13 2.79-2.25.88-1.29 1.24-2.54 1.26-2.6-.03-.01-2.42-.93-2.47-3.68zM14.08 5.99c.63-.77 1.06-1.84.94-2.9-.91.04-2.02.61-2.67 1.38-.59.68-1.1 1.76-.96 2.8 1.02.08 2.05-.52 2.69-1.28z\"/>\r\n </svg>\r\n <span>Continuer avec Apple</span>\r\n </button>\r\n</div>\r\n\r\n<div class=\"error-message\">\r\n <div>\r\n <ng-container *ngIf=\"hasErrors\">\r\n {{this.errorMessage}}\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrors\">\r\n &nbsp; \r\n </ng-container>\r\n </div>\r\n</div>\r\n",
18956
+ styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}.login-form .form-group{margin-bottom:12px}.login-form .form-control{height:34px;padding:6px 12px}.login-form .btn{width:100%}.text-error,.error-message{color:#f78383}.error-message{text-align:center;padding-top:15px}.login-control:before{position:relative;display:block;float:left;width:16px;height:16px;content:\" \";background-size:16px 16px;-webkit-background-size:16px 16px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"49.485\" height=\"49.485\" viewBox=\"0 0 49.485 49.485\">%0D%0A <path id=\"Recherche\" d=\"M31.88,37.039A20.324,20.324,0,1,1,12.411,1.6,20.324,20.324,0,0,1,37.039,31.88L49.485,44.326l-5.158,5.158ZM10.373,10.373a14.07,14.07,0,1,0,9.948-4.12A13.977,13.977,0,0,0,10.373,10.373Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:9px -40px 0 9px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.login-control.ng-invalid.ng-touched,.login-control.ng-select.ng-invalid,.login-control.ng-invalid{border-color:#cbc8d0!important}.login-button{border-radius:5px}.btn-reset-pwd{padding:0}.external-login{margin-top:16px;display:flex;flex-direction:column;align-items:stretch;gap:10px}.external-login-separator{display:flex;align-items:center;gap:12px;color:#8a8f98;font-size:13px}.external-login-separator:before,.external-login-separator:after{content:\"\";flex:1;border-top:1px solid #dadce0}.external-login-google{display:flex;justify-content:center;min-height:40px}.external-login-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:400px;height:40px;margin:0 auto;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:4px;font-size:14px;font-weight:500}.external-login-button:hover{background:#f8fafe;border-color:#d2e3fc}.external-login-logo{width:18px;height:18px}\n"]
18727
18957
  }]
18728
18958
  }],
18729
18959
  ctorParameters: () => [
@@ -18739,7 +18969,11 @@ i0.ɵɵngDeclareClassMetadata({
18739
18969
  registerClick: [{ type: Output }],
18740
18970
  cancelClick: [{ type: Output }],
18741
18971
  resetPasswordClick: [{ type: Output }],
18742
- afterLogin: [{ type: Output }]
18972
+ afterLogin: [{ type: Output }],
18973
+ googleButton: [{
18974
+ type: ViewChild,
18975
+ args: ["googleButton"]
18976
+ }]
18743
18977
  }
18744
18978
  });
18745
18979
  function MustMatch(controlName, matchingControlName) {
@@ -20429,6 +20663,7 @@ var SystemUxModule = class SystemUxModule extends EnsureModuleLoadedOnceGuard {
20429
20663
  TvaRateComponent,
20430
20664
  UserAccountComponent,
20431
20665
  UserAccountCompanyComponent,
20666
+ UserAccountLoginComponent,
20432
20667
  UserAccountNewsComponent,
20433
20668
  UserAccountRoleComponent,
20434
20669
  UserAccountTokenComponent,
@@ -20558,6 +20793,7 @@ var SystemUxModule = class SystemUxModule extends EnsureModuleLoadedOnceGuard {
20558
20793
  TvaRateComponent,
20559
20794
  UserAccountComponent,
20560
20795
  UserAccountCompanyComponent,
20796
+ UserAccountLoginComponent,
20561
20797
  UserAccountNewsComponent,
20562
20798
  UserAccountRoleComponent,
20563
20799
  UserAccountTokenComponent,
@@ -21365,6 +21601,6 @@ i0.ɵɵngDeclareClassMetadata({
21365
21601
  decorators: [{ type: Directive }],
21366
21602
  ctorParameters: () => [{ type: i4$2.ApplicationService }, { type: i2$1.ActivatedRoute }]
21367
21603
  });
21368
- export { AccessDeniedComponent, ActivateComponent, AddressComponent, AddressEditorComponent, BaseAddressComponent, BaseCompanyComponent, BaseCountryComponent, BaseCurrencyComponent, BaseCustomFieldComponent, BaseCustomFieldGroupComponent, BaseCustomFieldGroupEntityComponent, BaseCustomFieldGroupItemComponent, BaseCustomFieldOptionsComponent, BaseCustomFieldValueComponent, BaseDayInfoComponent, BaseEntityFilesComponent, BaseErrorCategoryComponent, BaseExchangeRateComponent, BaseFilesComponent, BaseKeywordComponent, BaseMetaEntityComponent, BaseMetaEntityFieldComponent, BaseMetaEntityFormComponent, BaseMetaEntityFormFieldComponent, BaseMetaEntityFormSectionComponent, BaseMetaEntityKeywordComponent, BaseMetaEntityRelationComponent, BaseMetaEntityRelationDefinitionComponent, BaseMetaEntityTranslationComponent, BaseMetaEntityViewFieldComponent, BaseNewsComponent, BaseParameterComponent, BaseParameterSectionComponent, BaseParameterValueComponent, BasePermissionComponent, BasePresentationProfileComponent, BasePresentationProfileItemComponent, BaseRatingComponent, BaseRatingSummaryComponent, BaseRequestComponent, BaseRequestEntityComponent, BaseRequestResultComponent, BaseRequestTypeComponent, BaseResourceKeyComponent, BaseResourceLanguageComponent, BaseResourceTranslationComponent, BaseRoleComponent, BaseRolePermissionComponent, BaseSubcompanyComponent, BaseSupplierCompanyComponent, BaseSupplierComponent, BaseSynchronizedCompanyComponent, BaseTvaRateComponent, BaseUserAccountCompanyComponent, BaseUserAccountComponent, BaseUserAccountNewsComponent, BaseUserAccountRoleComponent, BaseUserAccountTokenComponent, BaseUserFavoriteComponent, BaseUserGroupComponent, BaseUserGroupDefinitionComponent, BaseUserHistoryComponent, BaseUserPermissionViewComponent, BaseUserSessionComponent, BaseVersionComponent, CompanyComponent, CompanyEditorComponent, ConfigComponent, CountryComponent, CountryEditorComponent, CurrencyComponent, CurrencyEditorComponent, CustomFieldActionService, CustomFieldComponent, CustomFieldEditorComponent, CustomFieldGroupComponent, CustomFieldGroupEditorComponent, CustomFieldGroupEntityComponent, CustomFieldGroupEntityEditorComponent, CustomFieldGroupItemComponent, CustomFieldGroupItemEditorComponent, CustomFieldOptionsComponent, CustomFieldOptionsEditorComponent, CustomFieldValueComponent, DFLAT_SEARCH_PROVIDERS, DFlatAuthInterceptor, DFlatLayoutComponent, DFlatPermissionService, DFlatSpinnerComponent, DWSupplyComponent, DayInfoComponent, DflatAppModule, DflatAppService, DflatSearchProvider, EntityFilesComponent, ErrorCategoryComponent, ExchangeRateComponent, ExchangeRateDetailComponent, ExchangeRateEditorComponent, FilesComponent, HistoryComponent, HomepageComponent, ImageUploadComponent, KeywordComponent, LoginComponent, MetaEntityComponent, MetaEntityFieldComponent, MetaEntityFieldEditorComponent, MetaEntityFormComponent, MetaEntityFormFieldComponent, MetaEntityFormSectionComponent, MetaEntityKeywordComponent, MetaEntityRelationComponent, MetaEntityRelationDefinitionComponent, MetaEntityTranslationComponent, MetaEntityViewFieldComponent, MustMatch, NewsComponent, NewsEditorComponent, PP_GRP_CUSTOM, PP_GRP_STANDARD, ParameterComponent, ParameterSectionComponent, ParameterValueComponent, PermissionComponent, PermissionEditorComponent, PpFacadeService, PresentationProfileActionService, PresentationProfileColumnComponent, PresentationProfileComponent, PresentationProfileItemComponent, PresentationProfileItemsComponent, PresentationProfileResolver, PresentationProfileTransformer, RatesActionService, RatingComponent, RatingSummaryComponent, RequestComponent, RequestEditorComponent, RequestEntityComponent, RequestResultComponent, RequestResultsComponent, RequestTypeComponent, ResetPasswordComponent, ResourceKeyComponent, ResourceLanguageComponent, ResourceLanguageEditorComponent, ResourceTranslationComponent, ResourceTranslationEditorComponent, RoleComponent, RoleEditorComponent, RolePermissionComponent, SearchComponent, SearchResult, SearchResultComponent, SearchSection, SelectUserCompanyActionService, SubcompanyComponent, SupplierCompanyComponent, SupplierComponent, SupplierEditorComponent, SynchronizedCompanyComponent, SystemGeneratedComponents, SystemGeneratedRoutes, SystemGeneratedSelectors, SystemSectionService, SystemSelectorMapperService, SystemUxModule, TvaRateComponent, TvaRateDetailComponent, TvaRateEditorComponent, UserAccountCompanyComponent, UserAccountComponent, UserAccountEditorComponent, UserAccountNewsComponent, UserAccountRoleComponent, UserAccountTokenComponent, UserCompanyComponent, UserFavoriteComponent, UserGroupComponent, UserGroupDefinitionComponent, UserGroupEditorComponent, UserHistoryComponent, UserMenuComponent, UserPermissionComponent, UserPermissionViewComponent, UserProfileAccountComponent, UserProfileComponent, UserRoleComponent, UserSessionComponent, VersionComponent };
21604
+ export { AccessDeniedComponent, ActivateComponent, AddressComponent, AddressEditorComponent, BaseAddressComponent, BaseCompanyComponent, BaseCountryComponent, BaseCurrencyComponent, BaseCustomFieldComponent, BaseCustomFieldGroupComponent, BaseCustomFieldGroupEntityComponent, BaseCustomFieldGroupItemComponent, BaseCustomFieldOptionsComponent, BaseCustomFieldValueComponent, BaseDayInfoComponent, BaseEntityFilesComponent, BaseErrorCategoryComponent, BaseExchangeRateComponent, BaseFilesComponent, BaseKeywordComponent, BaseMetaEntityComponent, BaseMetaEntityFieldComponent, BaseMetaEntityFormComponent, BaseMetaEntityFormFieldComponent, BaseMetaEntityFormSectionComponent, BaseMetaEntityKeywordComponent, BaseMetaEntityRelationComponent, BaseMetaEntityRelationDefinitionComponent, BaseMetaEntityTranslationComponent, BaseMetaEntityViewFieldComponent, BaseNewsComponent, BaseParameterComponent, BaseParameterSectionComponent, BaseParameterValueComponent, BasePermissionComponent, BasePresentationProfileComponent, BasePresentationProfileItemComponent, BaseRatingComponent, BaseRatingSummaryComponent, BaseRequestComponent, BaseRequestEntityComponent, BaseRequestResultComponent, BaseRequestTypeComponent, BaseResourceKeyComponent, BaseResourceLanguageComponent, BaseResourceTranslationComponent, BaseRoleComponent, BaseRolePermissionComponent, BaseSubcompanyComponent, BaseSupplierCompanyComponent, BaseSupplierComponent, BaseSynchronizedCompanyComponent, BaseTvaRateComponent, BaseUserAccountCompanyComponent, BaseUserAccountComponent, BaseUserAccountLoginComponent, BaseUserAccountNewsComponent, BaseUserAccountRoleComponent, BaseUserAccountTokenComponent, BaseUserFavoriteComponent, BaseUserGroupComponent, BaseUserGroupDefinitionComponent, BaseUserHistoryComponent, BaseUserPermissionViewComponent, BaseUserSessionComponent, BaseVersionComponent, CompanyComponent, CompanyEditorComponent, ConfigComponent, CountryComponent, CountryEditorComponent, CurrencyComponent, CurrencyEditorComponent, CustomFieldActionService, CustomFieldComponent, CustomFieldEditorComponent, CustomFieldGroupComponent, CustomFieldGroupEditorComponent, CustomFieldGroupEntityComponent, CustomFieldGroupEntityEditorComponent, CustomFieldGroupItemComponent, CustomFieldGroupItemEditorComponent, CustomFieldOptionsComponent, CustomFieldOptionsEditorComponent, CustomFieldValueComponent, DFLAT_SEARCH_PROVIDERS, DFlatAuthInterceptor, DFlatLayoutComponent, DFlatPermissionService, DFlatSpinnerComponent, DWSupplyComponent, DayInfoComponent, DflatAppModule, DflatAppService, DflatSearchProvider, EntityFilesComponent, ErrorCategoryComponent, ExchangeRateComponent, ExchangeRateDetailComponent, ExchangeRateEditorComponent, FilesComponent, HistoryComponent, HomepageComponent, ImageUploadComponent, KeywordComponent, LoginComponent, MetaEntityComponent, MetaEntityFieldComponent, MetaEntityFieldEditorComponent, MetaEntityFormComponent, MetaEntityFormFieldComponent, MetaEntityFormSectionComponent, MetaEntityKeywordComponent, MetaEntityRelationComponent, MetaEntityRelationDefinitionComponent, MetaEntityTranslationComponent, MetaEntityViewFieldComponent, MustMatch, NewsComponent, NewsEditorComponent, PP_GRP_CUSTOM, PP_GRP_STANDARD, ParameterComponent, ParameterSectionComponent, ParameterValueComponent, PermissionComponent, PermissionEditorComponent, PpFacadeService, PresentationProfileActionService, PresentationProfileColumnComponent, PresentationProfileComponent, PresentationProfileItemComponent, PresentationProfileItemsComponent, PresentationProfileResolver, PresentationProfileTransformer, RatesActionService, RatingComponent, RatingSummaryComponent, RequestComponent, RequestEditorComponent, RequestEntityComponent, RequestResultComponent, RequestResultsComponent, RequestTypeComponent, ResetPasswordComponent, ResourceKeyComponent, ResourceLanguageComponent, ResourceLanguageEditorComponent, ResourceTranslationComponent, ResourceTranslationEditorComponent, RoleComponent, RoleEditorComponent, RolePermissionComponent, SearchComponent, SearchResult, SearchResultComponent, SearchSection, SelectUserCompanyActionService, SubcompanyComponent, SupplierCompanyComponent, SupplierComponent, SupplierEditorComponent, SynchronizedCompanyComponent, SystemGeneratedComponents, SystemGeneratedRoutes, SystemGeneratedSelectors, SystemSectionService, SystemSelectorMapperService, SystemUxModule, TvaRateComponent, TvaRateDetailComponent, TvaRateEditorComponent, UserAccountCompanyComponent, UserAccountComponent, UserAccountEditorComponent, UserAccountLoginComponent, UserAccountNewsComponent, UserAccountRoleComponent, UserAccountTokenComponent, UserCompanyComponent, UserFavoriteComponent, UserGroupComponent, UserGroupDefinitionComponent, UserGroupEditorComponent, UserHistoryComponent, UserMenuComponent, UserPermissionComponent, UserPermissionViewComponent, UserProfileAccountComponent, UserProfileComponent, UserRoleComponent, UserSessionComponent, VersionComponent };
21369
21605
 
21370
21606
  //# sourceMappingURL=dflat-core-web-system-ux.mjs.map