@dflat-core/web 1.7.2066 → 1.7.2068

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dflat-core/web",
3
- "version": "1.7.2066",
3
+ "version": "1.7.2068",
4
4
  "description": "Librairies Angular Dflat (core, core-*, system-*) et assets partagés, empaquetées en un module npm unique.",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {
@@ -135,18 +135,32 @@ export interface UserAccount extends EntityViewModel {
135
135
  UserAccountRoles?: number[];
136
136
  }
137
137
  export interface PresentationProfileItem extends EntityViewModel {
138
+ BaseUrl?: string;
139
+ ColumnDisplayType?: number;
138
140
  ColumnKey?: string;
139
141
  ColumnSourceType?: number;
140
142
  ColumnSourceTypeLabel?: string;
143
+ CompletingCharacter?: string;
144
+ Currency?: string;
145
+ CurrencyPropertyName?: string;
141
146
  CustomFieldId?: number;
142
147
  DeletionStatus?: boolean;
148
+ DisplayFormat?: string;
143
149
  DisplayOrder?: number;
150
+ DisplayWidth?: number;
151
+ EnumEntityName?: string;
144
152
  GroupId?: number;
145
153
  GroupName?: string;
154
+ HandleError?: boolean;
146
155
  Id?: number;
147
156
  IsAllowed?: boolean;
148
157
  IsLocked?: boolean;
149
158
  Label?: string;
159
+ MaxFractionDigits?: number;
160
+ MinFractionDigits?: number;
161
+ MinIntegerDigits?: number;
162
+ Multiplier?: number;
163
+ NullCaseText?: string;
150
164
  PresentationProfileId?: number;
151
165
  RowVersion?: Date;
152
166
  }
@@ -524,15 +538,29 @@ export interface PresentationProfileView extends EntityViewModel {
524
538
  UserAccountPseudo?: string;
525
539
  }
526
540
  export interface PresentationProfileItemView extends EntityViewModel {
541
+ BaseUrl?: string;
542
+ ColumnDisplayType?: number;
543
+ ColumnDisplayTypeLabel?: string;
527
544
  ColumnKey?: string;
528
545
  ColumnSourceType?: number;
529
546
  ColumnSourceTypeLabel?: string;
547
+ CompletingCharacter?: string;
548
+ Currency?: string;
549
+ CurrencyPropertyName?: string;
530
550
  CustomFieldId?: number;
551
+ DisplayFormat?: string;
531
552
  DisplayOrder?: number;
553
+ DisplayWidth?: number;
554
+ HandleError?: boolean;
532
555
  Id?: number;
533
556
  IsAllowed?: boolean;
534
557
  IsLocked?: boolean;
535
558
  Label?: string;
559
+ MaxFractionDigits?: number;
560
+ MinFractionDigits?: number;
561
+ MinIntegerDigits?: number;
562
+ Multiplier?: number;
563
+ NullCaseText?: string;
536
564
  PresentationProfileId?: number;
537
565
  RowVersion?: Date;
538
566
  }
@@ -1652,6 +1680,21 @@ export declare enum ColumnSourceTypes {
1652
1680
  View = 1,
1653
1681
  CustomField = 2
1654
1682
  }
1683
+ export declare enum ColumnDisplayTypes {
1684
+ Text = 0,
1685
+ Number = 1,
1686
+ Date = 2,
1687
+ DateTime = 3,
1688
+ Money = 4,
1689
+ Percent = 5,
1690
+ Boolean = 6,
1691
+ EnumImage = 7,
1692
+ WideEnumImage = 8,
1693
+ ImageFile = 9,
1694
+ Base64Image = 10,
1695
+ Url = 11,
1696
+ FixedSizeInteger = 12
1697
+ }
1655
1698
  export declare enum ImageUploadEventType {
1656
1699
  NotStarted = 0,
1657
1700
  InProgress = 1,
@@ -7,7 +7,7 @@ import { ActivatedRoute, Router, Routes } from "@angular/router";
7
7
  import * as i115 from "@dflat-core/web/core-ux";
8
8
  import { Action, ActionService, ActionsComponent, AlertService, ApplicationService, BaseComponent, BaseEditorComponent, BaseEntityEditor, DefaultLayoutComponent, DynamicFormComponent, EntityFacade, EntitySection, EntitySectionProvider, EntitySelector, FacadeModalService, IActionComponent, IIsCancel, IPpService, ISectionConfig, ImageService, LayoutPreferences, ModalService, NewEditorComponent, OrderableModalService, SelectorMapperServiceBase, ValidationService } from "@dflat-core/web/core-ux";
9
9
  import * as i118 from "@dflat-core/web/system-model";
10
- import { ActivationResults, AddressView, AddressViewFilterViewModel, ChangePasswordViewModel, CompanyFilterViewModel, CompanyView, Country, CountryFilterViewModel, Currency, CurrencyFilterViewModel, CustomFieldFilterViewModel, CustomFieldGroup, CustomFieldGroupEntityFilterViewModel, CustomFieldGroupEntityView, CustomFieldGroupFilterViewModel, CustomFieldGroupItemFilterViewModel, CustomFieldGroupItemView, CustomFieldOptionsFilterViewModel, CustomFieldOptionsView, CustomFieldValueFilterViewModel, CustomFieldValueView, CustomFieldView, DayInfo, DayInfoFilterViewModel, EntityFiles, EntityFilesFilterViewModel, ErrorCategory, ErrorCategoryFilterViewModel, ExchangeRateFilterViewModel, ExchangeRateView, FieldFilterTypes, FileDescriptor, FileTypes, FilesFilterViewModel, FilesView, FormEditorContext, ImageUploadEvent, Keyword, KeywordFilterViewModel, MetaEntity, MetaEntityField, MetaEntityFieldFilterViewModel, MetaEntityFilterViewModel, MetaEntityFormFieldFilterViewModel, MetaEntityFormFieldView, MetaEntityFormFilterViewModel, MetaEntityFormSectionFilterViewModel, MetaEntityFormSectionView, MetaEntityFormView, MetaEntityKeyword, MetaEntityKeywordFilterViewModel, MetaEntityRelation, MetaEntityRelationDefinition, MetaEntityRelationDefinitionFilterViewModel, MetaEntityRelationFilterViewModel, MetaEntityTranslation, MetaEntityTranslationFilterViewModel, MetaEntityViewField, MetaEntityViewFieldFilterViewModel, News, NewsFilterViewModel, ParameterSection, ParameterSectionFilterViewModel, ParameterValueView, ParameterValueViewFilterViewModel, ParameterView, ParameterViewFilterViewModel, Permission, PermissionFilterViewModel, PermissionView, PresentationContext, PresentationProfile, PresentationProfileFilterViewModel, PresentationProfileItem, PresentationProfileItemFilterViewModel, PresentationProfileItemView, PresentationProfilePurposes, PresentationProfileView, RatingFilterViewModel, RatingSummary, RatingSummaryFilterViewModel, RatingView, RequestEntity, RequestEntityFilterViewModel, RequestFilterViewModel, RequestResultFilterViewModel, RequestResultView, RequestType, RequestTypeFilterViewModel, RequestView, ResourceKey, ResourceKeyFilterViewModel, ResourceLanguage, ResourceLanguageFilterViewModel, ResourceTranslationFilterViewModel, ResourceTranslationView, RoleFilterViewModel, RolePermission, RolePermissionFilterViewModel, RoleView, SubcompanyFilterViewModel, SupplierCompany, SupplierCompanyFilterViewModel, SupplierFilterViewModel, SupplierView, SynchronizedCompanyView, SynchronizedCompanyViewFilterViewModel, TvaRateFilterViewModel, TvaRateView, UploadFileResult, UserAccount, UserAccountCompanyFilterViewModel, UserAccountCompanyView, UserAccountFilterViewModel, UserAccountLoginFilterViewModel, UserAccountLoginView, UserAccountNews, UserAccountNewsFilterViewModel, UserAccountRoleFilterViewModel, UserAccountRoleView, UserAccountToken, UserAccountTokenFilterViewModel, UserFavorite, UserFavoriteFilterViewModel, UserGroup, UserGroupDefinitionFilterViewModel, UserGroupDefinitionView, UserGroupFilterViewModel, UserHistory, UserHistoryFilterViewModel, UserPermissionView, UserPermissionViewFilterViewModel, UserProfileViewModel, UserSession, UserSessionFilterViewModel, Version, VersionFilterViewModel } from "@dflat-core/web/system-model";
10
+ import { ActivationResults, AddressView, AddressViewFilterViewModel, ChangePasswordViewModel, ColumnDisplayTypes, CompanyFilterViewModel, CompanyView, Country, CountryFilterViewModel, Currency, CurrencyFilterViewModel, CustomFieldFilterViewModel, CustomFieldGroup, CustomFieldGroupEntityFilterViewModel, CustomFieldGroupEntityView, CustomFieldGroupFilterViewModel, CustomFieldGroupItemFilterViewModel, CustomFieldGroupItemView, CustomFieldOptionsFilterViewModel, CustomFieldOptionsView, CustomFieldValueFilterViewModel, CustomFieldValueView, CustomFieldView, DayInfo, DayInfoFilterViewModel, EntityFiles, EntityFilesFilterViewModel, ErrorCategory, ErrorCategoryFilterViewModel, ExchangeRateFilterViewModel, ExchangeRateView, FieldFilterTypes, FileDescriptor, FileTypes, FilesFilterViewModel, FilesView, FormEditorContext, ImageUploadEvent, Keyword, KeywordFilterViewModel, MetaEntity, MetaEntityField, MetaEntityFieldFilterViewModel, MetaEntityFilterViewModel, MetaEntityFormFieldFilterViewModel, MetaEntityFormFieldView, MetaEntityFormFilterViewModel, MetaEntityFormSectionFilterViewModel, MetaEntityFormSectionView, MetaEntityFormView, MetaEntityKeyword, MetaEntityKeywordFilterViewModel, MetaEntityRelation, MetaEntityRelationDefinition, MetaEntityRelationDefinitionFilterViewModel, MetaEntityRelationFilterViewModel, MetaEntityTranslation, MetaEntityTranslationFilterViewModel, MetaEntityViewField, MetaEntityViewFieldFilterViewModel, News, NewsFilterViewModel, ParameterSection, ParameterSectionFilterViewModel, ParameterValueView, ParameterValueViewFilterViewModel, ParameterView, ParameterViewFilterViewModel, Permission, PermissionFilterViewModel, PermissionView, PresentationContext, PresentationProfile, PresentationProfileFilterViewModel, PresentationProfileItem, PresentationProfileItemFilterViewModel, PresentationProfileItemView, PresentationProfilePurposes, PresentationProfileView, RatingFilterViewModel, RatingSummary, RatingSummaryFilterViewModel, RatingView, RequestEntity, RequestEntityFilterViewModel, RequestFilterViewModel, RequestResultFilterViewModel, RequestResultView, RequestType, RequestTypeFilterViewModel, RequestView, ResourceKey, ResourceKeyFilterViewModel, ResourceLanguage, ResourceLanguageFilterViewModel, ResourceTranslationFilterViewModel, ResourceTranslationView, RoleFilterViewModel, RolePermission, RolePermissionFilterViewModel, RoleView, SubcompanyFilterViewModel, SupplierCompany, SupplierCompanyFilterViewModel, SupplierFilterViewModel, SupplierView, SynchronizedCompanyView, SynchronizedCompanyViewFilterViewModel, TvaRateFilterViewModel, TvaRateView, UploadFileResult, UserAccount, UserAccountCompanyFilterViewModel, UserAccountCompanyView, UserAccountFilterViewModel, UserAccountLoginFilterViewModel, UserAccountLoginView, UserAccountNews, UserAccountNewsFilterViewModel, UserAccountRoleFilterViewModel, UserAccountRoleView, UserAccountToken, UserAccountTokenFilterViewModel, UserFavorite, UserFavoriteFilterViewModel, UserGroup, UserGroupDefinitionFilterViewModel, UserGroupDefinitionView, UserGroupFilterViewModel, UserHistory, UserHistoryFilterViewModel, UserPermissionView, UserPermissionViewFilterViewModel, UserProfileViewModel, UserSession, UserSessionFilterViewModel, Version, VersionFilterViewModel } from "@dflat-core/web/system-model";
11
11
  import * as i114 from "@dflat-core/web/core-model";
12
12
  import { ApiError, ColumnDescriptor, EntityViewModel, EntityViewModelWithFields, FieldDescriptor, FilterDescriptor, HistoryItem, IExternalLoginProvider, IUserCredential, ImageFormats, PropertyEditorEvent, SaveResult, Section, SpecificSection, TreeItem, User } from "@dflat-core/web/core-model";
13
13
  import * as i119 from "@dflat-core/web/system-data";
@@ -3347,6 +3347,28 @@ export declare class UserCompanyComponent extends BaseUserAccountCompanyComponen
3347
3347
  static ɵfac: i0.ɵɵFactoryDeclaration<UserCompanyComponent, never>;
3348
3348
  static ɵcmp: i0.ɵɵComponentDeclaration<UserCompanyComponent, "alg-user-company", never, {}, {}, never, ["[actionsPanelContent]", "*"], false, never>;
3349
3349
  }
3350
+ /** Options d'affichage d'une colonne de profil, éditées selon le type d'affichage. */
3351
+ type ColumnDisplayOption = 'digits' | 'multiplier' | 'currency' | 'format' | 'nullCaseText' | 'handleError' | 'enum' | 'width' | 'baseUrl' | 'fixedSize';
3352
+ /** Description d'un type d'affichage (EnumColumnDisplayTypes) pour l'éditeur des profils. */
3353
+ interface ColumnDisplayTypeInfo {
3354
+ type: ColumnDisplayTypes;
3355
+ /** Libellé complet (liste des types). */
3356
+ label: string;
3357
+ /** Libellé court (indicateur de la colonne). */
3358
+ short: string;
3359
+ /** Icône Font Awesome 4.7 (sans le préfixe fa-). */
3360
+ icon: string;
3361
+ /** Options éditables pour ce type. */
3362
+ options: ColumnDisplayOption[];
3363
+ }
3364
+ /** Types d'affichage, dans l'ordre de la fenêtre d'édition d'une colonne. */
3365
+ declare const COLUMN_DISPLAY_TYPES: ColumnDisplayTypeInfo[];
3366
+ /** Type d'affichage d'un code, ou undefined (colonne sans affichage : affichage par défaut à l'enregistrement). */
3367
+ declare function getColumnDisplayType(type: number | null | undefined): ColumnDisplayTypeInfo | undefined;
3368
+ /** Champs d'affichage d'une colonne de profil (type et options). */
3369
+ declare const COLUMN_DISPLAY_FIELDS: (keyof PresentationProfileItem)[];
3370
+ /** Résumé lisible de l'affichage d'une colonne (infobulle de l'indicateur). */
3371
+ declare function describeColumnDisplay(item: PresentationProfileItem): string;
3350
3372
  declare namespace presentation_profile_editor_component_d_exports {
3351
3373
  export { PresentationProfileEditorComponent };
3352
3374
  }
@@ -3355,11 +3377,13 @@ declare namespace presentation_profile_editor_component_d_exports {
3355
3377
  * (PresentationProfileScreenComponent) à la place du formulaire standard : onglet « Propriétés »
3356
3378
  * (formulaire par défaut de l'entité : table, libellé, finalité, portée, puis utilisateur, source de
3357
3379
  * données ou rôle selon la portée ; avec les composants des formulaires) et onglet « Colonnes »
3358
- * (colonnes affichées, ordre et libellés). L'enregistrement passe par l'action « Enregistrer » de
3380
+ * (colonnes affichées, ordre, libellés et affichage : un indicateur du type d'affichage et un bouton
3381
+ * qui ouvre la fenêtre d'édition de la colonne). L'enregistrement passe par l'action « Enregistrer » de
3359
3382
  * l'écran : les colonnes modifiées sont publiées dans <c>Items</c> du profil.
3360
3383
  */
3361
3384
  export declare class PresentationProfileEditorComponent extends BaseEntityEditor<PresentationProfileView> implements OnInit {
3362
3385
  private itemData;
3386
+ private modalService;
3363
3387
  /** Onglet affiché : 0 pour « Propriétés », 1 pour « Colonnes ». */
3364
3388
  activeTab: number;
3365
3389
  /** Profil dont les colonnes sont chargées : les onglets ne s'affichent que pour lui. */
@@ -3374,6 +3398,8 @@ export declare class PresentationProfileEditorComponent extends BaseEntityEditor
3374
3398
  selectedIds: Set<string>;
3375
3399
  searchText: string;
3376
3400
  naturalLabelByKey: Map<string, string>;
3401
+ /** Colonne du catalogue par clé : affichage par défaut et type énuméré de la colonne. */
3402
+ private catalogByKey;
3377
3403
  /**
3378
3404
  * Champs qui se choisissent à la création du profil et ne se modifient plus ensuite : ils
3379
3405
  * désignent le profil (table, finalité, portée, utilisateur, source de données ou rôle).
@@ -3387,7 +3413,7 @@ export declare class PresentationProfileEditorComponent extends BaseEntityEditor
3387
3413
  get selectedCount(): number;
3388
3414
  /** Dernier état du profil en cours d'édition : modifications non enregistrées comprises. */
3389
3415
  private get current();
3390
- constructor(app: ApplicationService, validationService: ValidationService, itemData: PresentationProfileItemDataService);
3416
+ constructor(app: ApplicationService, validationService: ValidationService, itemData: PresentationProfileItemDataService, modalService: BsModalService);
3391
3417
  ngOnInit(): void;
3392
3418
  /** Champs du formulaire par défaut des profils ; la liste des tables ne propose que des tables (pas les vues). */
3393
3419
  protected alterSections(sections: Section[]): Section[];
@@ -3409,6 +3435,15 @@ export declare class PresentationProfileEditorComponent extends BaseEntityEditor
3409
3435
  /** Publie les colonnes choisies : le profil devient modifié, l'action « Enregistrer » les envoie. */
3410
3436
  onColumnsChanged(): void;
3411
3437
  getCatalogLabel(item: PresentationProfileItem): string;
3438
+ /** Type d'affichage de la colonne (indicateur), ou undefined : affichage par défaut à l'enregistrement. */
3439
+ getDisplayType(item: PresentationProfileItem): ColumnDisplayTypeInfo | undefined;
3440
+ /** Résumé de l'affichage de la colonne (infobulle de l'indicateur). */
3441
+ describeDisplay(item: PresentationProfileItem): string;
3442
+ /**
3443
+ * Ouvre la fenêtre d'édition de la colonne (libellé, affichage et options, drapeaux) ; la colonne
3444
+ * modifiée remplace celle de la liste et le profil devient modifié.
3445
+ */
3446
+ openColumn(item: PresentationProfileItem): void;
3412
3447
  onSearch(): void;
3413
3448
  /** Colonnes disponibles : catalogue sans les colonnes affichées, restreint au texte cherché. */
3414
3449
  private applyFilter;
@@ -3493,7 +3528,8 @@ export declare class PresentationProfileTransformer {
3493
3528
  static buildGroups(catalog: PresentationProfileItem[]): PpGroup[];
3494
3529
  /**
3495
3530
  * Converts resolved PresentationProfileItem[] into ColumnDescriptor[] for the data grid.
3496
- * Standard columns are matched from the backend descriptors by Property (ColumnKey);
3531
+ * Standard columns are matched from the backend descriptors by Property (ColumnKey) and keep their
3532
+ * display (type and options of the profile column, see SystemBaseController.GetGridColumns);
3497
3533
  * custom-field columns get a synthetic text descriptor.
3498
3534
  * item.Label is the custom override saved with the profile; it is null when the column keeps its
3499
3535
  * natural label, which is then the backend descriptor's Name (the column key only as a last resort).
@@ -3505,6 +3541,8 @@ export declare class PresentationProfileTransformer {
3505
3541
  static toAdminConfigContext(items: PresentationProfileItem[], profile: PresentationProfile): PresentationContext;
3506
3542
  /** Normalises selected columns into persistable items (order = position). */
3507
3543
  private static toSaveItems;
3544
+ /** Display settings of a column (type and options), as saved with the profile. */
3545
+ static displayOf(item: PresentationProfileItem): Partial<PresentationProfileItem>;
3508
3546
  /** Split selected items into standard column keys and custom-field ids (for export payloads). */
3509
3547
  static splitForExport(items: PresentationProfileItem[]): PpExportSplit;
3510
3548
  }