@dflat-core/web 1.0.14 → 1.0.15
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/LICENSE +21 -21
- package/README.md +157 -157
- package/assets/images/dflat-icone-positif.svg +1 -1
- package/assets/images/dflat-icone.svg +1 -1
- package/assets/images/dflat-ligature.svg +1 -1
- package/core-model/lib/model/interface.generated.d.ts +40 -17
- package/fesm2022/dflat-core-web-core-data.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core-model.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core-services.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core-ux.mjs +5 -5
- package/fesm2022/dflat-core-web-core-ux.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-data.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-model.mjs +4 -2
- package/fesm2022/dflat-core-web-system-model.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-root.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-ux.mjs +41 -41
- package/fesm2022/dflat-core-web-system-ux.mjs.map +1 -1
- package/fesm2022/dflat-core-web.mjs.map +1 -1
- package/package.json +12 -12
- package/scss/dflat-app.scss +83 -83
- package/system-data/lib/data-services/error-category-service.generated.d.ts +2 -1
- package/system-data/lib/data-services/permission-service.generated.d.ts +2 -1
- package/system-model/lib/model/interface.generated.d.ts +26 -47
|
@@ -110,9 +110,9 @@ class PresentationProfileTransformer {
|
|
|
110
110
|
Profile: {
|
|
111
111
|
...(profile ?? {}),
|
|
112
112
|
Label: label ?? profile?.Label,
|
|
113
|
-
|
|
113
|
+
PresentationProfilePurpose: purpose,
|
|
114
114
|
MetaEntityKey: key,
|
|
115
|
-
|
|
115
|
+
PresentationProfileScope: PresentationProfileScopes.User,
|
|
116
116
|
Items: PresentationProfileTransformer.toSaveItems(items),
|
|
117
117
|
},
|
|
118
118
|
};
|
|
@@ -177,8 +177,8 @@ class PresentationProfileResolver {
|
|
|
177
177
|
const scopeId = config.supplierId ?? config.roleId ?? undefined;
|
|
178
178
|
return {
|
|
179
179
|
MetaEntityKey: config.metaEntityKey,
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
PresentationProfilePurpose: config.purpose ?? PresentationProfilePurposes.Grid,
|
|
181
|
+
PresentationProfileScope: scopeType,
|
|
182
182
|
ScopeId: scopeId,
|
|
183
183
|
};
|
|
184
184
|
}
|
|
@@ -4252,8 +4252,8 @@ class PresentationProfileColumnComponent {
|
|
|
4252
4252
|
return this.activeSection === PresentationProfileScopes.Role ? 'ID Rôle' : 'ID Fournisseur';
|
|
4253
4253
|
}
|
|
4254
4254
|
get isPerimeter() {
|
|
4255
|
-
return this.activeProfile?.
|
|
4256
|
-
|| this.activeProfile?.
|
|
4255
|
+
return this.activeProfile?.PresentationProfileScope === PresentationProfileScopes.Role
|
|
4256
|
+
|| this.activeProfile?.PresentationProfileScope === PresentationProfileScopes.Supplier;
|
|
4257
4257
|
}
|
|
4258
4258
|
get selectedCount() { return this.orderedSelection.length; }
|
|
4259
4259
|
get canSave() { return !!this.activeProfile && !this.isSaving; }
|
|
@@ -4313,8 +4313,8 @@ class PresentationProfileColumnComponent {
|
|
|
4313
4313
|
this.message = '';
|
|
4314
4314
|
const listFilter = {
|
|
4315
4315
|
MetaEntityKey: this.filterKey || undefined,
|
|
4316
|
-
|
|
4317
|
-
|
|
4316
|
+
PresentationProfilePurpose: this.filterPurpose,
|
|
4317
|
+
PresentationProfileScope: this.activeSection,
|
|
4318
4318
|
ScopeId: this.filterIsPerimeter ? this.filterScopeId : null,
|
|
4319
4319
|
EnablePaging: false,
|
|
4320
4320
|
};
|
|
@@ -4329,9 +4329,9 @@ class PresentationProfileColumnComponent {
|
|
|
4329
4329
|
return;
|
|
4330
4330
|
}
|
|
4331
4331
|
this.activeProfile = {
|
|
4332
|
-
|
|
4332
|
+
PresentationProfilePurpose: this.filterPurpose,
|
|
4333
4333
|
MetaEntityKey: this.filterKey.trim(),
|
|
4334
|
-
|
|
4334
|
+
PresentationProfileScope: this.activeSection,
|
|
4335
4335
|
ScopeId: this.filterIsPerimeter ? this.filterScopeId : null,
|
|
4336
4336
|
};
|
|
4337
4337
|
this.message = '';
|
|
@@ -4379,7 +4379,7 @@ class PresentationProfileColumnComponent {
|
|
|
4379
4379
|
const scopeType = supplierId != null ? PresentationProfileScopes.Supplier
|
|
4380
4380
|
: roleId != null ? PresentationProfileScopes.Role : undefined;
|
|
4381
4381
|
const catalogFilter = {
|
|
4382
|
-
MetaEntityKey: key,
|
|
4382
|
+
MetaEntityKey: key, PresentationProfileScope: scopeType, ScopeId: supplierId ?? roleId ?? null,
|
|
4383
4383
|
};
|
|
4384
4384
|
const catalog$ = this.itemData.getCatalog(catalogFilter).pipe(catchError(() => of([])));
|
|
4385
4385
|
const items$ = profileId != null
|
|
@@ -4490,17 +4490,17 @@ class PresentationProfileColumnComponent {
|
|
|
4490
4490
|
});
|
|
4491
4491
|
}
|
|
4492
4492
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PresentationProfileColumnComponent, deps: [{ token: i2.PresentationProfileDataService }, { token: i2.PresentationProfileItemDataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4493
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: PresentationProfileColumnComponent, isStandalone: false, selector: "alg-pp-column", ngImport: i0, template: "<div class=\"gcc\">\r\n\r\n <!-- \u2500\u2500 SCOPE SECTION TABS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__sections\">\r\n <button *ngFor=\"let sec of scopeSections\"\r\n class=\"gcc__section-tab\"\r\n [class.gcc__section-tab--active]=\"activeSection === sec.scope\"\r\n type=\"button\"\r\n (click)=\"setSection(sec.scope)\">\r\n <i class=\"fa\" [ngClass]=\"'fa-' + sec.icon\"></i> {{ sec.label }}\r\n </button>\r\n </div>\r\n\r\n <!-- \u2500\u2500 FILTER TOOLBAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__toolbar\">\r\n <div class=\"gcc__field\">\r\n <label>Finalit\u00E9</label>\r\n <select [(ngModel)]=\"filterPurpose\" (ngModelChange)=\"search()\">\r\n <option *ngFor=\"let p of purposeOptions\" [ngValue]=\"p.value\">{{ p.label }}</option>\r\n </select>\r\n </div>\r\n <div class=\"gcc__field\">\r\n <label>Cl\u00E9 de grille</label>\r\n <input type=\"text\" [(ngModel)]=\"filterKey\" placeholder=\"ex. PDTV\" (keydown.enter)=\"search()\" />\r\n </div>\r\n <div class=\"gcc__field\" *ngIf=\"filterIsPerimeter\">\r\n <label>{{ scopeIdLabel }}</label>\r\n <input type=\"number\" [(ngModel)]=\"filterScopeId\" (keydown.enter)=\"search()\" />\r\n </div>\r\n <button class=\"btn btn-secondary\" (click)=\"search()\" [disabled]=\"isLoadingList\">\r\n <i class=\"fa fa-search\"></i> Rechercher\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"message\" class=\"gcc__message\">{{ message }}</div>\r\n\r\n <!-- \u2500\u2500 4-PANEL BODY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__body\">\r\n\r\n <!-- \u2500\u2500 Panel 1: Profile list (left sidebar) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__configs\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-title\">\r\n Profils <span class=\"gcc__count\">{{ profiles.length }}</span>\r\n </span>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"newProfile()\" title=\"Nouveau profil\">\r\n <i class=\"fa fa-plus\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"gcc__list-scroll\">\r\n <div *ngIf=\"isLoadingList\" class=\"gcc__spinner\">\r\n <i class=\"fa fa-circle-o-notch fa-spin\"></i> Chargement\u2026\r\n </div>\r\n <p *ngIf=\"!isLoadingList && profiles.length === 0\" class=\"gcc__empty\">\r\n Aucun profil trouv\u00E9.\r\n </p>\r\n <table *ngIf=\"!isLoadingList && profiles.length > 0\" class=\"gcc__table\">\r\n <thead>\r\n <tr>\r\n <th>Cl\u00E9</th>\r\n <th>Finalit\u00E9</th>\r\n <th *ngIf=\"filterIsPerimeter\">P\u00E9rim\u00E8tre</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let p of profiles\"\r\n class=\"gcc__config-row\"\r\n [class.gcc__config-row--selected]=\"activeProfile?.Id === p.Id\"\r\n (click)=\"selectProfile(p)\">\r\n <td class=\"gcc__key\">{{ p.MetaEntityKey }}</td>\r\n <td class=\"gcc__muted\">{{ getPurposeLabel(p.PurposeType) }}</td>\r\n <td *ngIf=\"filterIsPerimeter\" class=\"gcc__muted\">#{{ p.ScopeId }}</td>\r\n <td class=\"gcc__actions-cell\">\r\n <button class=\"gcc__del-btn\" (click)=\"deleteProfile(p, $event)\" title=\"Supprimer\">\r\n <i class=\"fa fa-trash\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n\r\n <!-- \u2500\u2500 Panels 2/3/4: only when a profile is active \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <ng-container *ngIf=\"activeProfile; else noProfileTpl\">\r\n\r\n <div class=\"gcc__editor\">\r\n\r\n <div class=\"gcc__editor-hd\">\r\n <span class=\"gcc__panel-title\">\r\n {{ activeProfile.MetaEntityKey }}\r\n <span class=\"gcc__muted gcc__fw-normal\">\u00B7 {{ getPurposeLabel(activeProfile.PurposeType) }}</span>\r\n <span *ngIf=\"activeProfile.ScopeId != null\" class=\"gcc__muted gcc__fw-normal\"> #{{ activeProfile.ScopeId }}</span>\r\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *ngIf=\"isLoading\" class=\"gcc__loading\">\r\n <span class=\"gcc__spinner-icon fa fa-circle-o-notch fa-spin\"></span>\r\n Chargement des colonnes\u2026\r\n </div>\r\n\r\n <div *ngIf=\"!isLoading\" class=\"gcc__panels\">\r\n\r\n <!-- \u2500\u2500 Panel 2: Group selector \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__groups\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-label\">Sections</span>\r\n </div>\r\n <ul class=\"gcc__group-list\">\r\n <li class=\"gcc__group-item\"\r\n [class.gcc__group-item--active]=\"selectedGroup === null\"\r\n (click)=\"selectGroup(null)\">\r\n <span class=\"gcc__group-item__name\">Toutes les colonnes</span>\r\n <span class=\"gcc__badge\">{{ allItems.length }}</span>\r\n </li>\r\n <li *ngFor=\"let group of groups\"\r\n class=\"gcc__group-item\"\r\n [class.gcc__group-item--active]=\"selectedGroup?.id === group.id\"\r\n [class.gcc__group-item--standard]=\"group.id === 'standard'\"\r\n [class.gcc__group-item--custom]=\"group.isCustom\"\r\n (click)=\"selectGroup(group)\">\r\n <span class=\"gcc__group-item__name\">{{ group.label }}</span>\r\n <div class=\"gcc__group-meta\">\r\n <span *ngIf=\"getGroupSelectedCount(group) > 0\" class=\"gcc__badge gcc__badge--primary\">{{ getGroupSelectedCount(group) }}</span>\r\n <span class=\"gcc__badge\">{{ getGroupCount(group) }}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <!-- \u2500\u2500 Panel 3: Catalog browse \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__browse\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-label\">\r\n {{ selectedGroup == null ? 'Toutes' : selectedGroup.label }}\r\n </span>\r\n <input class=\"gcc__search\" type=\"text\" placeholder=\"Rechercher\u2026\"\r\n [(ngModel)]=\"searchText\" (ngModelChange)=\"onSearch()\">\r\n </div>\r\n\r\n <div class=\"gcc__table-wrap\">\r\n <table class=\"gcc__browse-table\">\r\n <thead>\r\n <tr>\r\n <th class=\"gcc__col-check\">\r\n <input type=\"checkbox\"\r\n [checked]=\"allVisibleSelected\"\r\n [indeterminate]=\"someVisibleSelected\"\r\n (change)=\"toggleAll()\"\r\n title=\"Tout s\u00E9lectionner / d\u00E9s\u00E9lectionner\">\r\n </th>\r\n <th class=\"gcc__col-key\">Cl\u00E9</th>\r\n <th>Colonne</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredItems\"\r\n class=\"gcc__browse-row\"\r\n [class.gcc__browse-row--selected]=\"isSelected(item)\"\r\n [class.gcc__browse-row--custom]=\"item.ColumnSourceType === 2\"\r\n (click)=\"toggleItem(item)\">\r\n <td class=\"gcc__col-check\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [checked]=\"isSelected(item)\" (change)=\"toggleItem(item)\">\r\n </td>\r\n <td class=\"gcc__col-key\">{{ item.ColumnKey }}</td>\r\n <td class=\"gcc__col-name\">{{ item.Label ?? item.ColumnKey }}</td>\r\n </tr>\r\n <tr *ngIf=\"filteredItems.length === 0\">\r\n <td colspan=\"3\" class=\"gcc__browse-empty\">Aucune colonne trouv\u00E9e</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n\r\n <!-- \u2500\u2500 Panel 4: Ordered selection with admin flags \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__selection\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-label\">Colonnes s\u00E9lectionn\u00E9es</span>\r\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\r\n </div>\r\n\r\n <div *ngIf=\"orderedSelection.length > 0\" class=\"gcc__sel-legend\">\r\n <span class=\"gcc__sel-legend__drag\"></span>\r\n <span class=\"gcc__sel-legend__pos\">#</span>\r\n <span class=\"gcc__sel-legend__code\">Cl\u00E9</span>\r\n <span class=\"gcc__sel-legend__label\">\u00C9tiquette</span>\r\n <ng-container *ngIf=\"isPerimeter\">\r\n <span class=\"gcc__sel-legend__flag\">Aut.</span>\r\n </ng-container>\r\n <span class=\"gcc__sel-legend__flag\">Ver.</span>\r\n <span class=\"gcc__sel-legend__remove\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"orderedSelection.length === 0\" class=\"gcc__sel-empty\">\r\n <span class=\"fa fa-columns gcc__sel-empty__icon\"></span>\r\n <p>Cochez des colonnes \u00E0 gauche</p>\r\n </div>\r\n\r\n <div *ngIf=\"orderedSelection.length > 0\"\r\n class=\"gcc__sel-list\"\r\n cdkDropList\r\n [cdkDropListData]=\"orderedSelection\"\r\n (cdkDropListDropped)=\"onDrop($event)\">\r\n\r\n <div *ngFor=\"let item of orderedSelection; let i = index\"\r\n class=\"gcc__sel-item\"\r\n cdkDrag\r\n [cdkDragData]=\"item\">\r\n\r\n <div class=\"gcc__sel-item__placeholder\" *cdkDragPlaceholder></div>\r\n\r\n <span class=\"gcc__sel-item__drag\" cdkDragHandle>\r\n <i class=\"fa fa-bars\"></i>\r\n </span>\r\n\r\n <span class=\"gcc__sel-item__pos\">{{ i + 1 }}</span>\r\n\r\n <span class=\"gcc__sel-item__code\"\r\n [class.gcc__sel-item__code--cf]=\"item.ColumnSourceType === 2\"\r\n [title]=\"item.ColumnKey\">\r\n {{ item.ColumnKey }}\r\n </span>\r\n\r\n <input class=\"gcc__sel-item__label\" type=\"text\"\r\n [placeholder]=\"getCatalogLabel(item)\"\r\n [(ngModel)]=\"item.Label\"\r\n (click)=\"$event.stopPropagation()\"\r\n title=\"\u00C9tiquette personnalis\u00E9e\">\r\n\r\n <!-- Perimeter scope: allowed flag -->\r\n <ng-container *ngIf=\"isPerimeter\">\r\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.IsAllowed\" title=\"Autoris\u00E9\">\r\n </label>\r\n </ng-container>\r\n\r\n <!-- Always: locked flag -->\r\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.IsLocked\" title=\"Verrouill\u00E9\">\r\n </label>\r\n\r\n <button class=\"gcc__sel-item__remove\" type=\"button\"\r\n (click)=\"removeFromSelection(item); $event.stopPropagation()\"\r\n title=\"Retirer\">✕</button>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Footer / save -->\r\n <div class=\"gcc__sel-footer\">\r\n <span class=\"gcc__sel-footer__info\">\r\n <ng-container *ngIf=\"selectedCount > 0\">\r\n {{ selectedCount }} colonne(s) \u2014 glissez pour r\u00E9ordonner\r\n </ng-container>\r\n </span>\r\n <button class=\"btn btn-primary btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"!canSave\">\r\n <i class=\"fa\"\r\n [class.fa-save]=\"!isSaving\"\r\n [class.fa-circle-o-notch]=\"isSaving\"\r\n [class.fa-spin]=\"isSaving\"></i>\r\n Enregistrer\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div><!-- /.gcc__panels -->\r\n </div><!-- /.gcc__editor -->\r\n\r\n </ng-container>\r\n\r\n <ng-template #noProfileTpl>\r\n <div class=\"gcc__hint\">\r\n <i class=\"fa fa-arrow-left\"></i> S\u00E9lectionnez ou cr\u00E9ez un profil\r\n </div>\r\n </ng-template>\r\n\r\n </div><!-- /.gcc__body -->\r\n</div>\r\n", styles: [".gcc{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1rem;box-sizing:border-box;gap:.75rem}.gcc__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;flex-shrink:0}.gcc__field{display:flex;flex-direction:column;gap:.25rem}.gcc__field label{font-size:.75rem;font-weight:600;color:#6c757d}.gcc__field input,.gcc__field select{min-width:9rem;padding:.35rem .5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.85rem}.gcc__message{padding:.5rem .75rem;background:#eef3f8;border-left:3px solid #4465C9;border-radius:.25rem;font-size:.85rem;flex-shrink:0}.gcc__body{flex:1;display:flex;gap:0;overflow:hidden;min-height:0;border:1px solid #e9ecef;border-radius:.25rem;background:#fff}.gcc__panel-hd{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__panel-title{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:6px}.gcc__panel-label{font-size:.75rem;font-weight:600;color:#495057}.gcc__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:16px;padding:0 5px;background:#4465c91f;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;background:#4465c91a;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge--primary{background:#4465c9;color:#fff}.gcc__muted{color:#6c757d;font-size:.8rem}.gcc__fw-normal{font-weight:400}.gcc__configs{display:flex;flex-direction:column;flex:0 0 220px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__list-scroll{flex:1;overflow:auto}.gcc__table{width:100%;border-collapse:collapse}.gcc__table th,.gcc__table td{padding:.35rem .6rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__config-row{cursor:pointer;transition:background .1s}.gcc__config-row:hover{background:#4465c90a}.gcc__config-row--selected{background:#4465c914;border-left:3px solid #4465C9}.gcc__config-row--selected td:first-child{padding-left:calc(.6rem - 3px)}.gcc__key{font-family:monospace;font-weight:600;color:#4465c9;font-size:.78rem}.gcc__scope-badge{display:inline-block;padding:1px 5px;border-radius:20px;background:#4465c91a;color:#4465c9;font-size:9px;font-weight:700;text-transform:uppercase}.gcc__actions-cell{text-align:right;width:28px}.gcc__del-btn{background:none;border:none;color:#adb5bd;cursor:pointer;padding:2px 4px;border-radius:3px;font-size:.72rem;transition:color .1s}.gcc__del-btn:hover{color:#dc3545}.gcc__spinner{display:flex;align-items:center;gap:8px;padding:1rem .75rem;color:#6c757d;font-size:.8rem}.gcc__empty{padding:1.25rem .75rem;color:#6c757d;font-style:italic;font-size:.8rem}.gcc__editor{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.gcc__editor-hd{display:flex;align-items:center;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__loading{display:flex;align-items:center;gap:8px;padding:1.5rem 1rem;color:#6c757d;font-size:.85rem;flex-shrink:0}.gcc__spinner-icon{font-size:1rem}.gcc__panels{flex:1;display:flex;overflow:hidden;min-height:0}.gcc__groups{display:flex;flex-direction:column;flex:0 0 160px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__group-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto}.gcc__group-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;cursor:pointer;font-size:.78rem;border-bottom:1px solid #e9ecef;transition:background .1s}.gcc__group-item:hover{background:#4465c90a}.gcc__group-item--active{background:#4465c914;font-weight:600;color:#4465c9}.gcc__group-item--standard .gcc__group-item__name{color:#4465c9}.gcc__group-item--custom .gcc__group-item__name{color:#6b7fd4}.gcc__group-item__name{flex:1}.gcc__group-meta{display:flex;align-items:center;gap:3px}.gcc__browse{display:flex;flex-direction:column;flex:1;border-right:1px solid #e9ecef;overflow:hidden;min-width:0}.gcc__search{height:26px;padding:0 .5rem;border:1px solid #ced4da;border-radius:.2rem;font-size:.78rem;width:140px}.gcc__table-wrap{flex:1;overflow:auto}.gcc__table-wrap::-webkit-scrollbar{width:5px}.gcc__table-wrap::-webkit-scrollbar-track{background:transparent}.gcc__table-wrap::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__browse-table{width:100%;border-collapse:collapse}.gcc__browse-table th,.gcc__browse-table td{padding:.3rem .5rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__browse-table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__browse-row{cursor:pointer;transition:background .1s}.gcc__browse-row:hover{background:#4465c90a}.gcc__browse-row--selected{background:#4465c914}.gcc__browse-row--custom .gcc__col-key{color:#6b7fd4}.gcc__col-check{width:28px;text-align:center}.gcc__col-key{font-family:monospace;font-size:11px;font-weight:600;color:#4465c9;width:130px}.gcc__browse-empty{padding:1rem .75rem;color:#6c757d;font-style:italic;font-size:.78rem}.gcc__selection{display:flex;flex-direction:column;flex:0 0 380px;overflow:hidden}.gcc__sel-legend{display:flex;align-items:center;padding:3px .5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6c757d;flex-shrink:0;gap:0}.gcc__sel-legend__drag{width:20px;flex-shrink:0}.gcc__sel-legend__pos{width:22px;flex-shrink:0;text-align:center}.gcc__sel-legend__code{width:80px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__label{flex:1;min-width:0}.gcc__sel-legend__flag{width:36px;text-align:center;flex-shrink:0}.gcc__sel-legend__width{width:50px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__remove{width:22px;flex-shrink:0}.gcc__sel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#6c757d;gap:.5rem;font-size:.8rem}.gcc__sel-empty__icon{font-size:2rem;opacity:.3}.gcc__sel-empty p{margin:0}.gcc__sel-list{flex:1;overflow-y:auto}.gcc__sel-list::-webkit-scrollbar{width:4px}.gcc__sel-list::-webkit-scrollbar-track{background:transparent}.gcc__sel-list::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__sel-item{display:flex;align-items:center;padding:4px .5rem;border-bottom:1px solid #e9ecef;background:#fff;-webkit-user-select:none;user-select:none;gap:0;transition:background .1s}.gcc__sel-item:hover{background:#4465c908}.gcc__sel-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__sel-item__placeholder{height:32px;background:#4465c90f;border:1px dashed #4465C9;border-radius:2px;flex:1}.gcc__sel-item__drag{width:20px;flex-shrink:0;color:#ced4da;cursor:grab;font-size:11px;display:flex;align-items:center;justify-content:center}.gcc__sel-item__drag:hover{color:#4465c9}.gcc__sel-item__drag:active{cursor:grabbing}.gcc__sel-item__pos{width:22px;flex-shrink:0;font-size:9px;color:#6c757d;text-align:center}.gcc__sel-item__code{width:80px;flex-shrink:0;font-family:monospace;font-size:10px;font-weight:600;color:#4465c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2px}.gcc__sel-item__code--cf{color:#6b7fd4}.gcc__sel-item__label{flex:1;min-width:0;height:22px;padding:0 4px;border:1px solid transparent;border-radius:3px;font-size:11px;color:#343a40;background:transparent;outline:none;transition:border-color .1s,background .1s}.gcc__sel-item__label::placeholder{color:#6c757d;font-style:italic}.gcc__sel-item__label:hover{border-color:#d1d8de;background:#f8f9fa}.gcc__sel-item__label:focus{border-color:#4465c9;background:#fff}.gcc__sel-item__remove{width:22px;flex-shrink:0;background:none;border:none;color:#adb5bd;cursor:pointer;font-size:11px;padding:0;text-align:center;transition:color .1s}.gcc__sel-item__remove:hover{color:#dc3545}.gcc__sel-list.cdk-drop-list-dragging .gcc__sel-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__flag{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}.gcc__flag input[type=checkbox]{cursor:pointer}.gcc__item-width{width:46px;flex-shrink:0;padding:1px 3px;border:1px solid #ced4da;border-radius:3px;font-size:10px;text-align:right}.gcc__sel-footer{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-top:1px solid #e9ecef;flex-shrink:0}.gcc__sel-footer__info{font-size:.75rem;color:#6c757d;font-style:italic}.gcc__hint{display:flex;align-items:center;justify-content:center;flex:1;color:#6c757d;font-style:italic;font-size:.85rem}\n"], dependencies: [{ kind: "directive", type: i2$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$1.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4493
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: PresentationProfileColumnComponent, isStandalone: false, selector: "alg-pp-column", ngImport: i0, template: "<div class=\"gcc\">\n\n <!-- \u2500\u2500 SCOPE SECTION TABS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__sections\">\n <button *ngFor=\"let sec of scopeSections\"\n class=\"gcc__section-tab\"\n [class.gcc__section-tab--active]=\"activeSection === sec.scope\"\n type=\"button\"\n (click)=\"setSection(sec.scope)\">\n <i class=\"fa\" [ngClass]=\"'fa-' + sec.icon\"></i> {{ sec.label }}\n </button>\n </div>\n\n <!-- \u2500\u2500 FILTER TOOLBAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__toolbar\">\n <div class=\"gcc__field\">\n <label>Finalit\u00E9</label>\n <select [(ngModel)]=\"filterPurpose\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let p of purposeOptions\" [ngValue]=\"p.value\">{{ p.label }}</option>\n </select>\n </div>\n <div class=\"gcc__field\">\n <label>Cl\u00E9 de grille</label>\n <input type=\"text\" [(ngModel)]=\"filterKey\" placeholder=\"ex. PDTV\" (keydown.enter)=\"search()\" />\n </div>\n <div class=\"gcc__field\" *ngIf=\"filterIsPerimeter\">\n <label>{{ scopeIdLabel }}</label>\n <input type=\"number\" [(ngModel)]=\"filterScopeId\" (keydown.enter)=\"search()\" />\n </div>\n <button class=\"btn btn-secondary\" (click)=\"search()\" [disabled]=\"isLoadingList\">\n <i class=\"fa fa-search\"></i> Rechercher\n </button>\n </div>\n\n <div *ngIf=\"message\" class=\"gcc__message\">{{ message }}</div>\n\n <!-- \u2500\u2500 4-PANEL BODY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__body\">\n\n <!-- \u2500\u2500 Panel 1: Profile list (left sidebar) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__configs\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-title\">\n Profils <span class=\"gcc__count\">{{ profiles.length }}</span>\n </span>\n <button class=\"btn btn-sm btn-primary\" (click)=\"newProfile()\" title=\"Nouveau profil\">\n <i class=\"fa fa-plus\"></i>\n </button>\n </div>\n\n <div class=\"gcc__list-scroll\">\n <div *ngIf=\"isLoadingList\" class=\"gcc__spinner\">\n <i class=\"fa fa-circle-o-notch fa-spin\"></i> Chargement\u2026\n </div>\n <p *ngIf=\"!isLoadingList && profiles.length === 0\" class=\"gcc__empty\">\n Aucun profil trouv\u00E9.\n </p>\n <table *ngIf=\"!isLoadingList && profiles.length > 0\" class=\"gcc__table\">\n <thead>\n <tr>\n <th>Cl\u00E9</th>\n <th>Finalit\u00E9</th>\n <th *ngIf=\"filterIsPerimeter\">P\u00E9rim\u00E8tre</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let p of profiles\"\n class=\"gcc__config-row\"\n [class.gcc__config-row--selected]=\"activeProfile?.Id === p.Id\"\n (click)=\"selectProfile(p)\">\n <td class=\"gcc__key\">{{ p.MetaEntityKey }}</td>\n <td class=\"gcc__muted\">{{ getPurposeLabel(p.PresentationProfilePurpose) }}</td>\n <td *ngIf=\"filterIsPerimeter\" class=\"gcc__muted\">#{{ p.ScopeId }}</td>\n <td class=\"gcc__actions-cell\">\n <button class=\"gcc__del-btn\" (click)=\"deleteProfile(p, $event)\" title=\"Supprimer\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- \u2500\u2500 Panels 2/3/4: only when a profile is active \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <ng-container *ngIf=\"activeProfile; else noProfileTpl\">\n\n <div class=\"gcc__editor\">\n\n <div class=\"gcc__editor-hd\">\n <span class=\"gcc__panel-title\">\n {{ activeProfile.MetaEntityKey }}\n <span class=\"gcc__muted gcc__fw-normal\">\u00B7 {{ getPurposeLabel(activeProfile.PresentationProfilePurpose) }}</span>\n <span *ngIf=\"activeProfile.ScopeId != null\" class=\"gcc__muted gcc__fw-normal\"> #{{ activeProfile.ScopeId }}</span>\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\n </span>\n </div>\n\n <div *ngIf=\"isLoading\" class=\"gcc__loading\">\n <span class=\"gcc__spinner-icon fa fa-circle-o-notch fa-spin\"></span>\n Chargement des colonnes\u2026\n </div>\n\n <div *ngIf=\"!isLoading\" class=\"gcc__panels\">\n\n <!-- \u2500\u2500 Panel 2: Group selector \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__groups\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-label\">Sections</span>\n </div>\n <ul class=\"gcc__group-list\">\n <li class=\"gcc__group-item\"\n [class.gcc__group-item--active]=\"selectedGroup === null\"\n (click)=\"selectGroup(null)\">\n <span class=\"gcc__group-item__name\">Toutes les colonnes</span>\n <span class=\"gcc__badge\">{{ allItems.length }}</span>\n </li>\n <li *ngFor=\"let group of groups\"\n class=\"gcc__group-item\"\n [class.gcc__group-item--active]=\"selectedGroup?.id === group.id\"\n [class.gcc__group-item--standard]=\"group.id === 'standard'\"\n [class.gcc__group-item--custom]=\"group.isCustom\"\n (click)=\"selectGroup(group)\">\n <span class=\"gcc__group-item__name\">{{ group.label }}</span>\n <div class=\"gcc__group-meta\">\n <span *ngIf=\"getGroupSelectedCount(group) > 0\" class=\"gcc__badge gcc__badge--primary\">{{ getGroupSelectedCount(group) }}</span>\n <span class=\"gcc__badge\">{{ getGroupCount(group) }}</span>\n </div>\n </li>\n </ul>\n </div>\n\n <!-- \u2500\u2500 Panel 3: Catalog browse \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__browse\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-label\">\n {{ selectedGroup == null ? 'Toutes' : selectedGroup.label }}\n </span>\n <input class=\"gcc__search\" type=\"text\" placeholder=\"Rechercher\u2026\"\n [(ngModel)]=\"searchText\" (ngModelChange)=\"onSearch()\">\n </div>\n\n <div class=\"gcc__table-wrap\">\n <table class=\"gcc__browse-table\">\n <thead>\n <tr>\n <th class=\"gcc__col-check\">\n <input type=\"checkbox\"\n [checked]=\"allVisibleSelected\"\n [indeterminate]=\"someVisibleSelected\"\n (change)=\"toggleAll()\"\n title=\"Tout s\u00E9lectionner / d\u00E9s\u00E9lectionner\">\n </th>\n <th class=\"gcc__col-key\">Cl\u00E9</th>\n <th>Colonne</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of filteredItems\"\n class=\"gcc__browse-row\"\n [class.gcc__browse-row--selected]=\"isSelected(item)\"\n [class.gcc__browse-row--custom]=\"item.ColumnSourceType === 2\"\n (click)=\"toggleItem(item)\">\n <td class=\"gcc__col-check\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [checked]=\"isSelected(item)\" (change)=\"toggleItem(item)\">\n </td>\n <td class=\"gcc__col-key\">{{ item.ColumnKey }}</td>\n <td class=\"gcc__col-name\">{{ item.Label ?? item.ColumnKey }}</td>\n </tr>\n <tr *ngIf=\"filteredItems.length === 0\">\n <td colspan=\"3\" class=\"gcc__browse-empty\">Aucune colonne trouv\u00E9e</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- \u2500\u2500 Panel 4: Ordered selection with admin flags \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__selection\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-label\">Colonnes s\u00E9lectionn\u00E9es</span>\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\n </div>\n\n <div *ngIf=\"orderedSelection.length > 0\" class=\"gcc__sel-legend\">\n <span class=\"gcc__sel-legend__drag\"></span>\n <span class=\"gcc__sel-legend__pos\">#</span>\n <span class=\"gcc__sel-legend__code\">Cl\u00E9</span>\n <span class=\"gcc__sel-legend__label\">\u00C9tiquette</span>\n <ng-container *ngIf=\"isPerimeter\">\n <span class=\"gcc__sel-legend__flag\">Aut.</span>\n </ng-container>\n <span class=\"gcc__sel-legend__flag\">Ver.</span>\n <span class=\"gcc__sel-legend__remove\"></span>\n </div>\n\n <div *ngIf=\"orderedSelection.length === 0\" class=\"gcc__sel-empty\">\n <span class=\"fa fa-columns gcc__sel-empty__icon\"></span>\n <p>Cochez des colonnes \u00E0 gauche</p>\n </div>\n\n <div *ngIf=\"orderedSelection.length > 0\"\n class=\"gcc__sel-list\"\n cdkDropList\n [cdkDropListData]=\"orderedSelection\"\n (cdkDropListDropped)=\"onDrop($event)\">\n\n <div *ngFor=\"let item of orderedSelection; let i = index\"\n class=\"gcc__sel-item\"\n cdkDrag\n [cdkDragData]=\"item\">\n\n <div class=\"gcc__sel-item__placeholder\" *cdkDragPlaceholder></div>\n\n <span class=\"gcc__sel-item__drag\" cdkDragHandle>\n <i class=\"fa fa-bars\"></i>\n </span>\n\n <span class=\"gcc__sel-item__pos\">{{ i + 1 }}</span>\n\n <span class=\"gcc__sel-item__code\"\n [class.gcc__sel-item__code--cf]=\"item.ColumnSourceType === 2\"\n [title]=\"item.ColumnKey\">\n {{ item.ColumnKey }}\n </span>\n\n <input class=\"gcc__sel-item__label\" type=\"text\"\n [placeholder]=\"getCatalogLabel(item)\"\n [(ngModel)]=\"item.Label\"\n (click)=\"$event.stopPropagation()\"\n title=\"\u00C9tiquette personnalis\u00E9e\">\n\n <!-- Perimeter scope: allowed flag -->\n <ng-container *ngIf=\"isPerimeter\">\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [(ngModel)]=\"item.IsAllowed\" title=\"Autoris\u00E9\">\n </label>\n </ng-container>\n\n <!-- Always: locked flag -->\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [(ngModel)]=\"item.IsLocked\" title=\"Verrouill\u00E9\">\n </label>\n\n <button class=\"gcc__sel-item__remove\" type=\"button\"\n (click)=\"removeFromSelection(item); $event.stopPropagation()\"\n title=\"Retirer\">✕</button>\n </div>\n\n </div>\n\n <!-- Footer / save -->\n <div class=\"gcc__sel-footer\">\n <span class=\"gcc__sel-footer__info\">\n <ng-container *ngIf=\"selectedCount > 0\">\n {{ selectedCount }} colonne(s) \u2014 glissez pour r\u00E9ordonner\n </ng-container>\n </span>\n <button class=\"btn btn-primary btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"!canSave\">\n <i class=\"fa\"\n [class.fa-save]=\"!isSaving\"\n [class.fa-circle-o-notch]=\"isSaving\"\n [class.fa-spin]=\"isSaving\"></i>\n Enregistrer\n </button>\n </div>\n </div>\n\n </div><!-- /.gcc__panels -->\n </div><!-- /.gcc__editor -->\n\n </ng-container>\n\n <ng-template #noProfileTpl>\n <div class=\"gcc__hint\">\n <i class=\"fa fa-arrow-left\"></i> S\u00E9lectionnez ou cr\u00E9ez un profil\n </div>\n </ng-template>\n\n </div><!-- /.gcc__body -->\n</div>\n", styles: [".gcc{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1rem;box-sizing:border-box;gap:.75rem}.gcc__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;flex-shrink:0}.gcc__field{display:flex;flex-direction:column;gap:.25rem}.gcc__field label{font-size:.75rem;font-weight:600;color:#6c757d}.gcc__field input,.gcc__field select{min-width:9rem;padding:.35rem .5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.85rem}.gcc__message{padding:.5rem .75rem;background:#eef3f8;border-left:3px solid #4465C9;border-radius:.25rem;font-size:.85rem;flex-shrink:0}.gcc__body{flex:1;display:flex;gap:0;overflow:hidden;min-height:0;border:1px solid #e9ecef;border-radius:.25rem;background:#fff}.gcc__panel-hd{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__panel-title{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:6px}.gcc__panel-label{font-size:.75rem;font-weight:600;color:#495057}.gcc__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:16px;padding:0 5px;background:#4465c91f;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;background:#4465c91a;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge--primary{background:#4465c9;color:#fff}.gcc__muted{color:#6c757d;font-size:.8rem}.gcc__fw-normal{font-weight:400}.gcc__configs{display:flex;flex-direction:column;flex:0 0 220px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__list-scroll{flex:1;overflow:auto}.gcc__table{width:100%;border-collapse:collapse}.gcc__table th,.gcc__table td{padding:.35rem .6rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__config-row{cursor:pointer;transition:background .1s}.gcc__config-row:hover{background:#4465c90a}.gcc__config-row--selected{background:#4465c914;border-left:3px solid #4465C9}.gcc__config-row--selected td:first-child{padding-left:calc(.6rem - 3px)}.gcc__key{font-family:monospace;font-weight:600;color:#4465c9;font-size:.78rem}.gcc__scope-badge{display:inline-block;padding:1px 5px;border-radius:20px;background:#4465c91a;color:#4465c9;font-size:9px;font-weight:700;text-transform:uppercase}.gcc__actions-cell{text-align:right;width:28px}.gcc__del-btn{background:none;border:none;color:#adb5bd;cursor:pointer;padding:2px 4px;border-radius:3px;font-size:.72rem;transition:color .1s}.gcc__del-btn:hover{color:#dc3545}.gcc__spinner{display:flex;align-items:center;gap:8px;padding:1rem .75rem;color:#6c757d;font-size:.8rem}.gcc__empty{padding:1.25rem .75rem;color:#6c757d;font-style:italic;font-size:.8rem}.gcc__editor{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.gcc__editor-hd{display:flex;align-items:center;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__loading{display:flex;align-items:center;gap:8px;padding:1.5rem 1rem;color:#6c757d;font-size:.85rem;flex-shrink:0}.gcc__spinner-icon{font-size:1rem}.gcc__panels{flex:1;display:flex;overflow:hidden;min-height:0}.gcc__groups{display:flex;flex-direction:column;flex:0 0 160px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__group-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto}.gcc__group-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;cursor:pointer;font-size:.78rem;border-bottom:1px solid #e9ecef;transition:background .1s}.gcc__group-item:hover{background:#4465c90a}.gcc__group-item--active{background:#4465c914;font-weight:600;color:#4465c9}.gcc__group-item--standard .gcc__group-item__name{color:#4465c9}.gcc__group-item--custom .gcc__group-item__name{color:#6b7fd4}.gcc__group-item__name{flex:1}.gcc__group-meta{display:flex;align-items:center;gap:3px}.gcc__browse{display:flex;flex-direction:column;flex:1;border-right:1px solid #e9ecef;overflow:hidden;min-width:0}.gcc__search{height:26px;padding:0 .5rem;border:1px solid #ced4da;border-radius:.2rem;font-size:.78rem;width:140px}.gcc__table-wrap{flex:1;overflow:auto}.gcc__table-wrap::-webkit-scrollbar{width:5px}.gcc__table-wrap::-webkit-scrollbar-track{background:transparent}.gcc__table-wrap::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__browse-table{width:100%;border-collapse:collapse}.gcc__browse-table th,.gcc__browse-table td{padding:.3rem .5rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__browse-table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__browse-row{cursor:pointer;transition:background .1s}.gcc__browse-row:hover{background:#4465c90a}.gcc__browse-row--selected{background:#4465c914}.gcc__browse-row--custom .gcc__col-key{color:#6b7fd4}.gcc__col-check{width:28px;text-align:center}.gcc__col-key{font-family:monospace;font-size:11px;font-weight:600;color:#4465c9;width:130px}.gcc__browse-empty{padding:1rem .75rem;color:#6c757d;font-style:italic;font-size:.78rem}.gcc__selection{display:flex;flex-direction:column;flex:0 0 380px;overflow:hidden}.gcc__sel-legend{display:flex;align-items:center;padding:3px .5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6c757d;flex-shrink:0;gap:0}.gcc__sel-legend__drag{width:20px;flex-shrink:0}.gcc__sel-legend__pos{width:22px;flex-shrink:0;text-align:center}.gcc__sel-legend__code{width:80px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__label{flex:1;min-width:0}.gcc__sel-legend__flag{width:36px;text-align:center;flex-shrink:0}.gcc__sel-legend__width{width:50px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__remove{width:22px;flex-shrink:0}.gcc__sel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#6c757d;gap:.5rem;font-size:.8rem}.gcc__sel-empty__icon{font-size:2rem;opacity:.3}.gcc__sel-empty p{margin:0}.gcc__sel-list{flex:1;overflow-y:auto}.gcc__sel-list::-webkit-scrollbar{width:4px}.gcc__sel-list::-webkit-scrollbar-track{background:transparent}.gcc__sel-list::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__sel-item{display:flex;align-items:center;padding:4px .5rem;border-bottom:1px solid #e9ecef;background:#fff;-webkit-user-select:none;user-select:none;gap:0;transition:background .1s}.gcc__sel-item:hover{background:#4465c908}.gcc__sel-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__sel-item__placeholder{height:32px;background:#4465c90f;border:1px dashed #4465C9;border-radius:2px;flex:1}.gcc__sel-item__drag{width:20px;flex-shrink:0;color:#ced4da;cursor:grab;font-size:11px;display:flex;align-items:center;justify-content:center}.gcc__sel-item__drag:hover{color:#4465c9}.gcc__sel-item__drag:active{cursor:grabbing}.gcc__sel-item__pos{width:22px;flex-shrink:0;font-size:9px;color:#6c757d;text-align:center}.gcc__sel-item__code{width:80px;flex-shrink:0;font-family:monospace;font-size:10px;font-weight:600;color:#4465c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2px}.gcc__sel-item__code--cf{color:#6b7fd4}.gcc__sel-item__label{flex:1;min-width:0;height:22px;padding:0 4px;border:1px solid transparent;border-radius:3px;font-size:11px;color:#343a40;background:transparent;outline:none;transition:border-color .1s,background .1s}.gcc__sel-item__label::placeholder{color:#6c757d;font-style:italic}.gcc__sel-item__label:hover{border-color:#d1d8de;background:#f8f9fa}.gcc__sel-item__label:focus{border-color:#4465c9;background:#fff}.gcc__sel-item__remove{width:22px;flex-shrink:0;background:none;border:none;color:#adb5bd;cursor:pointer;font-size:11px;padding:0;text-align:center;transition:color .1s}.gcc__sel-item__remove:hover{color:#dc3545}.gcc__sel-list.cdk-drop-list-dragging .gcc__sel-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__flag{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}.gcc__flag input[type=checkbox]{cursor:pointer}.gcc__item-width{width:46px;flex-shrink:0;padding:1px 3px;border:1px solid #ced4da;border-radius:3px;font-size:10px;text-align:right}.gcc__sel-footer{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-top:1px solid #e9ecef;flex-shrink:0}.gcc__sel-footer__info{font-size:.75rem;color:#6c757d;font-style:italic}.gcc__hint{display:flex;align-items:center;justify-content:center;flex:1;color:#6c757d;font-style:italic;font-size:.85rem}\n"], dependencies: [{ kind: "directive", type: i2$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$1.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4494
4494
|
}
|
|
4495
4495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PresentationProfileColumnComponent, decorators: [{
|
|
4496
4496
|
type: Component,
|
|
4497
|
-
args: [{ selector: 'alg-pp-column', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"gcc\">\r\n\r\n <!-- \u2500\u2500 SCOPE SECTION TABS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__sections\">\r\n <button *ngFor=\"let sec of scopeSections\"\r\n class=\"gcc__section-tab\"\r\n [class.gcc__section-tab--active]=\"activeSection === sec.scope\"\r\n type=\"button\"\r\n (click)=\"setSection(sec.scope)\">\r\n <i class=\"fa\" [ngClass]=\"'fa-' + sec.icon\"></i> {{ sec.label }}\r\n </button>\r\n </div>\r\n\r\n <!-- \u2500\u2500 FILTER TOOLBAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__toolbar\">\r\n <div class=\"gcc__field\">\r\n <label>Finalit\u00E9</label>\r\n <select [(ngModel)]=\"filterPurpose\" (ngModelChange)=\"search()\">\r\n <option *ngFor=\"let p of purposeOptions\" [ngValue]=\"p.value\">{{ p.label }}</option>\r\n </select>\r\n </div>\r\n <div class=\"gcc__field\">\r\n <label>Cl\u00E9 de grille</label>\r\n <input type=\"text\" [(ngModel)]=\"filterKey\" placeholder=\"ex. PDTV\" (keydown.enter)=\"search()\" />\r\n </div>\r\n <div class=\"gcc__field\" *ngIf=\"filterIsPerimeter\">\r\n <label>{{ scopeIdLabel }}</label>\r\n <input type=\"number\" [(ngModel)]=\"filterScopeId\" (keydown.enter)=\"search()\" />\r\n </div>\r\n <button class=\"btn btn-secondary\" (click)=\"search()\" [disabled]=\"isLoadingList\">\r\n <i class=\"fa fa-search\"></i> Rechercher\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"message\" class=\"gcc__message\">{{ message }}</div>\r\n\r\n <!-- \u2500\u2500 4-PANEL BODY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__body\">\r\n\r\n <!-- \u2500\u2500 Panel 1: Profile list (left sidebar) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__configs\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-title\">\r\n Profils <span class=\"gcc__count\">{{ profiles.length }}</span>\r\n </span>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"newProfile()\" title=\"Nouveau profil\">\r\n <i class=\"fa fa-plus\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"gcc__list-scroll\">\r\n <div *ngIf=\"isLoadingList\" class=\"gcc__spinner\">\r\n <i class=\"fa fa-circle-o-notch fa-spin\"></i> Chargement\u2026\r\n </div>\r\n <p *ngIf=\"!isLoadingList && profiles.length === 0\" class=\"gcc__empty\">\r\n Aucun profil trouv\u00E9.\r\n </p>\r\n <table *ngIf=\"!isLoadingList && profiles.length > 0\" class=\"gcc__table\">\r\n <thead>\r\n <tr>\r\n <th>Cl\u00E9</th>\r\n <th>Finalit\u00E9</th>\r\n <th *ngIf=\"filterIsPerimeter\">P\u00E9rim\u00E8tre</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let p of profiles\"\r\n class=\"gcc__config-row\"\r\n [class.gcc__config-row--selected]=\"activeProfile?.Id === p.Id\"\r\n (click)=\"selectProfile(p)\">\r\n <td class=\"gcc__key\">{{ p.MetaEntityKey }}</td>\r\n <td class=\"gcc__muted\">{{ getPurposeLabel(p.PurposeType) }}</td>\r\n <td *ngIf=\"filterIsPerimeter\" class=\"gcc__muted\">#{{ p.ScopeId }}</td>\r\n <td class=\"gcc__actions-cell\">\r\n <button class=\"gcc__del-btn\" (click)=\"deleteProfile(p, $event)\" title=\"Supprimer\">\r\n <i class=\"fa fa-trash\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n\r\n <!-- \u2500\u2500 Panels 2/3/4: only when a profile is active \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <ng-container *ngIf=\"activeProfile; else noProfileTpl\">\r\n\r\n <div class=\"gcc__editor\">\r\n\r\n <div class=\"gcc__editor-hd\">\r\n <span class=\"gcc__panel-title\">\r\n {{ activeProfile.MetaEntityKey }}\r\n <span class=\"gcc__muted gcc__fw-normal\">\u00B7 {{ getPurposeLabel(activeProfile.PurposeType) }}</span>\r\n <span *ngIf=\"activeProfile.ScopeId != null\" class=\"gcc__muted gcc__fw-normal\"> #{{ activeProfile.ScopeId }}</span>\r\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *ngIf=\"isLoading\" class=\"gcc__loading\">\r\n <span class=\"gcc__spinner-icon fa fa-circle-o-notch fa-spin\"></span>\r\n Chargement des colonnes\u2026\r\n </div>\r\n\r\n <div *ngIf=\"!isLoading\" class=\"gcc__panels\">\r\n\r\n <!-- \u2500\u2500 Panel 2: Group selector \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__groups\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-label\">Sections</span>\r\n </div>\r\n <ul class=\"gcc__group-list\">\r\n <li class=\"gcc__group-item\"\r\n [class.gcc__group-item--active]=\"selectedGroup === null\"\r\n (click)=\"selectGroup(null)\">\r\n <span class=\"gcc__group-item__name\">Toutes les colonnes</span>\r\n <span class=\"gcc__badge\">{{ allItems.length }}</span>\r\n </li>\r\n <li *ngFor=\"let group of groups\"\r\n class=\"gcc__group-item\"\r\n [class.gcc__group-item--active]=\"selectedGroup?.id === group.id\"\r\n [class.gcc__group-item--standard]=\"group.id === 'standard'\"\r\n [class.gcc__group-item--custom]=\"group.isCustom\"\r\n (click)=\"selectGroup(group)\">\r\n <span class=\"gcc__group-item__name\">{{ group.label }}</span>\r\n <div class=\"gcc__group-meta\">\r\n <span *ngIf=\"getGroupSelectedCount(group) > 0\" class=\"gcc__badge gcc__badge--primary\">{{ getGroupSelectedCount(group) }}</span>\r\n <span class=\"gcc__badge\">{{ getGroupCount(group) }}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <!-- \u2500\u2500 Panel 3: Catalog browse \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__browse\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-label\">\r\n {{ selectedGroup == null ? 'Toutes' : selectedGroup.label }}\r\n </span>\r\n <input class=\"gcc__search\" type=\"text\" placeholder=\"Rechercher\u2026\"\r\n [(ngModel)]=\"searchText\" (ngModelChange)=\"onSearch()\">\r\n </div>\r\n\r\n <div class=\"gcc__table-wrap\">\r\n <table class=\"gcc__browse-table\">\r\n <thead>\r\n <tr>\r\n <th class=\"gcc__col-check\">\r\n <input type=\"checkbox\"\r\n [checked]=\"allVisibleSelected\"\r\n [indeterminate]=\"someVisibleSelected\"\r\n (change)=\"toggleAll()\"\r\n title=\"Tout s\u00E9lectionner / d\u00E9s\u00E9lectionner\">\r\n </th>\r\n <th class=\"gcc__col-key\">Cl\u00E9</th>\r\n <th>Colonne</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredItems\"\r\n class=\"gcc__browse-row\"\r\n [class.gcc__browse-row--selected]=\"isSelected(item)\"\r\n [class.gcc__browse-row--custom]=\"item.ColumnSourceType === 2\"\r\n (click)=\"toggleItem(item)\">\r\n <td class=\"gcc__col-check\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [checked]=\"isSelected(item)\" (change)=\"toggleItem(item)\">\r\n </td>\r\n <td class=\"gcc__col-key\">{{ item.ColumnKey }}</td>\r\n <td class=\"gcc__col-name\">{{ item.Label ?? item.ColumnKey }}</td>\r\n </tr>\r\n <tr *ngIf=\"filteredItems.length === 0\">\r\n <td colspan=\"3\" class=\"gcc__browse-empty\">Aucune colonne trouv\u00E9e</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n\r\n <!-- \u2500\u2500 Panel 4: Ordered selection with admin flags \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"gcc__selection\">\r\n <div class=\"gcc__panel-hd\">\r\n <span class=\"gcc__panel-label\">Colonnes s\u00E9lectionn\u00E9es</span>\r\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\r\n </div>\r\n\r\n <div *ngIf=\"orderedSelection.length > 0\" class=\"gcc__sel-legend\">\r\n <span class=\"gcc__sel-legend__drag\"></span>\r\n <span class=\"gcc__sel-legend__pos\">#</span>\r\n <span class=\"gcc__sel-legend__code\">Cl\u00E9</span>\r\n <span class=\"gcc__sel-legend__label\">\u00C9tiquette</span>\r\n <ng-container *ngIf=\"isPerimeter\">\r\n <span class=\"gcc__sel-legend__flag\">Aut.</span>\r\n </ng-container>\r\n <span class=\"gcc__sel-legend__flag\">Ver.</span>\r\n <span class=\"gcc__sel-legend__remove\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"orderedSelection.length === 0\" class=\"gcc__sel-empty\">\r\n <span class=\"fa fa-columns gcc__sel-empty__icon\"></span>\r\n <p>Cochez des colonnes \u00E0 gauche</p>\r\n </div>\r\n\r\n <div *ngIf=\"orderedSelection.length > 0\"\r\n class=\"gcc__sel-list\"\r\n cdkDropList\r\n [cdkDropListData]=\"orderedSelection\"\r\n (cdkDropListDropped)=\"onDrop($event)\">\r\n\r\n <div *ngFor=\"let item of orderedSelection; let i = index\"\r\n class=\"gcc__sel-item\"\r\n cdkDrag\r\n [cdkDragData]=\"item\">\r\n\r\n <div class=\"gcc__sel-item__placeholder\" *cdkDragPlaceholder></div>\r\n\r\n <span class=\"gcc__sel-item__drag\" cdkDragHandle>\r\n <i class=\"fa fa-bars\"></i>\r\n </span>\r\n\r\n <span class=\"gcc__sel-item__pos\">{{ i + 1 }}</span>\r\n\r\n <span class=\"gcc__sel-item__code\"\r\n [class.gcc__sel-item__code--cf]=\"item.ColumnSourceType === 2\"\r\n [title]=\"item.ColumnKey\">\r\n {{ item.ColumnKey }}\r\n </span>\r\n\r\n <input class=\"gcc__sel-item__label\" type=\"text\"\r\n [placeholder]=\"getCatalogLabel(item)\"\r\n [(ngModel)]=\"item.Label\"\r\n (click)=\"$event.stopPropagation()\"\r\n title=\"\u00C9tiquette personnalis\u00E9e\">\r\n\r\n <!-- Perimeter scope: allowed flag -->\r\n <ng-container *ngIf=\"isPerimeter\">\r\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.IsAllowed\" title=\"Autoris\u00E9\">\r\n </label>\r\n </ng-container>\r\n\r\n <!-- Always: locked flag -->\r\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item.IsLocked\" title=\"Verrouill\u00E9\">\r\n </label>\r\n\r\n <button class=\"gcc__sel-item__remove\" type=\"button\"\r\n (click)=\"removeFromSelection(item); $event.stopPropagation()\"\r\n title=\"Retirer\">✕</button>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Footer / save -->\r\n <div class=\"gcc__sel-footer\">\r\n <span class=\"gcc__sel-footer__info\">\r\n <ng-container *ngIf=\"selectedCount > 0\">\r\n {{ selectedCount }} colonne(s) \u2014 glissez pour r\u00E9ordonner\r\n </ng-container>\r\n </span>\r\n <button class=\"btn btn-primary btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"!canSave\">\r\n <i class=\"fa\"\r\n [class.fa-save]=\"!isSaving\"\r\n [class.fa-circle-o-notch]=\"isSaving\"\r\n [class.fa-spin]=\"isSaving\"></i>\r\n Enregistrer\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div><!-- /.gcc__panels -->\r\n </div><!-- /.gcc__editor -->\r\n\r\n </ng-container>\r\n\r\n <ng-template #noProfileTpl>\r\n <div class=\"gcc__hint\">\r\n <i class=\"fa fa-arrow-left\"></i> S\u00E9lectionnez ou cr\u00E9ez un profil\r\n </div>\r\n </ng-template>\r\n\r\n </div><!-- /.gcc__body -->\r\n</div>\r\n", styles: [".gcc{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1rem;box-sizing:border-box;gap:.75rem}.gcc__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;flex-shrink:0}.gcc__field{display:flex;flex-direction:column;gap:.25rem}.gcc__field label{font-size:.75rem;font-weight:600;color:#6c757d}.gcc__field input,.gcc__field select{min-width:9rem;padding:.35rem .5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.85rem}.gcc__message{padding:.5rem .75rem;background:#eef3f8;border-left:3px solid #4465C9;border-radius:.25rem;font-size:.85rem;flex-shrink:0}.gcc__body{flex:1;display:flex;gap:0;overflow:hidden;min-height:0;border:1px solid #e9ecef;border-radius:.25rem;background:#fff}.gcc__panel-hd{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__panel-title{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:6px}.gcc__panel-label{font-size:.75rem;font-weight:600;color:#495057}.gcc__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:16px;padding:0 5px;background:#4465c91f;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;background:#4465c91a;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge--primary{background:#4465c9;color:#fff}.gcc__muted{color:#6c757d;font-size:.8rem}.gcc__fw-normal{font-weight:400}.gcc__configs{display:flex;flex-direction:column;flex:0 0 220px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__list-scroll{flex:1;overflow:auto}.gcc__table{width:100%;border-collapse:collapse}.gcc__table th,.gcc__table td{padding:.35rem .6rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__config-row{cursor:pointer;transition:background .1s}.gcc__config-row:hover{background:#4465c90a}.gcc__config-row--selected{background:#4465c914;border-left:3px solid #4465C9}.gcc__config-row--selected td:first-child{padding-left:calc(.6rem - 3px)}.gcc__key{font-family:monospace;font-weight:600;color:#4465c9;font-size:.78rem}.gcc__scope-badge{display:inline-block;padding:1px 5px;border-radius:20px;background:#4465c91a;color:#4465c9;font-size:9px;font-weight:700;text-transform:uppercase}.gcc__actions-cell{text-align:right;width:28px}.gcc__del-btn{background:none;border:none;color:#adb5bd;cursor:pointer;padding:2px 4px;border-radius:3px;font-size:.72rem;transition:color .1s}.gcc__del-btn:hover{color:#dc3545}.gcc__spinner{display:flex;align-items:center;gap:8px;padding:1rem .75rem;color:#6c757d;font-size:.8rem}.gcc__empty{padding:1.25rem .75rem;color:#6c757d;font-style:italic;font-size:.8rem}.gcc__editor{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.gcc__editor-hd{display:flex;align-items:center;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__loading{display:flex;align-items:center;gap:8px;padding:1.5rem 1rem;color:#6c757d;font-size:.85rem;flex-shrink:0}.gcc__spinner-icon{font-size:1rem}.gcc__panels{flex:1;display:flex;overflow:hidden;min-height:0}.gcc__groups{display:flex;flex-direction:column;flex:0 0 160px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__group-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto}.gcc__group-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;cursor:pointer;font-size:.78rem;border-bottom:1px solid #e9ecef;transition:background .1s}.gcc__group-item:hover{background:#4465c90a}.gcc__group-item--active{background:#4465c914;font-weight:600;color:#4465c9}.gcc__group-item--standard .gcc__group-item__name{color:#4465c9}.gcc__group-item--custom .gcc__group-item__name{color:#6b7fd4}.gcc__group-item__name{flex:1}.gcc__group-meta{display:flex;align-items:center;gap:3px}.gcc__browse{display:flex;flex-direction:column;flex:1;border-right:1px solid #e9ecef;overflow:hidden;min-width:0}.gcc__search{height:26px;padding:0 .5rem;border:1px solid #ced4da;border-radius:.2rem;font-size:.78rem;width:140px}.gcc__table-wrap{flex:1;overflow:auto}.gcc__table-wrap::-webkit-scrollbar{width:5px}.gcc__table-wrap::-webkit-scrollbar-track{background:transparent}.gcc__table-wrap::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__browse-table{width:100%;border-collapse:collapse}.gcc__browse-table th,.gcc__browse-table td{padding:.3rem .5rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__browse-table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__browse-row{cursor:pointer;transition:background .1s}.gcc__browse-row:hover{background:#4465c90a}.gcc__browse-row--selected{background:#4465c914}.gcc__browse-row--custom .gcc__col-key{color:#6b7fd4}.gcc__col-check{width:28px;text-align:center}.gcc__col-key{font-family:monospace;font-size:11px;font-weight:600;color:#4465c9;width:130px}.gcc__browse-empty{padding:1rem .75rem;color:#6c757d;font-style:italic;font-size:.78rem}.gcc__selection{display:flex;flex-direction:column;flex:0 0 380px;overflow:hidden}.gcc__sel-legend{display:flex;align-items:center;padding:3px .5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6c757d;flex-shrink:0;gap:0}.gcc__sel-legend__drag{width:20px;flex-shrink:0}.gcc__sel-legend__pos{width:22px;flex-shrink:0;text-align:center}.gcc__sel-legend__code{width:80px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__label{flex:1;min-width:0}.gcc__sel-legend__flag{width:36px;text-align:center;flex-shrink:0}.gcc__sel-legend__width{width:50px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__remove{width:22px;flex-shrink:0}.gcc__sel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#6c757d;gap:.5rem;font-size:.8rem}.gcc__sel-empty__icon{font-size:2rem;opacity:.3}.gcc__sel-empty p{margin:0}.gcc__sel-list{flex:1;overflow-y:auto}.gcc__sel-list::-webkit-scrollbar{width:4px}.gcc__sel-list::-webkit-scrollbar-track{background:transparent}.gcc__sel-list::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__sel-item{display:flex;align-items:center;padding:4px .5rem;border-bottom:1px solid #e9ecef;background:#fff;-webkit-user-select:none;user-select:none;gap:0;transition:background .1s}.gcc__sel-item:hover{background:#4465c908}.gcc__sel-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__sel-item__placeholder{height:32px;background:#4465c90f;border:1px dashed #4465C9;border-radius:2px;flex:1}.gcc__sel-item__drag{width:20px;flex-shrink:0;color:#ced4da;cursor:grab;font-size:11px;display:flex;align-items:center;justify-content:center}.gcc__sel-item__drag:hover{color:#4465c9}.gcc__sel-item__drag:active{cursor:grabbing}.gcc__sel-item__pos{width:22px;flex-shrink:0;font-size:9px;color:#6c757d;text-align:center}.gcc__sel-item__code{width:80px;flex-shrink:0;font-family:monospace;font-size:10px;font-weight:600;color:#4465c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2px}.gcc__sel-item__code--cf{color:#6b7fd4}.gcc__sel-item__label{flex:1;min-width:0;height:22px;padding:0 4px;border:1px solid transparent;border-radius:3px;font-size:11px;color:#343a40;background:transparent;outline:none;transition:border-color .1s,background .1s}.gcc__sel-item__label::placeholder{color:#6c757d;font-style:italic}.gcc__sel-item__label:hover{border-color:#d1d8de;background:#f8f9fa}.gcc__sel-item__label:focus{border-color:#4465c9;background:#fff}.gcc__sel-item__remove{width:22px;flex-shrink:0;background:none;border:none;color:#adb5bd;cursor:pointer;font-size:11px;padding:0;text-align:center;transition:color .1s}.gcc__sel-item__remove:hover{color:#dc3545}.gcc__sel-list.cdk-drop-list-dragging .gcc__sel-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__flag{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}.gcc__flag input[type=checkbox]{cursor:pointer}.gcc__item-width{width:46px;flex-shrink:0;padding:1px 3px;border:1px solid #ced4da;border-radius:3px;font-size:10px;text-align:right}.gcc__sel-footer{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-top:1px solid #e9ecef;flex-shrink:0}.gcc__sel-footer__info{font-size:.75rem;color:#6c757d;font-style:italic}.gcc__hint{display:flex;align-items:center;justify-content:center;flex:1;color:#6c757d;font-style:italic;font-size:.85rem}\n"] }]
|
|
4497
|
+
args: [{ selector: 'alg-pp-column', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"gcc\">\n\n <!-- \u2500\u2500 SCOPE SECTION TABS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__sections\">\n <button *ngFor=\"let sec of scopeSections\"\n class=\"gcc__section-tab\"\n [class.gcc__section-tab--active]=\"activeSection === sec.scope\"\n type=\"button\"\n (click)=\"setSection(sec.scope)\">\n <i class=\"fa\" [ngClass]=\"'fa-' + sec.icon\"></i> {{ sec.label }}\n </button>\n </div>\n\n <!-- \u2500\u2500 FILTER TOOLBAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__toolbar\">\n <div class=\"gcc__field\">\n <label>Finalit\u00E9</label>\n <select [(ngModel)]=\"filterPurpose\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let p of purposeOptions\" [ngValue]=\"p.value\">{{ p.label }}</option>\n </select>\n </div>\n <div class=\"gcc__field\">\n <label>Cl\u00E9 de grille</label>\n <input type=\"text\" [(ngModel)]=\"filterKey\" placeholder=\"ex. PDTV\" (keydown.enter)=\"search()\" />\n </div>\n <div class=\"gcc__field\" *ngIf=\"filterIsPerimeter\">\n <label>{{ scopeIdLabel }}</label>\n <input type=\"number\" [(ngModel)]=\"filterScopeId\" (keydown.enter)=\"search()\" />\n </div>\n <button class=\"btn btn-secondary\" (click)=\"search()\" [disabled]=\"isLoadingList\">\n <i class=\"fa fa-search\"></i> Rechercher\n </button>\n </div>\n\n <div *ngIf=\"message\" class=\"gcc__message\">{{ message }}</div>\n\n <!-- \u2500\u2500 4-PANEL BODY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__body\">\n\n <!-- \u2500\u2500 Panel 1: Profile list (left sidebar) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__configs\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-title\">\n Profils <span class=\"gcc__count\">{{ profiles.length }}</span>\n </span>\n <button class=\"btn btn-sm btn-primary\" (click)=\"newProfile()\" title=\"Nouveau profil\">\n <i class=\"fa fa-plus\"></i>\n </button>\n </div>\n\n <div class=\"gcc__list-scroll\">\n <div *ngIf=\"isLoadingList\" class=\"gcc__spinner\">\n <i class=\"fa fa-circle-o-notch fa-spin\"></i> Chargement\u2026\n </div>\n <p *ngIf=\"!isLoadingList && profiles.length === 0\" class=\"gcc__empty\">\n Aucun profil trouv\u00E9.\n </p>\n <table *ngIf=\"!isLoadingList && profiles.length > 0\" class=\"gcc__table\">\n <thead>\n <tr>\n <th>Cl\u00E9</th>\n <th>Finalit\u00E9</th>\n <th *ngIf=\"filterIsPerimeter\">P\u00E9rim\u00E8tre</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let p of profiles\"\n class=\"gcc__config-row\"\n [class.gcc__config-row--selected]=\"activeProfile?.Id === p.Id\"\n (click)=\"selectProfile(p)\">\n <td class=\"gcc__key\">{{ p.MetaEntityKey }}</td>\n <td class=\"gcc__muted\">{{ getPurposeLabel(p.PresentationProfilePurpose) }}</td>\n <td *ngIf=\"filterIsPerimeter\" class=\"gcc__muted\">#{{ p.ScopeId }}</td>\n <td class=\"gcc__actions-cell\">\n <button class=\"gcc__del-btn\" (click)=\"deleteProfile(p, $event)\" title=\"Supprimer\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- \u2500\u2500 Panels 2/3/4: only when a profile is active \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <ng-container *ngIf=\"activeProfile; else noProfileTpl\">\n\n <div class=\"gcc__editor\">\n\n <div class=\"gcc__editor-hd\">\n <span class=\"gcc__panel-title\">\n {{ activeProfile.MetaEntityKey }}\n <span class=\"gcc__muted gcc__fw-normal\">\u00B7 {{ getPurposeLabel(activeProfile.PresentationProfilePurpose) }}</span>\n <span *ngIf=\"activeProfile.ScopeId != null\" class=\"gcc__muted gcc__fw-normal\"> #{{ activeProfile.ScopeId }}</span>\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\n </span>\n </div>\n\n <div *ngIf=\"isLoading\" class=\"gcc__loading\">\n <span class=\"gcc__spinner-icon fa fa-circle-o-notch fa-spin\"></span>\n Chargement des colonnes\u2026\n </div>\n\n <div *ngIf=\"!isLoading\" class=\"gcc__panels\">\n\n <!-- \u2500\u2500 Panel 2: Group selector \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__groups\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-label\">Sections</span>\n </div>\n <ul class=\"gcc__group-list\">\n <li class=\"gcc__group-item\"\n [class.gcc__group-item--active]=\"selectedGroup === null\"\n (click)=\"selectGroup(null)\">\n <span class=\"gcc__group-item__name\">Toutes les colonnes</span>\n <span class=\"gcc__badge\">{{ allItems.length }}</span>\n </li>\n <li *ngFor=\"let group of groups\"\n class=\"gcc__group-item\"\n [class.gcc__group-item--active]=\"selectedGroup?.id === group.id\"\n [class.gcc__group-item--standard]=\"group.id === 'standard'\"\n [class.gcc__group-item--custom]=\"group.isCustom\"\n (click)=\"selectGroup(group)\">\n <span class=\"gcc__group-item__name\">{{ group.label }}</span>\n <div class=\"gcc__group-meta\">\n <span *ngIf=\"getGroupSelectedCount(group) > 0\" class=\"gcc__badge gcc__badge--primary\">{{ getGroupSelectedCount(group) }}</span>\n <span class=\"gcc__badge\">{{ getGroupCount(group) }}</span>\n </div>\n </li>\n </ul>\n </div>\n\n <!-- \u2500\u2500 Panel 3: Catalog browse \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__browse\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-label\">\n {{ selectedGroup == null ? 'Toutes' : selectedGroup.label }}\n </span>\n <input class=\"gcc__search\" type=\"text\" placeholder=\"Rechercher\u2026\"\n [(ngModel)]=\"searchText\" (ngModelChange)=\"onSearch()\">\n </div>\n\n <div class=\"gcc__table-wrap\">\n <table class=\"gcc__browse-table\">\n <thead>\n <tr>\n <th class=\"gcc__col-check\">\n <input type=\"checkbox\"\n [checked]=\"allVisibleSelected\"\n [indeterminate]=\"someVisibleSelected\"\n (change)=\"toggleAll()\"\n title=\"Tout s\u00E9lectionner / d\u00E9s\u00E9lectionner\">\n </th>\n <th class=\"gcc__col-key\">Cl\u00E9</th>\n <th>Colonne</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of filteredItems\"\n class=\"gcc__browse-row\"\n [class.gcc__browse-row--selected]=\"isSelected(item)\"\n [class.gcc__browse-row--custom]=\"item.ColumnSourceType === 2\"\n (click)=\"toggleItem(item)\">\n <td class=\"gcc__col-check\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [checked]=\"isSelected(item)\" (change)=\"toggleItem(item)\">\n </td>\n <td class=\"gcc__col-key\">{{ item.ColumnKey }}</td>\n <td class=\"gcc__col-name\">{{ item.Label ?? item.ColumnKey }}</td>\n </tr>\n <tr *ngIf=\"filteredItems.length === 0\">\n <td colspan=\"3\" class=\"gcc__browse-empty\">Aucune colonne trouv\u00E9e</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- \u2500\u2500 Panel 4: Ordered selection with admin flags \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"gcc__selection\">\n <div class=\"gcc__panel-hd\">\n <span class=\"gcc__panel-label\">Colonnes s\u00E9lectionn\u00E9es</span>\n <span *ngIf=\"selectedCount > 0\" class=\"gcc__badge gcc__badge--primary\">{{ selectedCount }}</span>\n </div>\n\n <div *ngIf=\"orderedSelection.length > 0\" class=\"gcc__sel-legend\">\n <span class=\"gcc__sel-legend__drag\"></span>\n <span class=\"gcc__sel-legend__pos\">#</span>\n <span class=\"gcc__sel-legend__code\">Cl\u00E9</span>\n <span class=\"gcc__sel-legend__label\">\u00C9tiquette</span>\n <ng-container *ngIf=\"isPerimeter\">\n <span class=\"gcc__sel-legend__flag\">Aut.</span>\n </ng-container>\n <span class=\"gcc__sel-legend__flag\">Ver.</span>\n <span class=\"gcc__sel-legend__remove\"></span>\n </div>\n\n <div *ngIf=\"orderedSelection.length === 0\" class=\"gcc__sel-empty\">\n <span class=\"fa fa-columns gcc__sel-empty__icon\"></span>\n <p>Cochez des colonnes \u00E0 gauche</p>\n </div>\n\n <div *ngIf=\"orderedSelection.length > 0\"\n class=\"gcc__sel-list\"\n cdkDropList\n [cdkDropListData]=\"orderedSelection\"\n (cdkDropListDropped)=\"onDrop($event)\">\n\n <div *ngFor=\"let item of orderedSelection; let i = index\"\n class=\"gcc__sel-item\"\n cdkDrag\n [cdkDragData]=\"item\">\n\n <div class=\"gcc__sel-item__placeholder\" *cdkDragPlaceholder></div>\n\n <span class=\"gcc__sel-item__drag\" cdkDragHandle>\n <i class=\"fa fa-bars\"></i>\n </span>\n\n <span class=\"gcc__sel-item__pos\">{{ i + 1 }}</span>\n\n <span class=\"gcc__sel-item__code\"\n [class.gcc__sel-item__code--cf]=\"item.ColumnSourceType === 2\"\n [title]=\"item.ColumnKey\">\n {{ item.ColumnKey }}\n </span>\n\n <input class=\"gcc__sel-item__label\" type=\"text\"\n [placeholder]=\"getCatalogLabel(item)\"\n [(ngModel)]=\"item.Label\"\n (click)=\"$event.stopPropagation()\"\n title=\"\u00C9tiquette personnalis\u00E9e\">\n\n <!-- Perimeter scope: allowed flag -->\n <ng-container *ngIf=\"isPerimeter\">\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [(ngModel)]=\"item.IsAllowed\" title=\"Autoris\u00E9\">\n </label>\n </ng-container>\n\n <!-- Always: locked flag -->\n <label class=\"gcc__flag\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [(ngModel)]=\"item.IsLocked\" title=\"Verrouill\u00E9\">\n </label>\n\n <button class=\"gcc__sel-item__remove\" type=\"button\"\n (click)=\"removeFromSelection(item); $event.stopPropagation()\"\n title=\"Retirer\">✕</button>\n </div>\n\n </div>\n\n <!-- Footer / save -->\n <div class=\"gcc__sel-footer\">\n <span class=\"gcc__sel-footer__info\">\n <ng-container *ngIf=\"selectedCount > 0\">\n {{ selectedCount }} colonne(s) \u2014 glissez pour r\u00E9ordonner\n </ng-container>\n </span>\n <button class=\"btn btn-primary btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"!canSave\">\n <i class=\"fa\"\n [class.fa-save]=\"!isSaving\"\n [class.fa-circle-o-notch]=\"isSaving\"\n [class.fa-spin]=\"isSaving\"></i>\n Enregistrer\n </button>\n </div>\n </div>\n\n </div><!-- /.gcc__panels -->\n </div><!-- /.gcc__editor -->\n\n </ng-container>\n\n <ng-template #noProfileTpl>\n <div class=\"gcc__hint\">\n <i class=\"fa fa-arrow-left\"></i> S\u00E9lectionnez ou cr\u00E9ez un profil\n </div>\n </ng-template>\n\n </div><!-- /.gcc__body -->\n</div>\n", styles: [".gcc{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1rem;box-sizing:border-box;gap:.75rem}.gcc__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;flex-shrink:0}.gcc__field{display:flex;flex-direction:column;gap:.25rem}.gcc__field label{font-size:.75rem;font-weight:600;color:#6c757d}.gcc__field input,.gcc__field select{min-width:9rem;padding:.35rem .5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.85rem}.gcc__message{padding:.5rem .75rem;background:#eef3f8;border-left:3px solid #4465C9;border-radius:.25rem;font-size:.85rem;flex-shrink:0}.gcc__body{flex:1;display:flex;gap:0;overflow:hidden;min-height:0;border:1px solid #e9ecef;border-radius:.25rem;background:#fff}.gcc__panel-hd{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__panel-title{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:6px}.gcc__panel-label{font-size:.75rem;font-weight:600;color:#495057}.gcc__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:16px;padding:0 5px;background:#4465c91f;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;background:#4465c91a;color:#4465c9;border-radius:20px;font-size:10px;font-weight:700}.gcc__badge--primary{background:#4465c9;color:#fff}.gcc__muted{color:#6c757d;font-size:.8rem}.gcc__fw-normal{font-weight:400}.gcc__configs{display:flex;flex-direction:column;flex:0 0 220px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__list-scroll{flex:1;overflow:auto}.gcc__table{width:100%;border-collapse:collapse}.gcc__table th,.gcc__table td{padding:.35rem .6rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__config-row{cursor:pointer;transition:background .1s}.gcc__config-row:hover{background:#4465c90a}.gcc__config-row--selected{background:#4465c914;border-left:3px solid #4465C9}.gcc__config-row--selected td:first-child{padding-left:calc(.6rem - 3px)}.gcc__key{font-family:monospace;font-weight:600;color:#4465c9;font-size:.78rem}.gcc__scope-badge{display:inline-block;padding:1px 5px;border-radius:20px;background:#4465c91a;color:#4465c9;font-size:9px;font-weight:700;text-transform:uppercase}.gcc__actions-cell{text-align:right;width:28px}.gcc__del-btn{background:none;border:none;color:#adb5bd;cursor:pointer;padding:2px 4px;border-radius:3px;font-size:.72rem;transition:color .1s}.gcc__del-btn:hover{color:#dc3545}.gcc__spinner{display:flex;align-items:center;gap:8px;padding:1rem .75rem;color:#6c757d;font-size:.8rem}.gcc__empty{padding:1.25rem .75rem;color:#6c757d;font-style:italic;font-size:.8rem}.gcc__editor{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.gcc__editor-hd{display:flex;align-items:center;padding:.4rem .75rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0}.gcc__loading{display:flex;align-items:center;gap:8px;padding:1.5rem 1rem;color:#6c757d;font-size:.85rem;flex-shrink:0}.gcc__spinner-icon{font-size:1rem}.gcc__panels{flex:1;display:flex;overflow:hidden;min-height:0}.gcc__groups{display:flex;flex-direction:column;flex:0 0 160px;border-right:1px solid #e9ecef;overflow:hidden}.gcc__group-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto}.gcc__group-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;cursor:pointer;font-size:.78rem;border-bottom:1px solid #e9ecef;transition:background .1s}.gcc__group-item:hover{background:#4465c90a}.gcc__group-item--active{background:#4465c914;font-weight:600;color:#4465c9}.gcc__group-item--standard .gcc__group-item__name{color:#4465c9}.gcc__group-item--custom .gcc__group-item__name{color:#6b7fd4}.gcc__group-item__name{flex:1}.gcc__group-meta{display:flex;align-items:center;gap:3px}.gcc__browse{display:flex;flex-direction:column;flex:1;border-right:1px solid #e9ecef;overflow:hidden;min-width:0}.gcc__search{height:26px;padding:0 .5rem;border:1px solid #ced4da;border-radius:.2rem;font-size:.78rem;width:140px}.gcc__table-wrap{flex:1;overflow:auto}.gcc__table-wrap::-webkit-scrollbar{width:5px}.gcc__table-wrap::-webkit-scrollbar-track{background:transparent}.gcc__table-wrap::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__browse-table{width:100%;border-collapse:collapse}.gcc__browse-table th,.gcc__browse-table td{padding:.3rem .5rem;border-bottom:1px solid #e9ecef;text-align:left;font-size:.78rem}.gcc__browse-table th{font-weight:600;color:#495057;background:#f8f9fa;position:sticky;top:0;z-index:1}.gcc__browse-row{cursor:pointer;transition:background .1s}.gcc__browse-row:hover{background:#4465c90a}.gcc__browse-row--selected{background:#4465c914}.gcc__browse-row--custom .gcc__col-key{color:#6b7fd4}.gcc__col-check{width:28px;text-align:center}.gcc__col-key{font-family:monospace;font-size:11px;font-weight:600;color:#4465c9;width:130px}.gcc__browse-empty{padding:1rem .75rem;color:#6c757d;font-style:italic;font-size:.78rem}.gcc__selection{display:flex;flex-direction:column;flex:0 0 380px;overflow:hidden}.gcc__sel-legend{display:flex;align-items:center;padding:3px .5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6c757d;flex-shrink:0;gap:0}.gcc__sel-legend__drag{width:20px;flex-shrink:0}.gcc__sel-legend__pos{width:22px;flex-shrink:0;text-align:center}.gcc__sel-legend__code{width:80px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__label{flex:1;min-width:0}.gcc__sel-legend__flag{width:36px;text-align:center;flex-shrink:0}.gcc__sel-legend__width{width:50px;flex-shrink:0;padding-left:2px}.gcc__sel-legend__remove{width:22px;flex-shrink:0}.gcc__sel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#6c757d;gap:.5rem;font-size:.8rem}.gcc__sel-empty__icon{font-size:2rem;opacity:.3}.gcc__sel-empty p{margin:0}.gcc__sel-list{flex:1;overflow-y:auto}.gcc__sel-list::-webkit-scrollbar{width:4px}.gcc__sel-list::-webkit-scrollbar-track{background:transparent}.gcc__sel-list::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:3px}.gcc__sel-item{display:flex;align-items:center;padding:4px .5rem;border-bottom:1px solid #e9ecef;background:#fff;-webkit-user-select:none;user-select:none;gap:0;transition:background .1s}.gcc__sel-item:hover{background:#4465c908}.gcc__sel-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__sel-item__placeholder{height:32px;background:#4465c90f;border:1px dashed #4465C9;border-radius:2px;flex:1}.gcc__sel-item__drag{width:20px;flex-shrink:0;color:#ced4da;cursor:grab;font-size:11px;display:flex;align-items:center;justify-content:center}.gcc__sel-item__drag:hover{color:#4465c9}.gcc__sel-item__drag:active{cursor:grabbing}.gcc__sel-item__pos{width:22px;flex-shrink:0;font-size:9px;color:#6c757d;text-align:center}.gcc__sel-item__code{width:80px;flex-shrink:0;font-family:monospace;font-size:10px;font-weight:600;color:#4465c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2px}.gcc__sel-item__code--cf{color:#6b7fd4}.gcc__sel-item__label{flex:1;min-width:0;height:22px;padding:0 4px;border:1px solid transparent;border-radius:3px;font-size:11px;color:#343a40;background:transparent;outline:none;transition:border-color .1s,background .1s}.gcc__sel-item__label::placeholder{color:#6c757d;font-style:italic}.gcc__sel-item__label:hover{border-color:#d1d8de;background:#f8f9fa}.gcc__sel-item__label:focus{border-color:#4465c9;background:#fff}.gcc__sel-item__remove{width:22px;flex-shrink:0;background:none;border:none;color:#adb5bd;cursor:pointer;font-size:11px;padding:0;text-align:center;transition:color .1s}.gcc__sel-item__remove:hover{color:#dc3545}.gcc__sel-list.cdk-drop-list-dragging .gcc__sel-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.gcc__flag{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}.gcc__flag input[type=checkbox]{cursor:pointer}.gcc__item-width{width:46px;flex-shrink:0;padding:1px 3px;border:1px solid #ced4da;border-radius:3px;font-size:10px;text-align:right}.gcc__sel-footer{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-top:1px solid #e9ecef;flex-shrink:0}.gcc__sel-footer__info{font-size:.75rem;color:#6c757d;font-style:italic}.gcc__hint{display:flex;align-items:center;justify-content:center;flex:1;color:#6c757d;font-style:italic;font-size:.85rem}\n"] }]
|
|
4498
4498
|
}], ctorParameters: () => [{ type: i2.PresentationProfileDataService }, { type: i2.PresentationProfileItemDataService }] });
|
|
4499
4499
|
|
|
4500
4500
|
class PresentationProfileItemsComponent {
|
|
4501
4501
|
get isPerimeter() {
|
|
4502
|
-
return this.profile?.
|
|
4503
|
-
|| this.profile?.
|
|
4502
|
+
return this.profile?.PresentationProfileScope === PresentationProfileScopes.Role
|
|
4503
|
+
|| this.profile?.PresentationProfileScope === PresentationProfileScopes.Supplier;
|
|
4504
4504
|
}
|
|
4505
4505
|
get selectedCount() { return this.orderedSelection.length; }
|
|
4506
4506
|
get canSave() { return !!this.profile && !this.isSaving; }
|
|
@@ -4551,13 +4551,13 @@ class PresentationProfileItemsComponent {
|
|
|
4551
4551
|
return;
|
|
4552
4552
|
this.isLoading = true;
|
|
4553
4553
|
const profileId = this.profile.Id;
|
|
4554
|
-
const supplierId = this.profile.
|
|
4555
|
-
const roleId = this.profile.
|
|
4554
|
+
const supplierId = this.profile.PresentationProfileScope === PresentationProfileScopes.Supplier ? this.profile.ScopeId : null;
|
|
4555
|
+
const roleId = this.profile.PresentationProfileScope === PresentationProfileScopes.Role ? this.profile.ScopeId : null;
|
|
4556
4556
|
const scopeType = supplierId != null ? PresentationProfileScopes.Supplier
|
|
4557
4557
|
: roleId != null ? PresentationProfileScopes.Role : undefined;
|
|
4558
4558
|
const catalogFilter = {
|
|
4559
4559
|
MetaEntityKey: this.profile.MetaEntityKey,
|
|
4560
|
-
|
|
4560
|
+
PresentationProfileScope: scopeType,
|
|
4561
4561
|
ScopeId: supplierId ?? roleId ?? null,
|
|
4562
4562
|
};
|
|
4563
4563
|
const catalog$ = this.itemData.getCatalog(catalogFilter).pipe(catchError(() => of([])));
|
|
@@ -5010,11 +5010,11 @@ class HomepageComponent {
|
|
|
5010
5010
|
}
|
|
5011
5011
|
}
|
|
5012
5012
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: HomepageComponent, deps: [{ token: i1$2.ApplicationService }, { token: DflatAppService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5013
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: HomepageComponent, isStandalone: false, selector: "msw-homepage", ngImport: i0, template: "<div class=\"home-page\">\n <div class=\"main-panel\">\n <div class=\"search-container\">\n <div class=\"search-img\">\n <img [src]=\"this.appInfo.HomeLogoUrl\" class=\"mini-logo-lg\" />\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\n </div>\n <div class=\"search-bar-container\">\n <input class=\"search form-control search-bar-action\" (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\" type=\"text\"\n name=\"keyword\" #uniquename=\"ngModel\" [placeholder]=\"this.searchText\" [(ngModel)]=\"this.app.FilterService.Keywords\" />\n </div>\n <div class=\"info-container\" *ngIf=\"this.appInfo.Version\">\n <a routerLink=\"/release\">{{this.appInfo.Name}} {{this.appInfo.Version}}</a>\n </div>\n </div>\n </div>\n</div>\n", 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}.close-button{position:absolute;top:16px;right:16px;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=\"57\" height=\"57\" viewBox=\"0 0 57 57\">%0D%0A <path id=\"Rond_Croix\" data-name=\"Rond Croix\" d=\"M28.5,57A28.5,28.5,0,0,1,8.347,8.347,28.5,28.5,0,1,1,48.652,48.652,28.317,28.317,0,0,1,28.5,57Zm0-24.036h0l11.9,11.9L44.869,40.4,32.964,28.5,44.869,16.593,40.4,12.129,28.5,24.034,16.594,12.129l-4.465,4.464L24.034,28.5,12.129,40.4l4.463,4.465L28.5,32.965Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;cursor:pointer;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.search-container{display:flex;flex-direction:column;margin-top:50px}.search-img{display:flex;flex-direction:row;align-items:center;align-self:center}.mini-logo-lg{width:auto;height:60px;background:#fff;padding:5px;margin-left:0;cursor:pointer}.qlik-logo{width:auto;height:20px;padding:0;cursor:pointer;margin-top:-3px}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:32px;color:#3c5dc4}.info-container{display:flex;flex-direction:row-reverse;flex:1;font-size:smaller;padding:0 25px}.search{border-radius:30px;border:1px solid #8EA7F8;background-color:#f7faff;padding-left:45px;width:600px;height:50px;color:#4d5a81}::placeholder{color:#8ea7f8}.search-bar-container{margin-top:15px}.search-bar-container: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=\"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:15px -40px 0 15px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.home-page{display:flex;flex-direction:column;align-items:center;padding:0;background:transparent;height:100%}.home-logo{display:flex;flex-direction:column;align-items:center}.main-panel{width:100%;height:50%;display:flex;flex-direction:column;align-items:center}.right-panel{background-color:#f7faff;padding:15px;overflow-y:auto}.news{position:relative;-webkit-animation:fadeInFromNone .5s ease-out;-moz-animation:fadeInFromNone .5s ease-out;-o-animation:fadeInFromNone .5s ease-out;animation:fadeInFromNone .5s ease-out}@-webkit-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:0}}@-moz-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@-o-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
5013
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: HomepageComponent, isStandalone: false, selector: "msw-homepage", ngImport: i0, template: "<div class=\"home-page\">\r\n <div class=\"main-panel\">\r\n <div class=\"search-container\">\r\n <div class=\"search-img\">\r\n <img [src]=\"this.appInfo.HomeLogoUrl\" class=\"mini-logo-lg\" />\r\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\r\n </div>\r\n <div class=\"search-bar-container\">\r\n <input class=\"search form-control search-bar-action\" (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\" type=\"text\"\r\n name=\"keyword\" #uniquename=\"ngModel\" [placeholder]=\"this.searchText\" [(ngModel)]=\"this.app.FilterService.Keywords\" />\r\n </div>\r\n <div class=\"info-container\" *ngIf=\"this.appInfo.Version\">\r\n <a routerLink=\"/release\">{{this.appInfo.Name}} {{this.appInfo.Version}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", 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}.close-button{position:absolute;top:16px;right:16px;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=\"57\" height=\"57\" viewBox=\"0 0 57 57\">%0D%0A <path id=\"Rond_Croix\" data-name=\"Rond Croix\" d=\"M28.5,57A28.5,28.5,0,0,1,8.347,8.347,28.5,28.5,0,1,1,48.652,48.652,28.317,28.317,0,0,1,28.5,57Zm0-24.036h0l11.9,11.9L44.869,40.4,32.964,28.5,44.869,16.593,40.4,12.129,28.5,24.034,16.594,12.129l-4.465,4.464L24.034,28.5,12.129,40.4l4.463,4.465L28.5,32.965Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;cursor:pointer;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.search-container{display:flex;flex-direction:column;margin-top:50px}.search-img{display:flex;flex-direction:row;align-items:center;align-self:center}.mini-logo-lg{width:auto;height:60px;background:#fff;padding:5px;margin-left:0;cursor:pointer}.qlik-logo{width:auto;height:20px;padding:0;cursor:pointer;margin-top:-3px}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:32px;color:#3c5dc4}.info-container{display:flex;flex-direction:row-reverse;flex:1;font-size:smaller;padding:0 25px}.search{border-radius:30px;border:1px solid #8EA7F8;background-color:#f7faff;padding-left:45px;width:600px;height:50px;color:#4d5a81}::placeholder{color:#8ea7f8}.search-bar-container{margin-top:15px}.search-bar-container: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=\"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:15px -40px 0 15px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.home-page{display:flex;flex-direction:column;align-items:center;padding:0;background:transparent;height:100%}.home-logo{display:flex;flex-direction:column;align-items:center}.main-panel{width:100%;height:50%;display:flex;flex-direction:column;align-items:center}.right-panel{background-color:#f7faff;padding:15px;overflow-y:auto}.news{position:relative;-webkit-animation:fadeInFromNone .5s ease-out;-moz-animation:fadeInFromNone .5s ease-out;-o-animation:fadeInFromNone .5s ease-out;animation:fadeInFromNone .5s ease-out}@-webkit-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:0}}@-moz-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@-o-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
5014
5014
|
}
|
|
5015
5015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: HomepageComponent, decorators: [{
|
|
5016
5016
|
type: Component,
|
|
5017
|
-
args: [{ selector: 'msw-homepage', standalone: false, template: "<div class=\"home-page\">\n <div class=\"main-panel\">\n <div class=\"search-container\">\n <div class=\"search-img\">\n <img [src]=\"this.appInfo.HomeLogoUrl\" class=\"mini-logo-lg\" />\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\n </div>\n <div class=\"search-bar-container\">\n <input class=\"search form-control search-bar-action\" (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\" type=\"text\"\n name=\"keyword\" #uniquename=\"ngModel\" [placeholder]=\"this.searchText\" [(ngModel)]=\"this.app.FilterService.Keywords\" />\n </div>\n <div class=\"info-container\" *ngIf=\"this.appInfo.Version\">\n <a routerLink=\"/release\">{{this.appInfo.Name}} {{this.appInfo.Version}}</a>\n </div>\n </div>\n </div>\n</div>\n", 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}.close-button{position:absolute;top:16px;right:16px;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=\"57\" height=\"57\" viewBox=\"0 0 57 57\">%0D%0A <path id=\"Rond_Croix\" data-name=\"Rond Croix\" d=\"M28.5,57A28.5,28.5,0,0,1,8.347,8.347,28.5,28.5,0,1,1,48.652,48.652,28.317,28.317,0,0,1,28.5,57Zm0-24.036h0l11.9,11.9L44.869,40.4,32.964,28.5,44.869,16.593,40.4,12.129,28.5,24.034,16.594,12.129l-4.465,4.464L24.034,28.5,12.129,40.4l4.463,4.465L28.5,32.965Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;cursor:pointer;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.search-container{display:flex;flex-direction:column;margin-top:50px}.search-img{display:flex;flex-direction:row;align-items:center;align-self:center}.mini-logo-lg{width:auto;height:60px;background:#fff;padding:5px;margin-left:0;cursor:pointer}.qlik-logo{width:auto;height:20px;padding:0;cursor:pointer;margin-top:-3px}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:32px;color:#3c5dc4}.info-container{display:flex;flex-direction:row-reverse;flex:1;font-size:smaller;padding:0 25px}.search{border-radius:30px;border:1px solid #8EA7F8;background-color:#f7faff;padding-left:45px;width:600px;height:50px;color:#4d5a81}::placeholder{color:#8ea7f8}.search-bar-container{margin-top:15px}.search-bar-container: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=\"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:15px -40px 0 15px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.home-page{display:flex;flex-direction:column;align-items:center;padding:0;background:transparent;height:100%}.home-logo{display:flex;flex-direction:column;align-items:center}.main-panel{width:100%;height:50%;display:flex;flex-direction:column;align-items:center}.right-panel{background-color:#f7faff;padding:15px;overflow-y:auto}.news{position:relative;-webkit-animation:fadeInFromNone .5s ease-out;-moz-animation:fadeInFromNone .5s ease-out;-o-animation:fadeInFromNone .5s ease-out;animation:fadeInFromNone .5s ease-out}@-webkit-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:0}}@-moz-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@-o-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}\n"] }]
|
|
5017
|
+
args: [{ selector: 'msw-homepage', standalone: false, template: "<div class=\"home-page\">\r\n <div class=\"main-panel\">\r\n <div class=\"search-container\">\r\n <div class=\"search-img\">\r\n <img [src]=\"this.appInfo.HomeLogoUrl\" class=\"mini-logo-lg\" />\r\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\r\n </div>\r\n <div class=\"search-bar-container\">\r\n <input class=\"search form-control search-bar-action\" (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\" type=\"text\"\r\n name=\"keyword\" #uniquename=\"ngModel\" [placeholder]=\"this.searchText\" [(ngModel)]=\"this.app.FilterService.Keywords\" />\r\n </div>\r\n <div class=\"info-container\" *ngIf=\"this.appInfo.Version\">\r\n <a routerLink=\"/release\">{{this.appInfo.Name}} {{this.appInfo.Version}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", 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}.close-button{position:absolute;top:16px;right:16px;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=\"57\" height=\"57\" viewBox=\"0 0 57 57\">%0D%0A <path id=\"Rond_Croix\" data-name=\"Rond Croix\" d=\"M28.5,57A28.5,28.5,0,0,1,8.347,8.347,28.5,28.5,0,1,1,48.652,48.652,28.317,28.317,0,0,1,28.5,57Zm0-24.036h0l11.9,11.9L44.869,40.4,32.964,28.5,44.869,16.593,40.4,12.129,28.5,24.034,16.594,12.129l-4.465,4.464L24.034,28.5,12.129,40.4l4.463,4.465L28.5,32.965Z\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;cursor:pointer;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.search-container{display:flex;flex-direction:column;margin-top:50px}.search-img{display:flex;flex-direction:row;align-items:center;align-self:center}.mini-logo-lg{width:auto;height:60px;background:#fff;padding:5px;margin-left:0;cursor:pointer}.qlik-logo{width:auto;height:20px;padding:0;cursor:pointer;margin-top:-3px}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:32px;color:#3c5dc4}.info-container{display:flex;flex-direction:row-reverse;flex:1;font-size:smaller;padding:0 25px}.search{border-radius:30px;border:1px solid #8EA7F8;background-color:#f7faff;padding-left:45px;width:600px;height:50px;color:#4d5a81}::placeholder{color:#8ea7f8}.search-bar-container{margin-top:15px}.search-bar-container: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=\"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:15px -40px 0 15px;filter:invert(60%) sepia(57%) saturate(394%) hue-rotate(191deg) brightness(99%) contrast(96%)}.home-page{display:flex;flex-direction:column;align-items:center;padding:0;background:transparent;height:100%}.home-logo{display:flex;flex-direction:column;align-items:center}.main-panel{width:100%;height:50%;display:flex;flex-direction:column;align-items:center}.right-panel{background-color:#f7faff;padding:15px;overflow-y:auto}.news{position:relative;-webkit-animation:fadeInFromNone .5s ease-out;-moz-animation:fadeInFromNone .5s ease-out;-o-animation:fadeInFromNone .5s ease-out;animation:fadeInFromNone .5s ease-out}@-webkit-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:0}}@-moz-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@-o-keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}@keyframes fadeInFromNone{0%{position:relative;margin-top:-200px;display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1;margin-top:16px}}\n"] }]
|
|
5018
5018
|
}], ctorParameters: () => [{ type: i1$2.ApplicationService }, { type: DflatAppService }] });
|
|
5019
5019
|
|
|
5020
5020
|
class DFlatSpinnerComponent {
|
|
@@ -5103,18 +5103,18 @@ class UserMenuComponent {
|
|
|
5103
5103
|
// Mise à jour de l'image de l'utilisateur
|
|
5104
5104
|
if (!Utilities.IsNil(this.currentUser.AvatarUrl)) {
|
|
5105
5105
|
let imageLink = encodeURI(this.imageService.getImageUrl(this.currentUser.AvatarUrl));
|
|
5106
|
-
this.userBackImageStyle = `
|
|
5107
|
-
background-image: url(${imageLink});
|
|
5108
|
-
background-size: cover;
|
|
5109
|
-
background-repeat: no-repeat;
|
|
5106
|
+
this.userBackImageStyle = `
|
|
5107
|
+
background-image: url(${imageLink});
|
|
5108
|
+
background-size: cover;
|
|
5109
|
+
background-repeat: no-repeat;
|
|
5110
5110
|
background-position: center;`;
|
|
5111
5111
|
}
|
|
5112
5112
|
else {
|
|
5113
|
-
this.userBackImageStyle = `
|
|
5114
|
-
background-image: url('assets/images/blue-camera.svg');
|
|
5115
|
-
background-size: 32px 32px;
|
|
5116
|
-
background-repeat: no-repeat;
|
|
5117
|
-
background-position: center;
|
|
5113
|
+
this.userBackImageStyle = `
|
|
5114
|
+
background-image: url('assets/images/blue-camera.svg');
|
|
5115
|
+
background-size: 32px 32px;
|
|
5116
|
+
background-repeat: no-repeat;
|
|
5117
|
+
background-position: center;
|
|
5118
5118
|
animation: blinker 2s linear infinite;`;
|
|
5119
5119
|
}
|
|
5120
5120
|
}
|
|
@@ -5227,11 +5227,11 @@ class DFlatLayoutComponent extends DefaultLayoutComponent {
|
|
|
5227
5227
|
this.sidebarVisible = false;
|
|
5228
5228
|
}
|
|
5229
5229
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DFlatLayoutComponent, deps: [{ token: i0.Renderer2 }, { token: i1$1.UserService }, { token: i1$1.MenuService }, { token: i1$1.AuthService }, { token: i1$1.HubService }, { token: i2$2.ActivatedRoute }, { token: i2$2.Router }, { token: i1$2.ModalService }, { token: i4$2.Title }, { token: i1$2.ActionService }, { token: i1$2.ApplicationService }, { token: DflatAppService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5230
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: DFlatLayoutComponent, isStandalone: false, selector: "msw-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"base-container\">\n <div class=\"base-topbar\">\n <div class=\"left-topbar\">\n <button class=\"btn btn-primary btn-lg sidebar-button\" (click)=\"onToggleButtonClick()\">\n <i class=\"fa fa-bars\"></i>\n </button>\n\n <div (click)=\"this.backHome()\">\n <img [src]=\"this.appInfo.LogoUrl\" class=\"mini-logo-lg\" />\n </div>\n <div (click)=\"this.backHome()\">\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\n </div>\n </div>\n <div class=\"center-topbar\">\n <ng-container *ngIf=\"this.app.FilterService.filterChanged$ | async\">\n <div class=\"search-bar-container\">\n <input class=\"search form-control search-bar-action\"\n (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\"\n type=\"text\"\n name=\"keyword\"\n [placeholder]=\"this.searchText\"\n #uniquename=\"ngModel\"\n [(ngModel)]=\"this.app.FilterService.Keywords\"/>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"base-main\">\n <div class=\"sidebar-outcontainer\">\n <div class=\"sidebar-incontainer\">\n <div #sidebar ngClass=\"sidebar-container visible\"\n [class.uncollapsed]=\"sidebarVisible\"\n [class.collapsed]=\"!sidebarVisible\"\n (mouseleave)=\"hideSidebar($event)\"\n >\n <msw-user-menu class=\"user-menu\"\n [menuItems]=\"mylinks\"\n [compact]=\"!sidebarVisible\"\n (itemClick)=\"this.hideSidebar(null)\">\n </msw-user-menu>\n </div>\n </div>\n </div>\n <div class=\"main-content\">\n <div class=\"main-component\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </div>\n</div>\n<ng-http-loader\n [backdrop]=\"false\"\n [backgroundColor]=\"'transparent'\"\n [debounceDelay]=\"100\"\n [extraDuration]=\"300\"\n [minDuration]=\"300\"\n [opacity]=\"'1'\"\n [entryComponent]=\"spinnerComponent\">\n</ng-http-loader>\n", 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}.sidebar-incontainer{height:100%;overflow-y:auto;overflow-x:hidden;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer{height:100%;background:#3c5dc4;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer::-webkit-scrollbar{display:none}.sidebar-button{width:50px;font-size:16px}.btn.btn-primary:hover,.btn.btn-primary:focus,.btn.btn-primary:active{color:#f7faff;background-color:#4465c9;border-color:#4465c9}.base-container{display:flex;width:100%;height:100%;flex-direction:column;flex-grow:1;flex-shrink:0;overflow:auto}.base-topbar{display:flex;flex-grow:0;flex-shrink:0;width:100%;height:50px;background:#4465c9;align-content:center}.right-topbar{display:flex;margin-left:auto;order:2}.base-main{flex-grow:1;flex-shrink:0;height:50%;display:flex;flex-direction:row;justify-content:stretch;align-content:flex-start;flex-wrap:nowrap}.footer{display:none;width:100%;height:30px;background:#3c5dc4;color:#fff;padding:5px}.main-content{display:flex;flex-direction:column;width:100%;height:100%;flex-grow:1;flex-shrink:1;overflow:auto;margin-left:0}.left-topbar{display:flex;align-content:center}.left-topbar>div{height:50px}.left-topbar>div>span{line-height:50px;vertical-align:middle}.sidebar-container{display:flex;flex-direction:column;overflow-y:scroll;height:calc(100% - 50px);min-width:230px;width:230px;background:#3c5dc4;position:fixed;transform:translate(-100%);transition:transform .25s ease-in-out;z-index:2000}.sidebar-container.collapsed{margin-left:-230px;transition:ease-in .1s all}.sidebar-container.uncollapsed{margin-left:0;width:230px;min-width:230px;transition:ease-in .1s all}.sidebar-hover-zone{position:fixed;top:50px;left:0;width:50px;height:calc(100% - 50px);z-index:1000;background:#3c5dc4}.sidebar-container.visible{transform:translate(0)}.menu-container{display:flex;flex-direction:column;flex:1}.main-component{width:100%;height:100%;overflow:auto}.mini-logo3D-lg{width:auto;height:80px;background:#4465c9;padding:0 30px 0 0;margin-left:0;margin-top:0;cursor:pointer}.mini-logo-lg{width:auto;height:40px;background:transparent;filter:brightness(0) invert(1);padding:5px;margin-left:0;margin-top:5px;cursor:pointer}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:16pt;color:#fff;cursor:pointer}.breadcrumb-panel{height:44x;width:100%;border-bottom:solid 1px var(--main-bg-color)}.search-bar-container{margin-left:55px;margin-top:-5px}.search{border-radius:5px;border:1px solid #8FA3DF;background-color:#4465c9;padding-left:30px;margin-top:14px;width:400px;color:#fff}::placeholder{color:#8fa3df}.search-bar-container: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%)}.user-menu{display:flex;flex-direction:column;padding:10px}.mini-logo-histo{display:flex;justify-content:flex-end;width:auto;height:40px;background:#4465c9;padding:5px;margin-left:0;margin-top:5px;cursor:pointer}@media screen and (max-width:500px){.search{width:150px}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.NgHttpLoaderComponent, selector: "ng-http-loader", inputs: ["backdrop", "backgroundColor", "debounceDelay", "entryComponent", "extraDuration", "filteredHeaders", "filteredMethods", "filteredUrlPatterns", "minDuration", "opacity", "backdropBackgroundColor", "spinner"] }, { kind: "directive", type: i2$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: UserMenuComponent, selector: "msw-user-menu", inputs: ["currentUser", "menuItems", "compact"], outputs: ["itemClick"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
5230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: DFlatLayoutComponent, isStandalone: false, selector: "msw-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"base-container\">\r\n <div class=\"base-topbar\">\r\n <div class=\"left-topbar\">\r\n <button class=\"btn btn-primary btn-lg sidebar-button\" (click)=\"onToggleButtonClick()\">\r\n <i class=\"fa fa-bars\"></i>\r\n </button>\r\n\r\n <div (click)=\"this.backHome()\">\r\n <img [src]=\"this.appInfo.LogoUrl\" class=\"mini-logo-lg\" />\r\n </div>\r\n <div (click)=\"this.backHome()\">\r\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\r\n </div>\r\n </div>\r\n <div class=\"center-topbar\">\r\n <ng-container *ngIf=\"this.app.FilterService.filterChanged$ | async\">\r\n <div class=\"search-bar-container\">\r\n <input class=\"search form-control search-bar-action\"\r\n (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\"\r\n type=\"text\"\r\n name=\"keyword\"\r\n [placeholder]=\"this.searchText\"\r\n #uniquename=\"ngModel\"\r\n [(ngModel)]=\"this.app.FilterService.Keywords\"/>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"base-main\">\r\n <div class=\"sidebar-outcontainer\">\r\n <div class=\"sidebar-incontainer\">\r\n <div #sidebar ngClass=\"sidebar-container visible\"\r\n [class.uncollapsed]=\"sidebarVisible\"\r\n [class.collapsed]=\"!sidebarVisible\"\r\n (mouseleave)=\"hideSidebar($event)\"\r\n >\r\n <msw-user-menu class=\"user-menu\"\r\n [menuItems]=\"mylinks\"\r\n [compact]=\"!sidebarVisible\"\r\n (itemClick)=\"this.hideSidebar(null)\">\r\n </msw-user-menu>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"main-component\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-http-loader\r\n [backdrop]=\"false\"\r\n [backgroundColor]=\"'transparent'\"\r\n [debounceDelay]=\"100\"\r\n [extraDuration]=\"300\"\r\n [minDuration]=\"300\"\r\n [opacity]=\"'1'\"\r\n [entryComponent]=\"spinnerComponent\">\r\n</ng-http-loader>\r\n", 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}.sidebar-incontainer{height:100%;overflow-y:auto;overflow-x:hidden;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer{height:100%;background:#3c5dc4;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer::-webkit-scrollbar{display:none}.sidebar-button{width:50px;font-size:16px}.btn.btn-primary:hover,.btn.btn-primary:focus,.btn.btn-primary:active{color:#f7faff;background-color:#4465c9;border-color:#4465c9}.base-container{display:flex;width:100%;height:100%;flex-direction:column;flex-grow:1;flex-shrink:0;overflow:auto}.base-topbar{display:flex;flex-grow:0;flex-shrink:0;width:100%;height:50px;background:#4465c9;align-content:center}.right-topbar{display:flex;margin-left:auto;order:2}.base-main{flex-grow:1;flex-shrink:0;height:50%;display:flex;flex-direction:row;justify-content:stretch;align-content:flex-start;flex-wrap:nowrap}.footer{display:none;width:100%;height:30px;background:#3c5dc4;color:#fff;padding:5px}.main-content{display:flex;flex-direction:column;width:100%;height:100%;flex-grow:1;flex-shrink:1;overflow:auto;margin-left:0}.left-topbar{display:flex;align-content:center}.left-topbar>div{height:50px}.left-topbar>div>span{line-height:50px;vertical-align:middle}.sidebar-container{display:flex;flex-direction:column;overflow-y:scroll;height:calc(100% - 50px);min-width:230px;width:230px;background:#3c5dc4;position:fixed;transform:translate(-100%);transition:transform .25s ease-in-out;z-index:2000}.sidebar-container.collapsed{margin-left:-230px;transition:ease-in .1s all}.sidebar-container.uncollapsed{margin-left:0;width:230px;min-width:230px;transition:ease-in .1s all}.sidebar-hover-zone{position:fixed;top:50px;left:0;width:50px;height:calc(100% - 50px);z-index:1000;background:#3c5dc4}.sidebar-container.visible{transform:translate(0)}.menu-container{display:flex;flex-direction:column;flex:1}.main-component{width:100%;height:100%;overflow:auto}.mini-logo3D-lg{width:auto;height:80px;background:#4465c9;padding:0 30px 0 0;margin-left:0;margin-top:0;cursor:pointer}.mini-logo-lg{width:auto;height:40px;background:transparent;filter:brightness(0) invert(1);padding:5px;margin-left:0;margin-top:5px;cursor:pointer}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:16pt;color:#fff;cursor:pointer}.breadcrumb-panel{height:44x;width:100%;border-bottom:solid 1px var(--main-bg-color)}.search-bar-container{margin-left:55px;margin-top:-5px}.search{border-radius:5px;border:1px solid #8FA3DF;background-color:#4465c9;padding-left:30px;margin-top:14px;width:400px;color:#fff}::placeholder{color:#8fa3df}.search-bar-container: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%)}.user-menu{display:flex;flex-direction:column;padding:10px}.mini-logo-histo{display:flex;justify-content:flex-end;width:auto;height:40px;background:#4465c9;padding:5px;margin-left:0;margin-top:5px;cursor:pointer}@media screen and (max-width:500px){.search{width:150px}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.NgHttpLoaderComponent, selector: "ng-http-loader", inputs: ["backdrop", "backgroundColor", "debounceDelay", "entryComponent", "extraDuration", "filteredHeaders", "filteredMethods", "filteredUrlPatterns", "minDuration", "opacity", "backdropBackgroundColor", "spinner"] }, { kind: "directive", type: i2$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: UserMenuComponent, selector: "msw-user-menu", inputs: ["currentUser", "menuItems", "compact"], outputs: ["itemClick"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
5231
5231
|
}
|
|
5232
5232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DFlatLayoutComponent, decorators: [{
|
|
5233
5233
|
type: Component,
|
|
5234
|
-
args: [{ selector: 'msw-layout', standalone: false, template: "<div class=\"base-container\">\n <div class=\"base-topbar\">\n <div class=\"left-topbar\">\n <button class=\"btn btn-primary btn-lg sidebar-button\" (click)=\"onToggleButtonClick()\">\n <i class=\"fa fa-bars\"></i>\n </button>\n\n <div (click)=\"this.backHome()\">\n <img [src]=\"this.appInfo.LogoUrl\" class=\"mini-logo-lg\" />\n </div>\n <div (click)=\"this.backHome()\">\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\n </div>\n </div>\n <div class=\"center-topbar\">\n <ng-container *ngIf=\"this.app.FilterService.filterChanged$ | async\">\n <div class=\"search-bar-container\">\n <input class=\"search form-control search-bar-action\"\n (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\"\n type=\"text\"\n name=\"keyword\"\n [placeholder]=\"this.searchText\"\n #uniquename=\"ngModel\"\n [(ngModel)]=\"this.app.FilterService.Keywords\"/>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"base-main\">\n <div class=\"sidebar-outcontainer\">\n <div class=\"sidebar-incontainer\">\n <div #sidebar ngClass=\"sidebar-container visible\"\n [class.uncollapsed]=\"sidebarVisible\"\n [class.collapsed]=\"!sidebarVisible\"\n (mouseleave)=\"hideSidebar($event)\"\n >\n <msw-user-menu class=\"user-menu\"\n [menuItems]=\"mylinks\"\n [compact]=\"!sidebarVisible\"\n (itemClick)=\"this.hideSidebar(null)\">\n </msw-user-menu>\n </div>\n </div>\n </div>\n <div class=\"main-content\">\n <div class=\"main-component\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </div>\n</div>\n<ng-http-loader\n [backdrop]=\"false\"\n [backgroundColor]=\"'transparent'\"\n [debounceDelay]=\"100\"\n [extraDuration]=\"300\"\n [minDuration]=\"300\"\n [opacity]=\"'1'\"\n [entryComponent]=\"spinnerComponent\">\n</ng-http-loader>\n", 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}.sidebar-incontainer{height:100%;overflow-y:auto;overflow-x:hidden;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer{height:100%;background:#3c5dc4;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer::-webkit-scrollbar{display:none}.sidebar-button{width:50px;font-size:16px}.btn.btn-primary:hover,.btn.btn-primary:focus,.btn.btn-primary:active{color:#f7faff;background-color:#4465c9;border-color:#4465c9}.base-container{display:flex;width:100%;height:100%;flex-direction:column;flex-grow:1;flex-shrink:0;overflow:auto}.base-topbar{display:flex;flex-grow:0;flex-shrink:0;width:100%;height:50px;background:#4465c9;align-content:center}.right-topbar{display:flex;margin-left:auto;order:2}.base-main{flex-grow:1;flex-shrink:0;height:50%;display:flex;flex-direction:row;justify-content:stretch;align-content:flex-start;flex-wrap:nowrap}.footer{display:none;width:100%;height:30px;background:#3c5dc4;color:#fff;padding:5px}.main-content{display:flex;flex-direction:column;width:100%;height:100%;flex-grow:1;flex-shrink:1;overflow:auto;margin-left:0}.left-topbar{display:flex;align-content:center}.left-topbar>div{height:50px}.left-topbar>div>span{line-height:50px;vertical-align:middle}.sidebar-container{display:flex;flex-direction:column;overflow-y:scroll;height:calc(100% - 50px);min-width:230px;width:230px;background:#3c5dc4;position:fixed;transform:translate(-100%);transition:transform .25s ease-in-out;z-index:2000}.sidebar-container.collapsed{margin-left:-230px;transition:ease-in .1s all}.sidebar-container.uncollapsed{margin-left:0;width:230px;min-width:230px;transition:ease-in .1s all}.sidebar-hover-zone{position:fixed;top:50px;left:0;width:50px;height:calc(100% - 50px);z-index:1000;background:#3c5dc4}.sidebar-container.visible{transform:translate(0)}.menu-container{display:flex;flex-direction:column;flex:1}.main-component{width:100%;height:100%;overflow:auto}.mini-logo3D-lg{width:auto;height:80px;background:#4465c9;padding:0 30px 0 0;margin-left:0;margin-top:0;cursor:pointer}.mini-logo-lg{width:auto;height:40px;background:transparent;filter:brightness(0) invert(1);padding:5px;margin-left:0;margin-top:5px;cursor:pointer}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:16pt;color:#fff;cursor:pointer}.breadcrumb-panel{height:44x;width:100%;border-bottom:solid 1px var(--main-bg-color)}.search-bar-container{margin-left:55px;margin-top:-5px}.search{border-radius:5px;border:1px solid #8FA3DF;background-color:#4465c9;padding-left:30px;margin-top:14px;width:400px;color:#fff}::placeholder{color:#8fa3df}.search-bar-container: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%)}.user-menu{display:flex;flex-direction:column;padding:10px}.mini-logo-histo{display:flex;justify-content:flex-end;width:auto;height:40px;background:#4465c9;padding:5px;margin-left:0;margin-top:5px;cursor:pointer}@media screen and (max-width:500px){.search{width:150px}}\n"] }]
|
|
5234
|
+
args: [{ selector: 'msw-layout', standalone: false, template: "<div class=\"base-container\">\r\n <div class=\"base-topbar\">\r\n <div class=\"left-topbar\">\r\n <button class=\"btn btn-primary btn-lg sidebar-button\" (click)=\"onToggleButtonClick()\">\r\n <i class=\"fa fa-bars\"></i>\r\n </button>\r\n\r\n <div (click)=\"this.backHome()\">\r\n <img [src]=\"this.appInfo.LogoUrl\" class=\"mini-logo-lg\" />\r\n </div>\r\n <div (click)=\"this.backHome()\">\r\n <span class=\"dflat-logo\"><b>{{this.appInfo.Name}}</b></span>\r\n </div>\r\n </div>\r\n <div class=\"center-topbar\">\r\n <ng-container *ngIf=\"this.app.FilterService.filterChanged$ | async\">\r\n <div class=\"search-bar-container\">\r\n <input class=\"search form-control search-bar-action\"\r\n (keyup.enter)=\"handleKeyboardEnter(this.app.FilterService.Keywords)\"\r\n type=\"text\"\r\n name=\"keyword\"\r\n [placeholder]=\"this.searchText\"\r\n #uniquename=\"ngModel\"\r\n [(ngModel)]=\"this.app.FilterService.Keywords\"/>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"base-main\">\r\n <div class=\"sidebar-outcontainer\">\r\n <div class=\"sidebar-incontainer\">\r\n <div #sidebar ngClass=\"sidebar-container visible\"\r\n [class.uncollapsed]=\"sidebarVisible\"\r\n [class.collapsed]=\"!sidebarVisible\"\r\n (mouseleave)=\"hideSidebar($event)\"\r\n >\r\n <msw-user-menu class=\"user-menu\"\r\n [menuItems]=\"mylinks\"\r\n [compact]=\"!sidebarVisible\"\r\n (itemClick)=\"this.hideSidebar(null)\">\r\n </msw-user-menu>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"main-component\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-http-loader\r\n [backdrop]=\"false\"\r\n [backgroundColor]=\"'transparent'\"\r\n [debounceDelay]=\"100\"\r\n [extraDuration]=\"300\"\r\n [minDuration]=\"300\"\r\n [opacity]=\"'1'\"\r\n [entryComponent]=\"spinnerComponent\">\r\n</ng-http-loader>\r\n", 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}.sidebar-incontainer{height:100%;overflow-y:auto;overflow-x:hidden;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer{height:100%;background:#3c5dc4;-ms-overflow-style:none;scrollbar-width:none}.sidebar-outcontainer::-webkit-scrollbar{display:none}.sidebar-button{width:50px;font-size:16px}.btn.btn-primary:hover,.btn.btn-primary:focus,.btn.btn-primary:active{color:#f7faff;background-color:#4465c9;border-color:#4465c9}.base-container{display:flex;width:100%;height:100%;flex-direction:column;flex-grow:1;flex-shrink:0;overflow:auto}.base-topbar{display:flex;flex-grow:0;flex-shrink:0;width:100%;height:50px;background:#4465c9;align-content:center}.right-topbar{display:flex;margin-left:auto;order:2}.base-main{flex-grow:1;flex-shrink:0;height:50%;display:flex;flex-direction:row;justify-content:stretch;align-content:flex-start;flex-wrap:nowrap}.footer{display:none;width:100%;height:30px;background:#3c5dc4;color:#fff;padding:5px}.main-content{display:flex;flex-direction:column;width:100%;height:100%;flex-grow:1;flex-shrink:1;overflow:auto;margin-left:0}.left-topbar{display:flex;align-content:center}.left-topbar>div{height:50px}.left-topbar>div>span{line-height:50px;vertical-align:middle}.sidebar-container{display:flex;flex-direction:column;overflow-y:scroll;height:calc(100% - 50px);min-width:230px;width:230px;background:#3c5dc4;position:fixed;transform:translate(-100%);transition:transform .25s ease-in-out;z-index:2000}.sidebar-container.collapsed{margin-left:-230px;transition:ease-in .1s all}.sidebar-container.uncollapsed{margin-left:0;width:230px;min-width:230px;transition:ease-in .1s all}.sidebar-hover-zone{position:fixed;top:50px;left:0;width:50px;height:calc(100% - 50px);z-index:1000;background:#3c5dc4}.sidebar-container.visible{transform:translate(0)}.menu-container{display:flex;flex-direction:column;flex:1}.main-component{width:100%;height:100%;overflow:auto}.mini-logo3D-lg{width:auto;height:80px;background:#4465c9;padding:0 30px 0 0;margin-left:0;margin-top:0;cursor:pointer}.mini-logo-lg{width:auto;height:40px;background:transparent;filter:brightness(0) invert(1);padding:5px;margin-left:0;margin-top:5px;cursor:pointer}.dflat-logo{font-family:ErasITC-Bold,Eras ITC,Eras Light ITC,sans-serif;font-size:16pt;color:#fff;cursor:pointer}.breadcrumb-panel{height:44x;width:100%;border-bottom:solid 1px var(--main-bg-color)}.search-bar-container{margin-left:55px;margin-top:-5px}.search{border-radius:5px;border:1px solid #8FA3DF;background-color:#4465c9;padding-left:30px;margin-top:14px;width:400px;color:#fff}::placeholder{color:#8fa3df}.search-bar-container: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%)}.user-menu{display:flex;flex-direction:column;padding:10px}.mini-logo-histo{display:flex;justify-content:flex-end;width:auto;height:40px;background:#4465c9;padding:5px;margin-left:0;margin-top:5px;cursor:pointer}@media screen and (max-width:500px){.search{width:150px}}\n"] }]
|
|
5235
5235
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1$1.UserService }, { type: i1$1.MenuService }, { type: i1$1.AuthService }, { type: i1$1.HubService }, { type: i2$2.ActivatedRoute }, { type: i2$2.Router }, { type: i1$2.ModalService }, { type: i4$2.Title }, { type: i1$2.ActionService }, { type: i1$2.ApplicationService }, { type: DflatAppService }] });
|
|
5236
5236
|
|
|
5237
5237
|
class SearchResult {
|
|
@@ -5275,17 +5275,17 @@ class SearchResultComponent {
|
|
|
5275
5275
|
let backImageStyle;
|
|
5276
5276
|
if (Utilities.IsNil(imageLink) || imageLink == 'undefined') {
|
|
5277
5277
|
imageLink = '/assets/images/image-not-available.png';
|
|
5278
|
-
backImageStyle = `
|
|
5279
|
-
background-image: url(${imageLink});
|
|
5280
|
-
background-size: 64px 64px;
|
|
5281
|
-
background-repeat: no-repeat;
|
|
5278
|
+
backImageStyle = `
|
|
5279
|
+
background-image: url(${imageLink});
|
|
5280
|
+
background-size: 64px 64px;
|
|
5281
|
+
background-repeat: no-repeat;
|
|
5282
5282
|
background-position: top 60px center;`;
|
|
5283
5283
|
}
|
|
5284
5284
|
else {
|
|
5285
|
-
backImageStyle = `
|
|
5286
|
-
background-image: url(${imageLink});
|
|
5287
|
-
background-size: auto 64px;
|
|
5288
|
-
background-repeat: no-repeat;
|
|
5285
|
+
backImageStyle = `
|
|
5286
|
+
background-image: url(${imageLink});
|
|
5287
|
+
background-size: auto 64px;
|
|
5288
|
+
background-repeat: no-repeat;
|
|
5289
5289
|
background-position: left;`;
|
|
5290
5290
|
}
|
|
5291
5291
|
return backImageStyle;
|
|
@@ -5382,11 +5382,11 @@ class SearchComponent {
|
|
|
5382
5382
|
});
|
|
5383
5383
|
}
|
|
5384
5384
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: SearchComponent, deps: [{ token: i2$2.ActivatedRoute }, { token: i1$2.ApplicationService }, { token: DFLAT_SEARCH_PROVIDERS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5385
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: SearchComponent, isStandalone: false, selector: "msw-search", ngImport: i0, template: "<div>\n <div class=\"search-header petit-titre\">\n <span *ngIf=\"this.isLoading\">\n Recherche en cours (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\n </span>\n <span *ngIf=\"!this.isLoading && this.noResults()\">\n Aucun r\u00E9sultat (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\n </span>\n <span *ngIf=\"!this.isLoading && !this.noResults()\">\n Recherche termin\u00E9e (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\n </span>\n </div>\n\n <div class=\"global-result-container\">\n <div class=\"global-result\" *ngFor=\"let section of this.sections\">\n <msw-search-result\n [title]=\"section.title\"\n [results]=\"section.results\"\n [url]=\"section.url\"\n [nbTotal]=\"section.totalCount\"\n [isLoading]=\"section.isLoading\">\n </msw-search-result>\n </div>\n </div>\n</div>\n", 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}.search-header{height:15px;padding:15px 35px}.global-result-container{display:flex;flex-direction:row;padding:0 15px;flex-wrap:wrap}.global-result{border-radius:20px;box-shadow:0 3px 10px #9cb1f540;background:#fff;margin:15px;padding:0 25px 25px;flex:1}.mini-logo3D-lg{height:80px;margin-right:15px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchResultComponent, selector: "msw-search-result", inputs: ["isLoading", "results", "url", "nbTotal", "title"] }] }); }
|
|
5385
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: SearchComponent, isStandalone: false, selector: "msw-search", ngImport: i0, template: "<div>\r\n <div class=\"search-header petit-titre\">\r\n <span *ngIf=\"this.isLoading\">\r\n Recherche en cours (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\r\n </span>\r\n <span *ngIf=\"!this.isLoading && this.noResults()\">\r\n Aucun r\u00E9sultat (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\r\n </span>\r\n <span *ngIf=\"!this.isLoading && !this.noResults()\">\r\n Recherche termin\u00E9e (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\r\n </span>\r\n </div>\r\n\r\n <div class=\"global-result-container\">\r\n <div class=\"global-result\" *ngFor=\"let section of this.sections\">\r\n <msw-search-result\r\n [title]=\"section.title\"\r\n [results]=\"section.results\"\r\n [url]=\"section.url\"\r\n [nbTotal]=\"section.totalCount\"\r\n [isLoading]=\"section.isLoading\">\r\n </msw-search-result>\r\n </div>\r\n </div>\r\n</div>\r\n", 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}.search-header{height:15px;padding:15px 35px}.global-result-container{display:flex;flex-direction:row;padding:0 15px;flex-wrap:wrap}.global-result{border-radius:20px;box-shadow:0 3px 10px #9cb1f540;background:#fff;margin:15px;padding:0 25px 25px;flex:1}.mini-logo3D-lg{height:80px;margin-right:15px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchResultComponent, selector: "msw-search-result", inputs: ["isLoading", "results", "url", "nbTotal", "title"] }] }); }
|
|
5386
5386
|
}
|
|
5387
5387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: SearchComponent, decorators: [{
|
|
5388
5388
|
type: Component,
|
|
5389
|
-
args: [{ selector: 'msw-search', standalone: false, template: "<div>\n <div class=\"search-header petit-titre\">\n <span *ngIf=\"this.isLoading\">\n Recherche en cours (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\n </span>\n <span *ngIf=\"!this.isLoading && this.noResults()\">\n Aucun r\u00E9sultat (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\n </span>\n <span *ngIf=\"!this.isLoading && !this.noResults()\">\n Recherche termin\u00E9e (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\n </span>\n </div>\n\n <div class=\"global-result-container\">\n <div class=\"global-result\" *ngFor=\"let section of this.sections\">\n <msw-search-result\n [title]=\"section.title\"\n [results]=\"section.results\"\n [url]=\"section.url\"\n [nbTotal]=\"section.totalCount\"\n [isLoading]=\"section.isLoading\">\n </msw-search-result>\n </div>\n </div>\n</div>\n", 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}.search-header{height:15px;padding:15px 35px}.global-result-container{display:flex;flex-direction:row;padding:0 15px;flex-wrap:wrap}.global-result{border-radius:20px;box-shadow:0 3px 10px #9cb1f540;background:#fff;margin:15px;padding:0 25px 25px;flex:1}.mini-logo3D-lg{height:80px;margin-right:15px}\n"] }]
|
|
5389
|
+
args: [{ selector: 'msw-search', standalone: false, template: "<div>\r\n <div class=\"search-header petit-titre\">\r\n <span *ngIf=\"this.isLoading\">\r\n Recherche en cours (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\r\n </span>\r\n <span *ngIf=\"!this.isLoading && this.noResults()\">\r\n Aucun r\u00E9sultat (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\r\n </span>\r\n <span *ngIf=\"!this.isLoading && !this.noResults()\">\r\n Recherche termin\u00E9e (mot-cl\u00E9: {{this.app.FilterService.Keywords}})\r\n </span>\r\n </div>\r\n\r\n <div class=\"global-result-container\">\r\n <div class=\"global-result\" *ngFor=\"let section of this.sections\">\r\n <msw-search-result\r\n [title]=\"section.title\"\r\n [results]=\"section.results\"\r\n [url]=\"section.url\"\r\n [nbTotal]=\"section.totalCount\"\r\n [isLoading]=\"section.isLoading\">\r\n </msw-search-result>\r\n </div>\r\n </div>\r\n</div>\r\n", 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}.search-header{height:15px;padding:15px 35px}.global-result-container{display:flex;flex-direction:row;padding:0 15px;flex-wrap:wrap}.global-result{border-radius:20px;box-shadow:0 3px 10px #9cb1f540;background:#fff;margin:15px;padding:0 25px 25px;flex:1}.mini-logo3D-lg{height:80px;margin-right:15px}\n"] }]
|
|
5390
5390
|
}], ctorParameters: () => [{ type: i2$2.ActivatedRoute }, { type: i1$2.ApplicationService }, { type: undefined, decorators: [{
|
|
5391
5391
|
type: Optional
|
|
5392
5392
|
}, {
|