@praxisui/core 9.0.4-rc.40 → 9.0.4-rc.41
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/ai/component-registry.json +4 -4
- package/fesm2022/praxisui-core.mjs +27 -3
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +135 -122
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-10T16:19:04.275Z",
|
|
4
4
|
"packageName": "@praxisui/core",
|
|
5
|
-
"packageVersion": "9.0.4-rc.
|
|
5
|
+
"packageVersion": "9.0.4-rc.41",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 4,
|
|
@@ -3457,9 +3457,9 @@
|
|
|
3457
3457
|
{
|
|
3458
3458
|
"chunkIndex": 53,
|
|
3459
3459
|
"chunkKind": "recipe",
|
|
3460
|
-
"content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"page.widgets\",\"page\":{\"widgets\":[{\"key\":\"employeePortfolio\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"groups\",\"title\":{\"key\":\"employeeOperations.portfolio.shell.title\",\"text\":\"Gestão de pessoas\"},\"subtitle\":{\"key\":\"employeeOperations.portfolio.shell.subtitle\",\"text\":\"Encontre funcionários, atualize vínculos e consulte o dossiê sem sair da carteira\"},\"windowActions\":{\"collapsible\":false,\"fullscreen\":true}},\"definition\":{\"id\":\"praxis-crud\",\"bindingOrder\":[\"crudId\",\"componentInstanceId\",\"tableConfigPersistenceStrategy\",\"metadata\"],\"inputs\":{\"crudId\":\"employee-operations-casework\",\"componentInstanceId\":\"employee-operations-casework\",\"tableConfigPersistenceStrategy\":\"volatile\",\"metadata\":{\"component\":\"praxis-crud\",\"resource\":{\"path\":\"human-resources/funcionarios\",\"idField\":\"id\",\"endpointKey\":\"human-resources.funcionarios\",\"title\":{\"key\":\"employeeOperations.portfolio.resource.title\",\"text\":\"Funcionários\"},\"formTitle\":{\"key\":\"employeeOperations.portfolio.resource.formTitle\",\"text\":\"Cadastro do funcionário\"}},\"table\":{\"ai\":{\"assistant\":{\"enabled\":false}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.portfolio.toolbar.title\",\"text\":\"Carteira de funcionários\"},\"subtitle\":{\"key\":\"employeeOperations.portfolio.toolbar.subtitle\",\"text\":\"Dados cadastrais, área, vínculo e remuneração em uma única visão\"},\"search\":{\"enabled\":true,\"placeholder\":{\"key\":\"employeeOperations.portfolio.search.placeholder\",\"text\":\"Buscar por nome, e-mail, cargo ou departamento\"}},\"filters\":{\"enabled\":true,\"showAdvancedButton\":true,\"quickFilters\":[{\"id\":\"active-employees\",\"label\":{\"key\":\"employeeOperations.portfolio.quickFilter.active\",\"text\":\"Ativos\"},\"icon\":\"check_circle\",\"filter\":{\"ativo\":true}},{\"id\":\"inactive-employees\",\"label\":{\"key\":\"employeeOperations.portfolio.quickFilter.inactive\",\"text\":\"Inativos\"},\"icon\":\"block\",\"filter\":{\"ativo\":false}}]},\"columnsVisibility\":{\"enabled\":true},\"densityToggle\":{\"enabled\":true}},\"columns\":[{\"field\":\"avatarUrl\",\"header\":{\"key\":\"employeeOperations.portfolio.column.person\",\"text\":\"Pessoa\"},\"type\":\"string\",\"width\":\"76px\",\"renderer\":{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"avatarUrl\",\"altField\":\"nomeCompleto\",\"initialsField\":\"nomeCompleto\",\"shape\":\"circle\",\"size\":36}}},{\"field\":\"nomeCompleto\",\"header\":{\"key\":\"employeeOperations.portfolio.column.employee\",\"text\":\"Funcionário\"},\"type\":\"string\",\"width\":\"220px\",\"sticky\":\"start\"},{\"field\":\"ativo\",\"header\":{\"key\":\"employeeOperations.portfolio.column.employment\",\"text\":\"Vínculo\"},\"type\":\"boolean\",\"format\":\"active-inactive\",\"width\":\"120px\",\"align\":\"center\",\"conditionalRenderers\":[{\"condition\":{\"==\":[{\"var\":\"ativo\"},true]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":{\"key\":\"employeeOperations.portfolio.status.active\",\"text\":\"Ativo\"},\"color\":\"success\",\"variant\":\"filled\",\"icon\":\"check_circle\"}}},{\"condition\":{\"==\":[{\"var\":\"ativo\"},false]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":{\"key\":\"employeeOperations.portfolio.status.inactive\",\"text\":\"Inativo\"},\"color\":\"warn\",\"variant\":\"outlined\",\"icon\":\"block\"}}}]},{\"field\":\"cargoNome\",\"header\":{\"key\":\"employeeOperations.portfolio.column.role\",\"text\":\"Cargo\"},\"type\":\"string\",\"width\":\"190px\",\"renderer\":{\"type\":\"chip\",\"chip\":{\"textField\":\"cargoNome\",\"variant\":\"outlined\",\"color\":\"primary\"}}},{\"field\":\"departamentoNome\",\"header\":{\"key\":\"employeeOperations.portfolio.column.department\",\"text\":\"Departamento\"},\"type\":\"string\",\"width\":\"220px\",\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"departamentoNome\",\"variant\":\"soft\",\"color\":\"accent\"}}},{\"field\":\"dataAdmissao\",\"header\":{\"key\":\"employeeOperations.portfolio.column.hiredAt\",\"text\":\"Admissão\"},\"type\":\"date\",\"format\":\"dd/MM/yyyy\",\"width\":\"132px\"},{\"field\":\"salario\",\"header\":{\"key\":\"employeeOperations.portfolio.column.salary\",\"text\":\"Salário base\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\",\"width\":\"150px\"},{\"field\":\"email\",\"header\":{\"key\":\"employeeOperations.portfolio.column.contact\",\"text\":\"Contato\"},\"type\":\"string\",\"width\":\"240px\"}],\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":8,\"pageSizeOptions\":[8,16,32],\"position\":\"bottom\"},\"sorting\":{\"enabled\":true,\"strategy\":\"server\",\"defaultSort\":{\"column\":\"id\",\"direction\":\"asc\"}},\"filtering\":{\"enabled\":true,\"strategy\":\"server\",\"debounceTime\":300,\"advancedFilters\":{\"enabled\":true,\"settings\":{\"alwaysVisibleFields\":[\"departamentoIdsIn\",\"dataAdmissaoRange\",\"salarioBetween\"],\"allowSaveTags\":true,\"advancedOpenMode\":\"modal\",\"advancedClearButtonsEnabled\":true,\"changeDebounceMs\":300}}},\"selection\":{\"enabled\":true,\"type\":\"single\",\"mode\":\"row\",\"persistSelection\":false},\"density\":\"compact\"},\"actions\":{\"row\":{\"enabled\":true,\"display\":\"icons\",\"position\":\"end\",\"sticky\":\"end\",\"header\":{\"label\":{\"key\":\"employeeOperations.portfolio.actions.header\",\"text\":\"Ações\"},\"icon\":\"bolt\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.actions.tooltip\",\"text\":\"Visualizar, editar ou atualizar o vínculo\"}},\"behavior\":{\"enabled\":true,\"maxInline\":{\"xs\":0,\"sm\":1,\"md\":2,\"lg\":3},\"autoStrategy\":\"breakpoints\"},\"actions\":[{\"id\":\"view\",\"label\":{\"key\":\"employeeOperations.portfolio.action.view\",\"text\":\"Visualizar\"},\"icon\":\"visibility\",\"action\":\"view\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.view.tooltip\",\"text\":\"Ver dados do funcionário\"}},{\"id\":\"edit\",\"label\":{\"key\":\"employeeOperations.portfolio.action.edit\",\"text\":\"Editar\"},\"icon\":\"edit\",\"action\":\"edit\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.edit.tooltip\",\"text\":\"Editar dados do funcionário\"}},{\"id\":\"deactivate\",\"label\":{\"key\":\"employeeOperations.portfolio.action.deactivate\",\"text\":\"Inativar\"},\"icon\":\"person_off\",\"color\":\"warn\",\"action\":\"deactivate\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.deactivate.tooltip\",\"text\":\"Inativar vínculo e registrar motivo e vigência\"},\"visibleWhen\":{\"==\":[{\"var\":\"ativo\"},true]}},{\"id\":\"reactivate\",\"label\":{\"key\":\"employeeOperations.portfolio.action.reactivate\",\"text\":\"Reativar\"},\"icon\":\"person_add\",\"color\":\"primary\",\"action\":\"reactivate\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.reactivate.tooltip\",\"text\":\"Reativar vínculo e registrar motivo e vigência\"},\"visibleWhen\":{\"==\":[{\"var\":\"ativo\"},false]}}]}},\"appearance\":{\"density\":\"compact\",\"stickyHeader\":true,\"stripedRows\":false,\"hoverHighlight\":true,\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"horizontalScroll\":false,\"cardMode\":true,\"priorityColumns\":[\"nomeCompleto\",\"ativo\",\"cargoNome\"]}}},\"export\":{\"enabled\":true,\"formats\":[\"csv\",\"excel\"],\"general\":{\"includeHeaders\":true,\"respectFilters\":true,\"applyFormatting\":true,\"defaultFileName\":\"carteira-funcionarios\",\"includeColumns\":\"visible\",\"scope\":\"currentPage\",\"maxRows\":5000},\"excel\":{\"sheetName\":\"Funcionários\",\"autoFitColumns\":true,\"freezeHeaders\":true}}},\"defaults\":{\"openMode\":\"drawer\"},\"actions\":[{\"action\":\"create\",\"openMode\":\"drawer\"},{\"action\":\"view\",\"openMode\":\"drawer\"},{\"action\":\"edit\",\"openMode\":\"drawer\"}]}},\"outputs\":{\"rowClick\":\"emit\",\"rowAction\":\"emit\",\"selectionChange\":\"emit\",\"afterSave\":\"emit\",\"afterDelete\":\"emit\"}}}]}}",
|
|
3460
|
+
"content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"page.widgets\",\"page\":{\"widgets\":[{\"key\":\"employeePortfolio\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"groups\",\"title\":{\"key\":\"employeeOperations.portfolio.shell.title\",\"text\":\"Gestão de pessoas\"},\"subtitle\":{\"key\":\"employeeOperations.portfolio.shell.subtitle\",\"text\":\"Encontre funcionários, atualize vínculos e consulte o dossiê sem sair da carteira\"},\"windowActions\":{\"collapsible\":false,\"fullscreen\":true}},\"definition\":{\"id\":\"praxis-crud\",\"bindingOrder\":[\"crudId\",\"componentInstanceId\",\"tableConfigPersistenceStrategy\",\"metadata\"],\"inputs\":{\"crudId\":\"employee-operations-casework\",\"componentInstanceId\":\"employee-operations-casework\",\"tableConfigPersistenceStrategy\":\"volatile\",\"metadata\":{\"component\":\"praxis-crud\",\"resource\":{\"path\":\"human-resources/funcionarios\",\"idField\":\"id\",\"endpointKey\":\"human-resources.funcionarios\",\"title\":{\"key\":\"employeeOperations.portfolio.resource.title\",\"text\":\"Funcionários\"},\"formTitle\":{\"key\":\"employeeOperations.portfolio.resource.formTitle\",\"text\":\"Cadastro do funcionário\"}},\"table\":{\"ai\":{\"assistant\":{\"enabled\":false}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.portfolio.toolbar.title\",\"text\":\"Carteira de funcionários\"},\"subtitle\":{\"key\":\"employeeOperations.portfolio.toolbar.subtitle\",\"text\":\"Dados cadastrais, área, vínculo e remuneração em uma única visão\"},\"search\":{\"enabled\":true,\"placeholder\":{\"key\":\"employeeOperations.portfolio.search.placeholder\",\"text\":\"Buscar por nome, e-mail, cargo ou departamento\"}},\"filters\":{\"enabled\":true,\"showAdvancedButton\":true,\"quickFilters\":[{\"id\":\"active-employees\",\"label\":{\"key\":\"employeeOperations.portfolio.quickFilter.active\",\"text\":\"Ativos\"},\"icon\":\"check_circle\",\"filter\":{\"ativo\":true}},{\"id\":\"inactive-employees\",\"label\":{\"key\":\"employeeOperations.portfolio.quickFilter.inactive\",\"text\":\"Inativos\"},\"icon\":\"block\",\"filter\":{\"ativo\":false}}]},\"columnsVisibility\":{\"enabled\":true},\"densityToggle\":{\"enabled\":true}},\"columns\":[{\"field\":\"avatarUrl\",\"header\":{\"key\":\"employeeOperations.portfolio.column.person\",\"text\":\"Pessoa\"},\"type\":\"string\",\"width\":\"76px\",\"renderer\":{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"avatarUrl\",\"altField\":\"nomeCompleto\",\"initialsField\":\"nomeCompleto\",\"shape\":\"circle\",\"size\":36}}},{\"field\":\"nomeCompleto\",\"header\":{\"key\":\"employeeOperations.portfolio.column.employee\",\"text\":\"Funcionário\"},\"type\":\"string\",\"width\":\"220px\",\"sticky\":\"start\"},{\"field\":\"ativo\",\"header\":{\"key\":\"employeeOperations.portfolio.column.employment\",\"text\":\"Vínculo\"},\"type\":\"boolean\",\"format\":\"active-inactive\",\"width\":\"120px\",\"align\":\"center\",\"conditionalRenderers\":[{\"condition\":{\"==\":[{\"var\":\"ativo\"},true]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":{\"key\":\"employeeOperations.portfolio.status.active\",\"text\":\"Ativo\"},\"color\":\"success\",\"variant\":\"filled\",\"icon\":\"check_circle\"}}},{\"condition\":{\"==\":[{\"var\":\"ativo\"},false]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":{\"key\":\"employeeOperations.portfolio.status.inactive\",\"text\":\"Inativo\"},\"color\":\"warn\",\"variant\":\"outlined\",\"icon\":\"block\"}}}]},{\"field\":\"cargoNome\",\"header\":{\"key\":\"employeeOperations.portfolio.column.role\",\"text\":\"Cargo\"},\"type\":\"string\",\"width\":\"190px\",\"renderer\":{\"type\":\"chip\",\"chip\":{\"textField\":\"cargoNome\",\"variant\":\"outlined\",\"color\":\"primary\"}}},{\"field\":\"departamentoNome\",\"header\":{\"key\":\"employeeOperations.portfolio.column.department\",\"text\":\"Departamento\"},\"type\":\"string\",\"width\":\"220px\",\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"departamentoNome\",\"variant\":\"soft\",\"color\":\"accent\"}}},{\"field\":\"dataAdmissao\",\"header\":{\"key\":\"employeeOperations.portfolio.column.hiredAt\",\"text\":\"Admissão\"},\"type\":\"date\",\"format\":\"dd/MM/yyyy\",\"width\":\"132px\"},{\"field\":\"salario\",\"header\":{\"key\":\"employeeOperations.portfolio.column.salary\",\"text\":\"Salário base\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\",\"width\":\"150px\"},{\"field\":\"email\",\"header\":{\"key\":\"employeeOperations.portfolio.column.contact\",\"text\":\"Contato\"},\"type\":\"string\",\"width\":\"240px\"}],\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":8,\"pageSizeOptions\":[8,16,32],\"position\":\"bottom\"},\"sorting\":{\"enabled\":true,\"strategy\":\"server\",\"defaultSort\":{\"column\":\"id\",\"direction\":\"asc\"}},\"filtering\":{\"enabled\":true,\"strategy\":\"server\",\"debounceTime\":300,\"advancedFilters\":{\"enabled\":true,\"settings\":{\"alwaysVisibleFields\":[\"departamentoIdsIn\",\"dataAdmissaoRange\",\"salarioBetween\"],\"allowSaveTags\":true,\"tags\":[{\"id\":\"executive-pay-band\",\"label\":\"Faixa executiva\",\"patch\":{\"salarioBetween\":[39000,40000]}}],\"advancedOpenMode\":\"modal\",\"advancedClearButtonsEnabled\":true,\"changeDebounceMs\":300}}},\"selection\":{\"enabled\":true,\"type\":\"single\",\"mode\":\"row\",\"persistSelection\":false},\"density\":\"compact\"},\"actions\":{\"row\":{\"enabled\":true,\"display\":\"icons\",\"position\":\"end\",\"sticky\":\"end\",\"header\":{\"label\":{\"key\":\"employeeOperations.portfolio.actions.header\",\"text\":\"Ações\"},\"icon\":\"bolt\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.actions.tooltip\",\"text\":\"Visualizar, editar ou atualizar o vínculo\"}},\"behavior\":{\"enabled\":true,\"maxInline\":{\"xs\":0,\"sm\":1,\"md\":2,\"lg\":3},\"autoStrategy\":\"breakpoints\"},\"actions\":[{\"id\":\"view\",\"label\":{\"key\":\"employeeOperations.portfolio.action.view\",\"text\":\"Visualizar\"},\"icon\":\"visibility\",\"action\":\"view\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.view.tooltip\",\"text\":\"Ver dados do funcionário\"}},{\"id\":\"edit\",\"label\":{\"key\":\"employeeOperations.portfolio.action.edit\",\"text\":\"Editar\"},\"icon\":\"edit\",\"action\":\"edit\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.edit.tooltip\",\"text\":\"Editar dados do funcionário\"}},{\"id\":\"deactivate\",\"label\":{\"key\":\"employeeOperations.portfolio.action.deactivate\",\"text\":\"Inativar\"},\"icon\":\"person_off\",\"color\":\"warn\",\"action\":\"deactivate\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.deactivate.tooltip\",\"text\":\"Inativar vínculo e registrar motivo e vigência\"},\"visibleWhen\":{\"==\":[{\"var\":\"ativo\"},true]}},{\"id\":\"reactivate\",\"label\":{\"key\":\"employeeOperations.portfolio.action.reactivate\",\"text\":\"Reativar\"},\"icon\":\"person_add\",\"color\":\"primary\",\"action\":\"reactivate\",\"tooltip\":{\"key\":\"employeeOperations.portfolio.action.reactivate.tooltip\",\"text\":\"Reativar vínculo e registrar motivo e vigência\"},\"visibleWhen\":{\"==\":[{\"var\":\"ativo\"},false]}}]}},\"appearance\":{\"density\":\"compact\",\"stickyHeader\":true,\"stripedRows\":false,\"hoverHighlight\":true,\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"horizontalScroll\":false,\"cardMode\":true,\"priorityColumns\":[\"nomeCompleto\",\"ativo\",\"cargoNome\"]}}},\"export\":{\"enabled\":true,\"formats\":[\"csv\",\"excel\"],\"general\":{\"includeHeaders\":true,\"respectFilters\":true,\"applyFormatting\":true,\"defaultFileName\":\"carteira-funcionarios\",\"includeColumns\":\"visible\",\"scope\":\"currentPage\",\"maxRows\":5000},\"excel\":{\"sheetName\":\"Funcionários\",\"autoFitColumns\":true,\"freezeHeaders\":true}}},\"defaults\":{\"openMode\":\"drawer\"},\"actions\":[{\"action\":\"create\",\"openMode\":\"drawer\"},{\"action\":\"view\",\"openMode\":\"drawer\"},{\"action\":\"edit\",\"openMode\":\"drawer\"}]}},\"outputs\":{\"rowClick\":\"emit\",\"rowAction\":\"emit\",\"selectionChange\":\"emit\",\"afterSave\":\"emit\",\"afterDelete\":\"emit\"}}}]}}",
|
|
3461
3461
|
"sourcePointer": "examples/ai-recipes/praxis-dynamic-page.employee-operations-casework.json",
|
|
3462
|
-
"contentHash": "
|
|
3462
|
+
"contentHash": "11c99ab6f7a9a8ab68953f7cdd9be1d2f28bcf965d1e1ae05f4add1c2b5bc274",
|
|
3463
3463
|
"sourceKind": "component_definition",
|
|
3464
3464
|
"sourceId": "praxis-dynamic-page",
|
|
3465
3465
|
"corpusVersion": "1.0.0"
|
|
@@ -40921,6 +40921,10 @@ class PraxisSurfaceHostComponent {
|
|
|
40921
40921
|
beforeWidgetKey = 'surface.before';
|
|
40922
40922
|
mainWidgetKey = 'surface.main';
|
|
40923
40923
|
afterWidgetKey = 'surface.after';
|
|
40924
|
+
operationIdentity() {
|
|
40925
|
+
const operation = normalizeSurfaceOperationContext(this.context?.['operation']);
|
|
40926
|
+
return operation?.subject?.identity ?? operation?.taskScope?.identity ?? null;
|
|
40927
|
+
}
|
|
40924
40928
|
ngAfterViewInit() {
|
|
40925
40929
|
this.scheduleWidgetRender();
|
|
40926
40930
|
}
|
|
@@ -41188,6 +41192,16 @@ class PraxisSurfaceHostComponent {
|
|
|
41188
41192
|
}
|
|
41189
41193
|
|
|
41190
41194
|
<section class="pdx-surface-host__body">
|
|
41195
|
+
@if (operationIdentity(); as identity) {
|
|
41196
|
+
<div class="pdx-surface-host__operation-context" data-testid="surface-operation-identity">
|
|
41197
|
+
<praxis-resource-identity
|
|
41198
|
+
[identity]="identity"
|
|
41199
|
+
density="compact"
|
|
41200
|
+
[showMetadataLabels]="true"
|
|
41201
|
+
></praxis-resource-identity>
|
|
41202
|
+
</div>
|
|
41203
|
+
}
|
|
41204
|
+
|
|
41191
41205
|
@if (beforeWidget) {
|
|
41192
41206
|
<div class="pdx-surface-host__slot pdx-surface-host__slot--before">
|
|
41193
41207
|
<ng-container
|
|
@@ -41229,11 +41243,11 @@ class PraxisSurfaceHostComponent {
|
|
|
41229
41243
|
}
|
|
41230
41244
|
</section>
|
|
41231
41245
|
</div>
|
|
41232
|
-
`, isInline: true, styles: [":host{display:block;min-width:0}.pdx-surface-host{display:grid;gap:16px;min-width:0}.pdx-surface-host__header{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.pdx-surface-host__icon{font-size:20px;line-height:20px;color:var(--md-sys-color-primary, currentColor)}.pdx-surface-host__copy{display:grid;gap:4px;min-width:0}.pdx-surface-host__title,.pdx-surface-host__subtitle{margin:0}.pdx-surface-host__title{font-size:1rem;font-weight:600}.pdx-surface-host__subtitle{color:var(--md-sys-color-on-surface-variant, rgba(0, 0, 0, .64));font-size:.9375rem}.pdx-surface-host__body{display:grid;gap:16px;min-width:0}.pdx-surface-host__slot{min-width:0}\n"], dependencies: [{ kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }] });
|
|
41246
|
+
`, isInline: true, styles: [":host{display:block;min-width:0}.pdx-surface-host{display:grid;gap:16px;min-width:0}.pdx-surface-host__header{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.pdx-surface-host__icon{font-size:20px;line-height:20px;color:var(--md-sys-color-primary, currentColor)}.pdx-surface-host__copy{display:grid;gap:4px;min-width:0}.pdx-surface-host__title,.pdx-surface-host__subtitle{margin:0}.pdx-surface-host__title{font-size:1rem;font-weight:600}.pdx-surface-host__subtitle{color:var(--md-sys-color-on-surface-variant, rgba(0, 0, 0, .64));font-size:.9375rem}.pdx-surface-host__body{display:grid;gap:16px;min-width:0}.pdx-surface-host__operation-context{min-width:0;padding:12px 14px;border-inline-start:3px solid var(--md-sys-color-primary, currentColor);border-radius:0 10px 10px 0;background:var(--md-sys-color-surface-container-low, transparent)}.pdx-surface-host__slot{min-width:0}\n"], dependencies: [{ kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }, { kind: "component", type: PraxisResourceIdentityComponent, selector: "praxis-resource-identity", inputs: ["identity", "emptyTitle", "density", "showMetadataLabels", "showKeyLabel", "ariaLabel"] }] });
|
|
41233
41247
|
}
|
|
41234
41248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisSurfaceHostComponent, decorators: [{
|
|
41235
41249
|
type: Component,
|
|
41236
|
-
args: [{ selector: 'praxis-surface-host', standalone: true, imports: [DynamicWidgetLoaderDirective], template: `
|
|
41250
|
+
args: [{ selector: 'praxis-surface-host', standalone: true, imports: [DynamicWidgetLoaderDirective, PraxisResourceIdentityComponent], template: `
|
|
41237
41251
|
<div class="pdx-surface-host">
|
|
41238
41252
|
@if (subtitle || (title && renderTitleInsideBody)) {
|
|
41239
41253
|
<header class="pdx-surface-host__header">
|
|
@@ -41252,6 +41266,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41252
41266
|
}
|
|
41253
41267
|
|
|
41254
41268
|
<section class="pdx-surface-host__body">
|
|
41269
|
+
@if (operationIdentity(); as identity) {
|
|
41270
|
+
<div class="pdx-surface-host__operation-context" data-testid="surface-operation-identity">
|
|
41271
|
+
<praxis-resource-identity
|
|
41272
|
+
[identity]="identity"
|
|
41273
|
+
density="compact"
|
|
41274
|
+
[showMetadataLabels]="true"
|
|
41275
|
+
></praxis-resource-identity>
|
|
41276
|
+
</div>
|
|
41277
|
+
}
|
|
41278
|
+
|
|
41255
41279
|
@if (beforeWidget) {
|
|
41256
41280
|
<div class="pdx-surface-host__slot pdx-surface-host__slot--before">
|
|
41257
41281
|
<ng-container
|
|
@@ -41293,7 +41317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41293
41317
|
}
|
|
41294
41318
|
</section>
|
|
41295
41319
|
</div>
|
|
41296
|
-
`, styles: [":host{display:block;min-width:0}.pdx-surface-host{display:grid;gap:16px;min-width:0}.pdx-surface-host__header{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.pdx-surface-host__icon{font-size:20px;line-height:20px;color:var(--md-sys-color-primary, currentColor)}.pdx-surface-host__copy{display:grid;gap:4px;min-width:0}.pdx-surface-host__title,.pdx-surface-host__subtitle{margin:0}.pdx-surface-host__title{font-size:1rem;font-weight:600}.pdx-surface-host__subtitle{color:var(--md-sys-color-on-surface-variant, rgba(0, 0, 0, .64));font-size:.9375rem}.pdx-surface-host__body{display:grid;gap:16px;min-width:0}.pdx-surface-host__slot{min-width:0}\n"] }]
|
|
41320
|
+
`, styles: [":host{display:block;min-width:0}.pdx-surface-host{display:grid;gap:16px;min-width:0}.pdx-surface-host__header{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.pdx-surface-host__icon{font-size:20px;line-height:20px;color:var(--md-sys-color-primary, currentColor)}.pdx-surface-host__copy{display:grid;gap:4px;min-width:0}.pdx-surface-host__title,.pdx-surface-host__subtitle{margin:0}.pdx-surface-host__title{font-size:1rem;font-weight:600}.pdx-surface-host__subtitle{color:var(--md-sys-color-on-surface-variant, rgba(0, 0, 0, .64));font-size:.9375rem}.pdx-surface-host__body{display:grid;gap:16px;min-width:0}.pdx-surface-host__operation-context{min-width:0;padding:12px 14px;border-inline-start:3px solid var(--md-sys-color-primary, currentColor);border-radius:0 10px 10px 0;background:var(--md-sys-color-surface-container-low, transparent)}.pdx-surface-host__slot{min-width:0}\n"] }]
|
|
41297
41321
|
}], propDecorators: { title: [{
|
|
41298
41322
|
type: Input
|
|
41299
41323
|
}], subtitle: [{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/core",
|
|
3
|
-
"version": "9.0.4-rc.
|
|
3
|
+
"version": "9.0.4-rc.41",
|
|
4
4
|
"description": "Core library for Praxis UI Workspace: types, tokens, services and utilities shared across @praxisui/* packages.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
package/types/praxisui-core.d.ts
CHANGED
|
@@ -1599,6 +1599,128 @@ interface ResourceCapabilityDigest {
|
|
|
1599
1599
|
filterExpressionSupported: boolean;
|
|
1600
1600
|
}
|
|
1601
1601
|
|
|
1602
|
+
type FieldPresentationTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
1603
|
+
type FieldPresentationAppearance = 'plain' | 'soft' | 'outlined' | 'filled';
|
|
1604
|
+
type FieldPresenterKind = 'text' | 'badge' | 'chip' | 'status' | 'iconValue' | 'progress' | 'rating' | 'microVisualization';
|
|
1605
|
+
interface FieldPresentationInteractions {
|
|
1606
|
+
/** Allows readonly surfaces to expose a copy affordance without changing the field value. */
|
|
1607
|
+
copy?: boolean;
|
|
1608
|
+
/** Allows readonly surfaces to expose contextual detail expansion. */
|
|
1609
|
+
details?: boolean;
|
|
1610
|
+
/** Allows readonly surfaces to expose inline expansion for long values. */
|
|
1611
|
+
expand?: boolean;
|
|
1612
|
+
/** Allows readonly surfaces to expose a link affordance when the value is navigable. */
|
|
1613
|
+
link?: boolean;
|
|
1614
|
+
}
|
|
1615
|
+
interface FieldPresentationConfig {
|
|
1616
|
+
/** Semantic display strategy for readonly/presentation surfaces. */
|
|
1617
|
+
presenter?: FieldPresenterKind;
|
|
1618
|
+
/** Alias accepted for schema authors that describe the semantic display as a variant. */
|
|
1619
|
+
variant?: FieldPresenterKind;
|
|
1620
|
+
/** Semantic tone mapped by consumers to theme tokens. */
|
|
1621
|
+
tone?: FieldPresentationTone;
|
|
1622
|
+
/** Material Symbols icon name, without arbitrary HTML. */
|
|
1623
|
+
icon?: string;
|
|
1624
|
+
/** Optional semantic label for status/chip/badge presentations. */
|
|
1625
|
+
label?: string;
|
|
1626
|
+
/** Optional secondary marker rendered by presentation-capable consumers. */
|
|
1627
|
+
badge?: string;
|
|
1628
|
+
/** Optional tooltip text for the presentation wrapper. */
|
|
1629
|
+
tooltip?: string;
|
|
1630
|
+
/** Optional readonly prefix rendered next to the displayed value without changing the raw value. */
|
|
1631
|
+
prefix?: string;
|
|
1632
|
+
/** Optional readonly suffix rendered next to the displayed value without changing the raw value. */
|
|
1633
|
+
suffix?: string;
|
|
1634
|
+
/** Visual density/emphasis strategy mapped by consumers to theme tokens. */
|
|
1635
|
+
appearance?: FieldPresentationAppearance;
|
|
1636
|
+
/** Optional formatter override for the presentation surface only. */
|
|
1637
|
+
valuePresentation?: ValuePresentationConfig;
|
|
1638
|
+
/** Renderer-neutral micro visualization metadata for compact presentation surfaces. */
|
|
1639
|
+
visualization?: PraxisPresentationVisualizationConfig;
|
|
1640
|
+
/** Safe readonly affordances. No commands or mutations are executed from this contract. */
|
|
1641
|
+
interactions?: FieldPresentationInteractions;
|
|
1642
|
+
}
|
|
1643
|
+
interface FieldPresentationRule {
|
|
1644
|
+
/** Json Logic guard evaluated against the presentation context. */
|
|
1645
|
+
when: JsonLogicExpression;
|
|
1646
|
+
/** Semantic presentation state merged when the guard is truthy. */
|
|
1647
|
+
set?: FieldPresentationConfig;
|
|
1648
|
+
/** Alias for `set`, useful for rule-builder terminology. */
|
|
1649
|
+
effect?: FieldPresentationConfig;
|
|
1650
|
+
}
|
|
1651
|
+
interface ResolvedFieldPresentation extends FieldPresentationConfig {
|
|
1652
|
+
/** Indicates at least one conditional rule matched the current context. */
|
|
1653
|
+
matchedRule?: boolean;
|
|
1654
|
+
}
|
|
1655
|
+
interface FieldPresentationJsonLogicEvaluator {
|
|
1656
|
+
evaluate(expression: JsonLogicExpression, data: JsonLogicDataRecord): unknown;
|
|
1657
|
+
truthy?(value: unknown): boolean;
|
|
1658
|
+
}
|
|
1659
|
+
interface ResolveFieldPresentationOptions {
|
|
1660
|
+
jsonLogic?: FieldPresentationJsonLogicEvaluator | null;
|
|
1661
|
+
}
|
|
1662
|
+
/**
|
|
1663
|
+
* Resolves readonly field presentation from a base semantic config plus ordered
|
|
1664
|
+
* Json Logic rules. Later matching rules override earlier presentation values.
|
|
1665
|
+
*/
|
|
1666
|
+
declare function resolveFieldPresentation(base: FieldPresentationConfig | null | undefined, rules: readonly FieldPresentationRule[] | null | undefined, context?: JsonLogicDataRecord, options?: ResolveFieldPresentationOptions): ResolvedFieldPresentation;
|
|
1667
|
+
declare function normalizeFieldPresentation(value: FieldPresentationConfig | null | undefined): ResolvedFieldPresentation;
|
|
1668
|
+
|
|
1669
|
+
interface ResourceIdentityFieldMetadata {
|
|
1670
|
+
name: string;
|
|
1671
|
+
label?: string;
|
|
1672
|
+
presentation?: FieldPresentationConfig;
|
|
1673
|
+
}
|
|
1674
|
+
type ResourceIdentitySource = 'explicit' | 'resource-id-field' | 'host-id-field';
|
|
1675
|
+
interface ResourceIdentityDiagnostic {
|
|
1676
|
+
code: 'resource-identity.explicit-invalid' | 'resource-identity.id-field-contract-invalid' | 'resource-identity.id-field-invalid' | 'resource-identity.id-field-missing-from-schema' | 'resource-identity.fallback-used' | 'resource-identity.value-missing';
|
|
1677
|
+
severity: 'info' | 'warning';
|
|
1678
|
+
message: string;
|
|
1679
|
+
source?: ResourceIdentitySource;
|
|
1680
|
+
field?: string;
|
|
1681
|
+
invalidFields?: string[];
|
|
1682
|
+
}
|
|
1683
|
+
interface ResourceIdentityContract {
|
|
1684
|
+
keyField?: string;
|
|
1685
|
+
titleField?: string;
|
|
1686
|
+
metadataFields?: string[];
|
|
1687
|
+
displayLabelField?: string;
|
|
1688
|
+
valid: boolean;
|
|
1689
|
+
invalidFields?: string[];
|
|
1690
|
+
message?: string;
|
|
1691
|
+
source?: ResourceIdentitySource;
|
|
1692
|
+
diagnostics?: ResourceIdentityDiagnostic[];
|
|
1693
|
+
}
|
|
1694
|
+
interface ResourceIdentityPart {
|
|
1695
|
+
field: string;
|
|
1696
|
+
label?: string;
|
|
1697
|
+
value: unknown;
|
|
1698
|
+
presentation?: FieldPresentationConfig;
|
|
1699
|
+
}
|
|
1700
|
+
interface MaterializedResourceIdentity {
|
|
1701
|
+
key?: ResourceIdentityPart;
|
|
1702
|
+
title?: ResourceIdentityPart;
|
|
1703
|
+
metadata: ResourceIdentityPart[];
|
|
1704
|
+
displayLabel?: string;
|
|
1705
|
+
source?: ResourceIdentitySource;
|
|
1706
|
+
diagnostics?: ResourceIdentityDiagnostic[];
|
|
1707
|
+
}
|
|
1708
|
+
interface ResolveResourceIdentityOptions {
|
|
1709
|
+
explicitIdentity?: unknown;
|
|
1710
|
+
resourceIdField?: unknown;
|
|
1711
|
+
resourceIdFieldValid?: unknown;
|
|
1712
|
+
resourceIdFieldMessage?: unknown;
|
|
1713
|
+
effectiveIdField?: unknown;
|
|
1714
|
+
availableFields?: readonly ResourceIdentityFieldMetadata[] | readonly string[];
|
|
1715
|
+
}
|
|
1716
|
+
interface ResolvedResourceIdentityContract {
|
|
1717
|
+
contract: ResourceIdentityContract | null;
|
|
1718
|
+
diagnostics: ResourceIdentityDiagnostic[];
|
|
1719
|
+
}
|
|
1720
|
+
declare function normalizeResourceIdentityContract(value: unknown): ResourceIdentityContract | null;
|
|
1721
|
+
declare function resolveResourceIdentityContract(options: ResolveResourceIdentityOptions): ResolvedResourceIdentityContract;
|
|
1722
|
+
declare function materializeResourceIdentity(contract: ResourceIdentityContract | null | undefined, record: Record<string, unknown> | null | undefined, fields?: readonly ResourceIdentityFieldMetadata[]): MaterializedResourceIdentity | null;
|
|
1723
|
+
|
|
1602
1724
|
interface TableTooltipConfig {
|
|
1603
1725
|
text?: string;
|
|
1604
1726
|
position?: 'top' | 'right' | 'bottom' | 'left' | 'above' | 'below' | 'before' | 'after';
|
|
@@ -2329,6 +2451,12 @@ interface FilteringConfig {
|
|
|
2329
2451
|
showAdvanced?: boolean;
|
|
2330
2452
|
/** Permitir salvar tags/atalhos de filtro */
|
|
2331
2453
|
allowSaveTags?: boolean;
|
|
2454
|
+
/** Atalhos governados, somente leitura, aplicados como patch do DTO de filtro */
|
|
2455
|
+
tags?: Array<{
|
|
2456
|
+
id: string;
|
|
2457
|
+
label: string;
|
|
2458
|
+
patch: Record<string, any>;
|
|
2459
|
+
}>;
|
|
2332
2460
|
/** Debounce de alterações para auto-aplicar filtros (ms) */
|
|
2333
2461
|
changeDebounceMs?: number;
|
|
2334
2462
|
/** Modo de exibição do componente de filtro (modo único) */
|
|
@@ -2755,6 +2883,12 @@ interface ToolbarActionTarget {
|
|
|
2755
2883
|
interface ToolbarActionEvent<TRecord = Record<string, unknown>> {
|
|
2756
2884
|
action: string;
|
|
2757
2885
|
actionConfig?: ToolbarAction;
|
|
2886
|
+
/**
|
|
2887
|
+
* Canonical identity of the single selected record, when the toolbar action
|
|
2888
|
+
* targets exactly one entity. This is runtime evidence and must not be
|
|
2889
|
+
* persisted back into table configuration.
|
|
2890
|
+
*/
|
|
2891
|
+
resourceIdentity?: MaterializedResourceIdentity | null;
|
|
2758
2892
|
/**
|
|
2759
2893
|
* Ephemeral DOM origin for restoring focus after an overlay launched by the
|
|
2760
2894
|
* action closes. Runtime-only: consumers must not serialize it into table
|
|
@@ -3972,73 +4106,6 @@ interface FormHelpPresentationConfig {
|
|
|
3972
4106
|
preferPopoverForControls?: string[];
|
|
3973
4107
|
}
|
|
3974
4108
|
|
|
3975
|
-
type FieldPresentationTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
3976
|
-
type FieldPresentationAppearance = 'plain' | 'soft' | 'outlined' | 'filled';
|
|
3977
|
-
type FieldPresenterKind = 'text' | 'badge' | 'chip' | 'status' | 'iconValue' | 'progress' | 'rating' | 'microVisualization';
|
|
3978
|
-
interface FieldPresentationInteractions {
|
|
3979
|
-
/** Allows readonly surfaces to expose a copy affordance without changing the field value. */
|
|
3980
|
-
copy?: boolean;
|
|
3981
|
-
/** Allows readonly surfaces to expose contextual detail expansion. */
|
|
3982
|
-
details?: boolean;
|
|
3983
|
-
/** Allows readonly surfaces to expose inline expansion for long values. */
|
|
3984
|
-
expand?: boolean;
|
|
3985
|
-
/** Allows readonly surfaces to expose a link affordance when the value is navigable. */
|
|
3986
|
-
link?: boolean;
|
|
3987
|
-
}
|
|
3988
|
-
interface FieldPresentationConfig {
|
|
3989
|
-
/** Semantic display strategy for readonly/presentation surfaces. */
|
|
3990
|
-
presenter?: FieldPresenterKind;
|
|
3991
|
-
/** Alias accepted for schema authors that describe the semantic display as a variant. */
|
|
3992
|
-
variant?: FieldPresenterKind;
|
|
3993
|
-
/** Semantic tone mapped by consumers to theme tokens. */
|
|
3994
|
-
tone?: FieldPresentationTone;
|
|
3995
|
-
/** Material Symbols icon name, without arbitrary HTML. */
|
|
3996
|
-
icon?: string;
|
|
3997
|
-
/** Optional semantic label for status/chip/badge presentations. */
|
|
3998
|
-
label?: string;
|
|
3999
|
-
/** Optional secondary marker rendered by presentation-capable consumers. */
|
|
4000
|
-
badge?: string;
|
|
4001
|
-
/** Optional tooltip text for the presentation wrapper. */
|
|
4002
|
-
tooltip?: string;
|
|
4003
|
-
/** Optional readonly prefix rendered next to the displayed value without changing the raw value. */
|
|
4004
|
-
prefix?: string;
|
|
4005
|
-
/** Optional readonly suffix rendered next to the displayed value without changing the raw value. */
|
|
4006
|
-
suffix?: string;
|
|
4007
|
-
/** Visual density/emphasis strategy mapped by consumers to theme tokens. */
|
|
4008
|
-
appearance?: FieldPresentationAppearance;
|
|
4009
|
-
/** Optional formatter override for the presentation surface only. */
|
|
4010
|
-
valuePresentation?: ValuePresentationConfig;
|
|
4011
|
-
/** Renderer-neutral micro visualization metadata for compact presentation surfaces. */
|
|
4012
|
-
visualization?: PraxisPresentationVisualizationConfig;
|
|
4013
|
-
/** Safe readonly affordances. No commands or mutations are executed from this contract. */
|
|
4014
|
-
interactions?: FieldPresentationInteractions;
|
|
4015
|
-
}
|
|
4016
|
-
interface FieldPresentationRule {
|
|
4017
|
-
/** Json Logic guard evaluated against the presentation context. */
|
|
4018
|
-
when: JsonLogicExpression;
|
|
4019
|
-
/** Semantic presentation state merged when the guard is truthy. */
|
|
4020
|
-
set?: FieldPresentationConfig;
|
|
4021
|
-
/** Alias for `set`, useful for rule-builder terminology. */
|
|
4022
|
-
effect?: FieldPresentationConfig;
|
|
4023
|
-
}
|
|
4024
|
-
interface ResolvedFieldPresentation extends FieldPresentationConfig {
|
|
4025
|
-
/** Indicates at least one conditional rule matched the current context. */
|
|
4026
|
-
matchedRule?: boolean;
|
|
4027
|
-
}
|
|
4028
|
-
interface FieldPresentationJsonLogicEvaluator {
|
|
4029
|
-
evaluate(expression: JsonLogicExpression, data: JsonLogicDataRecord): unknown;
|
|
4030
|
-
truthy?(value: unknown): boolean;
|
|
4031
|
-
}
|
|
4032
|
-
interface ResolveFieldPresentationOptions {
|
|
4033
|
-
jsonLogic?: FieldPresentationJsonLogicEvaluator | null;
|
|
4034
|
-
}
|
|
4035
|
-
/**
|
|
4036
|
-
* Resolves readonly field presentation from a base semantic config plus ordered
|
|
4037
|
-
* Json Logic rules. Later matching rules override earlier presentation values.
|
|
4038
|
-
*/
|
|
4039
|
-
declare function resolveFieldPresentation(base: FieldPresentationConfig | null | undefined, rules: readonly FieldPresentationRule[] | null | undefined, context?: JsonLogicDataRecord, options?: ResolveFieldPresentationOptions): ResolvedFieldPresentation;
|
|
4040
|
-
declare function normalizeFieldPresentation(value: FieldPresentationConfig | null | undefined): ResolvedFieldPresentation;
|
|
4041
|
-
|
|
4042
4109
|
/**
|
|
4043
4110
|
* @fileoverview Base metadata interfaces for dynamic Angular Material components
|
|
4044
4111
|
*
|
|
@@ -5296,61 +5363,6 @@ declare class GlobalConfigService {
|
|
|
5296
5363
|
static ɵprov: i0.ɵɵInjectableDeclaration<GlobalConfigService>;
|
|
5297
5364
|
}
|
|
5298
5365
|
|
|
5299
|
-
interface ResourceIdentityFieldMetadata {
|
|
5300
|
-
name: string;
|
|
5301
|
-
label?: string;
|
|
5302
|
-
presentation?: FieldPresentationConfig;
|
|
5303
|
-
}
|
|
5304
|
-
type ResourceIdentitySource = 'explicit' | 'resource-id-field' | 'host-id-field';
|
|
5305
|
-
interface ResourceIdentityDiagnostic {
|
|
5306
|
-
code: 'resource-identity.explicit-invalid' | 'resource-identity.id-field-contract-invalid' | 'resource-identity.id-field-invalid' | 'resource-identity.id-field-missing-from-schema' | 'resource-identity.fallback-used' | 'resource-identity.value-missing';
|
|
5307
|
-
severity: 'info' | 'warning';
|
|
5308
|
-
message: string;
|
|
5309
|
-
source?: ResourceIdentitySource;
|
|
5310
|
-
field?: string;
|
|
5311
|
-
invalidFields?: string[];
|
|
5312
|
-
}
|
|
5313
|
-
interface ResourceIdentityContract {
|
|
5314
|
-
keyField?: string;
|
|
5315
|
-
titleField?: string;
|
|
5316
|
-
metadataFields?: string[];
|
|
5317
|
-
displayLabelField?: string;
|
|
5318
|
-
valid: boolean;
|
|
5319
|
-
invalidFields?: string[];
|
|
5320
|
-
message?: string;
|
|
5321
|
-
source?: ResourceIdentitySource;
|
|
5322
|
-
diagnostics?: ResourceIdentityDiagnostic[];
|
|
5323
|
-
}
|
|
5324
|
-
interface ResourceIdentityPart {
|
|
5325
|
-
field: string;
|
|
5326
|
-
label?: string;
|
|
5327
|
-
value: unknown;
|
|
5328
|
-
presentation?: FieldPresentationConfig;
|
|
5329
|
-
}
|
|
5330
|
-
interface MaterializedResourceIdentity {
|
|
5331
|
-
key?: ResourceIdentityPart;
|
|
5332
|
-
title?: ResourceIdentityPart;
|
|
5333
|
-
metadata: ResourceIdentityPart[];
|
|
5334
|
-
displayLabel?: string;
|
|
5335
|
-
source?: ResourceIdentitySource;
|
|
5336
|
-
diagnostics?: ResourceIdentityDiagnostic[];
|
|
5337
|
-
}
|
|
5338
|
-
interface ResolveResourceIdentityOptions {
|
|
5339
|
-
explicitIdentity?: unknown;
|
|
5340
|
-
resourceIdField?: unknown;
|
|
5341
|
-
resourceIdFieldValid?: unknown;
|
|
5342
|
-
resourceIdFieldMessage?: unknown;
|
|
5343
|
-
effectiveIdField?: unknown;
|
|
5344
|
-
availableFields?: readonly ResourceIdentityFieldMetadata[] | readonly string[];
|
|
5345
|
-
}
|
|
5346
|
-
interface ResolvedResourceIdentityContract {
|
|
5347
|
-
contract: ResourceIdentityContract | null;
|
|
5348
|
-
diagnostics: ResourceIdentityDiagnostic[];
|
|
5349
|
-
}
|
|
5350
|
-
declare function normalizeResourceIdentityContract(value: unknown): ResourceIdentityContract | null;
|
|
5351
|
-
declare function resolveResourceIdentityContract(options: ResolveResourceIdentityOptions): ResolvedResourceIdentityContract;
|
|
5352
|
-
declare function materializeResourceIdentity(contract: ResourceIdentityContract | null | undefined, record: Record<string, unknown> | null | undefined, fields?: readonly ResourceIdentityFieldMetadata[]): MaterializedResourceIdentity | null;
|
|
5353
|
-
|
|
5354
5366
|
/**
|
|
5355
5367
|
* Interface para configuração de endpoints personalizados.
|
|
5356
5368
|
*
|
|
@@ -15894,6 +15906,7 @@ declare class PraxisSurfaceHostComponent implements AfterViewInit, OnChanges {
|
|
|
15894
15906
|
readonly beforeWidgetKey = "surface.before";
|
|
15895
15907
|
readonly mainWidgetKey = "surface.main";
|
|
15896
15908
|
readonly afterWidgetKey = "surface.after";
|
|
15909
|
+
protected operationIdentity(): MaterializedResourceIdentity | null;
|
|
15897
15910
|
ngAfterViewInit(): void;
|
|
15898
15911
|
ngOnChanges(changes: SimpleChanges): void;
|
|
15899
15912
|
private scheduleWidgetRender;
|