@praxisui/table 9.0.0-beta.33 → 9.0.0-beta.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/ai/component-registry.json +139 -13
- package/fesm2022/{praxisui-table-praxisui-table-EYby6Zvn.mjs → praxisui-table-praxisui-table-DUEQRJTo.mjs} +553 -63
- package/fesm2022/{praxisui-table-table-ai.adapter-Bh0faxuI.mjs → praxisui-table-table-ai.adapter-CXzxP88Y.mjs} +26 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +3 -2
- package/types/praxisui-table.d.ts +35 -6
|
@@ -36,7 +36,7 @@ import * as i13 from '@angular/cdk/drag-drop';
|
|
|
36
36
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
37
37
|
import { Subject, debounceTime, takeUntil, firstValueFrom, of, BehaviorSubject, Subscription, take as take$1 } from 'rxjs';
|
|
38
38
|
import * as i1 from '@praxisui/core';
|
|
39
|
-
import { LoggerService, createCorporateLoggerConfig, ConsoleLoggerSink, PraxisJsonLogicService, PraxisIconDirective, PraxisI18nService, isTableConfigV2, providePraxisI18nConfig, PRAXIS_GLOBAL_ACTION_CATALOG, SURFACE_OPEN_I18N_NAMESPACE, isRequiredGlobalActionPayloadMissing, getGlobalActionUiSchema, getRequiredGlobalActionPayloadKeys, hasMeaningfulGlobalActionPayloadValue, SurfaceOpenActionEditorComponent, SURFACE_OPEN_I18N_CONFIG, ASYNC_CONFIG_STORAGE, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_VALUES, FieldControlType, normalizeControlTypeToken, resolveControlTypeAlias, mapFieldDefinitionsToMetadata, PraxisJsonLogicError, GLOBAL_ACTION_CATALOG, GenericCrudService, validateGlobalActionRefs, getGlobalActionCatalog, TableConfigService, createDefaultTableConfig, fillUndefined, deepMerge, INLINE_FILTER_ALIAS_TOKENS, GlobalConfigService, buildSchemaId, MemoryCacheAdapter, LocalStorageCacheAdapter, SchemaMetadataClient, resolveInlineFilterControlType, fetchWithETag, serializeEntityLookupValueForPayload, ComponentMetadataRegistry, AnalyticsStatsRequestBuilderService, buildApiUrl, normalizePraxisDataQueryContext, API_URL, PraxisRuntimeComponentObservationRegistryService, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PraxisCollectionExportService, ResourceDiscoveryService, ResourceSurfaceOpenAdapterService,
|
|
39
|
+
import { LoggerService, createCorporateLoggerConfig, ConsoleLoggerSink, PraxisJsonLogicService, PraxisIconDirective, PraxisI18nService, isTableConfigV2, providePraxisI18nConfig, PRAXIS_GLOBAL_ACTION_CATALOG, SURFACE_OPEN_I18N_NAMESPACE, isRequiredGlobalActionPayloadMissing, getGlobalActionUiSchema, getRequiredGlobalActionPayloadKeys, hasMeaningfulGlobalActionPayloadValue, SurfaceOpenActionEditorComponent, SURFACE_OPEN_I18N_CONFIG, ASYNC_CONFIG_STORAGE, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_VALUES, FieldControlType, normalizeControlTypeToken, resolveControlTypeAlias, mapFieldDefinitionsToMetadata, PraxisJsonLogicError, GLOBAL_ACTION_CATALOG, GenericCrudService, validateGlobalActionRefs, getGlobalActionCatalog, TableConfigService, createDefaultTableConfig, fillUndefined, deepMerge, INLINE_FILTER_ALIAS_TOKENS, GlobalConfigService, buildSchemaId, MemoryCacheAdapter, LocalStorageCacheAdapter, SchemaMetadataClient, resolveInlineFilterControlType, fetchWithETag, serializeEntityLookupValueForPayload, ComponentMetadataRegistry, AnalyticsStatsRequestBuilderService, buildApiUrl, normalizePraxisDataQueryContext, API_URL, PraxisRuntimeComponentObservationRegistryService, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PraxisCollectionExportService, SchemaNormalizerService, translateResourceAvailabilityReason, ResourceDiscoveryService, ResourceSurfaceOpenAdapterService, CrudOperationResolutionService, ResourceQuickConnectComponent, assertPraxisCollectionExportArtifact, PRAXIS_LOADING_CTX, resolveColumnTypeFromFieldDefinition, isPraxisPresentationVisualizationTableSafe, resolveTextMaskFormatFromFieldDefinition, translateResourceDiscoveryText, supportsImplicitValuePresentation, resolveValuePresentation, renderPraxisPresentationVisualizationHtml, translateUnavailableWorkflowMessage, CONNECTION_STORAGE, PRAXIS_LOADING_RENDERER, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG } from '@praxisui/core';
|
|
40
40
|
import { PraxisRichContent } from '@praxisui/rich-content';
|
|
41
41
|
import * as i2 from '@angular/material/toolbar';
|
|
42
42
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
@@ -106,6 +106,9 @@ const PRAXIS_TABLE_RUNTIME_I18N_CONFIG = {
|
|
|
106
106
|
'table.chrome.rowActions.edit': 'Editar',
|
|
107
107
|
'table.chrome.rowActions.delete': 'Excluir',
|
|
108
108
|
'table.chrome.rowActions.duplicateDraft': 'Duplicar',
|
|
109
|
+
'table.chrome.collectionActions.create': 'Novo',
|
|
110
|
+
'table.chrome.collectionActions.createTooltip': 'Criar novo registro',
|
|
111
|
+
'table.chrome.collectionActions.createUnavailable': 'Criação indisponível no contexto atual',
|
|
109
112
|
'table.assistant.context.selectedRecords.label': 'Registros selecionados',
|
|
110
113
|
'table.assistant.context.selectedRecords.value': '{count} registro(s) selecionado(s){ids}',
|
|
111
114
|
'table.assistant.context.selectedRecords.value.singular': '{count} registro selecionado{ids}',
|
|
@@ -221,6 +224,9 @@ const PRAXIS_TABLE_RUNTIME_I18N_CONFIG = {
|
|
|
221
224
|
'table.chrome.rowActions.edit': 'Edit',
|
|
222
225
|
'table.chrome.rowActions.delete': 'Delete',
|
|
223
226
|
'table.chrome.rowActions.duplicateDraft': 'Duplicate',
|
|
227
|
+
'table.chrome.collectionActions.create': 'New',
|
|
228
|
+
'table.chrome.collectionActions.createTooltip': 'Create a new record',
|
|
229
|
+
'table.chrome.collectionActions.createUnavailable': 'Create is unavailable in the current context',
|
|
224
230
|
'table.assistant.context.selectedRecords.label': 'Selected records',
|
|
225
231
|
'table.assistant.context.selectedRecords.value': '{count} selected record(s){ids}',
|
|
226
232
|
'table.assistant.context.selectedRecords.value.singular': '{count} selected record{ids}',
|
|
@@ -471,18 +477,42 @@ function getActionId(action) {
|
|
|
471
477
|
|
|
472
478
|
const TOOLBAR_SHORTCUT_HANDLED_FLAG = '__praxisTableToolbarShortcutHandled__';
|
|
473
479
|
const BLOCKED_PATH_SEGMENTS$1 = new Set(['__proto__', 'prototype', 'constructor']);
|
|
480
|
+
const PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS = {
|
|
481
|
+
'table-integrated': {
|
|
482
|
+
variant: 'integrated',
|
|
483
|
+
density: 'comfortable',
|
|
484
|
+
shape: 'rounded',
|
|
485
|
+
divider: 'between-groups',
|
|
486
|
+
tokens: {
|
|
487
|
+
bg: 'var(--p-table-bg)',
|
|
488
|
+
borderColor: 'var(--p-table-border-color)',
|
|
489
|
+
borderWidth: '1px',
|
|
490
|
+
radius: '12px 12px 0 0',
|
|
491
|
+
shadow: 'var(--p-table-surface-shadow)',
|
|
492
|
+
paddingBlock: '6px',
|
|
493
|
+
paddingInline: '12px',
|
|
494
|
+
minHeight: '44px',
|
|
495
|
+
},
|
|
496
|
+
},
|
|
497
|
+
};
|
|
474
498
|
const PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE = new InjectionToken('PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE', {
|
|
475
499
|
providedIn: 'root',
|
|
476
500
|
factory: () => ({}),
|
|
477
501
|
});
|
|
478
502
|
const PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS = new InjectionToken('PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS', {
|
|
479
503
|
providedIn: 'root',
|
|
480
|
-
factory: () =>
|
|
504
|
+
factory: () => PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS,
|
|
481
505
|
});
|
|
482
506
|
function providePraxisTableToolbarAppearance(appearance, presets = {}) {
|
|
483
507
|
return [
|
|
484
508
|
{ provide: PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, useValue: appearance },
|
|
485
|
-
{
|
|
509
|
+
{
|
|
510
|
+
provide: PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS,
|
|
511
|
+
useValue: {
|
|
512
|
+
...PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS,
|
|
513
|
+
...presets,
|
|
514
|
+
},
|
|
515
|
+
},
|
|
486
516
|
];
|
|
487
517
|
}
|
|
488
518
|
function normalizeCorporateLoggerEnvironment$2(candidate) {
|
|
@@ -1813,7 +1843,7 @@ class PraxisTableToolbar {
|
|
|
1813
1843
|
}
|
|
1814
1844
|
</div>
|
|
1815
1845
|
</mat-toolbar>
|
|
1816
|
-
`, isInline: true, styles: [":host{display:block}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-surface, #fff) 96%, transparent), color-mix(in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent) );--p-table-toolbar-fg-default: var(--md-sys-color-on-surface, currentColor);--p-table-toolbar-border-color-default: color-mix(in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent);--p-table-toolbar-divider-color-default: color-mix(in srgb, var(--md-sys-color-outline) 42%, transparent);--p-table-toolbar-action-hover-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent);--p-table-toolbar-action-active-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 16%, transparent);--p-table-toolbar-action-focus-ring-default: color-mix(in srgb, var(--md-sys-color-primary) 52%, transparent);--p-table-toolbar-ai-accent-color-default: var(--md-sys-color-primary, #0b72d9);--p-table-toolbar-status-fg-default: var(--md-sys-color-on-surface-variant, currentColor);background:var(--p-table-toolbar-bg, var(--p-table-toolbar-bg-default));color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var(--p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px));min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));display:flex;flex-direction:row;align-items:center;gap:var(--p-table-toolbar-gap, 6px);flex-wrap:wrap;border:var(--p-table-toolbar-border-width, 1px) solid var(--p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default));border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: 32px;--p-table-toolbar-action-radius: 7px}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: 36px}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: 40px}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px))}.toolbar-main{display:flex;align-items:center;justify-content:flex-start;min-width:0;column-gap:var(--p-table-toolbar-gap, 6px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:1 1 360px;flex-wrap:wrap;container-type:inline-size}.toolbar-identity{display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);flex:1 1 100%;margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 2px);padding-inline:2px;color:var(--p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)))}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor));background:color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 8%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var(--p-table-toolbar-subtitle-fg, var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default)))}.toolbar-main>*{min-width:0}@container (max-width: 720px){.toolbar-identity{flex-basis:100%;max-width:100%}}@container (max-width: 420px){.toolbar-identity{min-width:0;flex-basis:auto}.toolbar-identity__subtitle{display:none}}.toolbar-actions{display:flex;align-items:center;align-self:flex-end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:0 0 auto;margin-left:auto}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.action-btn{height:var(--p-table-toolbar-action-size, 36px);min-width:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);font-size:12px;line-height:1.2;color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:hover:not(:disabled),.overflow-trigger:hover:not(:disabled),.end-actions ::ng-deep .mat-mdc-icon-button:hover:not(:disabled){background:var(--p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default))}.action-btn:focus-visible,.overflow-trigger:focus-visible,.end-actions ::ng-deep .mat-mdc-icon-button:focus-visible{outline:2px solid var(--p-table-toolbar-action-focus-ring, var(--p-table-toolbar-action-focus-ring-default));outline-offset:2px}.action-btn--utility{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}.praxis-table-toolbar-action--columns.action-btn{width:var(--p-table-toolbar-action-size, 36px);padding:0}.praxis-table-toolbar-action--columns mat-icon{margin:0}.toolbar-icon-btn{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:42px;height:42px;box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.overflow-trigger{height:var(--p-table-toolbar-action-size, 36px)}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.praxis-table-toolbar-action--columns .mat-icon{font-size:24px;width:24px;height:24px;line-height:24px}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-filled-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-protected-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-outlined-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.action-btn.mat-mdc-unelevated-button:not(:disabled),.action-btn.mat-mdc-outlined-button:not(:disabled),.action-btn.pfx-tonal:not(:disabled){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled){--mdc-filled-button-container-color: var(--md-sys-color-primary);--mdc-filled-button-label-text-color: var(--md-sys-color-on-primary);--mat-filled-button-state-layer-color: var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)!important;border-color:transparent;color:var(--md-sys-color-on-primary)!important;box-shadow:0 8px 18px color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):hover{background:color-mix(in srgb,var(--md-sys-color-primary) 88%,var(--md-sys-color-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled) .mat-icon{color:var(--md-sys-color-on-primary)!important}.action-btn.mat-mdc-button-base:not(.mat-mdc-icon-button){padding-inline:10px}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px);margin-left:4px;padding-left:10px;border-left:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions ::ng-deep .mat-mdc-icon-button{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);display:inline-grid;place-items:center;padding:0;line-height:0;--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px);--mat-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.end-actions ::ng-deep .mat-mdc-icon-button .mat-icon{display:block;flex:0 0 auto;font-size:24px;width:24px;height:24px;line-height:24px;margin:0}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group,.praxis-toolbar.p-table-toolbar--divider-start .toolbar-main{padding-right:10px;border-right:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default));background:color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 10%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}@media(min-width:1024px){.toolbar-actions{justify-content:flex-end}}@media(max-width:1023px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}.toolbar-identity{min-width:0;max-width:100%;flex:1 1 100%}}\n"], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
|
|
1846
|
+
`, isInline: true, styles: [":host{display:block}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-surface, #fff) 96%, transparent), color-mix(in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent) );--p-table-toolbar-fg-default: var(--md-sys-color-on-surface, currentColor);--p-table-toolbar-border-color-default: color-mix(in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent);--p-table-toolbar-divider-color-default: color-mix(in srgb, var(--md-sys-color-outline) 42%, transparent);--p-table-toolbar-action-hover-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent);--p-table-toolbar-action-active-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 16%, transparent);--p-table-toolbar-action-focus-ring-default: color-mix(in srgb, var(--md-sys-color-primary) 52%, transparent);--p-table-toolbar-ai-accent-color-default: var(--md-sys-color-primary, #0b72d9);--p-table-toolbar-status-fg-default: var(--md-sys-color-on-surface-variant, currentColor);background:var(--p-table-toolbar-bg, var(--p-table-toolbar-bg-default));color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var(--p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px));min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));display:flex;flex-direction:row;align-items:center;gap:var(--p-table-toolbar-gap, 6px);flex-wrap:wrap;border:var(--p-table-toolbar-border-width, 1px) solid var(--p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default));border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: 32px;--p-table-toolbar-action-radius: 7px}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: 36px}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: 40px}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px))}.toolbar-main{display:flex;align-items:center;justify-content:flex-start;min-width:0;column-gap:var(--p-table-toolbar-gap, 6px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:1 1 360px;flex-wrap:wrap;container-type:inline-size}.toolbar-identity{display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);flex:1 1 100%;margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 2px);padding-inline:2px;color:var(--p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)))}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor));background:color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 8%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var(--p-table-toolbar-subtitle-fg, var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default)))}.toolbar-main>*{min-width:0}@container (max-width: 720px){.toolbar-identity{flex-basis:100%;max-width:100%}}@container (max-width: 420px){.toolbar-identity{min-width:0;flex-basis:auto}.toolbar-identity__subtitle{display:none}}.toolbar-actions{display:flex;align-items:center;align-self:flex-end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:0 0 auto;margin-left:auto}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.action-btn{height:var(--p-table-toolbar-action-size, 36px);min-width:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);font-size:12px;line-height:1.2;color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:hover:not(:disabled),.overflow-trigger:hover:not(:disabled),.end-actions ::ng-deep .mat-mdc-icon-button:hover:not(:disabled){background:var(--p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default))}.action-btn:focus-visible,.overflow-trigger:focus-visible,.end-actions ::ng-deep .mat-mdc-icon-button:focus-visible{outline:2px solid var(--p-table-toolbar-action-focus-ring, var(--p-table-toolbar-action-focus-ring-default));outline-offset:2px}.action-btn--utility{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}.praxis-table-toolbar-action--columns.action-btn{width:var(--p-table-toolbar-action-size, 36px);padding:0}.praxis-table-toolbar-action--columns mat-icon{margin:0}.toolbar-icon-btn{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:42px;height:42px;box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.overflow-trigger{height:var(--p-table-toolbar-action-size, 36px)}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.praxis-table-toolbar-action--columns .mat-icon{font-size:24px;width:24px;height:24px;line-height:24px}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-filled-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-protected-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-outlined-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.action-btn.mat-mdc-unelevated-button:not(:disabled),.action-btn.mat-mdc-outlined-button:not(:disabled),.action-btn.pfx-tonal:not(:disabled){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled){--mdc-filled-button-container-color: var(--md-sys-color-primary);--mdc-filled-button-label-text-color: var(--md-sys-color-on-primary);--mat-filled-button-state-layer-color: var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)!important;border-color:transparent;color:var(--md-sys-color-on-primary)!important;box-shadow:0 8px 18px color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):hover{background:color-mix(in srgb,var(--md-sys-color-primary) 88%,var(--md-sys-color-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled) .mat-icon{color:var(--md-sys-color-on-primary)!important}.action-btn.mat-mdc-button-base:not(.mat-mdc-icon-button){padding-inline:10px}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px);margin-left:4px;padding-left:10px;border-left:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions:empty{display:none;gap:0;margin-left:0;padding-left:0;border-left:0}.end-actions ::ng-deep .mat-mdc-icon-button{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);display:inline-grid;place-items:center;padding:0;line-height:0;--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px);--mat-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.end-actions ::ng-deep .mat-mdc-icon-button .mat-icon{display:block;flex:0 0 auto;font-size:24px;width:24px;height:24px;line-height:24px;margin:0}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group,.praxis-toolbar.p-table-toolbar--divider-start .toolbar-main{padding-right:10px;border-right:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default));background:color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 10%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}@media(min-width:1024px){.toolbar-actions{justify-content:flex-end}}@media(max-width:1023px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}.toolbar-identity{min-width:0;max-width:100%;flex:1 1 100%}}\n"], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
|
|
1817
1847
|
}
|
|
1818
1848
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisTableToolbar, decorators: [{
|
|
1819
1849
|
type: Component,
|
|
@@ -2350,7 +2380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2350
2380
|
`, host: {
|
|
2351
2381
|
'[class.praxis-toolbar-footer]': "placement === 'footer'",
|
|
2352
2382
|
'(document:keydown)': 'onDocumentKeydown($event)',
|
|
2353
|
-
}, styles: [":host{display:block}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-surface, #fff) 96%, transparent), color-mix(in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent) );--p-table-toolbar-fg-default: var(--md-sys-color-on-surface, currentColor);--p-table-toolbar-border-color-default: color-mix(in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent);--p-table-toolbar-divider-color-default: color-mix(in srgb, var(--md-sys-color-outline) 42%, transparent);--p-table-toolbar-action-hover-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent);--p-table-toolbar-action-active-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 16%, transparent);--p-table-toolbar-action-focus-ring-default: color-mix(in srgb, var(--md-sys-color-primary) 52%, transparent);--p-table-toolbar-ai-accent-color-default: var(--md-sys-color-primary, #0b72d9);--p-table-toolbar-status-fg-default: var(--md-sys-color-on-surface-variant, currentColor);background:var(--p-table-toolbar-bg, var(--p-table-toolbar-bg-default));color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var(--p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px));min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));display:flex;flex-direction:row;align-items:center;gap:var(--p-table-toolbar-gap, 6px);flex-wrap:wrap;border:var(--p-table-toolbar-border-width, 1px) solid var(--p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default));border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: 32px;--p-table-toolbar-action-radius: 7px}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: 36px}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: 40px}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px))}.toolbar-main{display:flex;align-items:center;justify-content:flex-start;min-width:0;column-gap:var(--p-table-toolbar-gap, 6px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:1 1 360px;flex-wrap:wrap;container-type:inline-size}.toolbar-identity{display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);flex:1 1 100%;margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 2px);padding-inline:2px;color:var(--p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)))}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor));background:color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 8%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var(--p-table-toolbar-subtitle-fg, var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default)))}.toolbar-main>*{min-width:0}@container (max-width: 720px){.toolbar-identity{flex-basis:100%;max-width:100%}}@container (max-width: 420px){.toolbar-identity{min-width:0;flex-basis:auto}.toolbar-identity__subtitle{display:none}}.toolbar-actions{display:flex;align-items:center;align-self:flex-end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:0 0 auto;margin-left:auto}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.action-btn{height:var(--p-table-toolbar-action-size, 36px);min-width:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);font-size:12px;line-height:1.2;color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:hover:not(:disabled),.overflow-trigger:hover:not(:disabled),.end-actions ::ng-deep .mat-mdc-icon-button:hover:not(:disabled){background:var(--p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default))}.action-btn:focus-visible,.overflow-trigger:focus-visible,.end-actions ::ng-deep .mat-mdc-icon-button:focus-visible{outline:2px solid var(--p-table-toolbar-action-focus-ring, var(--p-table-toolbar-action-focus-ring-default));outline-offset:2px}.action-btn--utility{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}.praxis-table-toolbar-action--columns.action-btn{width:var(--p-table-toolbar-action-size, 36px);padding:0}.praxis-table-toolbar-action--columns mat-icon{margin:0}.toolbar-icon-btn{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:42px;height:42px;box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.overflow-trigger{height:var(--p-table-toolbar-action-size, 36px)}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.praxis-table-toolbar-action--columns .mat-icon{font-size:24px;width:24px;height:24px;line-height:24px}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-filled-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-protected-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-outlined-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.action-btn.mat-mdc-unelevated-button:not(:disabled),.action-btn.mat-mdc-outlined-button:not(:disabled),.action-btn.pfx-tonal:not(:disabled){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled){--mdc-filled-button-container-color: var(--md-sys-color-primary);--mdc-filled-button-label-text-color: var(--md-sys-color-on-primary);--mat-filled-button-state-layer-color: var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)!important;border-color:transparent;color:var(--md-sys-color-on-primary)!important;box-shadow:0 8px 18px color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):hover{background:color-mix(in srgb,var(--md-sys-color-primary) 88%,var(--md-sys-color-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled) .mat-icon{color:var(--md-sys-color-on-primary)!important}.action-btn.mat-mdc-button-base:not(.mat-mdc-icon-button){padding-inline:10px}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px);margin-left:4px;padding-left:10px;border-left:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions ::ng-deep .mat-mdc-icon-button{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);display:inline-grid;place-items:center;padding:0;line-height:0;--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px);--mat-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.end-actions ::ng-deep .mat-mdc-icon-button .mat-icon{display:block;flex:0 0 auto;font-size:24px;width:24px;height:24px;line-height:24px;margin:0}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group,.praxis-toolbar.p-table-toolbar--divider-start .toolbar-main{padding-right:10px;border-right:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default));background:color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 10%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}@media(min-width:1024px){.toolbar-actions{justify-content:flex-end}}@media(max-width:1023px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}.toolbar-identity{min-width:0;max-width:100%;flex:1 1 100%}}\n"] }]
|
|
2383
|
+
}, styles: [":host{display:block}.praxis-toolbar{--p-table-toolbar-bg-default: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-surface, #fff) 96%, transparent), color-mix(in srgb, var(--md-sys-color-surface-container-low, #f6f8fc) 100%, transparent) );--p-table-toolbar-fg-default: var(--md-sys-color-on-surface, currentColor);--p-table-toolbar-border-color-default: color-mix(in srgb, var(--md-sys-color-outline-variant, #d7dbe5) 78%, transparent);--p-table-toolbar-divider-color-default: color-mix(in srgb, var(--md-sys-color-outline) 42%, transparent);--p-table-toolbar-action-hover-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent);--p-table-toolbar-action-active-bg-default: color-mix(in srgb, var(--md-sys-color-primary) 16%, transparent);--p-table-toolbar-action-focus-ring-default: color-mix(in srgb, var(--md-sys-color-primary) 52%, transparent);--p-table-toolbar-ai-accent-color-default: var(--md-sys-color-primary, #0b72d9);--p-table-toolbar-status-fg-default: var(--md-sys-color-on-surface-variant, currentColor);background:var(--p-table-toolbar-bg, var(--p-table-toolbar-bg-default));color:var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default));box-shadow:var(--p-table-toolbar-shadow, none);padding:var(--p-table-toolbar-padding-block, var(--pfx-toolbar-pad-y, 6px)) var(--p-table-toolbar-padding-inline, var(--pfx-toolbar-pad-x, 12px));min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));display:flex;flex-direction:row;align-items:center;gap:var(--p-table-toolbar-gap, 6px);flex-wrap:wrap;border:var(--p-table-toolbar-border-width, 1px) solid var(--p-table-toolbar-border-color, var(--p-table-toolbar-border-color-default));border-radius:var(--p-table-toolbar-radius, 10px)}.praxis-toolbar.p-table-toolbar--flat{--p-table-toolbar-border-width: 0;--p-table-toolbar-shadow: none}.praxis-toolbar.p-table-toolbar--elevated{--p-table-toolbar-shadow: 0 12px 28px color-mix(in srgb, var(--md-sys-color-shadow, #000) 12%, transparent)}.praxis-toolbar.p-table-toolbar--integrated{--p-table-toolbar-bg: transparent;--p-table-toolbar-border-width: 0;--p-table-toolbar-radius: 0}.praxis-toolbar.p-table-toolbar--compact{--p-table-toolbar-min-height: 36px;--p-table-toolbar-padding-block: 4px;--p-table-toolbar-padding-inline: 10px;--p-table-toolbar-gap: 4px;--p-table-toolbar-actions-gap: 4px;--p-table-toolbar-action-size: 32px;--p-table-toolbar-action-radius: 7px}.praxis-toolbar.p-table-toolbar--comfortable{--p-table-toolbar-min-height: 44px;--p-table-toolbar-action-size: 36px}.praxis-toolbar.p-table-toolbar--spacious{--p-table-toolbar-min-height: 52px;--p-table-toolbar-padding-block: 8px;--p-table-toolbar-padding-inline: 16px;--p-table-toolbar-gap: 8px;--p-table-toolbar-actions-gap: 8px;--p-table-toolbar-action-size: 40px}.praxis-toolbar.p-table-toolbar--square{--p-table-toolbar-radius: 0;--p-table-toolbar-action-radius: 4px}.praxis-toolbar.p-table-toolbar--pill{--p-table-toolbar-radius: 999px;--p-table-toolbar-action-radius: 999px}:host(.praxis-toolbar-stack-top) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.praxis-toolbar-footer) .praxis-toolbar{border-top-left-radius:0;border-top-right-radius:0}:host(.praxis-toolbar-footer.footer-flat) .praxis-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0}.praxis-toolbar.mat-toolbar-single-row,.praxis-toolbar .mat-toolbar-row{height:auto}.praxis-toolbar.mat-toolbar-multiple-rows{min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px))}.toolbar-main{display:flex;align-items:center;justify-content:flex-start;min-width:0;column-gap:var(--p-table-toolbar-gap, 6px);row-gap:var(--p-table-toolbar-identity-filter-gap, 8px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:1 1 360px;flex-wrap:wrap;container-type:inline-size}.toolbar-identity{display:flex;align-items:center;gap:var(--p-table-toolbar-identity-gap, 8px);min-width:0;max-width:100%;min-height:var(--p-table-toolbar-identity-min-height, 30px);flex:1 1 100%;margin-block-end:var(--p-table-toolbar-identity-margin-bottom, 2px);padding-inline:2px;color:var(--p-table-toolbar-title-fg, var(--p-table-toolbar-fg, var(--p-table-toolbar-fg-default)))}.toolbar-identity--center{text-align:center;justify-content:center}.toolbar-identity--end{text-align:end;justify-content:flex-end}.toolbar-identity--center .toolbar-identity__copy{align-items:center}.toolbar-identity--end .toolbar-identity__copy{align-items:flex-end}.toolbar-identity__icon{width:var(--p-table-toolbar-identity-icon-size, 28px);height:var(--p-table-toolbar-identity-icon-size, 28px);border-radius:var(--p-table-toolbar-identity-icon-radius, 8px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor));background:color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 8%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-icon-fg, var(--md-sys-color-primary, currentColor)) 18%,transparent)}.toolbar-identity__icon .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.toolbar-identity__copy{display:flex;flex-direction:column;min-width:0;max-width:100%;gap:1px}.toolbar-identity__title,.toolbar-identity__subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-identity__title{font-size:var(--p-table-toolbar-title-font-size, 14px);font-weight:var(--p-table-toolbar-title-font-weight, 700);line-height:1.2;letter-spacing:0;color:var(--p-table-toolbar-title-fg, currentColor)}.toolbar-identity__subtitle{font-size:var(--p-table-toolbar-subtitle-font-size, 11.5px);line-height:1.25;color:var(--p-table-toolbar-subtitle-fg, var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default)))}.toolbar-main>*{min-width:0}@container (max-width: 720px){.toolbar-identity{flex-basis:100%;max-width:100%}}@container (max-width: 420px){.toolbar-identity{min-width:0;flex-basis:auto}.toolbar-identity__subtitle{display:none}}.toolbar-actions{display:flex;align-items:center;align-self:flex-end;justify-content:flex-end;gap:var(--p-table-toolbar-gap, 6px);min-height:var(--p-table-toolbar-min-height, var(--pfx-filter-h, 44px));flex:0 0 auto;margin-left:auto}.actions-group{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.action-btn{height:var(--p-table-toolbar-action-size, 36px);min-width:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);font-size:12px;line-height:1.2;color:var(--p-table-toolbar-action-fg, inherit);background:var(--p-table-toolbar-action-bg, transparent)}.action-btn:hover:not(:disabled),.overflow-trigger:hover:not(:disabled),.end-actions ::ng-deep .mat-mdc-icon-button:hover:not(:disabled){background:var(--p-table-toolbar-action-hover-bg, var(--p-table-toolbar-action-hover-bg-default))}.action-btn:focus-visible,.overflow-trigger:focus-visible,.end-actions ::ng-deep .mat-mdc-icon-button:focus-visible{outline:2px solid var(--p-table-toolbar-action-focus-ring, var(--p-table-toolbar-action-focus-ring-default));outline-offset:2px}.action-btn--utility{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}.praxis-table-toolbar-action--columns.action-btn{width:var(--p-table-toolbar-action-size, 36px);padding:0}.praxis-table-toolbar-action--columns mat-icon{margin:0}.toolbar-icon-btn{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);border-radius:var(--p-table-toolbar-action-radius, 8px);color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.toolbar-icon-btn:hover:not(:disabled){color:var(--md-sys-color-on-primary-container);background:color-mix(in srgb,var(--md-sys-color-primary) 16%,transparent);border-color:color-mix(in srgb,var(--md-sys-color-primary) 36%,transparent)}.action-btn--fab{width:42px;height:42px;box-shadow:none}.pfx-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.pfx-tonal:hover{background:var(--md-sys-color-secondary-container)}.mobile-actions{display:none;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px)}.overflow-trigger{height:var(--p-table-toolbar-action-size, 36px)}.action-btn .mat-icon,.action-btn--fab .mat-icon,.overflow-trigger .mat-icon{font-size:18px;width:18px;height:18px;line-height:18px}.praxis-table-toolbar-action--columns .mat-icon{font-size:24px;width:24px;height:24px;line-height:24px}.praxis-table-column-menu-item.mat-mdc-menu-item{min-height:40px}.praxis-table-column-menu-content{align-items:center;display:flex;gap:10px;min-height:40px;width:100%}.praxis-table-column-menu-check.mat-icon{color:var(--md-sys-color-primary, currentColor);flex:0 0 20px;font-size:20px;height:20px;line-height:20px;margin-inline-end:0;width:20px}.action-btn.mat-mdc-button-base,.action-btn--fab.mat-mdc-button-base,.overflow-trigger.mat-mdc-button-base,.toolbar-icon-btn.mat-mdc-button-base{--mdc-text-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-filled-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-protected-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-outlined-button-container-height: var(--p-table-toolbar-action-size, 36px);--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.action-btn.mat-mdc-unelevated-button:not(:disabled),.action-btn.mat-mdc-outlined-button:not(:disabled),.action-btn.pfx-tonal:not(:disabled){border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #d7dbe5) 82%,transparent)}.action-btn.mat-mdc-unelevated-button:not(:disabled){box-shadow:none}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled){--mdc-filled-button-container-color: var(--md-sys-color-primary);--mdc-filled-button-label-text-color: var(--md-sys-color-on-primary);--mat-filled-button-state-layer-color: var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)!important;border-color:transparent;color:var(--md-sys-color-on-primary)!important;box-shadow:0 8px 18px color-mix(in srgb,var(--md-sys-color-primary) 22%,transparent)}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled):hover{background:color-mix(in srgb,var(--md-sys-color-primary) 88%,var(--md-sys-color-on-primary) 12%)!important}.action-btn.mat-mdc-unelevated-button.mat-primary:not(:disabled) .mat-icon{color:var(--md-sys-color-on-primary)!important}.action-btn.mat-mdc-button-base:not(.mat-mdc-icon-button){padding-inline:10px}.end-actions{display:flex;align-items:center;gap:var(--p-table-toolbar-actions-gap, 6px);margin-left:4px;padding-left:10px;border-left:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions:empty{display:none;gap:0;margin-left:0;padding-left:0;border-left:0}.end-actions ::ng-deep .mat-mdc-icon-button{width:var(--p-table-toolbar-action-size, 36px);height:var(--p-table-toolbar-action-size, 36px);display:inline-grid;place-items:center;padding:0;line-height:0;--mdc-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px);--mat-icon-button-state-layer-size: var(--p-table-toolbar-action-size, 36px)}.end-actions ::ng-deep .mat-mdc-icon-button .mat-icon{display:block;flex:0 0 auto;font-size:24px;width:24px;height:24px;line-height:24px;margin:0}.praxis-toolbar.p-table-toolbar--divider-between-groups .actions-group,.praxis-toolbar.p-table-toolbar--divider-start .toolbar-main{padding-right:10px;border-right:1px solid var(--p-table-toolbar-divider-color, var(--p-table-toolbar-divider-color-default))}.end-actions ::ng-deep .praxis-table-toolbar-action--ai,.end-actions ::ng-deep .praxis-table-ai-trigger{color:var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default));background:color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 10%,transparent);border:1px solid color-mix(in srgb,var(--p-table-toolbar-ai-accent-color, var(--p-table-toolbar-ai-accent-color-default)) 24%,transparent)}.end-actions ::ng-deep [data-role=table-settings]{color:var(--p-table-toolbar-status-fg, var(--p-table-toolbar-status-fg-default))}@media(min-width:1024px){.toolbar-actions{justify-content:flex-end}}@media(max-width:1023px){.actions-group{display:none}.mobile-actions{display:flex}.toolbar-actions{justify-content:flex-end}.toolbar-identity{min-width:0;max-width:100%;flex:1 1 100%}}\n"] }]
|
|
2354
2384
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.LoggerService, decorators: [{
|
|
2355
2385
|
type: Optional
|
|
2356
2386
|
}] }, { type: i1.PraxisI18nService, decorators: [{
|
|
@@ -39412,8 +39442,14 @@ class PraxisTable {
|
|
|
39412
39442
|
static ROW_DISCOVERY_MAX_CONCURRENT_REQUESTS = 2;
|
|
39413
39443
|
_resourceDiscovery;
|
|
39414
39444
|
_resourceSurfaceOpenAdapter;
|
|
39445
|
+
_crudOperationResolver;
|
|
39415
39446
|
runtimeObservationRegistry = inject(PraxisRuntimeComponentObservationRegistryService, { optional: true });
|
|
39416
39447
|
detailInlineRenderers = inject(PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, { optional: true }) ?? [];
|
|
39448
|
+
collectionLinks = null;
|
|
39449
|
+
collectionCapabilities = null;
|
|
39450
|
+
collectionCapabilitiesRequestHref = null;
|
|
39451
|
+
collectionCapabilitiesResolvedHref = null;
|
|
39452
|
+
collectionCapabilitiesRequestSeq = 0;
|
|
39417
39453
|
detailInlineNodeResolvers = inject(PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, { optional: true }) ?? [];
|
|
39418
39454
|
runtimeObservationRegistration = null;
|
|
39419
39455
|
paginatorSelectConfig = {
|
|
@@ -39566,6 +39602,7 @@ class PraxisTable {
|
|
|
39566
39602
|
sanitizer = inject(DomSanitizer);
|
|
39567
39603
|
collectionExport = inject(PraxisCollectionExportService);
|
|
39568
39604
|
paginatorIntl = inject(MatPaginatorIntl);
|
|
39605
|
+
schemaNormalizer = inject(SchemaNormalizerService);
|
|
39569
39606
|
schemaFieldsSnapshot = [];
|
|
39570
39607
|
filterSchemaFieldsSnapshot = [];
|
|
39571
39608
|
runtimeSchemaMeta = {};
|
|
@@ -41105,6 +41142,306 @@ class PraxisTable {
|
|
|
41105
41142
|
return true;
|
|
41106
41143
|
return (config.toolbar?.actions?.length ?? 0) > 0;
|
|
41107
41144
|
}
|
|
41145
|
+
resolveCollectionDiscoveryOptions() {
|
|
41146
|
+
const endpointKey = this.crudContext?.endpointKey;
|
|
41147
|
+
return endpointKey ? { endpointKey } : undefined;
|
|
41148
|
+
}
|
|
41149
|
+
updateCollectionLinks(links) {
|
|
41150
|
+
this.collectionLinks = links;
|
|
41151
|
+
const capabilitiesHref = this.resolveCollectionCapabilitiesHref(links);
|
|
41152
|
+
this.materializeCollectionCreateToolbarAction();
|
|
41153
|
+
if (!capabilitiesHref) {
|
|
41154
|
+
this.collectionCapabilitiesRequestSeq += 1;
|
|
41155
|
+
this.collectionCapabilitiesRequestHref = null;
|
|
41156
|
+
this.collectionCapabilitiesResolvedHref = null;
|
|
41157
|
+
if (this.collectionCapabilities) {
|
|
41158
|
+
this.collectionCapabilities = null;
|
|
41159
|
+
this.materializeCollectionCreateToolbarAction();
|
|
41160
|
+
}
|
|
41161
|
+
return;
|
|
41162
|
+
}
|
|
41163
|
+
if (capabilitiesHref === this.collectionCapabilitiesRequestHref ||
|
|
41164
|
+
(capabilitiesHref === this.collectionCapabilitiesResolvedHref && !!this.collectionCapabilities)) {
|
|
41165
|
+
return;
|
|
41166
|
+
}
|
|
41167
|
+
const requestSeq = ++this.collectionCapabilitiesRequestSeq;
|
|
41168
|
+
this.collectionCapabilitiesRequestHref = capabilitiesHref;
|
|
41169
|
+
void firstValueFrom(this.resourceDiscovery.getCapabilities(links || {}, this.resolveCollectionDiscoveryOptions()))
|
|
41170
|
+
.then((snapshot) => {
|
|
41171
|
+
if (requestSeq !== this.collectionCapabilitiesRequestSeq) {
|
|
41172
|
+
return;
|
|
41173
|
+
}
|
|
41174
|
+
this.collectionCapabilitiesRequestHref = null;
|
|
41175
|
+
this.collectionCapabilitiesResolvedHref = capabilitiesHref;
|
|
41176
|
+
this.collectionCapabilities = snapshot;
|
|
41177
|
+
this.materializeCollectionCreateToolbarAction();
|
|
41178
|
+
})
|
|
41179
|
+
.catch(() => {
|
|
41180
|
+
if (requestSeq !== this.collectionCapabilitiesRequestSeq) {
|
|
41181
|
+
return;
|
|
41182
|
+
}
|
|
41183
|
+
const hadCapabilities = !!this.collectionCapabilities;
|
|
41184
|
+
this.collectionCapabilities = null;
|
|
41185
|
+
this.collectionCapabilitiesRequestHref = null;
|
|
41186
|
+
this.collectionCapabilitiesResolvedHref = null;
|
|
41187
|
+
if (hadCapabilities) {
|
|
41188
|
+
this.materializeCollectionCreateToolbarAction();
|
|
41189
|
+
}
|
|
41190
|
+
});
|
|
41191
|
+
}
|
|
41192
|
+
resolveCollectionCapabilitiesHref(links) {
|
|
41193
|
+
try {
|
|
41194
|
+
return this.resourceDiscovery.resolveLinkHref(links || undefined, 'capabilities', this.resolveCollectionDiscoveryOptions());
|
|
41195
|
+
}
|
|
41196
|
+
catch {
|
|
41197
|
+
return null;
|
|
41198
|
+
}
|
|
41199
|
+
}
|
|
41200
|
+
materializeCollectionCreateToolbarAction() {
|
|
41201
|
+
if (!this.config) {
|
|
41202
|
+
return;
|
|
41203
|
+
}
|
|
41204
|
+
const currentToolbar = this.config.toolbar;
|
|
41205
|
+
const actions = currentToolbar?.actions || [];
|
|
41206
|
+
const createIndex = actions.findIndex((action) => this.isCreateToolbarAction(action));
|
|
41207
|
+
const existing = createIndex >= 0 ? actions[createIndex] : null;
|
|
41208
|
+
const materialized = this.buildCollectionCreateToolbarAction(existing);
|
|
41209
|
+
if (!materialized) {
|
|
41210
|
+
if (existing?.__praxisCollectionCreateAction) {
|
|
41211
|
+
actions.splice(createIndex, 1);
|
|
41212
|
+
currentToolbar.actions = actions;
|
|
41213
|
+
this.setShowToolbar(this.shouldExposeToolbar());
|
|
41214
|
+
this.cdr.markForCheck();
|
|
41215
|
+
}
|
|
41216
|
+
else if (existing) {
|
|
41217
|
+
const disabled = this.resolveCollectionCreateDisabled(existing);
|
|
41218
|
+
if (typeof disabled === 'boolean' && existing.disabled !== disabled) {
|
|
41219
|
+
existing.disabled = disabled;
|
|
41220
|
+
this.cdr.markForCheck();
|
|
41221
|
+
}
|
|
41222
|
+
}
|
|
41223
|
+
return;
|
|
41224
|
+
}
|
|
41225
|
+
const toolbar = this.ensureToolbarConfigForRuntime();
|
|
41226
|
+
const nextActions = toolbar.actions || [];
|
|
41227
|
+
const nextCreateIndex = nextActions.findIndex((action) => this.isCreateToolbarAction(action));
|
|
41228
|
+
const nextExisting = nextCreateIndex >= 0
|
|
41229
|
+
? nextActions[nextCreateIndex]
|
|
41230
|
+
: existing;
|
|
41231
|
+
if (nextExisting && nextCreateIndex >= 0) {
|
|
41232
|
+
nextActions[nextCreateIndex] = {
|
|
41233
|
+
...materialized,
|
|
41234
|
+
...nextExisting,
|
|
41235
|
+
id: nextExisting.id || materialized.id,
|
|
41236
|
+
action: nextExisting.action || materialized.action,
|
|
41237
|
+
label: nextExisting.label || materialized.label,
|
|
41238
|
+
icon: nextExisting.icon || materialized.icon,
|
|
41239
|
+
tooltip: nextExisting.tooltip || materialized.tooltip,
|
|
41240
|
+
disabled: materialized.disabled,
|
|
41241
|
+
__praxisCollectionCreateAction: nextExisting.__praxisCollectionCreateAction || materialized.__praxisCollectionCreateAction,
|
|
41242
|
+
__praxisCrudOperation: materialized.__praxisCrudOperation,
|
|
41243
|
+
__praxisDiscoveredSurface: materialized.__praxisDiscoveredSurface,
|
|
41244
|
+
};
|
|
41245
|
+
}
|
|
41246
|
+
else {
|
|
41247
|
+
toolbar.actions = [...nextActions, materialized];
|
|
41248
|
+
}
|
|
41249
|
+
toolbar.visible = true;
|
|
41250
|
+
this.setShowToolbar(true);
|
|
41251
|
+
this.cdr.markForCheck();
|
|
41252
|
+
}
|
|
41253
|
+
ensureToolbarConfigForRuntime() {
|
|
41254
|
+
if (!this.config.toolbar) {
|
|
41255
|
+
this.config.toolbar = { visible: true, position: 'top' };
|
|
41256
|
+
}
|
|
41257
|
+
if (!this.config.toolbar.actions) {
|
|
41258
|
+
this.config.toolbar.actions = [];
|
|
41259
|
+
}
|
|
41260
|
+
return this.config.toolbar;
|
|
41261
|
+
}
|
|
41262
|
+
buildCollectionCreateToolbarAction(existing) {
|
|
41263
|
+
const resolved = this.resolveCollectionCreateRuntime();
|
|
41264
|
+
if (!resolved && !existing) {
|
|
41265
|
+
return null;
|
|
41266
|
+
}
|
|
41267
|
+
if (!resolved && existing && !existing.__praxisCollectionCreateAction) {
|
|
41268
|
+
return null;
|
|
41269
|
+
}
|
|
41270
|
+
const operation = resolved?.operation ?? null;
|
|
41271
|
+
const surface = resolved?.surface ?? null;
|
|
41272
|
+
const disabled = resolved
|
|
41273
|
+
? resolved.disabled
|
|
41274
|
+
: true;
|
|
41275
|
+
return {
|
|
41276
|
+
id: 'create',
|
|
41277
|
+
action: 'create',
|
|
41278
|
+
label: this.getCollectionCreateActionLabel(surface),
|
|
41279
|
+
icon: 'add',
|
|
41280
|
+
type: 'button',
|
|
41281
|
+
appearance: 'filled',
|
|
41282
|
+
color: disabled ? 'warn' : 'primary',
|
|
41283
|
+
position: 'start',
|
|
41284
|
+
tooltip: disabled
|
|
41285
|
+
? this.getCollectionCreateUnavailableTooltip(operation, surface)
|
|
41286
|
+
: this.getCollectionCreateActionTooltip(surface),
|
|
41287
|
+
disabled,
|
|
41288
|
+
__praxisCollectionCreateAction: true,
|
|
41289
|
+
__praxisCrudOperation: operation ?? undefined,
|
|
41290
|
+
__praxisDiscoveredSurface: surface ?? undefined,
|
|
41291
|
+
};
|
|
41292
|
+
}
|
|
41293
|
+
resolveCollectionCreateRuntime() {
|
|
41294
|
+
const resourcePath = this.resolveCollectionResourcePath();
|
|
41295
|
+
if (!resourcePath) {
|
|
41296
|
+
return null;
|
|
41297
|
+
}
|
|
41298
|
+
const capability = this.resolveCollectionCreateCapabilityOperation();
|
|
41299
|
+
const surface = this.resolveCollectionCreateSurface(capability);
|
|
41300
|
+
const hasCreateLink = this.hasCollectionCreateLink();
|
|
41301
|
+
if (!surface && !capability && !hasCreateLink) {
|
|
41302
|
+
return null;
|
|
41303
|
+
}
|
|
41304
|
+
if (capability?.supported === false) {
|
|
41305
|
+
return { operation: capability, surface, disabled: true };
|
|
41306
|
+
}
|
|
41307
|
+
const operationAvailability = capability?.availability;
|
|
41308
|
+
const surfaceAvailability = surface?.availability;
|
|
41309
|
+
return {
|
|
41310
|
+
operation: capability,
|
|
41311
|
+
surface,
|
|
41312
|
+
disabled: operationAvailability?.allowed === false ||
|
|
41313
|
+
surfaceAvailability?.allowed === false ||
|
|
41314
|
+
(!surface && !hasCreateLink && !capability),
|
|
41315
|
+
};
|
|
41316
|
+
}
|
|
41317
|
+
resolveCollectionResourcePath() {
|
|
41318
|
+
return String(this.resourcePath ||
|
|
41319
|
+
this.crudContext?.resourcePath ||
|
|
41320
|
+
this.config?.resourcePath ||
|
|
41321
|
+
'').trim();
|
|
41322
|
+
}
|
|
41323
|
+
hasCollectionCreateLink() {
|
|
41324
|
+
try {
|
|
41325
|
+
return !!this.resourceDiscovery.resolveLinkHref(this.collectionLinks || undefined, 'create', this.resolveCollectionDiscoveryOptions());
|
|
41326
|
+
}
|
|
41327
|
+
catch {
|
|
41328
|
+
return false;
|
|
41329
|
+
}
|
|
41330
|
+
}
|
|
41331
|
+
resolveCollectionCreateCapabilityOperation() {
|
|
41332
|
+
const snapshot = this.collectionCapabilities;
|
|
41333
|
+
if (!snapshot) {
|
|
41334
|
+
const digest = this.crudService.getResourceCapabilityDigest?.() ?? null;
|
|
41335
|
+
return digest?.canonicalOperations?.['create'] === true
|
|
41336
|
+
? this.createSyntheticCollectionCrudOperation('create')
|
|
41337
|
+
: null;
|
|
41338
|
+
}
|
|
41339
|
+
return (snapshot.operations?.create ||
|
|
41340
|
+
(snapshot.canonicalOperations?.['create'] === true
|
|
41341
|
+
? this.createSyntheticCollectionCrudOperation('create')
|
|
41342
|
+
: null));
|
|
41343
|
+
}
|
|
41344
|
+
createSyntheticCollectionCrudOperation(id) {
|
|
41345
|
+
return {
|
|
41346
|
+
id,
|
|
41347
|
+
supported: true,
|
|
41348
|
+
scope: 'COLLECTION',
|
|
41349
|
+
preferredRel: id,
|
|
41350
|
+
preferredMethod: id === 'create' ? 'POST' : undefined,
|
|
41351
|
+
};
|
|
41352
|
+
}
|
|
41353
|
+
resolveCollectionCreateSurface(operation) {
|
|
41354
|
+
const existingSurface = this.collectionCapabilities?.surfaces
|
|
41355
|
+
?.filter((surface) => this.isCollectionCreateSurface(surface))
|
|
41356
|
+
.sort((left, right) => (left.order ?? 0) - (right.order ?? 0))[0] ?? null;
|
|
41357
|
+
if (existingSurface) {
|
|
41358
|
+
return existingSurface;
|
|
41359
|
+
}
|
|
41360
|
+
const resourcePath = this.resolveCollectionResourcePath();
|
|
41361
|
+
if (!resourcePath || (!operation && !this.hasCollectionCreateLink())) {
|
|
41362
|
+
return null;
|
|
41363
|
+
}
|
|
41364
|
+
try {
|
|
41365
|
+
const resolved = this.crudOperationResolver.resolve({
|
|
41366
|
+
operation: 'create',
|
|
41367
|
+
resourcePath,
|
|
41368
|
+
resourceId: null,
|
|
41369
|
+
capabilities: this.collectionCapabilities,
|
|
41370
|
+
links: this.collectionLinks,
|
|
41371
|
+
endpointKey: this.crudContext?.endpointKey,
|
|
41372
|
+
apiUrlEntry: null,
|
|
41373
|
+
});
|
|
41374
|
+
const schemaInfo = this.crudService.getLastSchemaInfo?.() ?? {};
|
|
41375
|
+
const title = this.getCollectionCreateActionLabel(null);
|
|
41376
|
+
return {
|
|
41377
|
+
id: 'create',
|
|
41378
|
+
resourceKey: this.collectionCapabilities?.resourceKey || resourcePath,
|
|
41379
|
+
kind: 'FORM',
|
|
41380
|
+
scope: 'COLLECTION',
|
|
41381
|
+
title,
|
|
41382
|
+
description: this.getCollectionCreateActionTooltip(null),
|
|
41383
|
+
intent: 'create',
|
|
41384
|
+
operationId: 'resource.create',
|
|
41385
|
+
path: resolved.submitUrl || resourcePath,
|
|
41386
|
+
method: (resolved.submitMethod || 'post').toUpperCase(),
|
|
41387
|
+
schemaId: schemaInfo.schemaId || `${resourcePath}.create`,
|
|
41388
|
+
schemaUrl: resolved.schemaUrl || `${resourcePath}/schemas/create`,
|
|
41389
|
+
responseCardinality: 'OBJECT',
|
|
41390
|
+
availability: resolved.availability || operation?.availability || { allowed: true },
|
|
41391
|
+
order: 0,
|
|
41392
|
+
tags: ['crud', 'create'],
|
|
41393
|
+
};
|
|
41394
|
+
}
|
|
41395
|
+
catch {
|
|
41396
|
+
return null;
|
|
41397
|
+
}
|
|
41398
|
+
}
|
|
41399
|
+
isWritableCrudSurface(surface) {
|
|
41400
|
+
return surface.kind === 'FORM' || surface.kind === 'PARTIAL_FORM';
|
|
41401
|
+
}
|
|
41402
|
+
isCollectionCreateSurface(surface) {
|
|
41403
|
+
if (surface.scope !== 'COLLECTION' || !this.isWritableCrudSurface(surface)) {
|
|
41404
|
+
return false;
|
|
41405
|
+
}
|
|
41406
|
+
const operationId = String(surface.operationId || '').trim().toLowerCase();
|
|
41407
|
+
const intent = String(surface.intent || '').trim().toLowerCase();
|
|
41408
|
+
const id = String(surface.id || '').trim().toLowerCase();
|
|
41409
|
+
const tags = Array.isArray(surface.tags)
|
|
41410
|
+
? surface.tags.map((tag) => String(tag || '').trim().toLowerCase())
|
|
41411
|
+
: [];
|
|
41412
|
+
return (intent === 'create' ||
|
|
41413
|
+
operationId === 'create' ||
|
|
41414
|
+
operationId.endsWith('.create') ||
|
|
41415
|
+
id === 'create' ||
|
|
41416
|
+
tags.includes('create'));
|
|
41417
|
+
}
|
|
41418
|
+
getCollectionCreateActionLabel(surface) {
|
|
41419
|
+
return surface?.title || translateTableRuntimeText(this.i18n, 'table.chrome.collectionActions.create', 'Novo');
|
|
41420
|
+
}
|
|
41421
|
+
getCollectionCreateActionTooltip(surface) {
|
|
41422
|
+
return surface?.description || translateTableRuntimeText(this.i18n, 'table.chrome.collectionActions.createTooltip', 'Criar novo registro');
|
|
41423
|
+
}
|
|
41424
|
+
getCollectionCreateUnavailableTooltip(operation, surface) {
|
|
41425
|
+
const reason = operation?.availability?.reason ||
|
|
41426
|
+
surface?.availability?.reason ||
|
|
41427
|
+
null;
|
|
41428
|
+
return reason
|
|
41429
|
+
? translateResourceAvailabilityReason(this.i18n, reason)
|
|
41430
|
+
: translateTableRuntimeText(this.i18n, 'table.chrome.collectionActions.createUnavailable', 'Criação indisponível no contexto atual');
|
|
41431
|
+
}
|
|
41432
|
+
resolveCollectionCreateDisabled(action) {
|
|
41433
|
+
const runtime = this.resolveCollectionCreateRuntime();
|
|
41434
|
+
if (runtime) {
|
|
41435
|
+
return runtime.disabled;
|
|
41436
|
+
}
|
|
41437
|
+
if (action.__praxisCollectionCreateAction) {
|
|
41438
|
+
return true;
|
|
41439
|
+
}
|
|
41440
|
+
return null;
|
|
41441
|
+
}
|
|
41442
|
+
isCreateToolbarAction(action) {
|
|
41443
|
+
return String(action?.action || action?.id || '').trim().toLowerCase() === 'create';
|
|
41444
|
+
}
|
|
41108
41445
|
constructor(cdr, settingsPanel, crudService, tableDefaultsProvider, filterConfig, formattingService, pxDialog, snackBar, asyncConfigStorage, connectionStorage, hostRef, global, injector, componentKeys, loadingOrchestrator, globalActions, loadingRenderer, route, logger, analyticsStatsApi) {
|
|
41109
41446
|
this.cdr = cdr;
|
|
41110
41447
|
this.settingsPanel = settingsPanel;
|
|
@@ -41160,6 +41497,9 @@ class PraxisTable {
|
|
|
41160
41497
|
get resourceSurfaceOpenAdapter() {
|
|
41161
41498
|
return this._resourceSurfaceOpenAdapter ??= this.injector.get(ResourceSurfaceOpenAdapterService);
|
|
41162
41499
|
}
|
|
41500
|
+
get crudOperationResolver() {
|
|
41501
|
+
return this._crudOperationResolver ??= this.injector.get(CrudOperationResolutionService);
|
|
41502
|
+
}
|
|
41163
41503
|
ensureAiAdapterLoaded(openAfterLoad = false) {
|
|
41164
41504
|
if (openAfterLoad && !this.aiAdapter) {
|
|
41165
41505
|
this.aiAssistantOpenAfterAdapterLoad = true;
|
|
@@ -41167,7 +41507,7 @@ class PraxisTable {
|
|
|
41167
41507
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
41168
41508
|
return;
|
|
41169
41509
|
this.aiAdapterLoadStarted = true;
|
|
41170
|
-
import('./praxisui-table-table-ai.adapter-
|
|
41510
|
+
import('./praxisui-table-table-ai.adapter-CXzxP88Y.mjs')
|
|
41171
41511
|
.then(({ TableAiAdapter }) => {
|
|
41172
41512
|
if (!this.isAiAssistantEnabled()) {
|
|
41173
41513
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -46516,6 +46856,9 @@ class PraxisTable {
|
|
|
46516
46856
|
const action = String(event?.action || '').trim();
|
|
46517
46857
|
if (!action)
|
|
46518
46858
|
return;
|
|
46859
|
+
if (await this.tryHandleCollectionCreateToolbarAction(action, event.actionConfig)) {
|
|
46860
|
+
return;
|
|
46861
|
+
}
|
|
46519
46862
|
const bulk = this.config.actions?.bulk?.actions.find((a) => this.getActionId(a) === action);
|
|
46520
46863
|
if (bulk) {
|
|
46521
46864
|
const rows = this.selection.selected.slice();
|
|
@@ -46687,6 +47030,76 @@ class PraxisTable {
|
|
|
46687
47030
|
label: toolbarActionConfig?.label || action,
|
|
46688
47031
|
});
|
|
46689
47032
|
}
|
|
47033
|
+
async tryHandleCollectionCreateToolbarAction(action, actionConfig) {
|
|
47034
|
+
if (String(action || '').trim().toLowerCase() !== 'create') {
|
|
47035
|
+
return false;
|
|
47036
|
+
}
|
|
47037
|
+
const configuredAction = actionConfig ||
|
|
47038
|
+
(this.config?.toolbar?.actions || []).find((candidate) => this.isCreateToolbarAction(candidate));
|
|
47039
|
+
if (!configuredAction?.__praxisCollectionCreateAction) {
|
|
47040
|
+
return false;
|
|
47041
|
+
}
|
|
47042
|
+
const surface = configuredAction.__praxisDiscoveredSurface ||
|
|
47043
|
+
this.resolveCollectionCreateSurface(configuredAction.__praxisCrudOperation ?? null);
|
|
47044
|
+
const payload = {
|
|
47045
|
+
action,
|
|
47046
|
+
actionConfig: this.cloneForEmit({
|
|
47047
|
+
...configuredAction,
|
|
47048
|
+
__praxisCollectionCreateAction: true,
|
|
47049
|
+
}),
|
|
47050
|
+
};
|
|
47051
|
+
if (!surface || configuredAction.disabled) {
|
|
47052
|
+
this.emitEventWithActionFeedback(this.toolbarAction, payload, {
|
|
47053
|
+
actionId: action,
|
|
47054
|
+
label: configuredAction.label || action,
|
|
47055
|
+
});
|
|
47056
|
+
return true;
|
|
47057
|
+
}
|
|
47058
|
+
try {
|
|
47059
|
+
const surfacePayload = this.resourceSurfaceOpenAdapter.toPayload(surface, {
|
|
47060
|
+
resourcePath: this.resolveCollectionResourcePath(),
|
|
47061
|
+
endpointKey: this.crudContext?.endpointKey,
|
|
47062
|
+
title: surface.title || configuredAction.label,
|
|
47063
|
+
subtitle: surface.description || configuredAction.tooltip || undefined,
|
|
47064
|
+
presentation: 'drawer',
|
|
47065
|
+
queryContext: this.queryContext ?? undefined,
|
|
47066
|
+
});
|
|
47067
|
+
const result = await this.globalActions.execute('surface.open', surfacePayload, {
|
|
47068
|
+
sourceId: this.tableId || this.componentInstanceId || 'praxis-table',
|
|
47069
|
+
output: 'toolbarAction',
|
|
47070
|
+
payload,
|
|
47071
|
+
runtime: {
|
|
47072
|
+
widgetContext: {
|
|
47073
|
+
collection: {
|
|
47074
|
+
links: this.collectionLinks,
|
|
47075
|
+
capabilities: this.collectionCapabilities,
|
|
47076
|
+
resourcePath: this.resolveCollectionResourcePath(),
|
|
47077
|
+
},
|
|
47078
|
+
},
|
|
47079
|
+
},
|
|
47080
|
+
meta: {
|
|
47081
|
+
actionId: 'create',
|
|
47082
|
+
actionConfig: configuredAction,
|
|
47083
|
+
surfaceId: surface.id,
|
|
47084
|
+
},
|
|
47085
|
+
});
|
|
47086
|
+
if (result.success) {
|
|
47087
|
+
return true;
|
|
47088
|
+
}
|
|
47089
|
+
this.warnLog('[PraxisTable] Falha ao abrir create de coleção via surface.open', { surfaceId: surface.id, error: result.error }, { actionId: 'create' });
|
|
47090
|
+
}
|
|
47091
|
+
catch (error) {
|
|
47092
|
+
this.warnLog('[PraxisTable] Falha ao preparar create de coleção via surface.open', { surfaceId: surface.id, error }, { actionId: 'create' });
|
|
47093
|
+
}
|
|
47094
|
+
this.emitEventWithActionFeedback(this.toolbarAction, {
|
|
47095
|
+
...payload,
|
|
47096
|
+
surface,
|
|
47097
|
+
}, {
|
|
47098
|
+
actionId: action,
|
|
47099
|
+
label: configuredAction.label || action,
|
|
47100
|
+
});
|
|
47101
|
+
return true;
|
|
47102
|
+
}
|
|
46690
47103
|
resolveBulkExportFormat(action, actionConfig) {
|
|
46691
47104
|
if (this.config?.export?.enabled !== true) {
|
|
46692
47105
|
return null;
|
|
@@ -49164,8 +49577,19 @@ class PraxisTable {
|
|
|
49164
49577
|
this.emitSchemaStatus({ outdated: false, serverHash: this.runtimeSchemaMeta.serverHash, lastVerifiedAt: this.runtimeSchemaMeta.lastVerifiedAt, resourcePath: this.resourcePath }, 'verification-304');
|
|
49165
49578
|
return;
|
|
49166
49579
|
}
|
|
49167
|
-
// status === 200: server hash changed or first verification without hash. Do not
|
|
49580
|
+
// status === 200: server hash changed or first verification without hash. Do not
|
|
49581
|
+
// replace the column list, but keep existing columns enriched with safe schema
|
|
49582
|
+
// presentation metadata such as semantic renderers, masks, and value mappings.
|
|
49168
49583
|
const newHash = res.schemaHash;
|
|
49584
|
+
try {
|
|
49585
|
+
const fields = this.schemaNormalizer.normalizeSchema(res.schema);
|
|
49586
|
+
this.setSchemaFieldsSnapshot(fields);
|
|
49587
|
+
this.applySchemaFieldPresentationsToExistingColumns(fields);
|
|
49588
|
+
this.loadFilterSchemaSnapshot();
|
|
49589
|
+
this.setupColumns();
|
|
49590
|
+
this.configChange.emit(this.config);
|
|
49591
|
+
}
|
|
49592
|
+
catch { }
|
|
49169
49593
|
this.runtimeSchemaMeta = {
|
|
49170
49594
|
...this.runtimeSchemaMeta,
|
|
49171
49595
|
serverHash: newHash,
|
|
@@ -49239,6 +49663,9 @@ class PraxisTable {
|
|
|
49239
49663
|
.filter((f) => !f.tableHidden && !f.hidden)
|
|
49240
49664
|
.map((f) => this.convertFieldToColumn(f));
|
|
49241
49665
|
}
|
|
49666
|
+
else {
|
|
49667
|
+
this.applySchemaFieldPresentationsToExistingColumns(fields);
|
|
49668
|
+
}
|
|
49242
49669
|
this.emitWidgetInputPatch({
|
|
49243
49670
|
config: this.config,
|
|
49244
49671
|
resourcePath: this.resourcePath,
|
|
@@ -49332,6 +49759,26 @@ class PraxisTable {
|
|
|
49332
49759
|
catch { }
|
|
49333
49760
|
return col;
|
|
49334
49761
|
}
|
|
49762
|
+
applySchemaFieldPresentationsToExistingColumns(fields) {
|
|
49763
|
+
if (!Array.isArray(fields) || !fields.length)
|
|
49764
|
+
return;
|
|
49765
|
+
const columns = this.config?.columns;
|
|
49766
|
+
if (!Array.isArray(columns) || !columns.length)
|
|
49767
|
+
return;
|
|
49768
|
+
const fieldsByName = new Map();
|
|
49769
|
+
for (const field of fields) {
|
|
49770
|
+
const name = typeof field?.name === 'string' ? field.name.trim() : '';
|
|
49771
|
+
if (name)
|
|
49772
|
+
fieldsByName.set(name, field);
|
|
49773
|
+
}
|
|
49774
|
+
for (const column of columns) {
|
|
49775
|
+
const fieldName = typeof column?.field === 'string' ? column.field.trim() : '';
|
|
49776
|
+
const field = fieldsByName.get(fieldName);
|
|
49777
|
+
if (!field)
|
|
49778
|
+
continue;
|
|
49779
|
+
this.applySchemaFieldPresentation(field, column);
|
|
49780
|
+
}
|
|
49781
|
+
}
|
|
49335
49782
|
applySchemaFieldPresentation(field, col) {
|
|
49336
49783
|
if (!field || !col)
|
|
49337
49784
|
return;
|
|
@@ -49344,9 +49791,6 @@ class PraxisTable {
|
|
|
49344
49791
|
col.valueMapping = valueMapping;
|
|
49345
49792
|
}
|
|
49346
49793
|
const presentation = field.presentation;
|
|
49347
|
-
if (presentation && typeof presentation === 'object') {
|
|
49348
|
-
this.applySchemaFieldSemanticPresentation(field, col, presentation);
|
|
49349
|
-
}
|
|
49350
49794
|
if (presentation?.presenter === 'microVisualization' &&
|
|
49351
49795
|
isPraxisPresentationVisualizationTableSafe(presentation?.visualization)) {
|
|
49352
49796
|
col.renderer = {
|
|
@@ -49357,6 +49801,7 @@ class PraxisTable {
|
|
|
49357
49801
|
},
|
|
49358
49802
|
};
|
|
49359
49803
|
}
|
|
49804
|
+
this.applySchemaSemanticCellPresentation(field, col, presentation);
|
|
49360
49805
|
if (numericFormat === 'currency' || controlType === 'currency' || col.type === 'currency') {
|
|
49361
49806
|
col.type = 'currency';
|
|
49362
49807
|
col.format = this.resolveSchemaCurrencyFormat(field);
|
|
@@ -49391,20 +49836,29 @@ class PraxisTable {
|
|
|
49391
49836
|
col.format = textMaskFormat;
|
|
49392
49837
|
}
|
|
49393
49838
|
}
|
|
49394
|
-
|
|
49839
|
+
applySchemaSemanticCellPresentation(field, col, presentation) {
|
|
49840
|
+
if (!presentation || typeof presentation !== 'object')
|
|
49841
|
+
return;
|
|
49395
49842
|
if (col.renderer?.type)
|
|
49396
49843
|
return;
|
|
49397
|
-
const presenter = presentation.presenter ?? presentation.variant;
|
|
49844
|
+
const presenter = this.normalizePresentationToken(presentation.presenter ?? presentation.variant);
|
|
49845
|
+
const textField = field.name;
|
|
49846
|
+
const color = this.resolveSemanticPresentationColor(presentation.tone);
|
|
49847
|
+
const variant = this.resolveSemanticPresentationVariant(presentation.appearance);
|
|
49848
|
+
const icon = this.firstNonEmptyString(presentation.icon);
|
|
49849
|
+
const tooltipText = this.firstNonEmptyString(presentation.tooltip);
|
|
49850
|
+
const tooltip = tooltipText ? { text: tooltipText } : undefined;
|
|
49851
|
+
const fixedText = this.firstNonEmptyString(presentation.label);
|
|
49398
49852
|
if (presenter === 'chip') {
|
|
49399
49853
|
col.renderer = {
|
|
49400
49854
|
type: 'chip',
|
|
49401
49855
|
chip: {
|
|
49402
|
-
text:
|
|
49403
|
-
textField:
|
|
49404
|
-
color
|
|
49405
|
-
icon
|
|
49406
|
-
variant
|
|
49407
|
-
tooltip
|
|
49856
|
+
text: fixedText,
|
|
49857
|
+
textField: fixedText ? undefined : textField,
|
|
49858
|
+
color,
|
|
49859
|
+
icon,
|
|
49860
|
+
variant,
|
|
49861
|
+
tooltip,
|
|
49408
49862
|
},
|
|
49409
49863
|
};
|
|
49410
49864
|
return;
|
|
@@ -49413,35 +49867,48 @@ class PraxisTable {
|
|
|
49413
49867
|
col.renderer = {
|
|
49414
49868
|
type: 'badge',
|
|
49415
49869
|
badge: {
|
|
49416
|
-
text:
|
|
49417
|
-
textField:
|
|
49418
|
-
color
|
|
49419
|
-
icon
|
|
49420
|
-
variant
|
|
49421
|
-
tooltip
|
|
49870
|
+
text: fixedText,
|
|
49871
|
+
textField: fixedText ? undefined : textField,
|
|
49872
|
+
color,
|
|
49873
|
+
icon,
|
|
49874
|
+
variant,
|
|
49875
|
+
tooltip,
|
|
49422
49876
|
},
|
|
49423
49877
|
};
|
|
49424
49878
|
return;
|
|
49425
49879
|
}
|
|
49426
|
-
if (presenter === '
|
|
49427
|
-
const
|
|
49880
|
+
if (presenter === 'iconvalue') {
|
|
49881
|
+
const rendererIcon = icon || this.firstNonEmptyString(field.icon);
|
|
49882
|
+
if (!rendererIcon)
|
|
49883
|
+
return;
|
|
49884
|
+
const affixes = this.resolveSemanticPresentationAffixes(presentation);
|
|
49885
|
+
if (affixes.prefix || affixes.suffix || tooltipText) {
|
|
49886
|
+
col.renderer = {
|
|
49887
|
+
type: 'icon',
|
|
49888
|
+
icon: {
|
|
49889
|
+
name: rendererIcon,
|
|
49890
|
+
textField,
|
|
49891
|
+
...(tooltipText ? { ariaLabel: tooltipText } : {}),
|
|
49892
|
+
...affixes,
|
|
49893
|
+
},
|
|
49894
|
+
};
|
|
49895
|
+
return;
|
|
49896
|
+
}
|
|
49428
49897
|
col.renderer = {
|
|
49429
49898
|
type: 'compose',
|
|
49430
49899
|
compose: {
|
|
49431
49900
|
items: [
|
|
49432
|
-
|
|
49433
|
-
|
|
49434
|
-
|
|
49435
|
-
|
|
49436
|
-
|
|
49437
|
-
|
|
49438
|
-
|
|
49439
|
-
|
|
49440
|
-
}]
|
|
49441
|
-
: []),
|
|
49901
|
+
{
|
|
49902
|
+
type: 'icon',
|
|
49903
|
+
icon: {
|
|
49904
|
+
name: rendererIcon,
|
|
49905
|
+
...(color ? { color } : {}),
|
|
49906
|
+
...(field.label ? { ariaLabel: field.label } : {}),
|
|
49907
|
+
},
|
|
49908
|
+
},
|
|
49442
49909
|
{
|
|
49443
49910
|
type: 'value',
|
|
49444
|
-
field:
|
|
49911
|
+
field: textField,
|
|
49445
49912
|
},
|
|
49446
49913
|
],
|
|
49447
49914
|
layout: {
|
|
@@ -49453,31 +49920,32 @@ class PraxisTable {
|
|
|
49453
49920
|
};
|
|
49454
49921
|
}
|
|
49455
49922
|
}
|
|
49456
|
-
|
|
49457
|
-
|
|
49458
|
-
|
|
49459
|
-
|
|
49923
|
+
resolveSemanticPresentationColor(tone) {
|
|
49924
|
+
const normalized = this.normalizePresentationToken(tone);
|
|
49925
|
+
if (normalized === 'neutral')
|
|
49926
|
+
return 'basic';
|
|
49927
|
+
if (!normalized)
|
|
49928
|
+
return undefined;
|
|
49929
|
+
if (normalized === 'danger')
|
|
49930
|
+
return 'warn';
|
|
49931
|
+
if (normalized === 'warning')
|
|
49932
|
+
return 'warn';
|
|
49933
|
+
return normalized;
|
|
49460
49934
|
}
|
|
49461
|
-
|
|
49462
|
-
|
|
49463
|
-
|
|
49464
|
-
|
|
49465
|
-
case 'warning':
|
|
49466
|
-
return 'warn';
|
|
49467
|
-
case 'danger':
|
|
49468
|
-
case 'info':
|
|
49469
|
-
case 'success':
|
|
49470
|
-
return tone;
|
|
49471
|
-
default:
|
|
49472
|
-
return undefined;
|
|
49935
|
+
resolveSemanticPresentationVariant(appearance) {
|
|
49936
|
+
const normalized = this.normalizePresentationToken(appearance);
|
|
49937
|
+
if (normalized === 'filled' || normalized === 'outlined' || normalized === 'soft' || normalized === 'plain') {
|
|
49938
|
+
return normalized;
|
|
49473
49939
|
}
|
|
49940
|
+
return undefined;
|
|
49474
49941
|
}
|
|
49475
|
-
|
|
49476
|
-
const
|
|
49477
|
-
|
|
49478
|
-
|
|
49479
|
-
|
|
49480
|
-
|
|
49942
|
+
resolveSemanticPresentationAffixes(presentation) {
|
|
49943
|
+
const prefix = this.firstNonEmptyString(presentation.prefix);
|
|
49944
|
+
const suffix = this.firstNonEmptyString(presentation.suffix);
|
|
49945
|
+
return {
|
|
49946
|
+
...(prefix ? { prefix } : {}),
|
|
49947
|
+
...(suffix ? { suffix } : {}),
|
|
49948
|
+
};
|
|
49481
49949
|
}
|
|
49482
49950
|
resolveSchemaCurrencyFormat(field) {
|
|
49483
49951
|
const currency = this.firstNonEmptyString(field.currency, field.extraProperties?.currency) || 'BRL';
|
|
@@ -50346,6 +50814,7 @@ class PraxisTable {
|
|
|
50346
50814
|
if (!this.isRemoteMode()) {
|
|
50347
50815
|
this.clearRowDiscoveryRuntime();
|
|
50348
50816
|
this.lastRowDiscoveryScopeKey = null;
|
|
50817
|
+
this.updateCollectionLinks(null);
|
|
50349
50818
|
this.collectionLinksChange.emit(null);
|
|
50350
50819
|
return;
|
|
50351
50820
|
}
|
|
@@ -50409,8 +50878,10 @@ class PraxisTable {
|
|
|
50409
50878
|
const page = (response?.data || {});
|
|
50410
50879
|
const content = Array.isArray(page.content) ? page.content : [];
|
|
50411
50880
|
const total = page.totalElements ?? content.length ?? 0;
|
|
50881
|
+
const links = response?._links ?? null;
|
|
50412
50882
|
this.dataError = false;
|
|
50413
|
-
this.
|
|
50883
|
+
this.updateCollectionLinks(links);
|
|
50884
|
+
this.collectionLinksChange.emit(links);
|
|
50414
50885
|
// Keep dataRefresh collapse in the fetch pipeline to avoid duplicate policy events.
|
|
50415
50886
|
this.applyExpansionCollapsePolicy('dataRefresh');
|
|
50416
50887
|
this.dataSubject.next(content);
|
|
@@ -50444,6 +50915,7 @@ class PraxisTable {
|
|
|
50444
50915
|
}
|
|
50445
50916
|
this.errorLog('[PraxisTable] Data load error', err);
|
|
50446
50917
|
this.dataError = true;
|
|
50918
|
+
this.updateCollectionLinks(null);
|
|
50447
50919
|
this.collectionLinksChange.emit(null);
|
|
50448
50920
|
this.errorMessage =
|
|
50449
50921
|
'Não foi possível carregar os dados. Revise a fonte de dados e tente novamente.';
|
|
@@ -52119,7 +52591,12 @@ class PraxisTable {
|
|
|
52119
52591
|
const text = Object.prototype.hasOwnProperty.call(cfg, 'text')
|
|
52120
52592
|
? cfg.text
|
|
52121
52593
|
: cfg.textField ? this.getRendererTextFieldValue(row, column, cfg.textField) : null;
|
|
52122
|
-
|
|
52594
|
+
if (text == null)
|
|
52595
|
+
return null;
|
|
52596
|
+
const normalizedText = String(text);
|
|
52597
|
+
const prefix = this.firstNonEmptyString(cfg.prefix);
|
|
52598
|
+
const suffix = this.firstNonEmptyString(cfg.suffix);
|
|
52599
|
+
return `${prefix || ''}${normalizedText}${suffix || ''}`;
|
|
52123
52600
|
}
|
|
52124
52601
|
getIconRichContentNodes(row, column) {
|
|
52125
52602
|
const icon = this.getIconName(row, column);
|
|
@@ -56914,6 +57391,10 @@ const rendererSchema = {
|
|
|
56914
57391
|
properties: {
|
|
56915
57392
|
name: { type: 'string' },
|
|
56916
57393
|
nameField: { type: 'string' },
|
|
57394
|
+
text: { type: 'string' },
|
|
57395
|
+
textField: { type: 'string' },
|
|
57396
|
+
prefix: { type: 'string' },
|
|
57397
|
+
suffix: { type: 'string' },
|
|
56917
57398
|
color: { type: 'string' },
|
|
56918
57399
|
size: { type: 'number' },
|
|
56919
57400
|
ariaLabel: { type: 'string' }
|
|
@@ -61105,9 +61586,13 @@ const TABLE_AI_CAPABILITIES = {
|
|
|
61105
61586
|
{ path: 'columns[].renderer.link.hrefField', category: 'renderer', valueKind: 'string', description: 'Campo para href do link.', dependsOn: 'columns[].renderer.link' },
|
|
61106
61587
|
{ path: 'columns[].renderer.link.target', category: 'renderer', valueKind: 'enum', allowedValues: ENUMS.rendererLinkTarget, description: 'Target do link.', dependsOn: 'columns[].renderer.link' },
|
|
61107
61588
|
{ path: 'columns[].renderer.link.rel', category: 'renderer', valueKind: 'string', description: 'Atributo rel do link.', dependsOn: 'columns[].renderer.link' },
|
|
61108
|
-
{ path: 'columns[].renderer.icon', category: 'renderer', valueKind: 'object', description: 'Icone material/SVG com cor
|
|
61589
|
+
{ path: 'columns[].renderer.icon', category: 'renderer', valueKind: 'object', description: 'Icone material/SVG com cor, tamanho e texto opcional ao lado do valor.', dependsOn: 'columns[].renderer.type', example: '{ name: "tag", textField: "codigo", prefix: "#", color: "success", size: 18 }', intentExamples: ['mostrar ícone de status', 'icone verde para ativo', 'mostrar codigo com # e icone'] },
|
|
61109
61590
|
{ path: 'columns[].renderer.icon.name', category: 'renderer', valueKind: 'string', description: 'Nome fixo do icone.', dependsOn: 'columns[].renderer.icon' },
|
|
61110
61591
|
{ path: 'columns[].renderer.icon.nameField', category: 'renderer', valueKind: 'string', description: 'Campo com nome do icone.', dependsOn: 'columns[].renderer.icon' },
|
|
61592
|
+
{ path: 'columns[].renderer.icon.text', category: 'renderer', valueKind: 'string', description: 'Texto fixo renderizado junto ao icone.', dependsOn: 'columns[].renderer.icon' },
|
|
61593
|
+
{ path: 'columns[].renderer.icon.textField', category: 'renderer', valueKind: 'string', description: 'Campo de linha usado como texto renderizado junto ao icone.', dependsOn: 'columns[].renderer.icon' },
|
|
61594
|
+
{ path: 'columns[].renderer.icon.prefix', category: 'renderer', valueKind: 'string', description: 'Prefixo visual aplicado somente ao texto exibido pelo renderer de icone.', dependsOn: 'columns[].renderer.icon' },
|
|
61595
|
+
{ path: 'columns[].renderer.icon.suffix', category: 'renderer', valueKind: 'string', description: 'Sufixo visual aplicado somente ao texto exibido pelo renderer de icone.', dependsOn: 'columns[].renderer.icon' },
|
|
61111
61596
|
{ path: 'columns[].renderer.icon.color', category: 'renderer', valueKind: 'string', description: 'Cor do icone.', dependsOn: 'columns[].renderer.icon' },
|
|
61112
61597
|
{ path: 'columns[].renderer.icon.size', category: 'renderer', valueKind: 'number', description: 'Tamanho em px.', dependsOn: 'columns[].renderer.icon' },
|
|
61113
61598
|
{ path: 'columns[].renderer.icon.ariaLabel', category: 'renderer', valueKind: 'string', description: 'Label acessivel do icone.', dependsOn: 'columns[].renderer.icon' },
|
|
@@ -61220,6 +61705,10 @@ const TABLE_AI_CAPABILITIES = {
|
|
|
61220
61705
|
{ path: 'columns[].conditionalRenderers[].renderer.icon', category: 'conditional', valueKind: 'object', description: 'Configuracao de icone condicional.', dependsOn: 'columns[].conditionalRenderers[].renderer.type' },
|
|
61221
61706
|
{ path: 'columns[].conditionalRenderers[].renderer.icon.name', category: 'conditional', valueKind: 'string', description: 'Nome fixo do icone.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61222
61707
|
{ path: 'columns[].conditionalRenderers[].renderer.icon.nameField', category: 'conditional', valueKind: 'string', description: 'Campo com nome do icone.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61708
|
+
{ path: 'columns[].conditionalRenderers[].renderer.icon.text', category: 'conditional', valueKind: 'string', description: 'Texto fixo renderizado junto ao icone condicional.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61709
|
+
{ path: 'columns[].conditionalRenderers[].renderer.icon.textField', category: 'conditional', valueKind: 'string', description: 'Campo de linha usado como texto renderizado junto ao icone condicional.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61710
|
+
{ path: 'columns[].conditionalRenderers[].renderer.icon.prefix', category: 'conditional', valueKind: 'string', description: 'Prefixo visual aplicado somente ao texto exibido pelo renderer de icone condicional.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61711
|
+
{ path: 'columns[].conditionalRenderers[].renderer.icon.suffix', category: 'conditional', valueKind: 'string', description: 'Sufixo visual aplicado somente ao texto exibido pelo renderer de icone condicional.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61223
61712
|
{ path: 'columns[].conditionalRenderers[].renderer.icon.color', category: 'conditional', valueKind: 'string', description: 'Cor do icone.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61224
61713
|
{ path: 'columns[].conditionalRenderers[].renderer.icon.size', category: 'conditional', valueKind: 'number', description: 'Tamanho em px.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
61225
61714
|
{ path: 'columns[].conditionalRenderers[].renderer.icon.ariaLabel', category: 'conditional', valueKind: 'string', description: 'Label acessivel do icone.', dependsOn: 'columns[].conditionalRenderers[].renderer.icon' },
|
|
@@ -61507,6 +61996,7 @@ const TABLE_AI_CAPABILITIES = {
|
|
|
61507
61996
|
{ path: 'toolbar.position', category: 'toolbar', valueKind: 'enum', allowedValues: ENUMS.toolbarPosition, description: 'Posiciona a toolbar.', example: '"top"' },
|
|
61508
61997
|
{ path: 'toolbar.actionsPosition', category: 'toolbar', valueKind: 'enum', allowedValues: ENUMS.toolbarPosition, description: 'Posiciona a barra de ações (top/bottom/both).', intentExamples: ['ações no topo', 'barra de ações embaixo', 'ações em ambas'], example: '"bottom"' },
|
|
61509
61998
|
{ path: 'toolbar.actionsBackgroundColor', category: 'toolbar', valueKind: 'string', description: 'Cor de fundo da barra de ações (token/hex).', intentExamples: ['fundo das ações igual ao header', 'cor da barra de ações do tema', 'background das ações com surface'], example: '"var(--md-sys-color-surface-container)"' },
|
|
61999
|
+
{ path: 'toolbar.appearance.preset', category: 'toolbar', valueKind: 'string', description: 'Preset visual publico registrado para a toolbar. Use "table-integrated" para compor toolbar e tabela como um unico bloco operacional, sem CSS de host mirando classes internas.', intentExamples: ['toolbar integrada à tabela', 'colar barra de filtros na tabela', 'um bloco visual para toolbar e grid'], example: '"table-integrated"', safetyNotes: 'Preset governa somente aparência; ações CRUD continuam materializadas por HATEOAS/capabilities e surface.open.' },
|
|
61510
62000
|
{ path: 'toolbar.appearance.variant', category: 'toolbar', valueKind: 'enum', allowedValues: ENUMS.toolbarAppearanceVariant, description: 'Variante visual canônica da toolbar.', intentExamples: ['toolbar elevada', 'toolbar integrada', 'barra sem borda'], example: '"outlined"' },
|
|
61511
62001
|
{ path: 'toolbar.appearance.density', category: 'toolbar', valueKind: 'enum', allowedValues: ENUMS.toolbarAppearanceDensity, description: 'Densidade visual da toolbar e de seus botões.', intentExamples: ['toolbar compacta', 'ações mais espaçosas'], example: '"compact"' },
|
|
61512
62002
|
{ path: 'toolbar.appearance.shape', category: 'toolbar', valueKind: 'enum', allowedValues: ENUMS.toolbarAppearanceShape, description: 'Forma canônica do container e dos botões da toolbar.', intentExamples: ['barra em pílula', 'botões menos arredondados'], example: '"rounded"' },
|
|
@@ -64066,4 +64556,4 @@ function isSupportedJsonLogicComputedOperator(operator) {
|
|
|
64066
64556
|
* Generated bundle index. Do not edit.
|
|
64067
64557
|
*/
|
|
64068
64558
|
|
|
64069
|
-
export {
|
|
64559
|
+
export { getActionId as $, AnalyticsTableConfigAdapterService as A, BOOLEAN_PRESETS as B, CURRENCY_PRESETS as C, DATE_PRESETS as D, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA as E, FORMULA_TEMPLATES as F, TABLE_COMPONENT_EDIT_PLAN_KIND as G, TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS as H, TABLE_COMPONENT_EDIT_PLAN_VERSION as I, JsonConfigEditorComponent as J, TASK_PRESETS as K, TableDefaultsProvider as L, MessagesLocalizationEditorComponent as M, NUMBER_PRESETS as N, TableRulesEditorComponent as O, PERCENTAGE_PRESETS as P, ToolbarActionsEditorComponent as Q, VisualFormulaBuilderComponent as R, STRING_PRESETS as S, TABLE_AI_CAPABILITIES as T, buildTableApplyPlan as U, ValueMappingEditorComponent as V, coerceTableComponentEditPlan as W, coerceTableComponentEditPlans as X, compileTableComponentEditPlan as Y, compileTableComponentEditPlans as Z, createTableAuthoringDocument as _, AnalyticsTableContractService as a, getEnum as a0, getTableCapabilities as a1, getTableComponentEditPlanCapabilities as a2, isTableRendererSupportedByRichContentP0 as a3, mapTableRendererToRichContentP0 as a4, normalizeTableAuthoringDocument as a5, parseLegacyOrTableDocument as a6, providePraxisFilterMetadata as a7, providePraxisTableMetadata as a8, providePraxisTableToolbarAppearance as a9, serializeTableAuthoringDocument as aa, toCanonicalTableConfig as ab, validateTableAuthoringDocument as ac, AnalyticsTableStatsApiService as b, BehaviorConfigEditorComponent as c, ColumnsConfigEditorComponent as d, DataFormatterComponent as e, DataFormattingService as f, FilterConfigService as g, FilterSettingsComponent as h, FormulaGeneratorService as i, PRAXIS_FILTER_COMPONENT_METADATA as j, PRAXIS_TABLE_AUTHORING_MANIFEST as k, PRAXIS_TABLE_COMPONENT_METADATA as l, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS as m, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE as n, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS as o, PraxisFilter as p, PraxisFilterWidgetConfigEditor as q, PraxisTable as r, PraxisTableConfigEditor as s, PraxisTableInlineAuthoringEditorComponent as t, PraxisTableToolbar as u, PraxisTableWidgetConfigEditor as v, TABLE_COMPONENT_AI_CAPABILITIES as w, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS as x, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND as y, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS as z };
|