orbcafe-ui 1.1.0 → 1.1.1

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/dist/index.d.mts CHANGED
@@ -344,7 +344,7 @@ interface CTableQuickDeleteConfig {
344
344
  onConfirm?: (rows: Record<string, any>[]) => void | Promise<void>;
345
345
  }
346
346
  interface CTableProps {
347
- appId?: string;
347
+ appId: string;
348
348
  title?: string;
349
349
  showToolbar?: boolean;
350
350
  columns: any[];
@@ -452,6 +452,7 @@ interface VariantMetadata {
452
452
  createdAt?: string;
453
453
  filters?: any;
454
454
  layout?: any;
455
+ layoutId?: string;
455
456
  layoutRefs?: any[];
456
457
  scope?: string;
457
458
  appId?: string;
@@ -483,10 +484,10 @@ declare const CVariantManagement: ({ variants, currentVariantId, onLoad, onSave,
483
484
  */
484
485
 
485
486
  interface IVariantService {
486
- getVariants: (appId: string) => Promise<VariantMetadata[]>;
487
- saveVariant: (variant: VariantMetadata, appId: string) => Promise<void>;
487
+ getVariants: (appId: string, tableKey?: string) => Promise<VariantMetadata[]>;
488
+ saveVariant: (variant: VariantMetadata, appId: string, tableKey?: string) => Promise<void>;
488
489
  deleteVariant: (id: string) => Promise<void>;
489
- setDefaultVariant: (id: string, appId: string) => Promise<void>;
490
+ setDefaultVariant: (id: string, appId: string, tableKey?: string) => Promise<void>;
490
491
  }
491
492
  interface CVariantManagerProps {
492
493
  appId: string;
@@ -542,7 +543,7 @@ interface CSmartFilterProps {
542
543
  onVariantSetDefault?: (id: string) => void;
543
544
  onSearch?: () => void;
544
545
  loading?: boolean;
545
- appId?: string;
546
+ appId: string;
546
547
  tableKey?: string;
547
548
  currentLayout?: any;
548
549
  currentLayoutId?: string;
@@ -561,6 +562,12 @@ interface CSmartFilterProps {
561
562
  declare const CSmartFilter: ({ fields, filters, onFilterChange, variants, currentVariantId, onVariantLoad, onVariantSave, onVariantDelete, onVariantSetDefault, onSearch, loading, appId, tableKey, currentLayout, currentLayoutId, layoutRefs, variantService, serviceUrl }: CSmartFilterProps) => react_jsx_runtime.JSX.Element;
562
563
 
563
564
  interface CStandardPageProps {
565
+ /**
566
+ * Unique Identifier for the Page/Report.
567
+ * Used as the `appId` for Variant and Layout persistence.
568
+ * MUST be unique across the system to avoid configuration conflicts.
569
+ */
570
+ id: string;
564
571
  /** Page Title */
565
572
  title: string;
566
573
  /** Whether to hide the top breadcrumb/title header */
@@ -576,8 +583,16 @@ interface CStandardPageProps {
576
583
  * Default: 1 (8px) - Much tighter than default CTable behavior
577
584
  */
578
585
  spacing?: number;
586
+ /**
587
+ * Mode of operation:
588
+ * - 'separated': SmartFilter and CTable are rendered separately (default).
589
+ * Layout variants are applied via prop updates from parent.
590
+ * - 'integrated': SmartFilter is passed into CTable as filterConfig.
591
+ * CTable manages the connection between Filter and Table internally.
592
+ */
593
+ mode?: 'separated' | 'integrated';
579
594
  }
580
- declare const CStandardPage: ({ title, hideHeader, filterConfig, tableProps, children, spacing }: CStandardPageProps) => react_jsx_runtime.JSX.Element;
595
+ declare const CStandardPage: ({ id, title, hideHeader, filterConfig, tableProps, children, spacing, mode }: CStandardPageProps) => react_jsx_runtime.JSX.Element;
581
596
 
582
597
  /**
583
598
  * @file 10_Frontend/components/sap/ui/Common/Structures/CTable.tsx
@@ -766,6 +781,34 @@ declare const useStandardReport: ({ metadata, fetchData, initialRowsPerPage, row
766
781
  refresh: () => void;
767
782
  };
768
783
 
784
+ /**
785
+ * @file 10_Frontend/components/sap/ui/Common/PageComponents/Utils/variantUtils.ts
786
+ * @summary Utility functions for handling Variant schemas and migrations.
787
+ * @author ORBAICODER
788
+ * @date 2026-02-27
789
+ */
790
+
791
+ /**
792
+ * Resolves the filter configuration for a specific table/scope from a variant.
793
+ * Handles both legacy (direct object) and new (scoped array) schemas.
794
+ *
795
+ * @param variant The variant metadata object
796
+ * @param tableKey The key/scope of the table to find filters for
797
+ * @returns The filter configuration object or null if not found
798
+ */
799
+ declare const resolveVariantFilters: (variant: VariantMetadata | null | undefined, tableKey: string) => any;
800
+ /**
801
+ * Resolves the layout configuration or ID for a specific table from a variant.
802
+ *
803
+ * @param variant The variant metadata object
804
+ * @param tableKey The key of the table
805
+ * @returns Object containing { layout: any, layoutId: string | null }
806
+ */
807
+ declare const resolveVariantLayout: (variant: VariantMetadata | null | undefined, tableKey: string) => {
808
+ layout: any;
809
+ layoutId: string | null;
810
+ };
811
+
769
812
  interface CGraphReportProps {
770
813
  open: boolean;
771
814
  onClose: () => void;
@@ -1117,6 +1160,42 @@ declare const en: {
1117
1160
  readonly 'table.group.expandAll': "Expand All Groups";
1118
1161
  readonly 'table.group.collapseAll': "Collapse All Groups";
1119
1162
  readonly 'table.mobile.notImplemented': "Mobile View Not Implemented";
1163
+ readonly 'pivot.title.default': "Pivot Table Builder";
1164
+ readonly 'pivot.subtitle.default': "Drag fields to configure the pivot table.";
1165
+ readonly 'pivot.empty': "Drag at least one field into Values to render the pivot result.";
1166
+ readonly 'pivot.records': "Records";
1167
+ readonly 'pivot.afterFilter': "After filter";
1168
+ readonly 'pivot.grandTotal': "Grand Total";
1169
+ readonly 'pivot.resultLabel': "Result";
1170
+ readonly 'pivot.valueLabel': "Value";
1171
+ readonly 'pivot.table.dimensions': "Dimensions";
1172
+ readonly 'pivot.fieldList': "Field List";
1173
+ readonly 'pivot.availableDimensions': "Available dimensions";
1174
+ readonly 'pivot.allFieldsInUse': "All fields are in use.";
1175
+ readonly 'pivot.zone.rows': "Rows";
1176
+ readonly 'pivot.zone.columns': "Columns";
1177
+ readonly 'pivot.zone.filters': "Filters";
1178
+ readonly 'pivot.zone.values': "Values";
1179
+ readonly 'pivot.hint.rows': "Drag fields here to build row hierarchy";
1180
+ readonly 'pivot.hint.columns': "Drag fields here to build column hierarchy";
1181
+ readonly 'pivot.hint.filters': "Drag fields here for report filters";
1182
+ readonly 'pivot.hint.values': "Drag numeric fields here for aggregation";
1183
+ readonly 'pivot.clearArea': "Clear area";
1184
+ readonly 'pivot.filter.na': "N/A";
1185
+ readonly 'pivot.filter.noValues': "No values";
1186
+ readonly 'pivot.filter.noneSelected': "None selected";
1187
+ readonly 'pivot.filter.allValues': "All values";
1188
+ readonly 'pivot.filter.selectedCount': "{selected} / {total} selected";
1189
+ readonly 'pivot.filter.selectAll': "Select All";
1190
+ readonly 'pivot.filter.deselectAll': "Deselect All";
1191
+ readonly 'pivot.filter.noResults': "No results";
1192
+ readonly 'pivot.collapse.ariaExpand': "Expand configuration area";
1193
+ readonly 'pivot.collapse.ariaCollapse': "Collapse configuration area";
1194
+ readonly 'pivot.agg.sum': "Sum";
1195
+ readonly 'pivot.agg.count': "Count";
1196
+ readonly 'pivot.agg.avg': "Average";
1197
+ readonly 'pivot.agg.min': "Min";
1198
+ readonly 'pivot.agg.max': "Max";
1120
1199
  readonly 'smartFilter.adaptFilters': "Adapt Filters";
1121
1200
  readonly 'smartFilter.addFilters': "Add Filters";
1122
1201
  readonly 'smartFilter.go': "Go";
@@ -1296,6 +1375,86 @@ declare const usePageLayout: ({ menuData, initialNavigationCollapsed, }?: UsePag
1296
1375
  navigationMaxHeight: number;
1297
1376
  };
1298
1377
 
1378
+ type PivotAggregation = 'sum' | 'count' | 'avg' | 'min' | 'max';
1379
+ type PivotFieldType = 'string' | 'number' | 'date' | 'boolean';
1380
+ interface PivotFieldDefinition {
1381
+ id: string;
1382
+ label: string;
1383
+ type?: PivotFieldType;
1384
+ aggregations?: PivotAggregation[];
1385
+ formatValue?: (value: number) => string;
1386
+ }
1387
+ interface PivotValueFieldConfig {
1388
+ fieldId: string;
1389
+ aggregation?: PivotAggregation;
1390
+ }
1391
+ interface PivotValueFieldState {
1392
+ tokenId: string;
1393
+ fieldId: string;
1394
+ aggregation: PivotAggregation;
1395
+ }
1396
+ interface PivotLayoutConfig {
1397
+ rows?: string[];
1398
+ columns?: string[];
1399
+ filters?: string[];
1400
+ values?: PivotValueFieldConfig[];
1401
+ }
1402
+ type PivotFilterSelections = Record<string, string[]>;
1403
+ interface PivotTableModel {
1404
+ rowFields: string[];
1405
+ setRowFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
1406
+ columnFields: string[];
1407
+ setColumnFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
1408
+ filterFields: string[];
1409
+ setFilterFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
1410
+ valueFields: PivotValueFieldState[];
1411
+ setValueFields: React__default.Dispatch<React__default.SetStateAction<PivotValueFieldState[]>>;
1412
+ filterSelections: PivotFilterSelections;
1413
+ setFilterSelections: React__default.Dispatch<React__default.SetStateAction<PivotFilterSelections>>;
1414
+ showGrandTotal: boolean;
1415
+ setShowGrandTotal: React__default.Dispatch<React__default.SetStateAction<boolean>>;
1416
+ isConfiguratorCollapsed: boolean;
1417
+ setIsConfiguratorCollapsed: React__default.Dispatch<React__default.SetStateAction<boolean>>;
1418
+ }
1419
+ interface CPivotTableProps {
1420
+ title?: string;
1421
+ rows: Record<string, unknown>[];
1422
+ fields: PivotFieldDefinition[];
1423
+ initialLayout?: PivotLayoutConfig;
1424
+ emptyText?: string;
1425
+ maxPreviewHeight?: number | string;
1426
+ model?: PivotTableModel;
1427
+ }
1428
+
1429
+ declare const CPivotTable: React__default.FC<CPivotTableProps>;
1430
+
1431
+ interface UsePivotTableOptions {
1432
+ fields: PivotFieldDefinition[];
1433
+ initialLayout?: PivotLayoutConfig;
1434
+ initialFilterSelections?: PivotFilterSelections;
1435
+ initialShowGrandTotal?: boolean;
1436
+ initialConfiguratorCollapsed?: boolean;
1437
+ }
1438
+ interface UsePivotTableActions {
1439
+ setRows: (rows: string[]) => void;
1440
+ setColumns: (columns: string[]) => void;
1441
+ setFilters: (filters: string[]) => void;
1442
+ setValues: (values: PivotValueFieldConfig[]) => void;
1443
+ setLayout: (layout: PivotLayoutConfig) => void;
1444
+ clearZone: (zone: 'rows' | 'columns' | 'filters' | 'values') => void;
1445
+ removeFieldFromZone: (zone: 'rows' | 'columns' | 'filters' | 'values', key: string) => void;
1446
+ setAggregationForValue: (tokenId: string, aggregation: PivotAggregation) => void;
1447
+ setFilterSelection: (fieldId: string, values: string[]) => void;
1448
+ resetFilterSelections: () => void;
1449
+ toggleGrandTotal: () => void;
1450
+ toggleConfigurator: () => void;
1451
+ }
1452
+ interface UsePivotTableResult {
1453
+ model: PivotTableModel;
1454
+ actions: UsePivotTableActions;
1455
+ }
1456
+ declare const usePivotTable: ({ fields, initialLayout, initialFilterSelections, initialShowGrandTotal, initialConfiguratorCollapsed, }: UsePivotTableOptions) => UsePivotTableResult;
1457
+
1299
1458
  interface MarkdownRendererProps {
1300
1459
  markdown?: string;
1301
1460
  content?: string;
@@ -1390,4 +1549,4 @@ declare const PAGE_TRANSITION_PRESETS: {
1390
1549
  };
1391
1550
  };
1392
1551
 
1393
- export { type AmapEmbedOptions, Button, type ButtonProps, CAmapChart, type CAmapChartProps, CAppHeader, type CAppHeaderProps, type CAppHeaderUser, type CAppHeaderUserMenuItem, CAppPageLayout, type CAppPageLayoutProps, CBarChart, type CBarChartProps, CChartCard, type CChartCardProps, CComboChart, type CComboChartProps, CCustomizeAgent, type CCustomizeAgentProps, CDetailInfoPage, type CDetailInfoPageProps, CDetailSearchAiBar, type CDetailSearchAiBarProps, CDetailSectionCard, type CDetailSectionCardProps, CFishboneChart, type CFishboneChartProps, CGoogleMapChart, type CGoogleMapChartProps, CGraphCharts, CGraphKpiCards, CGraphReport, type CGraphReportProps, CHeatmapChart, type CHeatmapChartProps, CLayoutManagement, type CLayoutManagementProps, CLayoutManager, type CLayoutManagerProps, CLineChart, type CLineChartProps, CMessageBox, type CMessageBoxProps, type CMessageBoxType, CPageLayout, type CPageLayoutProps, CPageTransition, type CPageTransitionProps, CPieChart, type CPieChartProps, CSmartFilter, type CSmartFilterProps, CSmartTable, CStandardPage, type CStandardPageProps, CTable, CTableBody, type CTableBodyProps, CTableCell, type CTableCellProps, CTableContainer, type CTableContainerProps, CTableHead, type CTableHeadProps, type CTableProps, type CTableQuickCreateConfig, type CTableQuickDeleteConfig, type CTableQuickEditConfig, CTableRow, type CTableRowProps, CVariantManagement, type CVariantManagementProps, CVariantManager, CWaterfallChart, type CWaterfallChartProps, CodeBlock, type CodeBlockProps, type CustomizeAgentSavePayload, type CustomizeAgentSettings, type CustomizeAgentTemplateOption, type DateOperator, type DetailInfoAiConfig, type DetailInfoField, type DetailInfoSearchHit, type DetailInfoSearchMode, type DetailInfoSection, type DetailInfoTab, type DetailInfoTableConfig, type FilterField, type FilterOperator, type FilterType, type FilterValue, GlobalMessage, type GoogleMapEmbedOptions, type GraphBarDatum, type GraphComboDatum, type GraphFishboneBranch, type GraphHeatmapDatum, type GraphLineDatum, type GraphMapLocation, type GraphPieDatum, type GraphReportConfig, type GraphReportFieldMapping, type GraphReportInteractionState, type GraphReportKpis, type GraphReportModel, type GraphRow, type GraphTableColumn, type GraphWaterfallDatum, type IVariantService, type LayoutMetadata, MarkdownRenderer, type MarkdownRendererProps, MathBlock, type MathBlockProps, MermaidBlock, type MermaidBlockProps, type MessageContent, type MessageEvent, type MessageOptions, NavigationIsland, type NavigationIslandProps, type NumberOperator, ORBCAFE_I18N_MESSAGES, type OrbcafeI18nContextValue, OrbcafeI18nProvider, type OrbcafeI18nProviderProps, type OrbcafeLocale, type OrbcafeLocaleMessages, type OrbcafeMessageKey, type OrbcafeMessageParams, PAGE_TRANSITION_PRESETS, type PageTransitionVariant, type ParsedMarkdownTable, type ReportColumn, type ReportFilter, type ReportMetadata, type SelectOperator, type TableAlign, TableBlock, type TableBlockProps, type TextOperator, ThinkBlock, type ThinkBlockProps, TreeMenu, type TreeMenuItem, type UseAmapEmbedUrlOptions, type UseDetailInfoOptions, type UseDetailInfoResult, type UseGoogleMapEmbedUrlOptions, type UseGraphChartDataOptions, type UseGraphChartDataResult, type UseGraphInteractionResult, type UseGraphReportOptions, type UseGraphReportResult, type UseNavigationIslandOptions, type UseNavigationIslandResult, type UsePageLayoutOptions, type UseStandardReportOptions, type VariantMetadata, buildAmapEmbedUrl, buildGoogleMapEmbedUrl, buildGoogleMapIframe, buttonVariants, message, messageManager, parseMarkdownTable, renderMarkdown, useAmapEmbedUrl, useDetailInfo, useGoogleMapEmbedUrl, useGraphChartData, useGraphInteraction, useGraphReport, useNavigationIsland, useOrbcafeI18n, usePageLayout, useStandardReport };
1552
+ export { type AmapEmbedOptions, Button, type ButtonProps, CAmapChart, type CAmapChartProps, CAppHeader, type CAppHeaderProps, type CAppHeaderUser, type CAppHeaderUserMenuItem, CAppPageLayout, type CAppPageLayoutProps, CBarChart, type CBarChartProps, CChartCard, type CChartCardProps, CComboChart, type CComboChartProps, CCustomizeAgent, type CCustomizeAgentProps, CDetailInfoPage, type CDetailInfoPageProps, CDetailSearchAiBar, type CDetailSearchAiBarProps, CDetailSectionCard, type CDetailSectionCardProps, CFishboneChart, type CFishboneChartProps, CGoogleMapChart, type CGoogleMapChartProps, CGraphCharts, CGraphKpiCards, CGraphReport, type CGraphReportProps, CHeatmapChart, type CHeatmapChartProps, CLayoutManagement, type CLayoutManagementProps, CLayoutManager, type CLayoutManagerProps, CLineChart, type CLineChartProps, CMessageBox, type CMessageBoxProps, type CMessageBoxType, CPageLayout, type CPageLayoutProps, CPageTransition, type CPageTransitionProps, CPieChart, type CPieChartProps, CPivotTable, type CPivotTableProps, CSmartFilter, type CSmartFilterProps, CSmartTable, CStandardPage, type CStandardPageProps, CTable, CTableBody, type CTableBodyProps, CTableCell, type CTableCellProps, CTableContainer, type CTableContainerProps, CTableHead, type CTableHeadProps, type CTableProps, type CTableQuickCreateConfig, type CTableQuickDeleteConfig, type CTableQuickEditConfig, CTableRow, type CTableRowProps, CVariantManagement, type CVariantManagementProps, CVariantManager, CWaterfallChart, type CWaterfallChartProps, CodeBlock, type CodeBlockProps, type CustomizeAgentSavePayload, type CustomizeAgentSettings, type CustomizeAgentTemplateOption, type DateOperator, type DetailInfoAiConfig, type DetailInfoField, type DetailInfoSearchHit, type DetailInfoSearchMode, type DetailInfoSection, type DetailInfoTab, type DetailInfoTableConfig, type FilterField, type FilterOperator, type FilterType, type FilterValue, GlobalMessage, type GoogleMapEmbedOptions, type GraphBarDatum, type GraphComboDatum, type GraphFishboneBranch, type GraphHeatmapDatum, type GraphLineDatum, type GraphMapLocation, type GraphPieDatum, type GraphReportConfig, type GraphReportFieldMapping, type GraphReportInteractionState, type GraphReportKpis, type GraphReportModel, type GraphRow, type GraphTableColumn, type GraphWaterfallDatum, type IVariantService, type LayoutMetadata, MarkdownRenderer, type MarkdownRendererProps, MathBlock, type MathBlockProps, MermaidBlock, type MermaidBlockProps, type MessageContent, type MessageEvent, type MessageOptions, NavigationIsland, type NavigationIslandProps, type NumberOperator, ORBCAFE_I18N_MESSAGES, type OrbcafeI18nContextValue, OrbcafeI18nProvider, type OrbcafeI18nProviderProps, type OrbcafeLocale, type OrbcafeLocaleMessages, type OrbcafeMessageKey, type OrbcafeMessageParams, PAGE_TRANSITION_PRESETS, type PageTransitionVariant, type ParsedMarkdownTable, type PivotAggregation, type PivotFieldDefinition, type PivotFieldType, type PivotFilterSelections, type PivotLayoutConfig, type PivotTableModel, type PivotValueFieldConfig, type PivotValueFieldState, type ReportColumn, type ReportFilter, type ReportMetadata, type SelectOperator, type TableAlign, TableBlock, type TableBlockProps, type TextOperator, ThinkBlock, type ThinkBlockProps, TreeMenu, type TreeMenuItem, type UseAmapEmbedUrlOptions, type UseDetailInfoOptions, type UseDetailInfoResult, type UseGoogleMapEmbedUrlOptions, type UseGraphChartDataOptions, type UseGraphChartDataResult, type UseGraphInteractionResult, type UseGraphReportOptions, type UseGraphReportResult, type UseNavigationIslandOptions, type UseNavigationIslandResult, type UsePageLayoutOptions, type UsePivotTableOptions, type UsePivotTableResult, type UseStandardReportOptions, type VariantMetadata, buildAmapEmbedUrl, buildGoogleMapEmbedUrl, buildGoogleMapIframe, buttonVariants, message, messageManager, parseMarkdownTable, renderMarkdown, resolveVariantFilters, resolveVariantLayout, useAmapEmbedUrl, useDetailInfo, useGoogleMapEmbedUrl, useGraphChartData, useGraphInteraction, useGraphReport, useNavigationIsland, useOrbcafeI18n, usePageLayout, usePivotTable, useStandardReport };
package/dist/index.d.ts CHANGED
@@ -344,7 +344,7 @@ interface CTableQuickDeleteConfig {
344
344
  onConfirm?: (rows: Record<string, any>[]) => void | Promise<void>;
345
345
  }
346
346
  interface CTableProps {
347
- appId?: string;
347
+ appId: string;
348
348
  title?: string;
349
349
  showToolbar?: boolean;
350
350
  columns: any[];
@@ -452,6 +452,7 @@ interface VariantMetadata {
452
452
  createdAt?: string;
453
453
  filters?: any;
454
454
  layout?: any;
455
+ layoutId?: string;
455
456
  layoutRefs?: any[];
456
457
  scope?: string;
457
458
  appId?: string;
@@ -483,10 +484,10 @@ declare const CVariantManagement: ({ variants, currentVariantId, onLoad, onSave,
483
484
  */
484
485
 
485
486
  interface IVariantService {
486
- getVariants: (appId: string) => Promise<VariantMetadata[]>;
487
- saveVariant: (variant: VariantMetadata, appId: string) => Promise<void>;
487
+ getVariants: (appId: string, tableKey?: string) => Promise<VariantMetadata[]>;
488
+ saveVariant: (variant: VariantMetadata, appId: string, tableKey?: string) => Promise<void>;
488
489
  deleteVariant: (id: string) => Promise<void>;
489
- setDefaultVariant: (id: string, appId: string) => Promise<void>;
490
+ setDefaultVariant: (id: string, appId: string, tableKey?: string) => Promise<void>;
490
491
  }
491
492
  interface CVariantManagerProps {
492
493
  appId: string;
@@ -542,7 +543,7 @@ interface CSmartFilterProps {
542
543
  onVariantSetDefault?: (id: string) => void;
543
544
  onSearch?: () => void;
544
545
  loading?: boolean;
545
- appId?: string;
546
+ appId: string;
546
547
  tableKey?: string;
547
548
  currentLayout?: any;
548
549
  currentLayoutId?: string;
@@ -561,6 +562,12 @@ interface CSmartFilterProps {
561
562
  declare const CSmartFilter: ({ fields, filters, onFilterChange, variants, currentVariantId, onVariantLoad, onVariantSave, onVariantDelete, onVariantSetDefault, onSearch, loading, appId, tableKey, currentLayout, currentLayoutId, layoutRefs, variantService, serviceUrl }: CSmartFilterProps) => react_jsx_runtime.JSX.Element;
562
563
 
563
564
  interface CStandardPageProps {
565
+ /**
566
+ * Unique Identifier for the Page/Report.
567
+ * Used as the `appId` for Variant and Layout persistence.
568
+ * MUST be unique across the system to avoid configuration conflicts.
569
+ */
570
+ id: string;
564
571
  /** Page Title */
565
572
  title: string;
566
573
  /** Whether to hide the top breadcrumb/title header */
@@ -576,8 +583,16 @@ interface CStandardPageProps {
576
583
  * Default: 1 (8px) - Much tighter than default CTable behavior
577
584
  */
578
585
  spacing?: number;
586
+ /**
587
+ * Mode of operation:
588
+ * - 'separated': SmartFilter and CTable are rendered separately (default).
589
+ * Layout variants are applied via prop updates from parent.
590
+ * - 'integrated': SmartFilter is passed into CTable as filterConfig.
591
+ * CTable manages the connection between Filter and Table internally.
592
+ */
593
+ mode?: 'separated' | 'integrated';
579
594
  }
580
- declare const CStandardPage: ({ title, hideHeader, filterConfig, tableProps, children, spacing }: CStandardPageProps) => react_jsx_runtime.JSX.Element;
595
+ declare const CStandardPage: ({ id, title, hideHeader, filterConfig, tableProps, children, spacing, mode }: CStandardPageProps) => react_jsx_runtime.JSX.Element;
581
596
 
582
597
  /**
583
598
  * @file 10_Frontend/components/sap/ui/Common/Structures/CTable.tsx
@@ -766,6 +781,34 @@ declare const useStandardReport: ({ metadata, fetchData, initialRowsPerPage, row
766
781
  refresh: () => void;
767
782
  };
768
783
 
784
+ /**
785
+ * @file 10_Frontend/components/sap/ui/Common/PageComponents/Utils/variantUtils.ts
786
+ * @summary Utility functions for handling Variant schemas and migrations.
787
+ * @author ORBAICODER
788
+ * @date 2026-02-27
789
+ */
790
+
791
+ /**
792
+ * Resolves the filter configuration for a specific table/scope from a variant.
793
+ * Handles both legacy (direct object) and new (scoped array) schemas.
794
+ *
795
+ * @param variant The variant metadata object
796
+ * @param tableKey The key/scope of the table to find filters for
797
+ * @returns The filter configuration object or null if not found
798
+ */
799
+ declare const resolveVariantFilters: (variant: VariantMetadata | null | undefined, tableKey: string) => any;
800
+ /**
801
+ * Resolves the layout configuration or ID for a specific table from a variant.
802
+ *
803
+ * @param variant The variant metadata object
804
+ * @param tableKey The key of the table
805
+ * @returns Object containing { layout: any, layoutId: string | null }
806
+ */
807
+ declare const resolveVariantLayout: (variant: VariantMetadata | null | undefined, tableKey: string) => {
808
+ layout: any;
809
+ layoutId: string | null;
810
+ };
811
+
769
812
  interface CGraphReportProps {
770
813
  open: boolean;
771
814
  onClose: () => void;
@@ -1117,6 +1160,42 @@ declare const en: {
1117
1160
  readonly 'table.group.expandAll': "Expand All Groups";
1118
1161
  readonly 'table.group.collapseAll': "Collapse All Groups";
1119
1162
  readonly 'table.mobile.notImplemented': "Mobile View Not Implemented";
1163
+ readonly 'pivot.title.default': "Pivot Table Builder";
1164
+ readonly 'pivot.subtitle.default': "Drag fields to configure the pivot table.";
1165
+ readonly 'pivot.empty': "Drag at least one field into Values to render the pivot result.";
1166
+ readonly 'pivot.records': "Records";
1167
+ readonly 'pivot.afterFilter': "After filter";
1168
+ readonly 'pivot.grandTotal': "Grand Total";
1169
+ readonly 'pivot.resultLabel': "Result";
1170
+ readonly 'pivot.valueLabel': "Value";
1171
+ readonly 'pivot.table.dimensions': "Dimensions";
1172
+ readonly 'pivot.fieldList': "Field List";
1173
+ readonly 'pivot.availableDimensions': "Available dimensions";
1174
+ readonly 'pivot.allFieldsInUse': "All fields are in use.";
1175
+ readonly 'pivot.zone.rows': "Rows";
1176
+ readonly 'pivot.zone.columns': "Columns";
1177
+ readonly 'pivot.zone.filters': "Filters";
1178
+ readonly 'pivot.zone.values': "Values";
1179
+ readonly 'pivot.hint.rows': "Drag fields here to build row hierarchy";
1180
+ readonly 'pivot.hint.columns': "Drag fields here to build column hierarchy";
1181
+ readonly 'pivot.hint.filters': "Drag fields here for report filters";
1182
+ readonly 'pivot.hint.values': "Drag numeric fields here for aggregation";
1183
+ readonly 'pivot.clearArea': "Clear area";
1184
+ readonly 'pivot.filter.na': "N/A";
1185
+ readonly 'pivot.filter.noValues': "No values";
1186
+ readonly 'pivot.filter.noneSelected': "None selected";
1187
+ readonly 'pivot.filter.allValues': "All values";
1188
+ readonly 'pivot.filter.selectedCount': "{selected} / {total} selected";
1189
+ readonly 'pivot.filter.selectAll': "Select All";
1190
+ readonly 'pivot.filter.deselectAll': "Deselect All";
1191
+ readonly 'pivot.filter.noResults': "No results";
1192
+ readonly 'pivot.collapse.ariaExpand': "Expand configuration area";
1193
+ readonly 'pivot.collapse.ariaCollapse': "Collapse configuration area";
1194
+ readonly 'pivot.agg.sum': "Sum";
1195
+ readonly 'pivot.agg.count': "Count";
1196
+ readonly 'pivot.agg.avg': "Average";
1197
+ readonly 'pivot.agg.min': "Min";
1198
+ readonly 'pivot.agg.max': "Max";
1120
1199
  readonly 'smartFilter.adaptFilters': "Adapt Filters";
1121
1200
  readonly 'smartFilter.addFilters': "Add Filters";
1122
1201
  readonly 'smartFilter.go': "Go";
@@ -1296,6 +1375,86 @@ declare const usePageLayout: ({ menuData, initialNavigationCollapsed, }?: UsePag
1296
1375
  navigationMaxHeight: number;
1297
1376
  };
1298
1377
 
1378
+ type PivotAggregation = 'sum' | 'count' | 'avg' | 'min' | 'max';
1379
+ type PivotFieldType = 'string' | 'number' | 'date' | 'boolean';
1380
+ interface PivotFieldDefinition {
1381
+ id: string;
1382
+ label: string;
1383
+ type?: PivotFieldType;
1384
+ aggregations?: PivotAggregation[];
1385
+ formatValue?: (value: number) => string;
1386
+ }
1387
+ interface PivotValueFieldConfig {
1388
+ fieldId: string;
1389
+ aggregation?: PivotAggregation;
1390
+ }
1391
+ interface PivotValueFieldState {
1392
+ tokenId: string;
1393
+ fieldId: string;
1394
+ aggregation: PivotAggregation;
1395
+ }
1396
+ interface PivotLayoutConfig {
1397
+ rows?: string[];
1398
+ columns?: string[];
1399
+ filters?: string[];
1400
+ values?: PivotValueFieldConfig[];
1401
+ }
1402
+ type PivotFilterSelections = Record<string, string[]>;
1403
+ interface PivotTableModel {
1404
+ rowFields: string[];
1405
+ setRowFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
1406
+ columnFields: string[];
1407
+ setColumnFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
1408
+ filterFields: string[];
1409
+ setFilterFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
1410
+ valueFields: PivotValueFieldState[];
1411
+ setValueFields: React__default.Dispatch<React__default.SetStateAction<PivotValueFieldState[]>>;
1412
+ filterSelections: PivotFilterSelections;
1413
+ setFilterSelections: React__default.Dispatch<React__default.SetStateAction<PivotFilterSelections>>;
1414
+ showGrandTotal: boolean;
1415
+ setShowGrandTotal: React__default.Dispatch<React__default.SetStateAction<boolean>>;
1416
+ isConfiguratorCollapsed: boolean;
1417
+ setIsConfiguratorCollapsed: React__default.Dispatch<React__default.SetStateAction<boolean>>;
1418
+ }
1419
+ interface CPivotTableProps {
1420
+ title?: string;
1421
+ rows: Record<string, unknown>[];
1422
+ fields: PivotFieldDefinition[];
1423
+ initialLayout?: PivotLayoutConfig;
1424
+ emptyText?: string;
1425
+ maxPreviewHeight?: number | string;
1426
+ model?: PivotTableModel;
1427
+ }
1428
+
1429
+ declare const CPivotTable: React__default.FC<CPivotTableProps>;
1430
+
1431
+ interface UsePivotTableOptions {
1432
+ fields: PivotFieldDefinition[];
1433
+ initialLayout?: PivotLayoutConfig;
1434
+ initialFilterSelections?: PivotFilterSelections;
1435
+ initialShowGrandTotal?: boolean;
1436
+ initialConfiguratorCollapsed?: boolean;
1437
+ }
1438
+ interface UsePivotTableActions {
1439
+ setRows: (rows: string[]) => void;
1440
+ setColumns: (columns: string[]) => void;
1441
+ setFilters: (filters: string[]) => void;
1442
+ setValues: (values: PivotValueFieldConfig[]) => void;
1443
+ setLayout: (layout: PivotLayoutConfig) => void;
1444
+ clearZone: (zone: 'rows' | 'columns' | 'filters' | 'values') => void;
1445
+ removeFieldFromZone: (zone: 'rows' | 'columns' | 'filters' | 'values', key: string) => void;
1446
+ setAggregationForValue: (tokenId: string, aggregation: PivotAggregation) => void;
1447
+ setFilterSelection: (fieldId: string, values: string[]) => void;
1448
+ resetFilterSelections: () => void;
1449
+ toggleGrandTotal: () => void;
1450
+ toggleConfigurator: () => void;
1451
+ }
1452
+ interface UsePivotTableResult {
1453
+ model: PivotTableModel;
1454
+ actions: UsePivotTableActions;
1455
+ }
1456
+ declare const usePivotTable: ({ fields, initialLayout, initialFilterSelections, initialShowGrandTotal, initialConfiguratorCollapsed, }: UsePivotTableOptions) => UsePivotTableResult;
1457
+
1299
1458
  interface MarkdownRendererProps {
1300
1459
  markdown?: string;
1301
1460
  content?: string;
@@ -1390,4 +1549,4 @@ declare const PAGE_TRANSITION_PRESETS: {
1390
1549
  };
1391
1550
  };
1392
1551
 
1393
- export { type AmapEmbedOptions, Button, type ButtonProps, CAmapChart, type CAmapChartProps, CAppHeader, type CAppHeaderProps, type CAppHeaderUser, type CAppHeaderUserMenuItem, CAppPageLayout, type CAppPageLayoutProps, CBarChart, type CBarChartProps, CChartCard, type CChartCardProps, CComboChart, type CComboChartProps, CCustomizeAgent, type CCustomizeAgentProps, CDetailInfoPage, type CDetailInfoPageProps, CDetailSearchAiBar, type CDetailSearchAiBarProps, CDetailSectionCard, type CDetailSectionCardProps, CFishboneChart, type CFishboneChartProps, CGoogleMapChart, type CGoogleMapChartProps, CGraphCharts, CGraphKpiCards, CGraphReport, type CGraphReportProps, CHeatmapChart, type CHeatmapChartProps, CLayoutManagement, type CLayoutManagementProps, CLayoutManager, type CLayoutManagerProps, CLineChart, type CLineChartProps, CMessageBox, type CMessageBoxProps, type CMessageBoxType, CPageLayout, type CPageLayoutProps, CPageTransition, type CPageTransitionProps, CPieChart, type CPieChartProps, CSmartFilter, type CSmartFilterProps, CSmartTable, CStandardPage, type CStandardPageProps, CTable, CTableBody, type CTableBodyProps, CTableCell, type CTableCellProps, CTableContainer, type CTableContainerProps, CTableHead, type CTableHeadProps, type CTableProps, type CTableQuickCreateConfig, type CTableQuickDeleteConfig, type CTableQuickEditConfig, CTableRow, type CTableRowProps, CVariantManagement, type CVariantManagementProps, CVariantManager, CWaterfallChart, type CWaterfallChartProps, CodeBlock, type CodeBlockProps, type CustomizeAgentSavePayload, type CustomizeAgentSettings, type CustomizeAgentTemplateOption, type DateOperator, type DetailInfoAiConfig, type DetailInfoField, type DetailInfoSearchHit, type DetailInfoSearchMode, type DetailInfoSection, type DetailInfoTab, type DetailInfoTableConfig, type FilterField, type FilterOperator, type FilterType, type FilterValue, GlobalMessage, type GoogleMapEmbedOptions, type GraphBarDatum, type GraphComboDatum, type GraphFishboneBranch, type GraphHeatmapDatum, type GraphLineDatum, type GraphMapLocation, type GraphPieDatum, type GraphReportConfig, type GraphReportFieldMapping, type GraphReportInteractionState, type GraphReportKpis, type GraphReportModel, type GraphRow, type GraphTableColumn, type GraphWaterfallDatum, type IVariantService, type LayoutMetadata, MarkdownRenderer, type MarkdownRendererProps, MathBlock, type MathBlockProps, MermaidBlock, type MermaidBlockProps, type MessageContent, type MessageEvent, type MessageOptions, NavigationIsland, type NavigationIslandProps, type NumberOperator, ORBCAFE_I18N_MESSAGES, type OrbcafeI18nContextValue, OrbcafeI18nProvider, type OrbcafeI18nProviderProps, type OrbcafeLocale, type OrbcafeLocaleMessages, type OrbcafeMessageKey, type OrbcafeMessageParams, PAGE_TRANSITION_PRESETS, type PageTransitionVariant, type ParsedMarkdownTable, type ReportColumn, type ReportFilter, type ReportMetadata, type SelectOperator, type TableAlign, TableBlock, type TableBlockProps, type TextOperator, ThinkBlock, type ThinkBlockProps, TreeMenu, type TreeMenuItem, type UseAmapEmbedUrlOptions, type UseDetailInfoOptions, type UseDetailInfoResult, type UseGoogleMapEmbedUrlOptions, type UseGraphChartDataOptions, type UseGraphChartDataResult, type UseGraphInteractionResult, type UseGraphReportOptions, type UseGraphReportResult, type UseNavigationIslandOptions, type UseNavigationIslandResult, type UsePageLayoutOptions, type UseStandardReportOptions, type VariantMetadata, buildAmapEmbedUrl, buildGoogleMapEmbedUrl, buildGoogleMapIframe, buttonVariants, message, messageManager, parseMarkdownTable, renderMarkdown, useAmapEmbedUrl, useDetailInfo, useGoogleMapEmbedUrl, useGraphChartData, useGraphInteraction, useGraphReport, useNavigationIsland, useOrbcafeI18n, usePageLayout, useStandardReport };
1552
+ export { type AmapEmbedOptions, Button, type ButtonProps, CAmapChart, type CAmapChartProps, CAppHeader, type CAppHeaderProps, type CAppHeaderUser, type CAppHeaderUserMenuItem, CAppPageLayout, type CAppPageLayoutProps, CBarChart, type CBarChartProps, CChartCard, type CChartCardProps, CComboChart, type CComboChartProps, CCustomizeAgent, type CCustomizeAgentProps, CDetailInfoPage, type CDetailInfoPageProps, CDetailSearchAiBar, type CDetailSearchAiBarProps, CDetailSectionCard, type CDetailSectionCardProps, CFishboneChart, type CFishboneChartProps, CGoogleMapChart, type CGoogleMapChartProps, CGraphCharts, CGraphKpiCards, CGraphReport, type CGraphReportProps, CHeatmapChart, type CHeatmapChartProps, CLayoutManagement, type CLayoutManagementProps, CLayoutManager, type CLayoutManagerProps, CLineChart, type CLineChartProps, CMessageBox, type CMessageBoxProps, type CMessageBoxType, CPageLayout, type CPageLayoutProps, CPageTransition, type CPageTransitionProps, CPieChart, type CPieChartProps, CPivotTable, type CPivotTableProps, CSmartFilter, type CSmartFilterProps, CSmartTable, CStandardPage, type CStandardPageProps, CTable, CTableBody, type CTableBodyProps, CTableCell, type CTableCellProps, CTableContainer, type CTableContainerProps, CTableHead, type CTableHeadProps, type CTableProps, type CTableQuickCreateConfig, type CTableQuickDeleteConfig, type CTableQuickEditConfig, CTableRow, type CTableRowProps, CVariantManagement, type CVariantManagementProps, CVariantManager, CWaterfallChart, type CWaterfallChartProps, CodeBlock, type CodeBlockProps, type CustomizeAgentSavePayload, type CustomizeAgentSettings, type CustomizeAgentTemplateOption, type DateOperator, type DetailInfoAiConfig, type DetailInfoField, type DetailInfoSearchHit, type DetailInfoSearchMode, type DetailInfoSection, type DetailInfoTab, type DetailInfoTableConfig, type FilterField, type FilterOperator, type FilterType, type FilterValue, GlobalMessage, type GoogleMapEmbedOptions, type GraphBarDatum, type GraphComboDatum, type GraphFishboneBranch, type GraphHeatmapDatum, type GraphLineDatum, type GraphMapLocation, type GraphPieDatum, type GraphReportConfig, type GraphReportFieldMapping, type GraphReportInteractionState, type GraphReportKpis, type GraphReportModel, type GraphRow, type GraphTableColumn, type GraphWaterfallDatum, type IVariantService, type LayoutMetadata, MarkdownRenderer, type MarkdownRendererProps, MathBlock, type MathBlockProps, MermaidBlock, type MermaidBlockProps, type MessageContent, type MessageEvent, type MessageOptions, NavigationIsland, type NavigationIslandProps, type NumberOperator, ORBCAFE_I18N_MESSAGES, type OrbcafeI18nContextValue, OrbcafeI18nProvider, type OrbcafeI18nProviderProps, type OrbcafeLocale, type OrbcafeLocaleMessages, type OrbcafeMessageKey, type OrbcafeMessageParams, PAGE_TRANSITION_PRESETS, type PageTransitionVariant, type ParsedMarkdownTable, type PivotAggregation, type PivotFieldDefinition, type PivotFieldType, type PivotFilterSelections, type PivotLayoutConfig, type PivotTableModel, type PivotValueFieldConfig, type PivotValueFieldState, type ReportColumn, type ReportFilter, type ReportMetadata, type SelectOperator, type TableAlign, TableBlock, type TableBlockProps, type TextOperator, ThinkBlock, type ThinkBlockProps, TreeMenu, type TreeMenuItem, type UseAmapEmbedUrlOptions, type UseDetailInfoOptions, type UseDetailInfoResult, type UseGoogleMapEmbedUrlOptions, type UseGraphChartDataOptions, type UseGraphChartDataResult, type UseGraphInteractionResult, type UseGraphReportOptions, type UseGraphReportResult, type UseNavigationIslandOptions, type UseNavigationIslandResult, type UsePageLayoutOptions, type UsePivotTableOptions, type UsePivotTableResult, type UseStandardReportOptions, type VariantMetadata, buildAmapEmbedUrl, buildGoogleMapEmbedUrl, buildGoogleMapIframe, buttonVariants, message, messageManager, parseMarkdownTable, renderMarkdown, resolveVariantFilters, resolveVariantLayout, useAmapEmbedUrl, useDetailInfo, useGoogleMapEmbedUrl, useGraphChartData, useGraphInteraction, useGraphReport, useNavigationIsland, useOrbcafeI18n, usePageLayout, usePivotTable, useStandardReport };