@praxisui/core 9.0.5-rc.2 → 9.0.5-rc.21
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/README.md +5 -3
- package/ai/component-registry.json +309 -115
- package/fesm2022/praxisui-core.mjs +622 -67
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +521 -9
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Component, InjectionToken, Injectable, inject, Inject, Optional, makeEnvironmentProviders, APP_INITIALIZER, signal, computed, DestroyRef, ENVIRONMENT_INITIALIZER, ErrorHandler, Input, Directive, input, booleanAttribute, ChangeDetectionStrategy, EventEmitter, Output, SecurityContext, ViewContainerRef, SimpleChange, ContentChild, HostBinding, HostListener, ViewChildren, ViewChild, Injector, output, effect } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common/http';
|
|
4
4
|
import { HttpHeaders, HttpClient, HttpParams, HttpResponse, HttpContextToken, HTTP_INTERCEPTORS, withInterceptors } from '@angular/common/http';
|
|
5
|
-
import { of, defer, throwError, from, EMPTY, BehaviorSubject, firstValueFrom, Subject, map as map$1, switchMap as switchMap$1, catchError as catchError$1 } from 'rxjs';
|
|
5
|
+
import { of, defer, throwError, from, EMPTY, BehaviorSubject, firstValueFrom, Subject, finalize as finalize$1, shareReplay as shareReplay$1, map as map$1, switchMap as switchMap$1, catchError as catchError$1, forkJoin } from 'rxjs';
|
|
6
6
|
import { switchMap, take, map, catchError, concatMap, tap, shareReplay, takeUntil, toArray, finalize } from 'rxjs/operators';
|
|
7
7
|
import * as i1$3 from '@angular/common';
|
|
8
8
|
import { Location, DOCUMENT, CommonModule } from '@angular/common';
|
|
@@ -807,7 +807,7 @@ function resolveControlTypeAlias(value, fallback = FieldControlType.INPUT) {
|
|
|
807
807
|
}
|
|
808
808
|
|
|
809
809
|
function normalizeResourceIdentityContract(value) {
|
|
810
|
-
if (!isRecord$
|
|
810
|
+
if (!isRecord$4(value))
|
|
811
811
|
return null;
|
|
812
812
|
const keyField = normalizeText$3(value['keyField']);
|
|
813
813
|
const titleField = normalizeText$3(value['titleField']);
|
|
@@ -835,7 +835,7 @@ function normalizeResourceIdentityContract(value) {
|
|
|
835
835
|
function resolveResourceIdentityContract(options) {
|
|
836
836
|
const diagnostics = [];
|
|
837
837
|
const explicit = normalizeResourceIdentityContract(options.explicitIdentity);
|
|
838
|
-
const hasExplicitDeclaration = isRecord$
|
|
838
|
+
const hasExplicitDeclaration = isRecord$4(options.explicitIdentity);
|
|
839
839
|
if (explicit && explicit.valid !== false) {
|
|
840
840
|
return {
|
|
841
841
|
contract: { ...explicit, source: 'explicit' },
|
|
@@ -963,7 +963,7 @@ function normalizeResourceIdentityDiagnostics(value) {
|
|
|
963
963
|
if (!Array.isArray(value))
|
|
964
964
|
return [];
|
|
965
965
|
return value.filter((item) => {
|
|
966
|
-
return isRecord$
|
|
966
|
+
return isRecord$4(item)
|
|
967
967
|
&& isResourceIdentityDiagnosticCode(item['code'])
|
|
968
968
|
&& (item['severity'] === 'info' || item['severity'] === 'warning')
|
|
969
969
|
&& typeof item['message'] === 'string';
|
|
@@ -992,7 +992,7 @@ function normalizeStringList(value) {
|
|
|
992
992
|
return [];
|
|
993
993
|
return [...new Set(value.map(normalizeText$3).filter((item) => !!item))];
|
|
994
994
|
}
|
|
995
|
-
function isRecord$
|
|
995
|
+
function isRecord$4(value) {
|
|
996
996
|
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
997
997
|
}
|
|
998
998
|
|
|
@@ -2556,15 +2556,22 @@ class SchemaNormalizerService {
|
|
|
2556
2556
|
const key = String(raw.key ?? '').trim();
|
|
2557
2557
|
const kind = String(raw.kind ?? '').trim();
|
|
2558
2558
|
const minSearchChars = Number(raw.minSearchChars);
|
|
2559
|
+
const inputFormat = String(raw.inputFormat ?? 'text').trim();
|
|
2559
2560
|
if (!key ||
|
|
2560
2561
|
seenKeys.has(key) ||
|
|
2561
2562
|
!LOOKUP_SEARCH_STRATEGY_KINDS.has(kind) ||
|
|
2563
|
+
!['text', 'digits'].includes(inputFormat) ||
|
|
2562
2564
|
!Number.isInteger(minSearchChars) ||
|
|
2563
2565
|
minSearchChars < 1) {
|
|
2564
2566
|
return undefined;
|
|
2565
2567
|
}
|
|
2566
2568
|
seenKeys.add(key);
|
|
2567
|
-
return {
|
|
2569
|
+
return {
|
|
2570
|
+
key,
|
|
2571
|
+
kind,
|
|
2572
|
+
minSearchChars,
|
|
2573
|
+
...(inputFormat === 'digits' ? { inputFormat } : {}),
|
|
2574
|
+
};
|
|
2568
2575
|
})
|
|
2569
2576
|
.filter((item) => !!item);
|
|
2570
2577
|
if (searchStrategies.length) {
|
|
@@ -13805,6 +13812,7 @@ class ResourceDiscoveryService {
|
|
|
13805
13812
|
http = inject(HttpClient);
|
|
13806
13813
|
schemaNormalizer = inject(SchemaNormalizerService);
|
|
13807
13814
|
apiUrlConfig = inject(API_URL);
|
|
13815
|
+
surfaceCatalogInFlightByHref = new Map();
|
|
13808
13816
|
getLinks(source, rel) {
|
|
13809
13817
|
const candidate = this.extractLinks(source)?.[rel];
|
|
13810
13818
|
if (!candidate) {
|
|
@@ -13826,7 +13834,19 @@ class ResourceDiscoveryService {
|
|
|
13826
13834
|
return this.fetchJson(this.requireLinkHref(source, rel, options), options);
|
|
13827
13835
|
}
|
|
13828
13836
|
getSurfaces(source, options) {
|
|
13829
|
-
|
|
13837
|
+
const href = this.requireLinkHref(source, 'surfaces', options);
|
|
13838
|
+
const existing = this.surfaceCatalogInFlightByHref.get(href);
|
|
13839
|
+
if (existing) {
|
|
13840
|
+
return existing;
|
|
13841
|
+
}
|
|
13842
|
+
let request;
|
|
13843
|
+
request = this.fetchJson(href, options).pipe(finalize$1(() => {
|
|
13844
|
+
if (this.surfaceCatalogInFlightByHref.get(href) === request) {
|
|
13845
|
+
this.surfaceCatalogInFlightByHref.delete(href);
|
|
13846
|
+
}
|
|
13847
|
+
}), shareReplay$1({ bufferSize: 1, refCount: true }));
|
|
13848
|
+
this.surfaceCatalogInFlightByHref.set(href, request);
|
|
13849
|
+
return request;
|
|
13830
13850
|
}
|
|
13831
13851
|
getActions(source, options) {
|
|
13832
13852
|
return this.followLink(source, 'actions', options);
|
|
@@ -14149,7 +14169,7 @@ const SURFACE_OPEN_PRESETS = [
|
|
|
14149
14169
|
* Invalid roles are omitted and a completely empty context resolves to `null`.
|
|
14150
14170
|
*/
|
|
14151
14171
|
function normalizeSurfaceOperationContext(value) {
|
|
14152
|
-
if (!isRecord$
|
|
14172
|
+
if (!isRecord$3(value))
|
|
14153
14173
|
return null;
|
|
14154
14174
|
const taskScope = normalizeResourceRef(value['taskScope']);
|
|
14155
14175
|
const subject = normalizeResourceRef(value['subject']);
|
|
@@ -14163,7 +14183,7 @@ function normalizeSurfaceOperationContext(value) {
|
|
|
14163
14183
|
};
|
|
14164
14184
|
}
|
|
14165
14185
|
function normalizeResourceRef(value) {
|
|
14166
|
-
if (!isRecord$
|
|
14186
|
+
if (!isRecord$3(value))
|
|
14167
14187
|
return undefined;
|
|
14168
14188
|
const resourceKey = normalizeText(value['resourceKey']);
|
|
14169
14189
|
const resourceId = normalizeResourceId(value['resourceId']);
|
|
@@ -14177,7 +14197,7 @@ function normalizeResourceRef(value) {
|
|
|
14177
14197
|
};
|
|
14178
14198
|
}
|
|
14179
14199
|
function normalizeRelationship(value) {
|
|
14180
|
-
if (!isRecord$
|
|
14200
|
+
if (!isRecord$3(value))
|
|
14181
14201
|
return undefined;
|
|
14182
14202
|
const surfaceId = normalizeText(value['surfaceId']);
|
|
14183
14203
|
const childResourceKey = normalizeText(value['childResourceKey']);
|
|
@@ -14191,7 +14211,7 @@ function normalizeRelationship(value) {
|
|
|
14191
14211
|
};
|
|
14192
14212
|
}
|
|
14193
14213
|
function normalizeIdentity(value) {
|
|
14194
|
-
if (!isRecord$
|
|
14214
|
+
if (!isRecord$3(value) || !Array.isArray(value['metadata']))
|
|
14195
14215
|
return undefined;
|
|
14196
14216
|
const key = normalizeIdentityPart(value['key']);
|
|
14197
14217
|
const title = normalizeIdentityPart(value['title']);
|
|
@@ -14214,7 +14234,7 @@ function normalizeIdentity(value) {
|
|
|
14214
14234
|
};
|
|
14215
14235
|
}
|
|
14216
14236
|
function normalizeIdentityPart(value) {
|
|
14217
|
-
if (!isRecord$
|
|
14237
|
+
if (!isRecord$3(value))
|
|
14218
14238
|
return undefined;
|
|
14219
14239
|
const field = normalizeText(value['field']);
|
|
14220
14240
|
const partValue = normalizeDisplayValue(value['value']);
|
|
@@ -14237,11 +14257,11 @@ function normalizeDisplayValue(value) {
|
|
|
14237
14257
|
return typeof value === 'boolean' ? value : undefined;
|
|
14238
14258
|
}
|
|
14239
14259
|
function cloneJsonRecord(value) {
|
|
14240
|
-
if (!isRecord$
|
|
14260
|
+
if (!isRecord$3(value))
|
|
14241
14261
|
return undefined;
|
|
14242
14262
|
try {
|
|
14243
14263
|
const cloned = JSON.parse(JSON.stringify(value));
|
|
14244
|
-
return isRecord$
|
|
14264
|
+
return isRecord$3(cloned) ? cloned : undefined;
|
|
14245
14265
|
}
|
|
14246
14266
|
catch {
|
|
14247
14267
|
return undefined;
|
|
@@ -14261,7 +14281,7 @@ function normalizeText(value) {
|
|
|
14261
14281
|
const normalized = value.trim();
|
|
14262
14282
|
return normalized || undefined;
|
|
14263
14283
|
}
|
|
14264
|
-
function isRecord$
|
|
14284
|
+
function isRecord$3(value) {
|
|
14265
14285
|
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
14266
14286
|
}
|
|
14267
14287
|
|
|
@@ -14286,9 +14306,13 @@ const RELATED_RESOURCE_OUTLET_I18N_CONFIG = {
|
|
|
14286
14306
|
'state.error.description': 'Ocorreu um erro ao preparar a superfície relacionada.',
|
|
14287
14307
|
'emptyState.related.title': 'Sem registros em {label}',
|
|
14288
14308
|
'emptyState.related.description': 'Esta coleção relacionada não possui registros para o contexto selecionado.',
|
|
14289
|
-
'emptyState.related.descriptionWithAction': 'Use a ação principal para adicionar um registro relacionado quando houver informações para registrar.',
|
|
14290
|
-
'emptyState.related.action.create': 'Adicionar registro',
|
|
14291
14309
|
'action.open': 'Abrir relacionado',
|
|
14310
|
+
'action.create.label': 'Adicionar {{noun}}',
|
|
14311
|
+
'action.create.tooltip': 'Adicione {{noun}} ao contexto selecionado.',
|
|
14312
|
+
'action.edit.label': 'Editar {{noun}}',
|
|
14313
|
+
'action.edit.tooltip': 'Atualize os dados de {{noun}} no contexto selecionado.',
|
|
14314
|
+
'action.delete.label': 'Remover {{noun}}',
|
|
14315
|
+
'action.delete.tooltip': 'Remova {{noun}} do contexto selecionado.',
|
|
14292
14316
|
'status.ready': 'Recurso relacionado pronto',
|
|
14293
14317
|
},
|
|
14294
14318
|
'en-US': {
|
|
@@ -14308,9 +14332,13 @@ const RELATED_RESOURCE_OUTLET_I18N_CONFIG = {
|
|
|
14308
14332
|
'state.error.description': 'An error occurred while preparing the related surface.',
|
|
14309
14333
|
'emptyState.related.title': 'No records in {label}',
|
|
14310
14334
|
'emptyState.related.description': 'This related collection has no records for the selected context.',
|
|
14311
|
-
'emptyState.related.descriptionWithAction': 'Use the primary action to add a related record when there is information to capture.',
|
|
14312
|
-
'emptyState.related.action.create': 'Add record',
|
|
14313
14335
|
'action.open': 'Open related',
|
|
14336
|
+
'action.create.label': 'Add {{noun}}',
|
|
14337
|
+
'action.create.tooltip': 'Add {{noun}} to the selected context.',
|
|
14338
|
+
'action.edit.label': 'Edit {{noun}}',
|
|
14339
|
+
'action.edit.tooltip': 'Update {{noun}} data in the selected context.',
|
|
14340
|
+
'action.delete.label': 'Remove {{noun}}',
|
|
14341
|
+
'action.delete.tooltip': 'Remove {{noun}} from the selected context.',
|
|
14314
14342
|
'status.ready': 'Related resource ready',
|
|
14315
14343
|
},
|
|
14316
14344
|
},
|
|
@@ -14485,32 +14513,15 @@ class RelatedResourceSurfaceResolverService {
|
|
|
14485
14513
|
const label = this.trim(request.title)
|
|
14486
14514
|
|| this.trim(surface.title)
|
|
14487
14515
|
|| this.humanizeResourceKey(relatedResource.childResourceKey);
|
|
14488
|
-
const canCreate = relatedResource.childOperations.includes('CREATE');
|
|
14489
|
-
const descriptionKey = canCreate
|
|
14490
|
-
? 'emptyState.related.descriptionWithAction'
|
|
14491
|
-
: 'emptyState.related.description';
|
|
14492
|
-
const actions = canCreate
|
|
14493
|
-
? [
|
|
14494
|
-
{
|
|
14495
|
-
label: this.t('emptyState.related.action.create', 'Adicionar registro'),
|
|
14496
|
-
action: 'create',
|
|
14497
|
-
icon: 'add',
|
|
14498
|
-
primary: true,
|
|
14499
|
-
},
|
|
14500
|
-
]
|
|
14501
|
-
: [];
|
|
14502
14516
|
return {
|
|
14503
14517
|
title: this.t('emptyState.related.title', 'Sem registros em {label}', { label }),
|
|
14504
|
-
message: this.t(
|
|
14505
|
-
? 'Use a ação principal para adicionar um registro relacionado quando houver informações para registrar.'
|
|
14506
|
-
: 'Esta coleção relacionada não possui registros para o contexto selecionado.', { label }),
|
|
14518
|
+
message: this.t('emptyState.related.description', 'Esta coleção relacionada não possui registros para o contexto selecionado.', { label }),
|
|
14507
14519
|
icon: this.trim(request.icon) || 'hub',
|
|
14508
14520
|
tone: 'neutral',
|
|
14509
14521
|
variant: 'inline',
|
|
14510
14522
|
density: 'compact',
|
|
14511
14523
|
alignment: 'center',
|
|
14512
14524
|
iconContainer: 'soft',
|
|
14513
|
-
actions,
|
|
14514
14525
|
};
|
|
14515
14526
|
}
|
|
14516
14527
|
objectValue(value) {
|
|
@@ -15222,6 +15233,10 @@ const INTAKE_HREF = '/api/praxis/config/domain-rules/intake';
|
|
|
15222
15233
|
const SIMULATIONS_HREF = '/api/praxis/config/domain-rules/simulations';
|
|
15223
15234
|
const PUBLICATIONS_HREF = '/api/praxis/config/domain-rules/publications';
|
|
15224
15235
|
const MATERIALIZATIONS_HREF = '/api/praxis/config/domain-rules/materializations';
|
|
15236
|
+
const SNAPSHOTS_HREF = '/api/praxis/config/domain-rules/snapshots';
|
|
15237
|
+
const ROLLOUT_POLICIES_HREF = `${SNAPSHOTS_HREF}/rollout-policies`;
|
|
15238
|
+
const ROLLOUTS_HREF = `${SNAPSHOTS_HREF}/rollouts`;
|
|
15239
|
+
const WORKSPACES_HREF = '/api/praxis/config/domain-rules/workspaces';
|
|
15225
15240
|
class DomainRuleService {
|
|
15226
15241
|
http = inject(HttpClient);
|
|
15227
15242
|
discovery = inject(ResourceDiscoveryService);
|
|
@@ -15237,12 +15252,86 @@ class DomainRuleService {
|
|
|
15237
15252
|
headers: this.resolveHeaders(options),
|
|
15238
15253
|
});
|
|
15239
15254
|
}
|
|
15255
|
+
getDefinitionCapabilities(options = {}) {
|
|
15256
|
+
return this.http.get(this.discovery.resolveHref(`${DEFINITIONS_HREF}/capabilities`, options), { headers: this.resolveHeaders(options) });
|
|
15257
|
+
}
|
|
15240
15258
|
transitionDefinitionStatus(definitionId, request, options = {}) {
|
|
15241
15259
|
return this.http.patch(this.discovery.resolveHref(`${DEFINITIONS_HREF}/${encodeURIComponent(definitionId)}/status`, options), request, { headers: this.resolveHeaders(options) });
|
|
15242
15260
|
}
|
|
15243
15261
|
getDefinitionTimeline(definitionId, options = {}) {
|
|
15244
15262
|
return this.http.get(this.discovery.resolveHref(`${DEFINITIONS_HREF}/${encodeURIComponent(definitionId)}/timeline`, options), { headers: this.resolveHeaders(options) });
|
|
15245
15263
|
}
|
|
15264
|
+
createChangeWorkspace(request, options = {}) {
|
|
15265
|
+
return this.http.post(this.discovery.resolveHref(WORKSPACES_HREF, options), request, { headers: this.resolveHeaders(options) });
|
|
15266
|
+
}
|
|
15267
|
+
listChangeWorkspaces(options = {}) {
|
|
15268
|
+
return this.http.get(this.discovery.resolveHref(WORKSPACES_HREF, options), { headers: this.resolveHeaders(options) });
|
|
15269
|
+
}
|
|
15270
|
+
getChangeWorkspace(workspaceId, options = {}) {
|
|
15271
|
+
return this.http.get(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}`, options), { headers: this.resolveHeaders(options) });
|
|
15272
|
+
}
|
|
15273
|
+
getChangeWorkspaceCapabilities(workspaceId, options = {}) {
|
|
15274
|
+
return this.http.get(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/capabilities`, options), { headers: this.resolveHeaders(options) });
|
|
15275
|
+
}
|
|
15276
|
+
getDefinition(definitionId, options = {}) {
|
|
15277
|
+
return this.http.get(this.discovery.resolveHref(`${DEFINITIONS_HREF}/${encodeURIComponent(definitionId)}`, options), { headers: this.resolveHeaders(options) });
|
|
15278
|
+
}
|
|
15279
|
+
updateChangeWorkspaceDraft(workspaceId, request, etag, options = {}) {
|
|
15280
|
+
const headers = (this.resolveHeaders(options) ?? new HttpHeaders())
|
|
15281
|
+
.set('If-Match', this.strongEntityTag(etag));
|
|
15282
|
+
return this.http.put(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/draft`, options), request, { headers });
|
|
15283
|
+
}
|
|
15284
|
+
createTestScenario(workspaceId, request, options = {}) {
|
|
15285
|
+
return this.http.post(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/scenarios`, options), request, { headers: this.resolveHeaders(options) });
|
|
15286
|
+
}
|
|
15287
|
+
listTestScenarios(workspaceId, options = {}) {
|
|
15288
|
+
return this.http.get(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/scenarios`, options), { headers: this.resolveHeaders(options) });
|
|
15289
|
+
}
|
|
15290
|
+
listTestRuns(workspaceId, options = {}) {
|
|
15291
|
+
return this.http.get(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/test-runs`, options), { headers: this.resolveHeaders(options) });
|
|
15292
|
+
}
|
|
15293
|
+
submitChangeWorkspace(workspaceId, etag, options = {}) {
|
|
15294
|
+
const headers = (this.resolveHeaders(options) ?? new HttpHeaders())
|
|
15295
|
+
.set('If-Match', this.strongEntityTag(etag));
|
|
15296
|
+
return this.http.post(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/submit`, options), null, { headers });
|
|
15297
|
+
}
|
|
15298
|
+
reviewChangeWorkspace(workspaceId, request, etag, options = {}) {
|
|
15299
|
+
const headers = (this.resolveHeaders(options) ?? new HttpHeaders())
|
|
15300
|
+
.set('If-Match', this.strongEntityTag(etag));
|
|
15301
|
+
return this.http.post(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/reviews`, options), request, { headers });
|
|
15302
|
+
}
|
|
15303
|
+
listChangeWorkspaceReviews(workspaceId, options = {}) {
|
|
15304
|
+
return this.http.get(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/reviews`, options), { headers: this.resolveHeaders(options) });
|
|
15305
|
+
}
|
|
15306
|
+
promoteChangeWorkspace(workspaceId, etag, options = {}) {
|
|
15307
|
+
const headers = (this.resolveHeaders(options) ?? new HttpHeaders())
|
|
15308
|
+
.set('If-Match', this.strongEntityTag(etag));
|
|
15309
|
+
return this.http.post(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/promote`, options), null, { headers });
|
|
15310
|
+
}
|
|
15311
|
+
inspectChangeWorkspaceLifecycle(workspaceId, ruleSetKey = null, options = {}) {
|
|
15312
|
+
return this.getChangeWorkspace(workspaceId, options).pipe(switchMap$1((workspace) => forkJoin({
|
|
15313
|
+
workspace: of(workspace),
|
|
15314
|
+
promotedDefinition: workspace.promotedDefinitionId
|
|
15315
|
+
? this.getDefinition(workspace.promotedDefinitionId, options)
|
|
15316
|
+
: of(null),
|
|
15317
|
+
testRuns: this.listTestRuns(workspaceId, options),
|
|
15318
|
+
reviews: this.listChangeWorkspaceReviews(workspaceId, options),
|
|
15319
|
+
materializations: workspace.promotedDefinitionId
|
|
15320
|
+
? this.listMaterializations({ ruleDefinitionId: workspace.promotedDefinitionId }, options)
|
|
15321
|
+
: of([]),
|
|
15322
|
+
snapshotHeadStatus: ruleSetKey
|
|
15323
|
+
? this.getSnapshotHeadStatus(ruleSetKey, options)
|
|
15324
|
+
: of(null),
|
|
15325
|
+
snapshotVersions: ruleSetKey
|
|
15326
|
+
? this.listSnapshotVersions(ruleSetKey, 50, options)
|
|
15327
|
+
: of([]),
|
|
15328
|
+
})));
|
|
15329
|
+
}
|
|
15330
|
+
updateTestScenario(workspaceId, scenarioId, request, etag, options = {}) {
|
|
15331
|
+
const headers = (this.resolveHeaders(options) ?? new HttpHeaders())
|
|
15332
|
+
.set('If-Match', this.strongEntityTag(etag));
|
|
15333
|
+
return this.http.put(this.discovery.resolveHref(`${WORKSPACES_HREF}/${encodeURIComponent(workspaceId)}/scenarios/${encodeURIComponent(scenarioId)}`, options), request, { headers });
|
|
15334
|
+
}
|
|
15246
15335
|
simulate(request, options = {}) {
|
|
15247
15336
|
return this.http.post(this.discovery.resolveHref(SIMULATIONS_HREF, options), request, { headers: this.resolveHeaders(options) });
|
|
15248
15337
|
}
|
|
@@ -15261,6 +15350,100 @@ class DomainRuleService {
|
|
|
15261
15350
|
transitionMaterializationStatus(materializationId, request, options = {}) {
|
|
15262
15351
|
return this.http.patch(this.discovery.resolveHref(`${MATERIALIZATIONS_HREF}/${encodeURIComponent(materializationId)}/status`, options), request, { headers: this.resolveHeaders(options) });
|
|
15263
15352
|
}
|
|
15353
|
+
listSnapshotVersions(ruleSetKey, limit = 50, options = {}) {
|
|
15354
|
+
return this.http.get(this.discovery.resolveHref(SNAPSHOTS_HREF, options), {
|
|
15355
|
+
params: new HttpParams()
|
|
15356
|
+
.set('ruleSetKey', ruleSetKey)
|
|
15357
|
+
.set('limit', String(limit)),
|
|
15358
|
+
headers: this.resolveHeaders(options),
|
|
15359
|
+
});
|
|
15360
|
+
}
|
|
15361
|
+
getSnapshotHeadStatus(ruleSetKey, options = {}) {
|
|
15362
|
+
return this.http.get(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/head/status`, options), {
|
|
15363
|
+
params: new HttpParams().set('ruleSetKey', ruleSetKey),
|
|
15364
|
+
headers: this.resolveHeaders(options),
|
|
15365
|
+
});
|
|
15366
|
+
}
|
|
15367
|
+
getSnapshotHead(ruleSetKey, options = {}) {
|
|
15368
|
+
return this.http.get(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/head`, options), {
|
|
15369
|
+
params: new HttpParams().set('ruleSetKey', ruleSetKey),
|
|
15370
|
+
headers: this.resolveHeaders(options),
|
|
15371
|
+
});
|
|
15372
|
+
}
|
|
15373
|
+
getSnapshotExecutionSummary(snapshotKey, options = {}) {
|
|
15374
|
+
return this.http.get(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/${encodeURIComponent(snapshotKey)}/execution-summary`, options), { headers: this.resolveHeaders(options) });
|
|
15375
|
+
}
|
|
15376
|
+
getSnapshotHostStatusSummary(ruleSetKey, options = {}) {
|
|
15377
|
+
return this.http.get(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/head/host-status-summary`, options), {
|
|
15378
|
+
params: new HttpParams().set('ruleSetKey', ruleSetKey),
|
|
15379
|
+
headers: this.resolveHeaders(options),
|
|
15380
|
+
});
|
|
15381
|
+
}
|
|
15382
|
+
getRolloutPolicyCatalog(ruleSetKey, options = {}) {
|
|
15383
|
+
return this.http.get(this.discovery.resolveHref(ROLLOUT_POLICIES_HREF, options), {
|
|
15384
|
+
params: new HttpParams().set('ruleSetKey', ruleSetKey),
|
|
15385
|
+
headers: this.resolveHeaders(options),
|
|
15386
|
+
});
|
|
15387
|
+
}
|
|
15388
|
+
getRolloutPolicyTimeline(ruleSetKey, options = {}) {
|
|
15389
|
+
return this.http.get(this.discovery.resolveHref(`${ROLLOUT_POLICIES_HREF}/timeline`, options), {
|
|
15390
|
+
params: new HttpParams().set('ruleSetKey', ruleSetKey),
|
|
15391
|
+
headers: this.resolveHeaders(options),
|
|
15392
|
+
});
|
|
15393
|
+
}
|
|
15394
|
+
createRolloutPolicy(request, options = {}) {
|
|
15395
|
+
return this.http.post(this.discovery.resolveHref(ROLLOUT_POLICIES_HREF, options), request, { headers: this.resolveHeaders(options) });
|
|
15396
|
+
}
|
|
15397
|
+
approveRolloutPolicy(policyId, options = {}) {
|
|
15398
|
+
return this.http.post(this.discovery.resolveHref(`${ROLLOUT_POLICIES_HREF}/${encodeURIComponent(policyId)}/approve`, options), null, { headers: this.resolveHeaders(options) });
|
|
15399
|
+
}
|
|
15400
|
+
activateRolloutPolicy(policyId, policyHeadEtag, options = {}) {
|
|
15401
|
+
const resolved = this.resolveHeaders(options) ?? new HttpHeaders();
|
|
15402
|
+
return this.http.post(this.discovery.resolveHref(`${ROLLOUT_POLICIES_HREF}/${encodeURIComponent(policyId)}/activate`, options), null, { headers: resolved.set('If-Match', this.strongEntityTag(policyHeadEtag)) });
|
|
15403
|
+
}
|
|
15404
|
+
getRolloutCatalog(ruleSetKey, options = {}) {
|
|
15405
|
+
return this.http.get(this.discovery.resolveHref(ROLLOUTS_HREF, options), {
|
|
15406
|
+
params: new HttpParams().set('ruleSetKey', ruleSetKey),
|
|
15407
|
+
headers: this.resolveHeaders(options),
|
|
15408
|
+
});
|
|
15409
|
+
}
|
|
15410
|
+
getRolloutReadiness(rolloutId, options = {}) {
|
|
15411
|
+
return this.http.get(this.discovery.resolveHref(`${ROLLOUTS_HREF}/${encodeURIComponent(rolloutId)}/readiness`, options), { headers: this.resolveHeaders(options) });
|
|
15412
|
+
}
|
|
15413
|
+
createRollout(request, headEtag, options = {}) {
|
|
15414
|
+
const resolved = this.resolveHeaders(options) ?? new HttpHeaders();
|
|
15415
|
+
return this.http.post(this.discovery.resolveHref(ROLLOUTS_HREF, options), request, { headers: resolved.set('If-Match', this.strongEntityTag(headEtag)) });
|
|
15416
|
+
}
|
|
15417
|
+
cancelRollout(rolloutId, options = {}) {
|
|
15418
|
+
return this.http.post(this.discovery.resolveHref(`${ROLLOUTS_HREF}/${encodeURIComponent(rolloutId)}/cancel`, options), null, { headers: this.resolveHeaders(options) });
|
|
15419
|
+
}
|
|
15420
|
+
activateSnapshotCandidate(snapshotKey, headEtag, rolloutId, options = {}) {
|
|
15421
|
+
let resolved = this.resolveHeaders(options) ?? new HttpHeaders();
|
|
15422
|
+
resolved = resolved.set('If-Match', this.strongEntityTag(headEtag));
|
|
15423
|
+
resolved = resolved.set('X-Rule-Rollout-ID', rolloutId);
|
|
15424
|
+
return this.http.post(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/${encodeURIComponent(snapshotKey)}/activate`, options), null, { headers: resolved });
|
|
15425
|
+
}
|
|
15426
|
+
prepareSnapshotComposition(request, options = {}) {
|
|
15427
|
+
return this.http.post(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/composition-manifest`, options), request, { headers: this.resolveHeaders(options) });
|
|
15428
|
+
}
|
|
15429
|
+
approveSnapshotComposition(request, options = {}) {
|
|
15430
|
+
return this.http.post(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/composition-approvals`, options), request, { headers: this.resolveHeaders(options) });
|
|
15431
|
+
}
|
|
15432
|
+
publishSnapshot(request, currentHeadEtag, options = {}) {
|
|
15433
|
+
let headers = this.resolveHeaders(options) ?? new HttpHeaders();
|
|
15434
|
+
headers = currentHeadEtag
|
|
15435
|
+
? headers.set('If-Match', this.strongEntityTag(currentHeadEtag))
|
|
15436
|
+
: headers.set('If-None-Match', '*');
|
|
15437
|
+
return this.http.post(this.discovery.resolveHref(SNAPSHOTS_HREF, options), request, { headers });
|
|
15438
|
+
}
|
|
15439
|
+
activateSnapshot(snapshotKey, headEtag, options = {}) {
|
|
15440
|
+
const resolved = this.resolveHeaders(options) ?? new HttpHeaders();
|
|
15441
|
+
return this.http.post(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/${encodeURIComponent(snapshotKey)}/activate`, options), null, { headers: resolved.set('If-Match', this.strongEntityTag(headEtag)) });
|
|
15442
|
+
}
|
|
15443
|
+
rollbackSnapshot(snapshotKey, headEtag, options = {}) {
|
|
15444
|
+
const resolved = this.resolveHeaders(options) ?? new HttpHeaders();
|
|
15445
|
+
return this.http.post(this.discovery.resolveHref(`${SNAPSHOTS_HREF}/${encodeURIComponent(snapshotKey)}/rollback`, options), null, { headers: resolved.set('If-Match', this.strongEntityTag(headEtag)) });
|
|
15446
|
+
}
|
|
15264
15447
|
buildParams(filters) {
|
|
15265
15448
|
let params = new HttpParams();
|
|
15266
15449
|
Object.entries(filters).forEach(([key, value]) => {
|
|
@@ -15270,6 +15453,15 @@ class DomainRuleService {
|
|
|
15270
15453
|
});
|
|
15271
15454
|
return params;
|
|
15272
15455
|
}
|
|
15456
|
+
strongEntityTag(value) {
|
|
15457
|
+
const trimmed = value.trim();
|
|
15458
|
+
if (/^"[^"\r\n]*"$/.test(trimmed))
|
|
15459
|
+
return trimmed;
|
|
15460
|
+
if (!trimmed || /["\r\n,]/.test(trimmed) || /^W\//i.test(trimmed)) {
|
|
15461
|
+
throw new Error('The mutable-head ETag is not a valid strong entity tag.');
|
|
15462
|
+
}
|
|
15463
|
+
return `"${trimmed}"`;
|
|
15464
|
+
}
|
|
15273
15465
|
resolveHeaders(options) {
|
|
15274
15466
|
if (options.headers instanceof HttpHeaders) {
|
|
15275
15467
|
return options.headers;
|
|
@@ -15806,6 +15998,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
15806
15998
|
|
|
15807
15999
|
class SurfaceOpenMaterializerService {
|
|
15808
16000
|
discovery = inject(ResourceDiscoveryService);
|
|
16001
|
+
i18n = inject(PraxisI18nService);
|
|
15809
16002
|
async materialize(payload, context) {
|
|
15810
16003
|
if (this.shouldPreserveRelatedRemoteTable(payload)) {
|
|
15811
16004
|
return payload;
|
|
@@ -16267,11 +16460,13 @@ class SurfaceOpenMaterializerService {
|
|
|
16267
16460
|
return !relatedActionIds.has(String(record['id'] || record['action'] || ''));
|
|
16268
16461
|
})
|
|
16269
16462
|
: [];
|
|
16463
|
+
const previousRelatedActionPresentation = new Map((Array.isArray(previousToolbar['actions']) ? previousToolbar['actions'] : [])
|
|
16464
|
+
.map((action) => this.objectRecord(action))
|
|
16465
|
+
.filter((action) => relatedActionIds.has(String(action['id'] || '')))
|
|
16466
|
+
.map((action) => [String(action['id']), action]));
|
|
16270
16467
|
const toolbarActions = [
|
|
16271
16468
|
...previousToolbarActions,
|
|
16272
|
-
...relatedActions.map((action) => action['
|
|
16273
|
-
? { ...action, appearance: 'filled' }
|
|
16274
|
-
: action),
|
|
16469
|
+
...relatedActions.map((action) => this.mergeRelatedActionPresentation(action, previousRelatedActionPresentation.get(String(action['id'])))),
|
|
16275
16470
|
];
|
|
16276
16471
|
const previousAi = this.objectRecord(previousConfig['ai']);
|
|
16277
16472
|
const previousAssistant = this.objectRecord(previousAi['assistant']);
|
|
@@ -16332,6 +16527,31 @@ class SurfaceOpenMaterializerService {
|
|
|
16332
16527
|
? value
|
|
16333
16528
|
: {};
|
|
16334
16529
|
}
|
|
16530
|
+
mergeRelatedActionPresentation(canonical, authored) {
|
|
16531
|
+
if (!authored)
|
|
16532
|
+
return canonical;
|
|
16533
|
+
const presentation = {};
|
|
16534
|
+
for (const key of ['label', 'tooltip', 'icon']) {
|
|
16535
|
+
if (typeof authored[key] === 'string')
|
|
16536
|
+
presentation[key] = authored[key];
|
|
16537
|
+
}
|
|
16538
|
+
if (['primary', 'accent', 'warn'].includes(String(authored['color']))) {
|
|
16539
|
+
presentation['color'] = authored['color'];
|
|
16540
|
+
}
|
|
16541
|
+
if (['filled', 'outlined', 'elevated', 'text', 'tonal'].includes(String(authored['appearance']))) {
|
|
16542
|
+
presentation['appearance'] = authored['appearance'];
|
|
16543
|
+
}
|
|
16544
|
+
if (['button', 'icon', 'fab'].includes(String(authored['type']))) {
|
|
16545
|
+
presentation['type'] = authored['type'];
|
|
16546
|
+
}
|
|
16547
|
+
if (['start', 'end'].includes(String(authored['position']))) {
|
|
16548
|
+
presentation['position'] = authored['position'];
|
|
16549
|
+
}
|
|
16550
|
+
if (typeof authored['order'] === 'number' && Number.isFinite(authored['order'])) {
|
|
16551
|
+
presentation['order'] = authored['order'];
|
|
16552
|
+
}
|
|
16553
|
+
return { ...canonical, ...presentation };
|
|
16554
|
+
}
|
|
16335
16555
|
buildRelatedCrudActions(payload, operations, paths) {
|
|
16336
16556
|
const noun = this.resolveRelatedActionNoun(payload);
|
|
16337
16557
|
const formIdPrefix = this.stableSurfaceId(payload);
|
|
@@ -16341,7 +16561,7 @@ class SurfaceOpenMaterializerService {
|
|
|
16341
16561
|
actions.push({
|
|
16342
16562
|
id: 'create',
|
|
16343
16563
|
action: 'create',
|
|
16344
|
-
label:
|
|
16564
|
+
label: this.relatedActionText('create', noun),
|
|
16345
16565
|
tooltip: this.resolveRelatedActionDescription(payload, 'create', noun),
|
|
16346
16566
|
formId: `${formIdPrefix}.create`,
|
|
16347
16567
|
icon: 'add',
|
|
@@ -16358,7 +16578,7 @@ class SurfaceOpenMaterializerService {
|
|
|
16358
16578
|
actions.push({
|
|
16359
16579
|
id: 'edit',
|
|
16360
16580
|
action: 'edit',
|
|
16361
|
-
label:
|
|
16581
|
+
label: this.relatedActionText('edit', noun),
|
|
16362
16582
|
tooltip: this.resolveRelatedActionDescription(payload, 'edit', noun),
|
|
16363
16583
|
formId: `${formIdPrefix}.edit`,
|
|
16364
16584
|
icon: 'edit',
|
|
@@ -16378,7 +16598,7 @@ class SurfaceOpenMaterializerService {
|
|
|
16378
16598
|
actions.push({
|
|
16379
16599
|
id: 'delete',
|
|
16380
16600
|
action: 'delete',
|
|
16381
|
-
label:
|
|
16601
|
+
label: this.relatedActionText('delete', noun),
|
|
16382
16602
|
tooltip: this.resolveRelatedActionDescription(payload, 'delete', noun),
|
|
16383
16603
|
formId: `${formIdPrefix}.delete`,
|
|
16384
16604
|
icon: 'delete',
|
|
@@ -16397,6 +16617,13 @@ class SurfaceOpenMaterializerService {
|
|
|
16397
16617
|
}
|
|
16398
16618
|
return actions;
|
|
16399
16619
|
}
|
|
16620
|
+
relatedActionText(operation, noun) {
|
|
16621
|
+
const english = this.i18n.getLocale().toLowerCase().startsWith('en');
|
|
16622
|
+
const fallback = english
|
|
16623
|
+
? `${operation === 'create' ? 'Add' : operation === 'edit' ? 'Edit' : 'Remove'} ${noun}`
|
|
16624
|
+
: `${operation === 'create' ? 'Adicionar' : operation === 'edit' ? 'Editar' : 'Remover'} ${noun}`;
|
|
16625
|
+
return this.i18n.t(`action.${operation}.label`, { noun }, fallback, RELATED_RESOURCE_OUTLET_I18N_NAMESPACE);
|
|
16626
|
+
}
|
|
16400
16627
|
buildRelatedCommandFormConfig() {
|
|
16401
16628
|
return {
|
|
16402
16629
|
metadata: {
|
|
@@ -16579,11 +16806,19 @@ class SurfaceOpenMaterializerService {
|
|
|
16579
16806
|
|| '').trim();
|
|
16580
16807
|
if (surfaceDescription)
|
|
16581
16808
|
return surfaceDescription;
|
|
16582
|
-
|
|
16583
|
-
|
|
16584
|
-
|
|
16585
|
-
|
|
16586
|
-
|
|
16809
|
+
const english = this.i18n.getLocale().toLowerCase().startsWith('en');
|
|
16810
|
+
const fallback = english
|
|
16811
|
+
? action === 'create'
|
|
16812
|
+
? `Add ${noun} to the selected context.`
|
|
16813
|
+
: action === 'edit'
|
|
16814
|
+
? `Update ${noun} data in the selected context.`
|
|
16815
|
+
: `Remove ${noun} from the selected context.`
|
|
16816
|
+
: action === 'create'
|
|
16817
|
+
? `Adicione ${noun} ao contexto selecionado.`
|
|
16818
|
+
: action === 'edit'
|
|
16819
|
+
? `Atualize os dados de ${noun} no contexto selecionado.`
|
|
16820
|
+
: `Remova ${noun} do contexto selecionado.`;
|
|
16821
|
+
return this.i18n.t(`action.${action}.tooltip`, { noun }, fallback, RELATED_RESOURCE_OUTLET_I18N_NAMESPACE);
|
|
16587
16822
|
}
|
|
16588
16823
|
inferColumnsFromData(data) {
|
|
16589
16824
|
const first = data.find((item) => item && typeof item === 'object' && !Array.isArray(item));
|
|
@@ -17840,7 +18075,7 @@ function normalizeUnknownError(rawError) {
|
|
|
17840
18075
|
if (typeof candidate === 'string') {
|
|
17841
18076
|
return normalizeFromParts('Error', candidate);
|
|
17842
18077
|
}
|
|
17843
|
-
if (isRecord$
|
|
18078
|
+
if (isRecord$2(candidate)) {
|
|
17844
18079
|
const name = toText(candidate['name'], 'Error');
|
|
17845
18080
|
const message = toText(candidate['message'], safeStringify(candidate));
|
|
17846
18081
|
const stack = toStack(candidate['stack']);
|
|
@@ -17859,7 +18094,7 @@ function extractErrorCandidate(data) {
|
|
|
17859
18094
|
if (data instanceof Error || typeof data === 'string') {
|
|
17860
18095
|
return data;
|
|
17861
18096
|
}
|
|
17862
|
-
if (!isRecord$
|
|
18097
|
+
if (!isRecord$2(data)) {
|
|
17863
18098
|
return undefined;
|
|
17864
18099
|
}
|
|
17865
18100
|
if ('error' in data) {
|
|
@@ -17877,7 +18112,7 @@ function extractErrorCandidate(data) {
|
|
|
17877
18112
|
return undefined;
|
|
17878
18113
|
}
|
|
17879
18114
|
function unwrapRejection(error) {
|
|
17880
|
-
if (!isRecord$
|
|
18115
|
+
if (!isRecord$2(error)) {
|
|
17881
18116
|
return error;
|
|
17882
18117
|
}
|
|
17883
18118
|
if ('rejection' in error) {
|
|
@@ -17937,7 +18172,7 @@ function safeStringify(value) {
|
|
|
17937
18172
|
return UNKNOWN_ERROR_MESSAGE;
|
|
17938
18173
|
}
|
|
17939
18174
|
}
|
|
17940
|
-
function isRecord$
|
|
18175
|
+
function isRecord$2(value) {
|
|
17941
18176
|
return !!value && typeof value === 'object';
|
|
17942
18177
|
}
|
|
17943
18178
|
|
|
@@ -18897,6 +19132,54 @@ function buildPraxisCollectionSearchCss(tokens = {}) {
|
|
|
18897
19132
|
`;
|
|
18898
19133
|
}
|
|
18899
19134
|
|
|
19135
|
+
const PRAXIS_ACTION_CONTROL_DEFAULTS = {
|
|
19136
|
+
height: '40px',
|
|
19137
|
+
compactHeight: '36px',
|
|
19138
|
+
spaciousHeight: '44px',
|
|
19139
|
+
radius: '8px',
|
|
19140
|
+
paddingInline: '12px',
|
|
19141
|
+
gap: '8px',
|
|
19142
|
+
iconSize: '18px',
|
|
19143
|
+
fontSize: 'var(--md-sys-typescale-label-large-size, 0.875rem)',
|
|
19144
|
+
lineHeight: 'var(--md-sys-typescale-label-large-line-height, 1.25rem)',
|
|
19145
|
+
fontWeight: 'var(--md-sys-typescale-label-large-weight, 500)',
|
|
19146
|
+
focusRing: 'color-mix(in srgb, var(--md-sys-color-primary) 52%, transparent)',
|
|
19147
|
+
disabledOpacity: '0.62',
|
|
19148
|
+
};
|
|
19149
|
+
const PRAXIS_ACTION_CONTROL_VARS = {
|
|
19150
|
+
height: '--praxis-action-control-height',
|
|
19151
|
+
compactHeight: '--praxis-action-control-compact-height',
|
|
19152
|
+
spaciousHeight: '--praxis-action-control-spacious-height',
|
|
19153
|
+
radius: '--praxis-action-control-radius',
|
|
19154
|
+
paddingInline: '--praxis-action-control-padding-inline',
|
|
19155
|
+
gap: '--praxis-action-control-gap',
|
|
19156
|
+
iconSize: '--praxis-action-control-icon-size',
|
|
19157
|
+
fontSize: '--praxis-action-control-font-size',
|
|
19158
|
+
lineHeight: '--praxis-action-control-line-height',
|
|
19159
|
+
fontWeight: '--praxis-action-control-font-weight',
|
|
19160
|
+
focusRing: '--praxis-action-control-focus-ring',
|
|
19161
|
+
disabledOpacity: '--praxis-action-control-disabled-opacity',
|
|
19162
|
+
};
|
|
19163
|
+
function buildPraxisActionControlCss(tokens = {}) {
|
|
19164
|
+
const resolved = { ...PRAXIS_ACTION_CONTROL_DEFAULTS, ...tokens };
|
|
19165
|
+
return `
|
|
19166
|
+
:root {
|
|
19167
|
+
${PRAXIS_ACTION_CONTROL_VARS.height}: ${resolved.height};
|
|
19168
|
+
${PRAXIS_ACTION_CONTROL_VARS.compactHeight}: ${resolved.compactHeight};
|
|
19169
|
+
${PRAXIS_ACTION_CONTROL_VARS.spaciousHeight}: ${resolved.spaciousHeight};
|
|
19170
|
+
${PRAXIS_ACTION_CONTROL_VARS.radius}: ${resolved.radius};
|
|
19171
|
+
${PRAXIS_ACTION_CONTROL_VARS.paddingInline}: ${resolved.paddingInline};
|
|
19172
|
+
${PRAXIS_ACTION_CONTROL_VARS.gap}: ${resolved.gap};
|
|
19173
|
+
${PRAXIS_ACTION_CONTROL_VARS.iconSize}: ${resolved.iconSize};
|
|
19174
|
+
${PRAXIS_ACTION_CONTROL_VARS.fontSize}: ${resolved.fontSize};
|
|
19175
|
+
${PRAXIS_ACTION_CONTROL_VARS.lineHeight}: ${resolved.lineHeight};
|
|
19176
|
+
${PRAXIS_ACTION_CONTROL_VARS.fontWeight}: ${resolved.fontWeight};
|
|
19177
|
+
${PRAXIS_ACTION_CONTROL_VARS.focusRing}: ${resolved.focusRing};
|
|
19178
|
+
${PRAXIS_ACTION_CONTROL_VARS.disabledOpacity}: ${resolved.disabledOpacity};
|
|
19179
|
+
}
|
|
19180
|
+
`;
|
|
19181
|
+
}
|
|
19182
|
+
|
|
18900
19183
|
/** Set the current tenant for GlobalConfigService at app boot. */
|
|
18901
19184
|
function provideGlobalConfigTenant(tenantId) {
|
|
18902
19185
|
return {
|
|
@@ -20864,6 +21147,227 @@ function convertFormLayoutToConfig(formLayout) {
|
|
|
20864
21147
|
return ensureIds({ sections });
|
|
20865
21148
|
}
|
|
20866
21149
|
|
|
21150
|
+
const MAX_REACTIVE_DETERMINATION_BINDINGS = 64;
|
|
21151
|
+
/** Strictly normalizes the closed x-ui.reactiveDeterminations projection. */
|
|
21152
|
+
function normalizeReactiveDeterminations(value) {
|
|
21153
|
+
if (!Array.isArray(value))
|
|
21154
|
+
return [];
|
|
21155
|
+
const normalized = value
|
|
21156
|
+
.map((candidate) => normalizeReactiveDetermination(candidate))
|
|
21157
|
+
.filter((candidate) => candidate !== null);
|
|
21158
|
+
const idCounts = new Map();
|
|
21159
|
+
normalized.forEach((candidate) => idCounts.set(candidate.id, (idCounts.get(candidate.id) ?? 0) + 1));
|
|
21160
|
+
if (normalized.some((candidate) => idCounts.get(candidate.id) !== 1))
|
|
21161
|
+
return [];
|
|
21162
|
+
if (hasCrossDefinitionOutputOverlap(normalized) || hasDependencyCycle(normalized))
|
|
21163
|
+
return [];
|
|
21164
|
+
return normalized;
|
|
21165
|
+
}
|
|
21166
|
+
function normalizeReactiveDetermination(value) {
|
|
21167
|
+
if (!isRecord$1(value) ||
|
|
21168
|
+
!hasOnlyKeys(value, ['id', 'trigger', 'scope', 'capability', 'inputs', 'outputs', 'provenance'])) {
|
|
21169
|
+
return null;
|
|
21170
|
+
}
|
|
21171
|
+
const id = stableId(value['id']);
|
|
21172
|
+
const trigger = normalizeTrigger(value['trigger']);
|
|
21173
|
+
const scope = normalizeScope(value['scope']);
|
|
21174
|
+
const capability = normalizeCapability(value['capability']);
|
|
21175
|
+
const inputs = normalizeInputs(value['inputs']);
|
|
21176
|
+
const outputs = normalizeOutputs(value['outputs']);
|
|
21177
|
+
const provenance = normalizeProvenance(value['provenance']);
|
|
21178
|
+
const inputFieldPaths = new Set(inputs.map((binding) => binding.fieldPath));
|
|
21179
|
+
const outputFieldPaths = new Set(outputs.map((binding) => binding.fieldPath));
|
|
21180
|
+
if (!id ||
|
|
21181
|
+
!trigger ||
|
|
21182
|
+
!scope ||
|
|
21183
|
+
!capability ||
|
|
21184
|
+
!inputs.length ||
|
|
21185
|
+
!outputs.length ||
|
|
21186
|
+
!provenance ||
|
|
21187
|
+
inputs.length + outputs.length > MAX_REACTIVE_DETERMINATION_BINDINGS ||
|
|
21188
|
+
trigger.sourcePaths.length > inputs.length ||
|
|
21189
|
+
trigger.sourcePaths.some((sourcePath) => !inputFieldPaths.has(sourcePath)) ||
|
|
21190
|
+
[...outputFieldPaths].some((outputPath) => [...inputFieldPaths].some((inputPath) => jsonPointersOverlap(inputPath, outputPath)))) {
|
|
21191
|
+
return null;
|
|
21192
|
+
}
|
|
21193
|
+
return { id, trigger, scope, capability, inputs, outputs, provenance };
|
|
21194
|
+
}
|
|
21195
|
+
function hasCrossDefinitionOutputOverlap(definitions) {
|
|
21196
|
+
for (let leftIndex = 0; leftIndex < definitions.length; leftIndex += 1) {
|
|
21197
|
+
for (let rightIndex = leftIndex + 1; rightIndex < definitions.length; rightIndex += 1) {
|
|
21198
|
+
if (definitions[leftIndex].outputs.some((left) => definitions[rightIndex].outputs.some((right) => jsonPointersOverlap(left.fieldPath, right.fieldPath))))
|
|
21199
|
+
return true;
|
|
21200
|
+
}
|
|
21201
|
+
}
|
|
21202
|
+
return false;
|
|
21203
|
+
}
|
|
21204
|
+
function hasDependencyCycle(definitions) {
|
|
21205
|
+
const dependencies = definitions.map((consumer) => definitions
|
|
21206
|
+
.map((producer, producerIndex) => ({ producer, producerIndex }))
|
|
21207
|
+
.filter(({ producer }) => producer !== consumer && producer.outputs.some((output) => consumer.inputs.some((input) => jsonPointersOverlap(output.fieldPath, input.fieldPath))))
|
|
21208
|
+
.map(({ producerIndex }) => producerIndex));
|
|
21209
|
+
const state = new Array(definitions.length).fill(0);
|
|
21210
|
+
const visit = (index) => {
|
|
21211
|
+
if (state[index] === 1)
|
|
21212
|
+
return true;
|
|
21213
|
+
if (state[index] === 2)
|
|
21214
|
+
return false;
|
|
21215
|
+
state[index] = 1;
|
|
21216
|
+
if (dependencies[index].some(visit))
|
|
21217
|
+
return true;
|
|
21218
|
+
state[index] = 2;
|
|
21219
|
+
return false;
|
|
21220
|
+
};
|
|
21221
|
+
return definitions.some((_definition, index) => visit(index));
|
|
21222
|
+
}
|
|
21223
|
+
function normalizeTrigger(value) {
|
|
21224
|
+
if (!isRecord$1(value) || !hasOnlyKeys(value, ['mode', 'sourcePaths']))
|
|
21225
|
+
return null;
|
|
21226
|
+
const sourcePaths = pointerArray(value['sourcePaths'], MAX_REACTIVE_DETERMINATION_BINDINGS);
|
|
21227
|
+
if (value['mode'] !== 'on-change' || !sourcePaths.length)
|
|
21228
|
+
return null;
|
|
21229
|
+
return { mode: 'on-change', sourcePaths };
|
|
21230
|
+
}
|
|
21231
|
+
function normalizeScope(value) {
|
|
21232
|
+
if (!isRecord$1(value) || !hasOnlyKeys(value, ['schemaOperationId', 'formMode']))
|
|
21233
|
+
return null;
|
|
21234
|
+
const schemaOperationId = stableId(value['schemaOperationId']);
|
|
21235
|
+
const formMode = value['formMode'];
|
|
21236
|
+
if (!schemaOperationId || (formMode !== 'create' && formMode !== 'edit'))
|
|
21237
|
+
return null;
|
|
21238
|
+
return { schemaOperationId, formMode };
|
|
21239
|
+
}
|
|
21240
|
+
function normalizeCapability(value) {
|
|
21241
|
+
if (!isRecord$1(value) ||
|
|
21242
|
+
!hasOnlyKeys(value, ['operationId', 'method', 'href', 'requestSchemaUrl', 'responseSchemaUrl'])) {
|
|
21243
|
+
return null;
|
|
21244
|
+
}
|
|
21245
|
+
const operationId = stableId(value['operationId']);
|
|
21246
|
+
const href = nonBlank(value['href']);
|
|
21247
|
+
const requestSchemaUrl = nonBlank(value['requestSchemaUrl']);
|
|
21248
|
+
const responseSchemaUrl = nonBlank(value['responseSchemaUrl']);
|
|
21249
|
+
if (!operationId ||
|
|
21250
|
+
value['method'] !== 'POST' ||
|
|
21251
|
+
!href ||
|
|
21252
|
+
!isSafeRelativeOperationPath(href) ||
|
|
21253
|
+
!requestSchemaUrl?.startsWith('/schemas/filtered?') ||
|
|
21254
|
+
!responseSchemaUrl?.startsWith('/schemas/filtered?')) {
|
|
21255
|
+
return null;
|
|
21256
|
+
}
|
|
21257
|
+
return { operationId, method: 'POST', href, requestSchemaUrl, responseSchemaUrl };
|
|
21258
|
+
}
|
|
21259
|
+
function normalizeInputs(value) {
|
|
21260
|
+
if (!Array.isArray(value) || value.length > MAX_REACTIVE_DETERMINATION_BINDINGS)
|
|
21261
|
+
return [];
|
|
21262
|
+
const result = [];
|
|
21263
|
+
const fieldPaths = new Set();
|
|
21264
|
+
const requestPaths = new Set();
|
|
21265
|
+
for (const candidate of value) {
|
|
21266
|
+
if (!isRecord$1(candidate) || !hasOnlyKeys(candidate, ['fieldPath', 'requestPath']))
|
|
21267
|
+
return [];
|
|
21268
|
+
const fieldPath = jsonPointer(candidate['fieldPath']);
|
|
21269
|
+
const requestPath = jsonPointer(candidate['requestPath']);
|
|
21270
|
+
if (!fieldPath ||
|
|
21271
|
+
!requestPath ||
|
|
21272
|
+
[...fieldPaths].some((current) => jsonPointersOverlap(current, fieldPath)) ||
|
|
21273
|
+
[...requestPaths].some((current) => jsonPointersOverlap(current, requestPath)))
|
|
21274
|
+
return [];
|
|
21275
|
+
fieldPaths.add(fieldPath);
|
|
21276
|
+
requestPaths.add(requestPath);
|
|
21277
|
+
result.push({ fieldPath, requestPath });
|
|
21278
|
+
}
|
|
21279
|
+
return result;
|
|
21280
|
+
}
|
|
21281
|
+
function normalizeOutputs(value) {
|
|
21282
|
+
if (!Array.isArray(value) || value.length > MAX_REACTIVE_DETERMINATION_BINDINGS)
|
|
21283
|
+
return [];
|
|
21284
|
+
const result = [];
|
|
21285
|
+
const responsePaths = new Set();
|
|
21286
|
+
const fieldPaths = new Set();
|
|
21287
|
+
for (const candidate of value) {
|
|
21288
|
+
if (!isRecord$1(candidate) || !hasOnlyKeys(candidate, ['responsePath', 'fieldPath']))
|
|
21289
|
+
return [];
|
|
21290
|
+
const responsePath = jsonPointer(candidate['responsePath']);
|
|
21291
|
+
const fieldPath = jsonPointer(candidate['fieldPath']);
|
|
21292
|
+
if (!responsePath ||
|
|
21293
|
+
!fieldPath ||
|
|
21294
|
+
[...responsePaths].some((current) => jsonPointersOverlap(current, responsePath)) ||
|
|
21295
|
+
[...fieldPaths].some((current) => jsonPointersOverlap(current, fieldPath)))
|
|
21296
|
+
return [];
|
|
21297
|
+
responsePaths.add(responsePath);
|
|
21298
|
+
fieldPaths.add(fieldPath);
|
|
21299
|
+
result.push({ responsePath, fieldPath });
|
|
21300
|
+
}
|
|
21301
|
+
return result;
|
|
21302
|
+
}
|
|
21303
|
+
function normalizeProvenance(value) {
|
|
21304
|
+
if (!isRecord$1(value) || !hasOnlyKeys(value, ['kind', 'source', 'version']))
|
|
21305
|
+
return null;
|
|
21306
|
+
const kind = value['kind'];
|
|
21307
|
+
const source = stableId(value['source']);
|
|
21308
|
+
const version = value['version'] === undefined ? undefined : nonBlank(value['version']);
|
|
21309
|
+
if ((kind !== 'platform' && kind !== 'host') || !source || (value['version'] !== undefined && !version)) {
|
|
21310
|
+
return null;
|
|
21311
|
+
}
|
|
21312
|
+
if (version && version.length > 64)
|
|
21313
|
+
return null;
|
|
21314
|
+
return { kind, source, ...(version ? { version } : {}) };
|
|
21315
|
+
}
|
|
21316
|
+
function pointerArray(value, maxItems) {
|
|
21317
|
+
if (!Array.isArray(value) || value.length > maxItems)
|
|
21318
|
+
return [];
|
|
21319
|
+
const pointers = value.map(jsonPointer);
|
|
21320
|
+
if (pointers.some((pointer) => !pointer))
|
|
21321
|
+
return [];
|
|
21322
|
+
const uniquePointers = new Set(pointers);
|
|
21323
|
+
return uniquePointers.size === pointers.length ? [...uniquePointers] : [];
|
|
21324
|
+
}
|
|
21325
|
+
function jsonPointer(value) {
|
|
21326
|
+
const pointer = nonBlank(value);
|
|
21327
|
+
return pointer && /^\/(?!\/)(?:[^/~]|~[01])+(?:\/(?:[^/~]|~[01])+)*$/.test(pointer)
|
|
21328
|
+
? pointer
|
|
21329
|
+
: null;
|
|
21330
|
+
}
|
|
21331
|
+
function jsonPointersOverlap(left, right) {
|
|
21332
|
+
const leftSegments = decodeJsonPointerSegments(left);
|
|
21333
|
+
const rightSegments = decodeJsonPointerSegments(right);
|
|
21334
|
+
const prefixLength = Math.min(leftSegments.length, rightSegments.length);
|
|
21335
|
+
for (let index = 0; index < prefixLength; index += 1) {
|
|
21336
|
+
if (leftSegments[index] !== rightSegments[index])
|
|
21337
|
+
return false;
|
|
21338
|
+
}
|
|
21339
|
+
return true;
|
|
21340
|
+
}
|
|
21341
|
+
function decodeJsonPointerSegments(pointer) {
|
|
21342
|
+
return pointer.slice(1).split('/').map((segment) => segment.replace(/~1/g, '/').replace(/~0/g, '~'));
|
|
21343
|
+
}
|
|
21344
|
+
function stableId(value) {
|
|
21345
|
+
const id = nonBlank(value);
|
|
21346
|
+
return id && /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(id) ? id : null;
|
|
21347
|
+
}
|
|
21348
|
+
function isSafeRelativeOperationPath(path) {
|
|
21349
|
+
if (!path.startsWith('/') || path.startsWith('//') || path.includes('\\') || path.includes('?') ||
|
|
21350
|
+
path.includes('#') || path.includes('{') || path.includes('}') ||
|
|
21351
|
+
/[\u0000-\u001f\u007f]/.test(path) || /%(?:2f|5c)/i.test(path))
|
|
21352
|
+
return false;
|
|
21353
|
+
try {
|
|
21354
|
+
return new URL(path, 'https://praxis.invalid').origin === 'https://praxis.invalid';
|
|
21355
|
+
}
|
|
21356
|
+
catch {
|
|
21357
|
+
return false;
|
|
21358
|
+
}
|
|
21359
|
+
}
|
|
21360
|
+
function nonBlank(value) {
|
|
21361
|
+
return typeof value === 'string' && value.trim() ? value.trim() : null;
|
|
21362
|
+
}
|
|
21363
|
+
function isRecord$1(value) {
|
|
21364
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
21365
|
+
}
|
|
21366
|
+
function hasOnlyKeys(value, allowed) {
|
|
21367
|
+
const allowedSet = new Set(allowed);
|
|
21368
|
+
return Object.keys(value).every((key) => allowedSet.has(key));
|
|
21369
|
+
}
|
|
21370
|
+
|
|
20867
21371
|
/**
|
|
20868
21372
|
* Materializes a concrete FormConfig from a reusable editorial template.
|
|
20869
21373
|
*
|
|
@@ -24284,14 +24788,62 @@ const GROUPED_COMMAND_FIXED_CONTROLS = new Set([
|
|
|
24284
24788
|
]);
|
|
24285
24789
|
const KNOWN_FIELD_CONTROL_TYPES = new Set(Object.values(FieldControlType));
|
|
24286
24790
|
/**
|
|
24287
|
-
*
|
|
24288
|
-
* inventing arbitrary spans.
|
|
24289
|
-
*
|
|
24791
|
+
* Projects every visual row produced by responsive wrapping and distributes
|
|
24792
|
+
* its remainder without inventing arbitrary spans. Effective CSS `order` is
|
|
24793
|
+
* respected and the input order is the deterministic tie-breaker. Unknown,
|
|
24794
|
+
* compact, upload and action controls remain unchanged.
|
|
24290
24795
|
*/
|
|
24796
|
+
function projectGroupedCommandPartialRows(candidates, strategy = 'preserve') {
|
|
24797
|
+
const visualCandidates = candidates
|
|
24798
|
+
.map((candidate, index) => ({
|
|
24799
|
+
candidate,
|
|
24800
|
+
index,
|
|
24801
|
+
span: clampGridSpan(candidate.span),
|
|
24802
|
+
order: normalizeCandidateOrder(candidate.order),
|
|
24803
|
+
}))
|
|
24804
|
+
.sort((left, right) => left.order - right.order || left.index - right.index);
|
|
24805
|
+
const projected = candidates.map((candidate) => clampGridSpan(candidate.span));
|
|
24806
|
+
const visualRows = [];
|
|
24807
|
+
let visualRowStart = 0;
|
|
24808
|
+
let visualRowSpan = 0;
|
|
24809
|
+
const projectVisualRow = (endExclusive) => {
|
|
24810
|
+
const row = visualCandidates.slice(visualRowStart, endExclusive);
|
|
24811
|
+
if (!row.length)
|
|
24812
|
+
return;
|
|
24813
|
+
const rowCandidates = row.map((entry) => entry.candidate);
|
|
24814
|
+
const rowSpans = row.map((entry) => entry.span);
|
|
24815
|
+
const rowProjection = strategy === 'fill-compatible' && candidates.length >= 2
|
|
24816
|
+
? fillGroupedCommandVisualRow(rowCandidates, rowSpans)
|
|
24817
|
+
: [...rowSpans];
|
|
24818
|
+
rowProjection.forEach((span, rowIndex) => {
|
|
24819
|
+
projected[row[rowIndex].index] = span;
|
|
24820
|
+
});
|
|
24821
|
+
visualRows.push({
|
|
24822
|
+
candidateIndexes: row.map((entry) => entry.index),
|
|
24823
|
+
canonicalSpans: rowSpans,
|
|
24824
|
+
projectedSpans: rowProjection,
|
|
24825
|
+
});
|
|
24826
|
+
};
|
|
24827
|
+
for (let index = 0; index < visualCandidates.length; index += 1) {
|
|
24828
|
+
const span = visualCandidates[index].span;
|
|
24829
|
+
if (visualRowSpan > 0 && visualRowSpan + span > 12) {
|
|
24830
|
+
projectVisualRow(index);
|
|
24831
|
+
visualRowStart = index;
|
|
24832
|
+
visualRowSpan = 0;
|
|
24833
|
+
}
|
|
24834
|
+
visualRowSpan += span;
|
|
24835
|
+
}
|
|
24836
|
+
projectVisualRow(visualCandidates.length);
|
|
24837
|
+
return { spans: projected, visualRows };
|
|
24838
|
+
}
|
|
24291
24839
|
function resolveGroupedCommandPartialRowSpans(candidates, strategy = 'preserve') {
|
|
24292
|
-
|
|
24293
|
-
|
|
24294
|
-
|
|
24840
|
+
return projectGroupedCommandPartialRows(candidates, strategy).spans;
|
|
24841
|
+
}
|
|
24842
|
+
function fillGroupedCommandVisualRow(candidates, rowSpans) {
|
|
24843
|
+
const resolved = [...rowSpans];
|
|
24844
|
+
if (resolved.length === 1) {
|
|
24845
|
+
return [isGroupedCommandExpansionEligible(candidates[0]) ? 12 : resolved[0]];
|
|
24846
|
+
}
|
|
24295
24847
|
let remaining = 12 - resolved.reduce((total, span) => total + span, 0);
|
|
24296
24848
|
if (remaining <= 0)
|
|
24297
24849
|
return resolved;
|
|
@@ -24319,6 +24871,9 @@ function clampGridSpan(value) {
|
|
|
24319
24871
|
return 12;
|
|
24320
24872
|
return Math.max(1, Math.min(12, Math.round(value)));
|
|
24321
24873
|
}
|
|
24874
|
+
function normalizeCandidateOrder(value) {
|
|
24875
|
+
return typeof value === 'number' && Number.isFinite(value) ? Math.round(value) : 0;
|
|
24876
|
+
}
|
|
24322
24877
|
function nextCanonicalGroupedCommandSpan(span) {
|
|
24323
24878
|
return GROUPED_COMMAND_CANONICAL_SPANS.find((candidate) => candidate > span) ?? null;
|
|
24324
24879
|
}
|
|
@@ -41673,7 +42228,7 @@ class PraxisRelatedResourceOutletComponent {
|
|
|
41673
42228
|
const discovery = this.injector.get(ResourceDiscoveryService);
|
|
41674
42229
|
const catalog$ = discoverySource
|
|
41675
42230
|
? discovery.getSurfaces(discoverySource, options)
|
|
41676
|
-
: discovery.
|
|
42231
|
+
: discovery.getSurfaces({ surfaces: { href: href } }, options);
|
|
41677
42232
|
this.discoverySubscription = catalog$.subscribe({
|
|
41678
42233
|
next: (response) => {
|
|
41679
42234
|
if (this.discoveryRequestKey !== requestKey) {
|
|
@@ -42058,7 +42613,7 @@ const PRAXIS_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA = {
|
|
|
42058
42613
|
{ name: 'icon', type: 'string | null', description: 'Ícone opcional da superfície relacionada.' },
|
|
42059
42614
|
{ name: 'queryContext', type: 'RelatedResourceQueryContext | null', description: 'QueryContext base mesclado com o filtro canônico da relação filha.' },
|
|
42060
42615
|
{ name: 'tableId', type: 'string | null', description: 'Identidade estável da tabela filha para persistência, observabilidade e testes.' },
|
|
42061
|
-
{ name: 'tableConfig', type: 'Record<string, unknown> | null', description: '
|
|
42616
|
+
{ name: 'tableConfig', type: 'Record<string, unknown> | null', description: 'Configuração parcial mesclada ao preset canônico. Ações CRUD com ids create, edit e delete aceitam somente overrides visuais (label, tooltip, icon, color, appearance, type, position e order); semântica, alvo, formulários, confirmação e disponibilidade permanecem governados pelo materializador.' },
|
|
42062
42617
|
{ name: 'emptyState', type: 'Record<string, unknown> | null', description: 'Override opcional para behavior.emptyState da tabela filha. Quando omitido, o outlet deriva texto, icone, layout e ação create a partir de surface.relatedResource e dos metadados da surface.' },
|
|
42063
42618
|
{ name: 'enableCustomization', type: 'boolean', description: 'Opt-in explicito para authoring governado da tabela filha.', default: false },
|
|
42064
42619
|
{ name: 'authoringCapability', type: 'string | null', description: 'Capability publica do EnterpriseRuntimeContext exigida quando o authoring da tabela filha estiver habilitado.' },
|
|
@@ -42134,7 +42689,7 @@ class EmptyStateCardComponent {
|
|
|
42134
42689
|
</div>
|
|
42135
42690
|
<div class="actions">
|
|
42136
42691
|
@if (primaryAction) {
|
|
42137
|
-
<button mat-flat-button color="primary" (click)="primaryAction.action()">
|
|
42692
|
+
<button type="button" mat-flat-button color="primary" (click)="primaryAction.action()">
|
|
42138
42693
|
@if (primaryAction.icon) {
|
|
42139
42694
|
<mat-icon [fontIcon]="primaryAction.icon"></mat-icon>
|
|
42140
42695
|
}
|
|
@@ -42142,7 +42697,7 @@ class EmptyStateCardComponent {
|
|
|
42142
42697
|
</button>
|
|
42143
42698
|
}
|
|
42144
42699
|
@for (a of secondaryActions; track a) {
|
|
42145
|
-
<button mat-stroked-button [color]="a.color" (click)="a.action()">
|
|
42700
|
+
<button type="button" mat-stroked-button [color]="a.color" (click)="a.action()">
|
|
42146
42701
|
@if (a.icon) {
|
|
42147
42702
|
<mat-icon [fontIcon]="a.icon"></mat-icon>
|
|
42148
42703
|
}
|
|
@@ -42152,7 +42707,7 @@ class EmptyStateCardComponent {
|
|
|
42152
42707
|
</div>
|
|
42153
42708
|
</mat-card-content>
|
|
42154
42709
|
</mat-card>
|
|
42155
|
-
`, isInline: true, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.actions .mat-mdc-button-base{height:var(--pdx-empty-state-action-height,
|
|
42710
|
+
`, isInline: true, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.actions .mat-mdc-button-base{width:fit-content;max-width:100%;height:var(--pdx-empty-state-action-height, var(--praxis-action-control-height, 40px));min-height:var(--pdx-empty-state-action-height, var(--praxis-action-control-height, 40px));padding-inline:var(--pdx-empty-state-action-padding-inline, var(--praxis-action-control-padding-inline, 12px));border-radius:var(--pdx-empty-state-action-radius, var(--praxis-action-control-radius, 8px));gap:var(--pdx-empty-state-action-gap, var(--praxis-action-control-gap, 8px));font-size:var(--pdx-empty-state-action-font-size, var(--praxis-action-control-font-size, .875rem));font-weight:var(--pdx-empty-state-action-font-weight, var(--praxis-action-control-font-weight, 500));line-height:var(--pdx-empty-state-action-line-height, var(--praxis-action-control-line-height, 1.25rem));white-space:nowrap}.actions .mat-mdc-button-base mat-icon{width:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px));height:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px));margin:0;font-size:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px));line-height:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px))}.actions .mat-mdc-button-base:focus-visible{outline:2px solid var(--pdx-empty-state-action-focus-ring, var(--praxis-action-control-focus-ring, var(--md-sys-color-primary)));outline-offset:2px}.actions .mat-mdc-button-base:disabled{opacity:var(--pdx-empty-state-action-disabled-opacity, var(--praxis-action-control-disabled-opacity, .62))}.align-center .actions{justify-content:var(--pdx-empty-state-actions-justify, center)}.density-compact .content{gap:var(--pdx-empty-state-compact-gap, 8px)}.density-compact .actions .mat-mdc-button-base{height:var(--pdx-empty-state-action-height, var(--praxis-action-control-compact-height, 36px));min-height:var(--pdx-empty-state-action-height, var(--praxis-action-control-compact-height, 36px))}.density-compact .icon{font-size:var(--pdx-empty-state-compact-icon-size, 24px);width:var(--pdx-empty-state-compact-icon-box-size, 24px);height:var(--pdx-empty-state-compact-icon-box-size, 24px)}.density-compact.icon-circle .icon,.density-compact.icon-soft .icon{width:var(--pdx-empty-state-compact-icon-container-size, 36px);height:var(--pdx-empty-state-compact-icon-container-size, 36px);font-size:var(--pdx-empty-state-compact-icon-container-icon-size, 20px)}.empty-card.tone-primary{--empty-icon-color: var(--md-sys-color-primary)}.empty-card.tone-secondary{--empty-icon-color: var(--md-sys-color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
42156
42711
|
}
|
|
42157
42712
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: EmptyStateCardComponent, decorators: [{
|
|
42158
42713
|
type: Component,
|
|
@@ -42185,7 +42740,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
42185
42740
|
</div>
|
|
42186
42741
|
<div class="actions">
|
|
42187
42742
|
@if (primaryAction) {
|
|
42188
|
-
<button mat-flat-button color="primary" (click)="primaryAction.action()">
|
|
42743
|
+
<button type="button" mat-flat-button color="primary" (click)="primaryAction.action()">
|
|
42189
42744
|
@if (primaryAction.icon) {
|
|
42190
42745
|
<mat-icon [fontIcon]="primaryAction.icon"></mat-icon>
|
|
42191
42746
|
}
|
|
@@ -42193,7 +42748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
42193
42748
|
</button>
|
|
42194
42749
|
}
|
|
42195
42750
|
@for (a of secondaryActions; track a) {
|
|
42196
|
-
<button mat-stroked-button [color]="a.color" (click)="a.action()">
|
|
42751
|
+
<button type="button" mat-stroked-button [color]="a.color" (click)="a.action()">
|
|
42197
42752
|
@if (a.icon) {
|
|
42198
42753
|
<mat-icon [fontIcon]="a.icon"></mat-icon>
|
|
42199
42754
|
}
|
|
@@ -42203,7 +42758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
42203
42758
|
</div>
|
|
42204
42759
|
</mat-card-content>
|
|
42205
42760
|
</mat-card>
|
|
42206
|
-
`, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.actions .mat-mdc-button-base{height:var(--pdx-empty-state-action-height,
|
|
42761
|
+
`, styles: [".empty-card{display:block;margin:var(--pdx-empty-state-margin, 12px);border-color:var(--pdx-empty-state-border-color, var(--md-sys-color-outline-variant));border-radius:var(--pdx-empty-state-radius, 8px);background:var(--pdx-empty-state-bg, var(--md-sys-color-surface));color:var(--pdx-empty-state-fg, var(--md-sys-color-on-surface));--empty-icon-color: var(--pdx-empty-state-icon-color, var(--md-sys-color-on-surface-variant))}.empty-card.empty-inline,.empty-card.variant-inline{margin:var(--pdx-empty-state-inline-margin, 8px 0)}.empty-card.variant-panel{margin:var(--pdx-empty-state-panel-margin, 0)}.empty-card.variant-transparent{margin:var(--pdx-empty-state-transparent-margin, 0);border-color:transparent;background:transparent;box-shadow:none}.content{display:flex;align-items:center;gap:var(--pdx-empty-state-gap, 12px)}.align-center .content{flex-direction:column;justify-content:center;text-align:center}.icon{display:inline-grid;place-items:center;flex:0 0 auto;font-size:var(--pdx-empty-state-icon-size, 32px);width:var(--pdx-empty-state-icon-box-size, 32px);height:var(--pdx-empty-state-icon-box-size, 32px);color:var(--empty-icon-color)}.icon-circle .icon,.icon-soft .icon{width:var(--pdx-empty-state-icon-container-size, 44px);height:var(--pdx-empty-state-icon-container-size, 44px);border-radius:var(--pdx-empty-state-icon-container-radius, 999px);font-size:var(--pdx-empty-state-icon-container-icon-size, 22px)}.icon-circle .icon{border:1px solid var(--pdx-empty-state-icon-container-border-color, color-mix(in srgb, var(--empty-icon-color) 24%, transparent));background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.icon-soft .icon{background:var(--pdx-empty-state-icon-container-bg, color-mix(in srgb, var(--empty-icon-color) 10%, transparent))}.texts{display:grid;gap:var(--pdx-empty-state-text-gap, 4px)}.align-center .texts{justify-items:center}.title{margin:0;font-family:var(--pdx-empty-state-title-font-family, var(--md-sys-typescale-title-small-font-family, inherit));font-size:var(--pdx-empty-state-title-font-size, 16px);font-weight:var(--pdx-empty-state-title-font-weight, 600);line-height:var(--pdx-empty-state-title-line-height, 1.3);color:var(--pdx-empty-state-title-color, var(--md-sys-color-on-surface))}.desc{margin:0;max-width:var(--pdx-empty-state-description-max-width, none);font-family:var(--pdx-empty-state-description-font-family, var(--md-sys-typescale-body-medium-font-family, inherit));font-size:var(--pdx-empty-state-description-font-size, inherit);line-height:var(--pdx-empty-state-description-line-height, 1.4);color:var(--pdx-empty-state-description-color, var(--md-sys-color-on-surface-variant))}.actions{display:flex;justify-content:var(--pdx-empty-state-actions-justify, flex-start);gap:var(--pdx-empty-state-actions-gap, 8px);margin-top:var(--pdx-empty-state-actions-margin-top, 12px);flex-wrap:wrap}.actions .mat-mdc-button-base{width:fit-content;max-width:100%;height:var(--pdx-empty-state-action-height, var(--praxis-action-control-height, 40px));min-height:var(--pdx-empty-state-action-height, var(--praxis-action-control-height, 40px));padding-inline:var(--pdx-empty-state-action-padding-inline, var(--praxis-action-control-padding-inline, 12px));border-radius:var(--pdx-empty-state-action-radius, var(--praxis-action-control-radius, 8px));gap:var(--pdx-empty-state-action-gap, var(--praxis-action-control-gap, 8px));font-size:var(--pdx-empty-state-action-font-size, var(--praxis-action-control-font-size, .875rem));font-weight:var(--pdx-empty-state-action-font-weight, var(--praxis-action-control-font-weight, 500));line-height:var(--pdx-empty-state-action-line-height, var(--praxis-action-control-line-height, 1.25rem));white-space:nowrap}.actions .mat-mdc-button-base mat-icon{width:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px));height:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px));margin:0;font-size:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px));line-height:var(--pdx-empty-state-action-icon-size, var(--praxis-action-control-icon-size, 18px))}.actions .mat-mdc-button-base:focus-visible{outline:2px solid var(--pdx-empty-state-action-focus-ring, var(--praxis-action-control-focus-ring, var(--md-sys-color-primary)));outline-offset:2px}.actions .mat-mdc-button-base:disabled{opacity:var(--pdx-empty-state-action-disabled-opacity, var(--praxis-action-control-disabled-opacity, .62))}.align-center .actions{justify-content:var(--pdx-empty-state-actions-justify, center)}.density-compact .content{gap:var(--pdx-empty-state-compact-gap, 8px)}.density-compact .actions .mat-mdc-button-base{height:var(--pdx-empty-state-action-height, var(--praxis-action-control-compact-height, 36px));min-height:var(--pdx-empty-state-action-height, var(--praxis-action-control-compact-height, 36px))}.density-compact .icon{font-size:var(--pdx-empty-state-compact-icon-size, 24px);width:var(--pdx-empty-state-compact-icon-box-size, 24px);height:var(--pdx-empty-state-compact-icon-box-size, 24px)}.density-compact.icon-circle .icon,.density-compact.icon-soft .icon{width:var(--pdx-empty-state-compact-icon-container-size, 36px);height:var(--pdx-empty-state-compact-icon-container-size, 36px);font-size:var(--pdx-empty-state-compact-icon-container-icon-size, 20px)}.empty-card.tone-primary{--empty-icon-color: var(--md-sys-color-primary)}.empty-card.tone-secondary{--empty-icon-color: var(--md-sys-color-secondary)}\n"] }]
|
|
42207
42762
|
}], propDecorators: { icon: [{
|
|
42208
42763
|
type: Input
|
|
42209
42764
|
}], title: [{
|
|
@@ -43585,4 +44140,4 @@ function provideHookWhitelist(allowed) {
|
|
|
43585
44140
|
* Generated bundle index. Do not edit.
|
|
43586
44141
|
*/
|
|
43587
44142
|
|
|
43588
|
-
export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, AnalyticsPresentationResolver, AnalyticsSchemaContractService, AnalyticsStatsRequestBuilderService, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, COMPONENT_METADATA_REGISTRY_I18N_CONFIG, COMPONENT_METADATA_REGISTRY_I18N_NAMESPACE, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, CrudOperationResolutionService, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DOMAIN_CATALOG_COMPONENT_CONTEXT_PACK, DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DomainCatalogService, DomainKnowledgeService, DomainRuleService, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, EnterpriseRuntimeContextService, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NestedPortCatalogService, NestedWidgetConfigAccessor, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS, PRAXIS_COLLECTION_EXPORT_PROVIDER, PRAXIS_COLLECTION_SEARCH_DEFAULTS, PRAXIS_COLLECTION_SEARCH_VARS, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_OPTIONS, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_READY, PRAXIS_EXPORT_FORMULA_PREFIXES, PRAXIS_EXPORT_SECURITY_POLICY, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_JSON_LOGIC_OPERATORS, PRAXIS_LAYER_SCALE_DEFAULTS, PRAXIS_LAYER_SCALE_VARS, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_QUERY_FILTER_EXPRESSION_SCHEMA_VERSION, PRAXIS_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA, PRAXIS_RELATED_RESOURCE_OUTLET_PORTS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TABLE_DETAIL_RESOURCE_RESOLVER, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_THEME_SURFACE_DEFAULTS, PRAXIS_THEME_SURFACE_VARS, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCollectionExportService, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisHttpCollectionExportProvider, PraxisI18nService, PraxisIconButtonComponent, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRelatedResourceOutletComponent, PraxisResourceIdentityComponent, PraxisRichTextBlockComponent, PraxisRuntimeComponentObservationRegistryService, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RelatedResourceSurfaceResolverService, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceRecordOpenError, ResourceRecordOpenService, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_DRAWER_CONTENT_DATA, SURFACE_DRAWER_REF, SURFACE_NAVIGATION_I18N_CONFIG, SURFACE_NAVIGATION_I18N_NAMESPACE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceNavigationError, SurfaceOpenActionEditorComponent, SurfaceOpenMaterializerService, SurfaceOutletRegistryService, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$2 as applyLocalCustomizations, applyLocalCustomizations$1 as applyLocalFormCustomizations, assertPraxisCollectionExportArtifact, assertPraxisRuntimeComponentObservationSerializable, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisCollectionSearchCss, buildPraxisEffectDistinctKey, buildPraxisLayerScaleCss, buildPraxisThemeSurfaceCss, buildSchemaId, buildSchemaIdStorageKeySegment, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, classifyEntityLookupResult, clonePraxisRuntimeComponentObservation, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createFieldLayoutItem, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, domainKnowledgeTimelineToRichContentDocument, domainRuleTimelineToRichContentDocument, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, escapePraxisExportCell, evaluateFieldAccess, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getFormColumnFieldNames, getFormLayoutFieldNames, getGlobalActionCatalog, getGlobalActionPayloadActualType, getGlobalActionPayloadTypeIssue, getGlobalActionUiSchema, getMissingGlobalActionPayloadKeys, getPraxisTableCellVisualizationConstraint, getPraxisTableCellVisualizationGuidance, getReferencedFieldMetadata, getRequiredGlobalActionPayloadKeys, getTextTransformer, hasMeaningfulGlobalActionPayloadValue, hasPraxisCollectionExportArtifact, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isEntityLookupMultiplePayloadMode, isEntityLookupPayloadMode, isEntityLookupPayloadModeCompatible, isEntityLookupResultSelectable, isEntityLookupSinglePayloadMode, isFormLayoutItem, isGlobalActionRef, isInlineFilterControlType, isLookupDialogSize, isLookupFilterFieldType, isLookupFilterOperator, isPraxisI18nMessageDescriptor, isPraxisPresentationVisualizationTableSafe, isPraxisRuntimeGlobalActionEffect, isProgrammaticDateRangePreset, isRangeValidForFilter, isRequiredGlobalActionParamPayloadMissing, isRequiredGlobalActionPayloadMissing, isStaticDateRangePreset, isSurfaceNavigationError, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, materializeFormLayoutFromMetadata, materializeResourceIdentity, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldAccessMetadata, normalizeFieldConstraints, normalizeFieldPresentation, normalizeFormConfig, normalizeFormLayoutItems, normalizeFormMetadata, normalizeGlobalActionRef$1 as normalizeGlobalActionRef, normalizeLayoutPolicy, normalizeLookupFilterRequest, normalizePath, normalizePraxisDataQueryContext, normalizePraxisEffectPolicy, normalizePraxisPresentationVisualization, normalizePraxisQueryFilterExpression, normalizePraxisQueryFilterNode, normalizeResourceAvailabilityReasonCode, normalizeResourceIdentityContract, normalizeStart, normalizeSurfaceOperationContext, normalizeUnknownError, normalizeWidgetEventPath, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisCollectionExportProvider, providePraxisDynamicPageMetadata, providePraxisEnterpriseRuntimeContext, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpCollectionExportProvider, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRelatedResourceOutletMetadata, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, readPraxisExportValue, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, registerPraxisRuntimeComponentObservation, removeDiacritics, renderPraxisPresentationVisualizationHtml, reportTelemetryHookFactory, requiredCheckedValidator, requiredPresenceValidator, resolveBuiltinPresets, resolveColumnTypeFromFieldDefinition, resolveControlTypeAlias, resolveDateRangeShortcutPreset, resolveDateRangeShortcutPresets, resolveDefaultValuePresentationFormat, resolveEntityLookupPayloadMode, resolveFieldPresentation, resolveGroupedCommandPartialRowSpans, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisCollectionExportItems, resolvePraxisExportFields, resolvePraxisExportScope, resolvePraxisFilterCriteria, resolvePraxisI18nDocument, resolveResourceAvailabilityReasonKey, resolveResourceIdentityContract, resolveSpan, resolveTextMaskFormat, resolveTextMaskFormatFromFieldDefinition, resolveValuePresentation, resolveValuePresentationLocale, serializeEntityLookupValueForPayload, serializeOptionSourceFilterRequest, serializePraxisCollectionToCsv, serializePraxisCollectionToExcel, serializePraxisCollectionToJson, slugify, staticDateRangePresetToPreset, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateSurfaceNavigationRejected, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, validateGlobalActionRef, validateGlobalActionRefs, withFormConfigSections, withMessage, withPraxisHttpLoading };
|
|
44143
|
+
export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, AnalyticsPresentationResolver, AnalyticsSchemaContractService, AnalyticsStatsRequestBuilderService, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, COMPONENT_METADATA_REGISTRY_I18N_CONFIG, COMPONENT_METADATA_REGISTRY_I18N_NAMESPACE, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, CrudOperationResolutionService, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DOMAIN_CATALOG_COMPONENT_CONTEXT_PACK, DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DomainCatalogService, DomainKnowledgeService, DomainRuleService, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, EnterpriseRuntimeContextService, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NestedPortCatalogService, NestedWidgetConfigAccessor, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_ACTION_CONTROL_DEFAULTS, PRAXIS_ACTION_CONTROL_VARS, PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS, PRAXIS_COLLECTION_EXPORT_PROVIDER, PRAXIS_COLLECTION_SEARCH_DEFAULTS, PRAXIS_COLLECTION_SEARCH_VARS, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_OPTIONS, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_READY, PRAXIS_EXPORT_FORMULA_PREFIXES, PRAXIS_EXPORT_SECURITY_POLICY, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_JSON_LOGIC_OPERATORS, PRAXIS_LAYER_SCALE_DEFAULTS, PRAXIS_LAYER_SCALE_VARS, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_QUERY_FILTER_EXPRESSION_SCHEMA_VERSION, PRAXIS_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA, PRAXIS_RELATED_RESOURCE_OUTLET_PORTS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TABLE_DETAIL_RESOURCE_RESOLVER, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_THEME_SURFACE_DEFAULTS, PRAXIS_THEME_SURFACE_VARS, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCollectionExportService, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisHttpCollectionExportProvider, PraxisI18nService, PraxisIconButtonComponent, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRelatedResourceOutletComponent, PraxisResourceIdentityComponent, PraxisRichTextBlockComponent, PraxisRuntimeComponentObservationRegistryService, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RelatedResourceSurfaceResolverService, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceRecordOpenError, ResourceRecordOpenService, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_DRAWER_CONTENT_DATA, SURFACE_DRAWER_REF, SURFACE_NAVIGATION_I18N_CONFIG, SURFACE_NAVIGATION_I18N_NAMESPACE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceNavigationError, SurfaceOpenActionEditorComponent, SurfaceOpenMaterializerService, SurfaceOutletRegistryService, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$2 as applyLocalCustomizations, applyLocalCustomizations$1 as applyLocalFormCustomizations, assertPraxisCollectionExportArtifact, assertPraxisRuntimeComponentObservationSerializable, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisActionControlCss, buildPraxisCollectionSearchCss, buildPraxisEffectDistinctKey, buildPraxisLayerScaleCss, buildPraxisThemeSurfaceCss, buildSchemaId, buildSchemaIdStorageKeySegment, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, classifyEntityLookupResult, clonePraxisRuntimeComponentObservation, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createFieldLayoutItem, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, domainKnowledgeTimelineToRichContentDocument, domainRuleTimelineToRichContentDocument, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, escapePraxisExportCell, evaluateFieldAccess, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getFormColumnFieldNames, getFormLayoutFieldNames, getGlobalActionCatalog, getGlobalActionPayloadActualType, getGlobalActionPayloadTypeIssue, getGlobalActionUiSchema, getMissingGlobalActionPayloadKeys, getPraxisTableCellVisualizationConstraint, getPraxisTableCellVisualizationGuidance, getReferencedFieldMetadata, getRequiredGlobalActionPayloadKeys, getTextTransformer, hasMeaningfulGlobalActionPayloadValue, hasPraxisCollectionExportArtifact, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isEntityLookupMultiplePayloadMode, isEntityLookupPayloadMode, isEntityLookupPayloadModeCompatible, isEntityLookupResultSelectable, isEntityLookupSinglePayloadMode, isFormLayoutItem, isGlobalActionRef, isInlineFilterControlType, isLookupDialogSize, isLookupFilterFieldType, isLookupFilterOperator, isPraxisI18nMessageDescriptor, isPraxisPresentationVisualizationTableSafe, isPraxisRuntimeGlobalActionEffect, isProgrammaticDateRangePreset, isRangeValidForFilter, isRequiredGlobalActionParamPayloadMissing, isRequiredGlobalActionPayloadMissing, isStaticDateRangePreset, isSurfaceNavigationError, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, materializeFormLayoutFromMetadata, materializeResourceIdentity, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldAccessMetadata, normalizeFieldConstraints, normalizeFieldPresentation, normalizeFormConfig, normalizeFormLayoutItems, normalizeFormMetadata, normalizeGlobalActionRef$1 as normalizeGlobalActionRef, normalizeLayoutPolicy, normalizeLookupFilterRequest, normalizePath, normalizePraxisDataQueryContext, normalizePraxisEffectPolicy, normalizePraxisPresentationVisualization, normalizePraxisQueryFilterExpression, normalizePraxisQueryFilterNode, normalizeReactiveDeterminations, normalizeResourceAvailabilityReasonCode, normalizeResourceIdentityContract, normalizeStart, normalizeSurfaceOperationContext, normalizeUnknownError, normalizeWidgetEventPath, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, projectGroupedCommandPartialRows, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisCollectionExportProvider, providePraxisDynamicPageMetadata, providePraxisEnterpriseRuntimeContext, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpCollectionExportProvider, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRelatedResourceOutletMetadata, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, readPraxisExportValue, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, registerPraxisRuntimeComponentObservation, removeDiacritics, renderPraxisPresentationVisualizationHtml, reportTelemetryHookFactory, requiredCheckedValidator, requiredPresenceValidator, resolveBuiltinPresets, resolveColumnTypeFromFieldDefinition, resolveControlTypeAlias, resolveDateRangeShortcutPreset, resolveDateRangeShortcutPresets, resolveDefaultValuePresentationFormat, resolveEntityLookupPayloadMode, resolveFieldPresentation, resolveGroupedCommandPartialRowSpans, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisCollectionExportItems, resolvePraxisExportFields, resolvePraxisExportScope, resolvePraxisFilterCriteria, resolvePraxisI18nDocument, resolveResourceAvailabilityReasonKey, resolveResourceIdentityContract, resolveSpan, resolveTextMaskFormat, resolveTextMaskFormatFromFieldDefinition, resolveValuePresentation, resolveValuePresentationLocale, serializeEntityLookupValueForPayload, serializeOptionSourceFilterRequest, serializePraxisCollectionToCsv, serializePraxisCollectionToExcel, serializePraxisCollectionToJson, slugify, staticDateRangePresetToPreset, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateSurfaceNavigationRejected, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, validateGlobalActionRef, validateGlobalActionRefs, withFormConfigSections, withMessage, withPraxisHttpLoading };
|