valtech-components 2.0.1020 → 2.0.1022
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/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +26 -15
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +21 -23
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.i18n.mjs +43 -1
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +1 -25
- package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +12 -15
- package/esm2022/lib/services/org/permission-catalog.service.mjs +43 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +168 -103
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/member-detail-modal/member-detail-modal.component.d.ts +3 -0
- package/lib/components/organisms/organization-view/organization-view.component.d.ts +0 -1
- package/lib/components/organisms/permissions-view/permissions-view.component.d.ts +0 -1
- package/lib/services/org/permission-catalog.service.d.ts +17 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
|
|
|
54
54
|
* Current version of valtech-components.
|
|
55
55
|
* This is automatically updated during the publish process.
|
|
56
56
|
*/
|
|
57
|
-
const VERSION = '2.0.
|
|
57
|
+
const VERSION = '2.0.1022';
|
|
58
58
|
|
|
59
59
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
60
60
|
let isRefreshing = false;
|
|
@@ -47985,19 +47985,30 @@ class InviteMemberModalComponent {
|
|
|
47985
47985
|
this.searchResults.set([]);
|
|
47986
47986
|
return [];
|
|
47987
47987
|
}
|
|
47988
|
-
|
|
47989
|
-
//
|
|
47990
|
-
//
|
|
47991
|
-
//
|
|
47992
|
-
//
|
|
47993
|
-
|
|
47994
|
-
|
|
47995
|
-
|
|
47996
|
-
|
|
47997
|
-
|
|
47998
|
-
|
|
47999
|
-
|
|
48000
|
-
|
|
47988
|
+
// Búsqueda por prefijo sobre DOS campos: `handle` y `nameLower`. Firestore
|
|
47989
|
+
// no soporta OR entre campos en una query, así que se lanzan dos queries en
|
|
47990
|
+
// paralelo y se mezclan (dedup por id). El sentinel alto cierra el
|
|
47991
|
+
// rango del prefijo. `nameLower` lo escribe el backend en /profiles
|
|
47992
|
+
// (NormalizeNameForSearch: lowercase + colapso de espacios); normalizamos el
|
|
47993
|
+
// query igual para que el prefijo matchee.
|
|
47994
|
+
const profiles = collection(this.firestore, 'profiles');
|
|
47995
|
+
const handleQ = (q.startsWith('@') ? q.slice(1) : q).toLowerCase();
|
|
47996
|
+
const nameQ = q.trim().toLowerCase().replace(/\s+/g, ' ');
|
|
47997
|
+
const byHandle$ = from(getDocs(query$1(profiles, orderBy('handle'), startAt(handleQ), endAt(handleQ + '\uf8ff'), limit(8))));
|
|
47998
|
+
const byName$ = from(getDocs(query$1(profiles, orderBy('nameLower'), startAt(nameQ), endAt(nameQ + '\uf8ff'), limit(8))));
|
|
47999
|
+
return forkJoin([byHandle$, byName$]).pipe(map$1(([handleSnap, nameSnap]) => {
|
|
48000
|
+
const byId = new Map();
|
|
48001
|
+
for (const d of [...handleSnap.docs, ...nameSnap.docs]) {
|
|
48002
|
+
if (byId.has(d.id))
|
|
48003
|
+
continue;
|
|
48004
|
+
byId.set(d.id, {
|
|
48005
|
+
userId: d.id,
|
|
48006
|
+
handle: d.data()['handle'],
|
|
48007
|
+
name: d.data()['name'],
|
|
48008
|
+
});
|
|
48009
|
+
}
|
|
48010
|
+
return { users: Array.from(byId.values()).slice(0, 8) };
|
|
48011
|
+
}));
|
|
48001
48012
|
}))
|
|
48002
48013
|
.subscribe({
|
|
48003
48014
|
next: res => {
|
|
@@ -48388,6 +48399,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
48388
48399
|
type: Input
|
|
48389
48400
|
}] } });
|
|
48390
48401
|
|
|
48402
|
+
/**
|
|
48403
|
+
* Consume el catálogo de permisos del backend (`GET /org/{orgId}/permissions-catalog`).
|
|
48404
|
+
* El backend es la fuente de verdad de qué permisos existen y de su alcance
|
|
48405
|
+
* (globales de plataforma vs. propios de una app). La respuesta incluye el
|
|
48406
|
+
* `appId` del request para que la vista distinga la app actual.
|
|
48407
|
+
*
|
|
48408
|
+
* Promovido desde `showcase` a la lib bajo el proceso de ADR-021. Usa
|
|
48409
|
+
* `VALTECH_AUTH_CONFIG.apiUrl` (como `OrgService`) en vez del `environment` de la
|
|
48410
|
+
* app — la lib no importa el environment del consumer.
|
|
48411
|
+
*/
|
|
48412
|
+
class PermissionCatalogService {
|
|
48413
|
+
constructor(config, http) {
|
|
48414
|
+
this.config = config;
|
|
48415
|
+
this.http = http;
|
|
48416
|
+
}
|
|
48417
|
+
getCatalog(orgId) {
|
|
48418
|
+
return this.http.get(`${this.config.apiUrl}/org/${orgId}/permissions-catalog`);
|
|
48419
|
+
}
|
|
48420
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionCatalogService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48421
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionCatalogService, providedIn: 'root' }); }
|
|
48422
|
+
}
|
|
48423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionCatalogService, decorators: [{
|
|
48424
|
+
type: Injectable,
|
|
48425
|
+
args: [{ providedIn: 'root' }]
|
|
48426
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
48427
|
+
type: Inject,
|
|
48428
|
+
args: [VALTECH_AUTH_CONFIG]
|
|
48429
|
+
}] }, { type: i1$3.HttpClient }] });
|
|
48430
|
+
/**
|
|
48431
|
+
* Humaniza un código crudo (`api-keys` → "Api Keys", `reset-password` → "Reset
|
|
48432
|
+
* Password") como último recurso cuando el catálogo no trae label para él.
|
|
48433
|
+
*/
|
|
48434
|
+
function humanizePermissionCode(code) {
|
|
48435
|
+
if (!code)
|
|
48436
|
+
return '';
|
|
48437
|
+
return code
|
|
48438
|
+
.split(/[-_]/)
|
|
48439
|
+
.filter(Boolean)
|
|
48440
|
+
.map(w => w.charAt(0).toUpperCase() + w.slice(1))
|
|
48441
|
+
.join(' ');
|
|
48442
|
+
}
|
|
48443
|
+
/**
|
|
48444
|
+
* Construye el resolvedor de labels de permisos a partir del catálogo del backend
|
|
48445
|
+
* (fuente única de verdad de los labels, ADR-024). Los consumers (permissions-view,
|
|
48446
|
+
* organization-view, member-detail-modal) usan esto en vez de duplicar mapas
|
|
48447
|
+
* hardcodeados `resource→key`/`action→key`.
|
|
48448
|
+
*
|
|
48449
|
+
* - Recurso → `permissions[].label[locale]`; acción → `actionLabels[action][locale]`.
|
|
48450
|
+
* - Wildcards (`*:*`, `resource:*`, `*`) usan `allLabel` (el catálogo no modela el
|
|
48451
|
+
* comodín; el consumer pasa su string i18n, p.ej. "Todos los permisos").
|
|
48452
|
+
* - Fallback humanizado si el catálogo no trae label (evita salidas vacías como
|
|
48453
|
+
* ": Gestionar" ante un recurso/acción nuevo aún sin etiqueta en el backend).
|
|
48454
|
+
*/
|
|
48455
|
+
function createPermissionLabeler(catalog, locale, opts) {
|
|
48456
|
+
const byResource = new Map();
|
|
48457
|
+
for (const r of catalog.permissions ?? [])
|
|
48458
|
+
byResource.set(r.resource, r);
|
|
48459
|
+
const actionLabels = catalog.actionLabels ?? {};
|
|
48460
|
+
const allLabel = opts?.allLabel ?? humanizePermissionCode('all');
|
|
48461
|
+
const resLabel = (resource) => byResource.get(resource)?.label?.[locale] ?? humanizePermissionCode(resource);
|
|
48462
|
+
const actLabel = (action) => actionLabels[action]?.[locale] ?? humanizePermissionCode(action);
|
|
48463
|
+
return (perm) => {
|
|
48464
|
+
const [resource, action] = perm.split(':');
|
|
48465
|
+
if (resource === '*')
|
|
48466
|
+
return allLabel;
|
|
48467
|
+
const res = resLabel(resource);
|
|
48468
|
+
const act = action === '*' ? allLabel : actLabel(action);
|
|
48469
|
+
return `${res}: ${act}`;
|
|
48470
|
+
};
|
|
48471
|
+
}
|
|
48472
|
+
|
|
48391
48473
|
/**
|
|
48392
48474
|
* Defaults i18n (es/en) embebidos en `val-member-detail-modal`. Auto-registrados
|
|
48393
48475
|
* en el constructor del componente si el consumer no proveyó el namespace
|
|
@@ -48420,11 +48502,32 @@ const MEMBER_DETAIL_MODAL_I18N = {
|
|
|
48420
48502
|
permRoles: 'Roles',
|
|
48421
48503
|
permMedia: 'Media',
|
|
48422
48504
|
permTemplates: 'Plantillas',
|
|
48505
|
+
permRbac: 'Control de acceso',
|
|
48506
|
+
permApps: 'Aplicaciones',
|
|
48507
|
+
permApiKeys: 'API Keys',
|
|
48508
|
+
permEmailLogs: 'Registros de email',
|
|
48509
|
+
permSmsLogs: 'Registros de SMS',
|
|
48510
|
+
permCommsTemplates: 'Plantillas de comunicación',
|
|
48511
|
+
permRequests: 'Solicitudes',
|
|
48512
|
+
permMembers: 'Miembros',
|
|
48513
|
+
permAccounts: 'Cuentas',
|
|
48514
|
+
permSupport: 'Soporte',
|
|
48515
|
+
permBingo: 'Bingo',
|
|
48423
48516
|
permRead: 'Leer',
|
|
48424
48517
|
permWrite: 'Escribir',
|
|
48425
48518
|
permCreate: 'Crear',
|
|
48426
48519
|
permDelete: 'Eliminar',
|
|
48427
48520
|
permManage: 'Gestionar',
|
|
48521
|
+
permEdit: 'Editar',
|
|
48522
|
+
permSell: 'Vender',
|
|
48523
|
+
permCheckin: 'Registrar entrada',
|
|
48524
|
+
permSettle: 'Rendir',
|
|
48525
|
+
permExport: 'Exportar',
|
|
48526
|
+
permOperate: 'Operar',
|
|
48527
|
+
permSuspend: 'Suspender',
|
|
48528
|
+
permReactivate: 'Reactivar',
|
|
48529
|
+
permResetPassword: 'Restablecer contraseña',
|
|
48530
|
+
permImport: 'Importar',
|
|
48428
48531
|
},
|
|
48429
48532
|
en: {
|
|
48430
48533
|
close: 'Close',
|
|
@@ -48452,11 +48555,32 @@ const MEMBER_DETAIL_MODAL_I18N = {
|
|
|
48452
48555
|
permRoles: 'Roles',
|
|
48453
48556
|
permMedia: 'Media',
|
|
48454
48557
|
permTemplates: 'Templates',
|
|
48558
|
+
permRbac: 'Access control',
|
|
48559
|
+
permApps: 'Apps',
|
|
48560
|
+
permApiKeys: 'API Keys',
|
|
48561
|
+
permEmailLogs: 'Email logs',
|
|
48562
|
+
permSmsLogs: 'SMS logs',
|
|
48563
|
+
permCommsTemplates: 'Comms templates',
|
|
48564
|
+
permRequests: 'Requests',
|
|
48565
|
+
permMembers: 'Members',
|
|
48566
|
+
permAccounts: 'Accounts',
|
|
48567
|
+
permSupport: 'Support',
|
|
48568
|
+
permBingo: 'Bingo',
|
|
48455
48569
|
permRead: 'Read',
|
|
48456
48570
|
permWrite: 'Write',
|
|
48457
48571
|
permCreate: 'Create',
|
|
48458
48572
|
permDelete: 'Delete',
|
|
48459
48573
|
permManage: 'Manage',
|
|
48574
|
+
permEdit: 'Edit',
|
|
48575
|
+
permSell: 'Sell',
|
|
48576
|
+
permCheckin: 'Check-in',
|
|
48577
|
+
permSettle: 'Settle',
|
|
48578
|
+
permExport: 'Export',
|
|
48579
|
+
permOperate: 'Operate',
|
|
48580
|
+
permSuspend: 'Suspend',
|
|
48581
|
+
permReactivate: 'Reactivate',
|
|
48582
|
+
permResetPassword: 'Reset password',
|
|
48583
|
+
permImport: 'Import',
|
|
48460
48584
|
},
|
|
48461
48585
|
};
|
|
48462
48586
|
|
|
@@ -48484,6 +48608,9 @@ class MemberDetailModalComponent {
|
|
|
48484
48608
|
this.errors = inject(ValtechErrorService);
|
|
48485
48609
|
this.i18n = inject(I18nService);
|
|
48486
48610
|
this.confirmDialog = inject(ConfirmationDialogService);
|
|
48611
|
+
this.catalog = inject(PermissionCatalogService);
|
|
48612
|
+
/** Labeler de permisos con la SSOT del backend (catálogo). Se llena al cargar. */
|
|
48613
|
+
this.permLabeler = signal(null);
|
|
48487
48614
|
/** Organización a la que pertenece el miembro. */
|
|
48488
48615
|
this.orgId = '';
|
|
48489
48616
|
/** Si true, habilita cambio de rol y eliminación. */
|
|
@@ -48555,30 +48682,24 @@ class MemberDetailModalComponent {
|
|
|
48555
48682
|
if (v && v !== this.currentRole())
|
|
48556
48683
|
void this.onChangeRole(v);
|
|
48557
48684
|
});
|
|
48685
|
+
// Catálogo del backend = SSOT de los labels de permisos (ADR-024). Si falla,
|
|
48686
|
+
// `permissionLabel` cae al fallback humanizado (no rompe el modal).
|
|
48687
|
+
if (this.orgId) {
|
|
48688
|
+
this.catalog.getCatalog(this.orgId).subscribe({
|
|
48689
|
+
next: catalog => this.permLabeler.set(createPermissionLabeler(catalog, this.i18n.lang(), { allLabel: this.t('permAll') })),
|
|
48690
|
+
error: () => { },
|
|
48691
|
+
});
|
|
48692
|
+
}
|
|
48558
48693
|
}
|
|
48559
48694
|
permissionLabel(perm) {
|
|
48560
|
-
|
|
48561
|
-
|
|
48562
|
-
|
|
48563
|
-
const
|
|
48564
|
-
|
|
48565
|
-
|
|
48566
|
-
|
|
48567
|
-
|
|
48568
|
-
templates: 'permTemplates',
|
|
48569
|
-
'*': 'permAll',
|
|
48570
|
-
};
|
|
48571
|
-
const actKey = {
|
|
48572
|
-
read: 'permRead',
|
|
48573
|
-
write: 'permWrite',
|
|
48574
|
-
create: 'permCreate',
|
|
48575
|
-
delete: 'permDelete',
|
|
48576
|
-
manage: 'permManage',
|
|
48577
|
-
'*': 'permAll',
|
|
48578
|
-
};
|
|
48579
|
-
const res = this.t(resKey[resource] ?? resource);
|
|
48580
|
-
const act = this.t(actKey[action] ?? action);
|
|
48581
|
-
return `${res}: ${act}`;
|
|
48695
|
+
// SSOT = catálogo del backend. Hasta que cargue (o si falló), fallback a un
|
|
48696
|
+
// labeler vacío que humaniza el código crudo (evita salidas vacías como
|
|
48697
|
+
// ": Gestionar"). El `*:*` y wildcards usan el label i18n `permAll`.
|
|
48698
|
+
const labeler = this.permLabeler() ??
|
|
48699
|
+
createPermissionLabeler({ permissions: [], actionLabels: {} }, this.i18n.lang(), {
|
|
48700
|
+
allLabel: this.t('permAll'),
|
|
48701
|
+
});
|
|
48702
|
+
return labeler(perm);
|
|
48582
48703
|
}
|
|
48583
48704
|
async onChangeRole(newRoleId) {
|
|
48584
48705
|
if (this.working())
|
|
@@ -49503,35 +49624,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49503
49624
|
args: [VALTECH_AUTH_CONFIG]
|
|
49504
49625
|
}] }, { type: i1$3.HttpClient }] });
|
|
49505
49626
|
|
|
49506
|
-
/**
|
|
49507
|
-
* Consume el catálogo de permisos del backend (`GET /org/{orgId}/permissions-catalog`).
|
|
49508
|
-
* El backend es la fuente de verdad de qué permisos existen y de su alcance
|
|
49509
|
-
* (globales de plataforma vs. propios de una app). La respuesta incluye el
|
|
49510
|
-
* `appId` del request para que la vista distinga la app actual.
|
|
49511
|
-
*
|
|
49512
|
-
* Promovido desde `showcase` a la lib bajo el proceso de ADR-021. Usa
|
|
49513
|
-
* `VALTECH_AUTH_CONFIG.apiUrl` (como `OrgService`) en vez del `environment` de la
|
|
49514
|
-
* app — la lib no importa el environment del consumer.
|
|
49515
|
-
*/
|
|
49516
|
-
class PermissionCatalogService {
|
|
49517
|
-
constructor(config, http) {
|
|
49518
|
-
this.config = config;
|
|
49519
|
-
this.http = http;
|
|
49520
|
-
}
|
|
49521
|
-
getCatalog(orgId) {
|
|
49522
|
-
return this.http.get(`${this.config.apiUrl}/org/${orgId}/permissions-catalog`);
|
|
49523
|
-
}
|
|
49524
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionCatalogService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49525
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionCatalogService, providedIn: 'root' }); }
|
|
49526
|
-
}
|
|
49527
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionCatalogService, decorators: [{
|
|
49528
|
-
type: Injectable,
|
|
49529
|
-
args: [{ providedIn: 'root' }]
|
|
49530
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
49531
|
-
type: Inject,
|
|
49532
|
-
args: [VALTECH_AUTH_CONFIG]
|
|
49533
|
-
}] }, { type: i1$3.HttpClient }] });
|
|
49534
|
-
|
|
49535
49627
|
/**
|
|
49536
49628
|
* Defaults i18n (es/en) embebidos en `val-api-keys-modal` (ADR-023).
|
|
49537
49629
|
* Auto-registrados si el consumer no proveyó el namespace `Settings.ApiKeysModal`.
|
|
@@ -50729,30 +50821,6 @@ class OrganizationViewComponent {
|
|
|
50729
50821
|
.map(w => w.charAt(0).toUpperCase() + w.slice(1))
|
|
50730
50822
|
.join(' ');
|
|
50731
50823
|
}
|
|
50732
|
-
permissionLabel(perm) {
|
|
50733
|
-
if (perm === '*:*')
|
|
50734
|
-
return this.tt('permAll');
|
|
50735
|
-
const [resource, action] = perm.split(':');
|
|
50736
|
-
const resKey = {
|
|
50737
|
-
users: 'permUsers',
|
|
50738
|
-
documents: 'permDocuments',
|
|
50739
|
-
roles: 'permRoles',
|
|
50740
|
-
media: 'permMedia',
|
|
50741
|
-
templates: 'permTemplates',
|
|
50742
|
-
'*': 'permAll',
|
|
50743
|
-
};
|
|
50744
|
-
const actKey = {
|
|
50745
|
-
read: 'permRead',
|
|
50746
|
-
write: 'permWrite',
|
|
50747
|
-
create: 'permCreate',
|
|
50748
|
-
delete: 'permDelete',
|
|
50749
|
-
manage: 'permManage',
|
|
50750
|
-
'*': 'permAll',
|
|
50751
|
-
};
|
|
50752
|
-
const res = this.tt(resKey[resource] ?? resource);
|
|
50753
|
-
const act = this.tt(actKey[action] ?? action);
|
|
50754
|
-
return `${res}: ${act}`;
|
|
50755
|
-
}
|
|
50756
50824
|
onViewMember(member) {
|
|
50757
50825
|
void this.modalService.open({
|
|
50758
50826
|
component: MemberDetailModalComponent,
|
|
@@ -52347,13 +52415,19 @@ class PermissionsViewComponent {
|
|
|
52347
52415
|
for (const r of catalog.permissions)
|
|
52348
52416
|
byResource.set(r.resource, r);
|
|
52349
52417
|
const currentAppId = catalog.appId;
|
|
52418
|
+
// Labeler con la SSOT del backend (labels del catálogo) — reemplaza el
|
|
52419
|
+
// mapa hardcodeado `perm*`. Locale del momento de carga (igual que antes:
|
|
52420
|
+
// los labels se hornean en el RoleView; cambio de idioma requiere reload).
|
|
52421
|
+
const labeler = createPermissionLabeler(catalog, this.i18n.lang(), {
|
|
52422
|
+
allLabel: this.tt('permAll'),
|
|
52423
|
+
});
|
|
52350
52424
|
this.roles.set((rawRoles ?? []).map((r) => this.buildRoleView({
|
|
52351
52425
|
id: r.id,
|
|
52352
52426
|
name: r.name,
|
|
52353
52427
|
description: r.description,
|
|
52354
52428
|
permissions: r.permissions ?? [],
|
|
52355
52429
|
isSystem: r.isSystem ?? false,
|
|
52356
|
-
}, byResource, currentAppId)));
|
|
52430
|
+
}, byResource, currentAppId, labeler)));
|
|
52357
52431
|
this.loading.set(false);
|
|
52358
52432
|
},
|
|
52359
52433
|
error: err => {
|
|
@@ -52362,12 +52436,12 @@ class PermissionsViewComponent {
|
|
|
52362
52436
|
},
|
|
52363
52437
|
});
|
|
52364
52438
|
}
|
|
52365
|
-
buildRoleView(role, byResource, currentAppId) {
|
|
52439
|
+
buildRoleView(role, byResource, currentAppId, labeler) {
|
|
52366
52440
|
const appPerms = [];
|
|
52367
52441
|
const orgPerms = [];
|
|
52368
52442
|
const otherByApp = new Map();
|
|
52369
52443
|
for (const perm of role.permissions) {
|
|
52370
|
-
const [resource
|
|
52444
|
+
const [resource] = perm.split(':');
|
|
52371
52445
|
const entry = byResource.get(resource);
|
|
52372
52446
|
// Sin entrada en el catálogo (el backend omite los recursos internal para
|
|
52373
52447
|
// no-platform-admins) o entrada internal → NUNCA se muestra a nivel de
|
|
@@ -52377,7 +52451,7 @@ class PermissionsViewComponent {
|
|
|
52377
52451
|
if (!entry || entry.scope === 'internal') {
|
|
52378
52452
|
continue;
|
|
52379
52453
|
}
|
|
52380
|
-
const label =
|
|
52454
|
+
const label = labeler(perm);
|
|
52381
52455
|
if (entry.scope === 'app') {
|
|
52382
52456
|
if (entry.appId === currentAppId) {
|
|
52383
52457
|
appPerms.push(label);
|
|
@@ -52442,15 +52516,6 @@ class PermissionsViewComponent {
|
|
|
52442
52516
|
};
|
|
52443
52517
|
return this.tt(map[name] ?? name);
|
|
52444
52518
|
}
|
|
52445
|
-
permLabel(resource, action) {
|
|
52446
|
-
if (resource === '*' && action === '*')
|
|
52447
|
-
return this.tt('permAll');
|
|
52448
|
-
const resKey = resource === '*' ? 'permAll' : `perm${resource.charAt(0).toUpperCase()}${resource.slice(1)}`;
|
|
52449
|
-
const actKey = action === '*' ? 'permAll' : `perm${action.charAt(0).toUpperCase()}${action.slice(1)}`;
|
|
52450
|
-
const res = this.tt(resKey);
|
|
52451
|
-
const act = this.tt(actKey);
|
|
52452
|
-
return `${res}: ${act}`;
|
|
52453
|
-
}
|
|
52454
52519
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52455
52520
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PermissionsViewComponent, isStandalone: true, selector: "val-permissions-view", inputs: { config: "config" }, ngImport: i0, template: `
|
|
52456
52521
|
<div class="page">
|
|
@@ -64629,5 +64694,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
64629
64694
|
* Generated bundle index. Do not edit.
|
|
64630
64695
|
*/
|
|
64631
64696
|
|
|
64632
|
-
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyService, ApiKeysModalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CONTENT_CARD_DEFAULTS, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentCardComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INFO_CARD_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoCardComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor$1 as resolveColor, resolveInputDefaultValue, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
64697
|
+
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyService, ApiKeysModalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CONTENT_CARD_DEFAULTS, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentCardComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INFO_CARD_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoCardComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createPermissionLabeler, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor$1 as resolveColor, resolveInputDefaultValue, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
64633
64698
|
//# sourceMappingURL=valtech-components.mjs.map
|