@praxisui/core 9.0.4-rc.40 → 9.0.4-rc.42
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 +32 -5
- 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-10T19:08:21.527Z",
|
|
4
4
|
"packageName": "@praxisui/core",
|
|
5
|
-
"packageVersion": "9.0.4-rc.
|
|
5
|
+
"packageVersion": "9.0.4-rc.42",
|
|
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"
|
|
@@ -16285,6 +16285,7 @@ class SurfaceOpenMaterializerService {
|
|
|
16285
16285
|
formId: `${formIdPrefix}.create`,
|
|
16286
16286
|
icon: 'add',
|
|
16287
16287
|
color: 'primary',
|
|
16288
|
+
appearance: 'filled',
|
|
16288
16289
|
type: 'button',
|
|
16289
16290
|
position: 'end',
|
|
16290
16291
|
target: { scope: 'collection' },
|
|
@@ -16301,6 +16302,7 @@ class SurfaceOpenMaterializerService {
|
|
|
16301
16302
|
formId: `${formIdPrefix}.edit`,
|
|
16302
16303
|
icon: 'edit',
|
|
16303
16304
|
color: 'primary',
|
|
16305
|
+
appearance: 'tonal',
|
|
16304
16306
|
type: 'button',
|
|
16305
16307
|
position: 'end',
|
|
16306
16308
|
target: {
|
|
@@ -16320,6 +16322,7 @@ class SurfaceOpenMaterializerService {
|
|
|
16320
16322
|
formId: `${formIdPrefix}.delete`,
|
|
16321
16323
|
icon: 'delete',
|
|
16322
16324
|
color: 'warn',
|
|
16325
|
+
appearance: 'text',
|
|
16323
16326
|
type: 'button',
|
|
16324
16327
|
position: 'end',
|
|
16325
16328
|
target: {
|
|
@@ -32227,7 +32230,7 @@ class PraxisResourceIdentityComponent {
|
|
|
32227
32230
|
</div>
|
|
32228
32231
|
}
|
|
32229
32232
|
</div>
|
|
32230
|
-
`, isInline: true, styles: [":host{display:block;min-width:0}.identity{display:grid;gap:var(--pdx-resource-identity-gap, .375rem);min-width:0}.identity__primary{display:flex;align-items:center;gap:var(--pdx-resource-identity-primary-gap, .625rem);min-width:0;flex-wrap:wrap}.identity__key{display:inline-flex;align-items:center;min-height:1.75rem;padding:.125rem .625rem;border-radius:var(--pdx-resource-identity-key-radius, .5rem);background:var(--pdx-resource-identity-key-bg, var(--md-sys-color-primary));color:var(--pdx-resource-identity-key-fg, var(--md-sys-color-on-primary));font:var(--pdx-resource-identity-key-font, 600 .8125rem/1.25rem var(--md-sys-typescale-label-large-font-family, inherit));letter-spacing:.02em;white-space:nowrap}.identity__key-label{font-weight:500;opacity:.84;margin-inline-end:.25rem}.identity__title{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--pdx-resource-identity-title-color, var(--md-sys-color-on-surface));font:var(--pdx-resource-identity-title-font, 600 1.125rem/1.4 var(--md-sys-typescale-title-medium-font-family, inherit))}.identity__metadata{display:flex;align-items:center;gap:.375rem .5rem;flex-wrap:wrap;color:var(--md-sys-color-on-surface-variant)}.identity__meta{display:inline-flex;align-items:center;gap:.25rem;min-width:0;font-size:.8125rem;line-height:1.25rem}.identity__meta+.identity__meta:not(.identity__meta--chip):before{content:\"\\b7\";margin-inline-end:.25rem;color:var(--md-sys-color-outline)}.identity__meta--chip{padding:.0625rem .5rem;border-radius:999px;background:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface-variant)}.identity__meta-label{color:var(--md-sys-color-
|
|
32233
|
+
`, isInline: true, styles: [":host{display:block;min-width:0}.identity{display:grid;gap:var(--pdx-resource-identity-gap, .375rem);min-width:0}.identity__primary{display:flex;align-items:center;gap:var(--pdx-resource-identity-primary-gap, .625rem);min-width:0;flex-wrap:wrap}.identity__key{display:inline-flex;align-items:center;min-height:1.75rem;padding:.125rem .625rem;border-radius:var(--pdx-resource-identity-key-radius, .5rem);background:var(--pdx-resource-identity-key-bg, var(--md-sys-color-primary));color:var(--pdx-resource-identity-key-fg, var(--md-sys-color-on-primary));font:var(--pdx-resource-identity-key-font, 600 .8125rem/1.25rem var(--md-sys-typescale-label-large-font-family, inherit));letter-spacing:.02em;white-space:nowrap}.identity__key-label{font-weight:500;opacity:.84;margin-inline-end:.25rem}.identity__title{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--pdx-resource-identity-title-color, var(--md-sys-color-on-surface));font:var(--pdx-resource-identity-title-font, 600 1.125rem/1.4 var(--md-sys-typescale-title-medium-font-family, inherit))}.identity__metadata{display:flex;align-items:center;gap:.375rem .5rem;flex-wrap:wrap;color:var(--md-sys-color-on-surface-variant)}.identity__meta{display:inline-flex;align-items:center;gap:.25rem;min-width:0;font-size:.8125rem;line-height:1.25rem}.identity__meta+.identity__meta:not(.identity__meta--chip):before{content:\"\\b7\";margin-inline-end:.25rem;color:var(--md-sys-color-outline)}.identity__meta--chip{padding:.0625rem .5rem;border-radius:999px;background:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface-variant)}.identity__meta-label{color:var(--md-sys-color-on-surface-variant);font-weight:500}.identity--compact{gap:.25rem}.identity--compact .identity__key{min-height:1.5rem;padding-inline:.5rem}.identity--compact .identity__title{font-size:1rem}@media(max-width:600px){.identity__primary{align-items:flex-start;gap:.375rem .5rem}.identity__title{flex:1 1 12rem;white-space:normal;overflow:visible}.identity__metadata{gap:.25rem .375rem}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
32231
32234
|
}
|
|
32232
32235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisResourceIdentityComponent, decorators: [{
|
|
32233
32236
|
type: Component,
|
|
@@ -32266,7 +32269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
32266
32269
|
</div>
|
|
32267
32270
|
}
|
|
32268
32271
|
</div>
|
|
32269
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;min-width:0}.identity{display:grid;gap:var(--pdx-resource-identity-gap, .375rem);min-width:0}.identity__primary{display:flex;align-items:center;gap:var(--pdx-resource-identity-primary-gap, .625rem);min-width:0;flex-wrap:wrap}.identity__key{display:inline-flex;align-items:center;min-height:1.75rem;padding:.125rem .625rem;border-radius:var(--pdx-resource-identity-key-radius, .5rem);background:var(--pdx-resource-identity-key-bg, var(--md-sys-color-primary));color:var(--pdx-resource-identity-key-fg, var(--md-sys-color-on-primary));font:var(--pdx-resource-identity-key-font, 600 .8125rem/1.25rem var(--md-sys-typescale-label-large-font-family, inherit));letter-spacing:.02em;white-space:nowrap}.identity__key-label{font-weight:500;opacity:.84;margin-inline-end:.25rem}.identity__title{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--pdx-resource-identity-title-color, var(--md-sys-color-on-surface));font:var(--pdx-resource-identity-title-font, 600 1.125rem/1.4 var(--md-sys-typescale-title-medium-font-family, inherit))}.identity__metadata{display:flex;align-items:center;gap:.375rem .5rem;flex-wrap:wrap;color:var(--md-sys-color-on-surface-variant)}.identity__meta{display:inline-flex;align-items:center;gap:.25rem;min-width:0;font-size:.8125rem;line-height:1.25rem}.identity__meta+.identity__meta:not(.identity__meta--chip):before{content:\"\\b7\";margin-inline-end:.25rem;color:var(--md-sys-color-outline)}.identity__meta--chip{padding:.0625rem .5rem;border-radius:999px;background:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface-variant)}.identity__meta-label{color:var(--md-sys-color-
|
|
32272
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;min-width:0}.identity{display:grid;gap:var(--pdx-resource-identity-gap, .375rem);min-width:0}.identity__primary{display:flex;align-items:center;gap:var(--pdx-resource-identity-primary-gap, .625rem);min-width:0;flex-wrap:wrap}.identity__key{display:inline-flex;align-items:center;min-height:1.75rem;padding:.125rem .625rem;border-radius:var(--pdx-resource-identity-key-radius, .5rem);background:var(--pdx-resource-identity-key-bg, var(--md-sys-color-primary));color:var(--pdx-resource-identity-key-fg, var(--md-sys-color-on-primary));font:var(--pdx-resource-identity-key-font, 600 .8125rem/1.25rem var(--md-sys-typescale-label-large-font-family, inherit));letter-spacing:.02em;white-space:nowrap}.identity__key-label{font-weight:500;opacity:.84;margin-inline-end:.25rem}.identity__title{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--pdx-resource-identity-title-color, var(--md-sys-color-on-surface));font:var(--pdx-resource-identity-title-font, 600 1.125rem/1.4 var(--md-sys-typescale-title-medium-font-family, inherit))}.identity__metadata{display:flex;align-items:center;gap:.375rem .5rem;flex-wrap:wrap;color:var(--md-sys-color-on-surface-variant)}.identity__meta{display:inline-flex;align-items:center;gap:.25rem;min-width:0;font-size:.8125rem;line-height:1.25rem}.identity__meta+.identity__meta:not(.identity__meta--chip):before{content:\"\\b7\";margin-inline-end:.25rem;color:var(--md-sys-color-outline)}.identity__meta--chip{padding:.0625rem .5rem;border-radius:999px;background:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface-variant)}.identity__meta-label{color:var(--md-sys-color-on-surface-variant);font-weight:500}.identity--compact{gap:.25rem}.identity--compact .identity__key{min-height:1.5rem;padding-inline:.5rem}.identity--compact .identity__title{font-size:1rem}@media(max-width:600px){.identity__primary{align-items:flex-start;gap:.375rem .5rem}.identity__title{flex:1 1 12rem;white-space:normal;overflow:visible}.identity__metadata{gap:.25rem .375rem}}\n"] }]
|
|
32270
32273
|
}], propDecorators: { identity: [{
|
|
32271
32274
|
type: Input
|
|
32272
32275
|
}], emptyTitle: [{
|
|
@@ -40921,6 +40924,10 @@ class PraxisSurfaceHostComponent {
|
|
|
40921
40924
|
beforeWidgetKey = 'surface.before';
|
|
40922
40925
|
mainWidgetKey = 'surface.main';
|
|
40923
40926
|
afterWidgetKey = 'surface.after';
|
|
40927
|
+
operationIdentity() {
|
|
40928
|
+
const operation = normalizeSurfaceOperationContext(this.context?.['operation']);
|
|
40929
|
+
return operation?.subject?.identity ?? operation?.taskScope?.identity ?? null;
|
|
40930
|
+
}
|
|
40924
40931
|
ngAfterViewInit() {
|
|
40925
40932
|
this.scheduleWidgetRender();
|
|
40926
40933
|
}
|
|
@@ -41188,6 +41195,16 @@ class PraxisSurfaceHostComponent {
|
|
|
41188
41195
|
}
|
|
41189
41196
|
|
|
41190
41197
|
<section class="pdx-surface-host__body">
|
|
41198
|
+
@if (operationIdentity(); as identity) {
|
|
41199
|
+
<div class="pdx-surface-host__operation-context" data-testid="surface-operation-identity">
|
|
41200
|
+
<praxis-resource-identity
|
|
41201
|
+
[identity]="identity"
|
|
41202
|
+
density="compact"
|
|
41203
|
+
[showMetadataLabels]="true"
|
|
41204
|
+
></praxis-resource-identity>
|
|
41205
|
+
</div>
|
|
41206
|
+
}
|
|
41207
|
+
|
|
41191
41208
|
@if (beforeWidget) {
|
|
41192
41209
|
<div class="pdx-surface-host__slot pdx-surface-host__slot--before">
|
|
41193
41210
|
<ng-container
|
|
@@ -41229,11 +41246,11 @@ class PraxisSurfaceHostComponent {
|
|
|
41229
41246
|
}
|
|
41230
41247
|
</section>
|
|
41231
41248
|
</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"] }] });
|
|
41249
|
+
`, 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
41250
|
}
|
|
41234
41251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisSurfaceHostComponent, decorators: [{
|
|
41235
41252
|
type: Component,
|
|
41236
|
-
args: [{ selector: 'praxis-surface-host', standalone: true, imports: [DynamicWidgetLoaderDirective], template: `
|
|
41253
|
+
args: [{ selector: 'praxis-surface-host', standalone: true, imports: [DynamicWidgetLoaderDirective, PraxisResourceIdentityComponent], template: `
|
|
41237
41254
|
<div class="pdx-surface-host">
|
|
41238
41255
|
@if (subtitle || (title && renderTitleInsideBody)) {
|
|
41239
41256
|
<header class="pdx-surface-host__header">
|
|
@@ -41252,6 +41269,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41252
41269
|
}
|
|
41253
41270
|
|
|
41254
41271
|
<section class="pdx-surface-host__body">
|
|
41272
|
+
@if (operationIdentity(); as identity) {
|
|
41273
|
+
<div class="pdx-surface-host__operation-context" data-testid="surface-operation-identity">
|
|
41274
|
+
<praxis-resource-identity
|
|
41275
|
+
[identity]="identity"
|
|
41276
|
+
density="compact"
|
|
41277
|
+
[showMetadataLabels]="true"
|
|
41278
|
+
></praxis-resource-identity>
|
|
41279
|
+
</div>
|
|
41280
|
+
}
|
|
41281
|
+
|
|
41255
41282
|
@if (beforeWidget) {
|
|
41256
41283
|
<div class="pdx-surface-host__slot pdx-surface-host__slot--before">
|
|
41257
41284
|
<ng-container
|
|
@@ -41293,7 +41320,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
41293
41320
|
}
|
|
41294
41321
|
</section>
|
|
41295
41322
|
</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"] }]
|
|
41323
|
+
`, 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
41324
|
}], propDecorators: { title: [{
|
|
41298
41325
|
type: Input
|
|
41299
41326
|
}], 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.42",
|
|
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;
|