react-semaphor 0.1.293 → 0.1.295
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/chunks/{braces-BwW2HFlB.js → braces-BdoTYzuj.js} +1 -1
- package/dist/chunks/{braces-C7GP95Fp.js → braces-DWldEFn5.js} +1 -1
- package/dist/chunks/{dashboard-controls-DgUc38Tn.js → dashboard-controls-B3lrnI_r.js} +9 -9
- package/dist/chunks/{dashboard-controls-jrkoCSY_.js → dashboard-controls-D7U6E1sB.js} +504 -472
- package/dist/chunks/dashboard-filter-controls-button-D0AsV28-.js +11 -0
- package/dist/chunks/dashboard-filter-controls-button-XwenlcXw.js +1152 -0
- package/dist/chunks/{dashboard-json-COjT-zjQ.js → dashboard-json-CU55qPXj.js} +1 -1
- package/dist/chunks/{dashboard-json-C0NiRL-A.js → dashboard-json-V6m6lJ_c.js} +1 -1
- package/dist/chunks/{dashboard-summary-settings-dialog-CGuFl7Xe.js → dashboard-summary-settings-dialog-0CIiWsKc.js} +1 -1
- package/dist/chunks/{dashboard-summary-settings-dialog-CXqaN_zj.js → dashboard-summary-settings-dialog-DRLPzp1P.js} +1 -1
- package/dist/chunks/{edit-dashboard-visual-ppdXk86H.js → edit-dashboard-visual-8ha6EM_g.js} +2205 -2147
- package/dist/chunks/edit-dashboard-visual-sSLAkmgf.js +183 -0
- package/dist/chunks/{index-9z-jMqN8.js → index-14M0TnH6.js} +35272 -33064
- package/dist/chunks/index-Ze8VskG1.js +1435 -0
- package/dist/chunks/{resource-management-panel-CP8cegZP.js → resource-management-panel-BL5-5ouC.js} +64 -64
- package/dist/chunks/{resource-management-panel-os6AuEKT.js → resource-management-panel-CcDAn86l.js} +1 -1
- package/dist/chunks/use-create-flow-overlay-state-BbQVNDCj.js +21 -0
- package/dist/chunks/{use-create-flow-overlay-state-wpuqRZX5.js → use-create-flow-overlay-state-D3PxfjYv.js} +430 -425
- package/dist/chunks/use-visual-utils-CdIOq4nt.js +337 -0
- package/dist/chunks/use-visual-utils-kh8p2QFm.js +1 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +258 -253
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/dashboard.d.ts +65 -0
- package/dist/types/main.d.ts +79 -4
- package/dist/types/shared.d.ts +40 -0
- package/dist/types/surfboard.d.ts +65 -0
- package/dist/types/types.d.ts +65 -0
- package/package.json +1 -1
- package/dist/chunks/dashboard-filter-controls-button-B19UWmsK.js +0 -11
- package/dist/chunks/dashboard-filter-controls-button-DGH4DxJ8.js +0 -1109
- package/dist/chunks/edit-dashboard-visual-CDOz4LWO.js +0 -183
- package/dist/chunks/index-K25f5Rqr.js +0 -1435
- package/dist/chunks/use-create-flow-overlay-state-CecnMS_v.js +0 -21
- package/dist/chunks/use-visual-utils-BTfG-ppd.js +0 -1
- package/dist/chunks/use-visual-utils-BhRKGJql.js +0 -334
package/dist/surfboard/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-Ze8VskG1.js"),e=require("../types/index.cjs"),r=require("../chunks/dashboard-summary-settings-dialog-DRLPzp1P.js");exports.Surfboard=a.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=r.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=r.DashboardSummarySettingsDialog;
|
package/dist/surfboard/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as o } from "../chunks/index-
|
|
1
|
+
import { a as o } from "../chunks/index-14M0TnH6.js";
|
|
2
2
|
import { CONTROL_CARD_DEFAULT_VALUE as s, EMPTY_SELECTION as D } from "../types/index.js";
|
|
3
|
-
import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-
|
|
3
|
+
import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-0CIiWsKc.js";
|
|
4
4
|
export {
|
|
5
5
|
s as CONTROL_CARD_DEFAULT_VALUE,
|
|
6
6
|
m as CalendarPreferencesDialog,
|
|
@@ -272,6 +272,12 @@ declare interface ColumnSettings {
|
|
|
272
272
|
maxWidth?: number;
|
|
273
273
|
textOverflow?: 'ellipsis' | 'wrap' | 'clip';
|
|
274
274
|
textWrap: 'wrap' | 'nowrap';
|
|
275
|
+
/**
|
|
276
|
+
* Totals-row behavior for this column. Undefined = 'none'. The footer
|
|
277
|
+
* renders only when at least one visible column has a non-'none' behavior.
|
|
278
|
+
*/
|
|
279
|
+
totalsBehavior?: TotalsBehavior;
|
|
280
|
+
totalsLabel?: string;
|
|
275
281
|
numberFormat: {
|
|
276
282
|
style: 'decimal' | 'currency' | 'percent' | 'scientific';
|
|
277
283
|
currency: string;
|
|
@@ -284,6 +290,14 @@ declare interface ColumnSettings {
|
|
|
284
290
|
dataBarColor: string;
|
|
285
291
|
dataBarMinValue?: number;
|
|
286
292
|
dataBarMaxValue?: number;
|
|
293
|
+
/**
|
|
294
|
+
* When true, render the cell bg with a heatmap intensity tint scaled
|
|
295
|
+
* across the column's value range. Composes with the existing text
|
|
296
|
+
* color/color-range logic (tint is bg only). `showDataBar` takes
|
|
297
|
+
* precedence when both are set — per the canonical design, a cell is
|
|
298
|
+
* either a data-bar or a heatmap, never both.
|
|
299
|
+
*/
|
|
300
|
+
showHeatmap?: boolean;
|
|
287
301
|
};
|
|
288
302
|
dateFormat: {
|
|
289
303
|
format: string;
|
|
@@ -875,6 +889,8 @@ declare interface FilterGroup {
|
|
|
875
889
|
groups: FilterGroup[];
|
|
876
890
|
}
|
|
877
891
|
|
|
892
|
+
declare type FilterKind = 'field' | 'global-date';
|
|
893
|
+
|
|
878
894
|
/**
|
|
879
895
|
* Filter layout settings for controlling how dashboard filters are displayed
|
|
880
896
|
*/
|
|
@@ -964,6 +980,7 @@ export declare type GetDashboardResponse = {
|
|
|
964
980
|
filterValues?: TFilterValue[];
|
|
965
981
|
defaultLensId?: string;
|
|
966
982
|
assistantProfileId?: string;
|
|
983
|
+
semanticExecutionPayload: SemanticExecutionPayload;
|
|
967
984
|
};
|
|
968
985
|
|
|
969
986
|
export declare type GetPluginsResponse = {
|
|
@@ -1286,10 +1303,34 @@ declare type RelativeDateFilter = {
|
|
|
1286
1303
|
to: number;
|
|
1287
1304
|
};
|
|
1288
1305
|
|
|
1306
|
+
declare type ResolvedPrimaryDateField = {
|
|
1307
|
+
sourceDataset: string;
|
|
1308
|
+
sourceField: string;
|
|
1309
|
+
name: string;
|
|
1310
|
+
qualifiedFieldName: string;
|
|
1311
|
+
qualifiedEntityName?: string;
|
|
1312
|
+
entityId: string;
|
|
1313
|
+
entityName: string;
|
|
1314
|
+
entityType: string;
|
|
1315
|
+
dataType: string;
|
|
1316
|
+
dateFormat?: string;
|
|
1317
|
+
customFormat?: string;
|
|
1318
|
+
defaultGranularity?: TimeGranularity;
|
|
1319
|
+
supportedGranularities?: TimeGranularity[];
|
|
1320
|
+
} | null;
|
|
1321
|
+
|
|
1289
1322
|
declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
|
|
1290
1323
|
|
|
1291
1324
|
export declare type SelectionState = Record<Level, string | null>;
|
|
1292
1325
|
|
|
1326
|
+
declare type SemanticExecutionPayload = {
|
|
1327
|
+
domainsById: Record<string, {
|
|
1328
|
+
datasetsByName: Record<string, {
|
|
1329
|
+
primaryDateField: ResolvedPrimaryDateField;
|
|
1330
|
+
}>;
|
|
1331
|
+
}>;
|
|
1332
|
+
};
|
|
1333
|
+
|
|
1293
1334
|
declare interface SortByField extends Field {
|
|
1294
1335
|
role: 'sortby';
|
|
1295
1336
|
direction: 'asc' | 'desc';
|
|
@@ -1360,6 +1401,14 @@ export declare type StyleProps = {
|
|
|
1360
1401
|
};
|
|
1361
1402
|
};
|
|
1362
1403
|
|
|
1404
|
+
/**
|
|
1405
|
+
* Row rhythm for the whole table. Authors pick one per card; undefined
|
|
1406
|
+
* falls back to 'compact' (the canonical default — dense scanning, matches
|
|
1407
|
+
* the Linear-style spec). Drives row padding, cell font size, and header
|
|
1408
|
+
* font size via a shared density spec in DataTable.
|
|
1409
|
+
*/
|
|
1410
|
+
declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
|
|
1411
|
+
|
|
1363
1412
|
declare type TablePreferences = {
|
|
1364
1413
|
columnSettingsMap?: ColumnSettingsMap;
|
|
1365
1414
|
selectColumnVisible?: boolean;
|
|
@@ -1368,6 +1417,7 @@ declare type TablePreferences = {
|
|
|
1368
1417
|
pageSize?: number;
|
|
1369
1418
|
enableDevModePagination?: boolean;
|
|
1370
1419
|
forceClientPagination?: boolean;
|
|
1420
|
+
density?: TableDensity;
|
|
1371
1421
|
};
|
|
1372
1422
|
|
|
1373
1423
|
/**
|
|
@@ -1896,6 +1946,7 @@ export declare type TEvent = {
|
|
|
1896
1946
|
};
|
|
1897
1947
|
|
|
1898
1948
|
declare type TFilter = {
|
|
1949
|
+
kind?: FilterKind;
|
|
1899
1950
|
type?: 'single' | 'multiple';
|
|
1900
1951
|
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
1901
1952
|
dateSelectionMode?: DateSelectionMode;
|
|
@@ -2091,6 +2142,20 @@ export declare type TLens = {
|
|
|
2091
2142
|
/** Line dash style options */
|
|
2092
2143
|
export declare type TLineStyle = 'solid' | 'dashed' | 'dotted' | 'dash-dot';
|
|
2093
2144
|
|
|
2145
|
+
/**
|
|
2146
|
+
* Per-column contribution to the table-level totals row (`<tfoot>`).
|
|
2147
|
+
* Additive and optional — omitting it keeps the cell empty in the footer,
|
|
2148
|
+
* matching existing behavior when a totals row is not needed.
|
|
2149
|
+
*
|
|
2150
|
+
* - 'sum' → aggregate the column across the full dataset
|
|
2151
|
+
* - 'avg' → arithmetic mean across the full dataset
|
|
2152
|
+
* - 'count' → non-null count across the full dataset
|
|
2153
|
+
* - 'label' → render `totalsLabel` (or 'Total') as static text — typically
|
|
2154
|
+
* on the first column so the footer reads as a labeled row
|
|
2155
|
+
* - 'none' → blank cell in the footer
|
|
2156
|
+
*/
|
|
2157
|
+
declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
|
|
2158
|
+
|
|
2094
2159
|
/** Point style options supported by Chart.js */
|
|
2095
2160
|
export declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
|
|
2096
2161
|
|
package/dist/types/main.d.ts
CHANGED
|
@@ -60,11 +60,15 @@ declare type Actions_2 = {
|
|
|
60
60
|
setCustomCards: (customCards: CustomCard[]) => void;
|
|
61
61
|
setAuthToken: (authToken: AuthToken) => void;
|
|
62
62
|
setThemeStyle: (themeStyle: StyleProps) => void;
|
|
63
|
-
setDashboard: (dashboard: TDashboard
|
|
63
|
+
setDashboard: (dashboard: TDashboard, options?: {
|
|
64
|
+
semanticExecutionPayload?: SemanticExecutionPayload;
|
|
65
|
+
}) => void;
|
|
64
66
|
setDashboardWithFilterValues: (dashboard: TDashboard, filterValues: TFilterValue[], runtimeOverrides?: Record<string, unknown>, options?: {
|
|
65
67
|
selectedSheetId?: string | null;
|
|
68
|
+
semanticExecutionPayload?: SemanticExecutionPayload;
|
|
66
69
|
}) => void;
|
|
67
70
|
hydrateRuntimeControlValues: (dashboard: TDashboard, runtimeOverrides?: Record<string, unknown>) => void;
|
|
71
|
+
mergeSemanticExecutionPayload: (semanticExecutionPayload: SemanticExecutionPayload) => void;
|
|
68
72
|
setDashboardTheme: (theme: 'light' | 'dark' | 'system') => void;
|
|
69
73
|
setDashboardTitle: (title: string) => void;
|
|
70
74
|
setDashboardDescription: (description: string) => void;
|
|
@@ -104,7 +108,9 @@ declare type Actions_2 = {
|
|
|
104
108
|
setCardInlineFilterMode: (sheetId: string, cardId: string, filterId: string, filterMode: 'include' | 'exclude') => void;
|
|
105
109
|
setCardInlineFilterDefaultValues: (sheetId: string, cardId: string, filterId: string, defaultValues: (string | number)[] | undefined) => void;
|
|
106
110
|
addFrame: (sheetId: string, frame: TFrame, positionOrOptions?: 'start' | 'end' | AddFrameOptions) => void;
|
|
107
|
-
updateFrame: (sheetId: string, frame: TFrame
|
|
111
|
+
updateFrame: (sheetId: string, frame: TFrame, options?: {
|
|
112
|
+
semanticExecutionPayload?: SemanticExecutionPayload;
|
|
113
|
+
}) => void;
|
|
108
114
|
updateSheetCalculatedFields: (sheetId: string, calculatedFields: Field[]) => void;
|
|
109
115
|
setVisualEditPendingFrameRewrites: (sheetId: string, frames: TFrame[]) => void;
|
|
110
116
|
setVisualEditPendingFilterRewrites: (sheetId: string, filters: TFilter[]) => void;
|
|
@@ -304,6 +310,7 @@ declare type AddFrameOptions = {
|
|
|
304
310
|
position?: 'start' | 'end';
|
|
305
311
|
insertAfterFrameId?: string;
|
|
306
312
|
copyLayoutFromFrameId?: string;
|
|
313
|
+
semanticExecutionPayload?: SemanticExecutionPayload;
|
|
307
314
|
};
|
|
308
315
|
|
|
309
316
|
/**
|
|
@@ -1066,6 +1073,12 @@ declare interface ColumnSettings {
|
|
|
1066
1073
|
maxWidth?: number;
|
|
1067
1074
|
textOverflow?: 'ellipsis' | 'wrap' | 'clip';
|
|
1068
1075
|
textWrap: 'wrap' | 'nowrap';
|
|
1076
|
+
/**
|
|
1077
|
+
* Totals-row behavior for this column. Undefined = 'none'. The footer
|
|
1078
|
+
* renders only when at least one visible column has a non-'none' behavior.
|
|
1079
|
+
*/
|
|
1080
|
+
totalsBehavior?: TotalsBehavior;
|
|
1081
|
+
totalsLabel?: string;
|
|
1069
1082
|
numberFormat: {
|
|
1070
1083
|
style: 'decimal' | 'currency' | 'percent' | 'scientific';
|
|
1071
1084
|
currency: string;
|
|
@@ -1078,6 +1091,14 @@ declare interface ColumnSettings {
|
|
|
1078
1091
|
dataBarColor: string;
|
|
1079
1092
|
dataBarMinValue?: number;
|
|
1080
1093
|
dataBarMaxValue?: number;
|
|
1094
|
+
/**
|
|
1095
|
+
* When true, render the cell bg with a heatmap intensity tint scaled
|
|
1096
|
+
* across the column's value range. Composes with the existing text
|
|
1097
|
+
* color/color-range logic (tint is bg only). `showDataBar` takes
|
|
1098
|
+
* precedence when both are set — per the canonical design, a cell is
|
|
1099
|
+
* either a data-bar or a heatmap, never both.
|
|
1100
|
+
*/
|
|
1101
|
+
showHeatmap?: boolean;
|
|
1081
1102
|
};
|
|
1082
1103
|
dateFormat: {
|
|
1083
1104
|
format: string;
|
|
@@ -1288,6 +1309,7 @@ export declare interface CreateExportRequest {
|
|
|
1288
1309
|
controlDefinitions?: ControlDefinition[];
|
|
1289
1310
|
cardControlDefinitions?: ControlDefinition[];
|
|
1290
1311
|
controlBindings?: ControlBinding[];
|
|
1312
|
+
resolvedPrimaryDateField?: ResolvedPrimaryDateField;
|
|
1291
1313
|
timezone?: string;
|
|
1292
1314
|
totalRows: number;
|
|
1293
1315
|
format: ExportFormat;
|
|
@@ -1493,6 +1515,7 @@ export declare type DashboardStore = {
|
|
|
1493
1515
|
controlValues: Record<string, unknown>;
|
|
1494
1516
|
/** Runtime-only card-scoped control values, keyed by cardId then controlId. */
|
|
1495
1517
|
cardControlValuesMap: Record<string, Record<string, unknown>>;
|
|
1518
|
+
semanticExecutionPayload: SemanticExecutionPayload;
|
|
1496
1519
|
isDashboardPanelOpen: boolean;
|
|
1497
1520
|
drillHistory: Array<{
|
|
1498
1521
|
sourceDashboardId: string;
|
|
@@ -2046,7 +2069,7 @@ export declare type EditorStore = {
|
|
|
2046
2069
|
onDatabaseChange?: (databaseName: string) => void;
|
|
2047
2070
|
onTableChange?: (tableName: string) => void;
|
|
2048
2071
|
onSchemaChange?: (schemaName: string) => void;
|
|
2049
|
-
onSave?: (card: TFrame) => void
|
|
2072
|
+
onSave?: (card: TFrame) => void | Promise<void>;
|
|
2050
2073
|
onClose?: () => void;
|
|
2051
2074
|
/** Draft slots for mode switching - preserves work when toggling between dev/standard */
|
|
2052
2075
|
modeDrafts: ModeDrafts;
|
|
@@ -2397,6 +2420,8 @@ export declare interface FilterGroup {
|
|
|
2397
2420
|
groups: FilterGroup[];
|
|
2398
2421
|
}
|
|
2399
2422
|
|
|
2423
|
+
declare type FilterKind = 'field' | 'global-date';
|
|
2424
|
+
|
|
2400
2425
|
/**
|
|
2401
2426
|
* Filter layout settings for controlling how dashboard filters are displayed
|
|
2402
2427
|
*/
|
|
@@ -2537,6 +2562,7 @@ export declare type GetDashboardResponse = {
|
|
|
2537
2562
|
filterValues?: TFilterValue[];
|
|
2538
2563
|
defaultLensId?: string;
|
|
2539
2564
|
assistantProfileId?: string;
|
|
2565
|
+
semanticExecutionPayload: SemanticExecutionPayload;
|
|
2540
2566
|
};
|
|
2541
2567
|
|
|
2542
2568
|
/**
|
|
@@ -3190,6 +3216,22 @@ export declare function resolveDatamodelName(datamodelName: string): string;
|
|
|
3190
3216
|
|
|
3191
3217
|
export declare const resolveDataType: (value: any) => string;
|
|
3192
3218
|
|
|
3219
|
+
declare type ResolvedPrimaryDateField = {
|
|
3220
|
+
sourceDataset: string;
|
|
3221
|
+
sourceField: string;
|
|
3222
|
+
name: string;
|
|
3223
|
+
qualifiedFieldName: string;
|
|
3224
|
+
qualifiedEntityName?: string;
|
|
3225
|
+
entityId: string;
|
|
3226
|
+
entityName: string;
|
|
3227
|
+
entityType: string;
|
|
3228
|
+
dataType: string;
|
|
3229
|
+
dateFormat?: string;
|
|
3230
|
+
customFormat?: string;
|
|
3231
|
+
defaultGranularity?: TimeGranularity;
|
|
3232
|
+
supportedGranularities?: TimeGranularity[];
|
|
3233
|
+
} | null;
|
|
3234
|
+
|
|
3193
3235
|
/**
|
|
3194
3236
|
* Parameters in JWT payload (after backend resolution).
|
|
3195
3237
|
* The backend ALWAYS includes calendarContext, even if customer didn't provide it.
|
|
@@ -3290,6 +3332,14 @@ export declare type SemanticDomainAccessRequest = {
|
|
|
3290
3332
|
domains?: string[];
|
|
3291
3333
|
};
|
|
3292
3334
|
|
|
3335
|
+
declare type SemanticExecutionPayload = {
|
|
3336
|
+
domainsById: Record<string, {
|
|
3337
|
+
datasetsByName: Record<string, {
|
|
3338
|
+
primaryDateField: ResolvedPrimaryDateField;
|
|
3339
|
+
}>;
|
|
3340
|
+
}>;
|
|
3341
|
+
};
|
|
3342
|
+
|
|
3293
3343
|
export declare const SemaphorContextProvider: ({ children, dashboardProps, }: {
|
|
3294
3344
|
children: React.ReactNode;
|
|
3295
3345
|
dashboardProps: DashboardProps;
|
|
@@ -3509,6 +3559,14 @@ export declare type TableConfig = {
|
|
|
3509
3559
|
datamodelId: string;
|
|
3510
3560
|
};
|
|
3511
3561
|
|
|
3562
|
+
/**
|
|
3563
|
+
* Row rhythm for the whole table. Authors pick one per card; undefined
|
|
3564
|
+
* falls back to 'compact' (the canonical default — dense scanning, matches
|
|
3565
|
+
* the Linear-style spec). Drives row padding, cell font size, and header
|
|
3566
|
+
* font size via a shared density spec in DataTable.
|
|
3567
|
+
*/
|
|
3568
|
+
declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
|
|
3569
|
+
|
|
3512
3570
|
export declare type TableItem = DropdownItem;
|
|
3513
3571
|
|
|
3514
3572
|
declare type TablePreferences = {
|
|
@@ -3519,6 +3577,7 @@ declare type TablePreferences = {
|
|
|
3519
3577
|
pageSize?: number;
|
|
3520
3578
|
enableDevModePagination?: boolean;
|
|
3521
3579
|
forceClientPagination?: boolean;
|
|
3580
|
+
density?: TableDensity;
|
|
3522
3581
|
};
|
|
3523
3582
|
|
|
3524
3583
|
/**
|
|
@@ -4051,6 +4110,7 @@ export declare type TEvent = {
|
|
|
4051
4110
|
};
|
|
4052
4111
|
|
|
4053
4112
|
export declare type TFilter = {
|
|
4113
|
+
kind?: FilterKind;
|
|
4054
4114
|
type?: 'single' | 'multiple';
|
|
4055
4115
|
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
4056
4116
|
dateSelectionMode?: DateSelectionMode;
|
|
@@ -4481,6 +4541,20 @@ export declare type TokenSecurityPolicy = {
|
|
|
4481
4541
|
};
|
|
4482
4542
|
};
|
|
4483
4543
|
|
|
4544
|
+
/**
|
|
4545
|
+
* Per-column contribution to the table-level totals row (`<tfoot>`).
|
|
4546
|
+
* Additive and optional — omitting it keeps the cell empty in the footer,
|
|
4547
|
+
* matching existing behavior when a totals row is not needed.
|
|
4548
|
+
*
|
|
4549
|
+
* - 'sum' → aggregate the column across the full dataset
|
|
4550
|
+
* - 'avg' → arithmetic mean across the full dataset
|
|
4551
|
+
* - 'count' → non-null count across the full dataset
|
|
4552
|
+
* - 'label' → render `totalsLabel` (or 'Total') as static text — typically
|
|
4553
|
+
* on the first column so the footer reads as a labeled row
|
|
4554
|
+
* - 'none' → blank cell in the footer
|
|
4555
|
+
*/
|
|
4556
|
+
declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
|
|
4557
|
+
|
|
4484
4558
|
/** Point style options supported by Chart.js */
|
|
4485
4559
|
export declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
|
|
4486
4560
|
|
|
@@ -4654,7 +4728,7 @@ export declare function useAddNewFrame(): {
|
|
|
4654
4728
|
handleAddNewFrame: (options?: {
|
|
4655
4729
|
openVisualEditor?: boolean;
|
|
4656
4730
|
sheetId?: string;
|
|
4657
|
-
}) => TFrame | undefined
|
|
4731
|
+
}) => Promise<TFrame | undefined>;
|
|
4658
4732
|
canAddFrame: boolean;
|
|
4659
4733
|
};
|
|
4660
4734
|
|
|
@@ -5100,6 +5174,7 @@ export declare function useCard(cardId: string): {
|
|
|
5100
5174
|
queryKey: string[];
|
|
5101
5175
|
pagination: PaginationMetadata | undefined;
|
|
5102
5176
|
comparisonMetadata: ComparisonMetadataMap | undefined;
|
|
5177
|
+
resolvedPrimaryDateField: ResolvedPrimaryDateField | undefined;
|
|
5103
5178
|
};
|
|
5104
5179
|
|
|
5105
5180
|
export declare const useCardAlertMap: () => Map<string, string[]>;
|
package/dist/types/shared.d.ts
CHANGED
|
@@ -259,6 +259,12 @@ declare interface ColumnSettings {
|
|
|
259
259
|
maxWidth?: number;
|
|
260
260
|
textOverflow?: 'ellipsis' | 'wrap' | 'clip';
|
|
261
261
|
textWrap: 'wrap' | 'nowrap';
|
|
262
|
+
/**
|
|
263
|
+
* Totals-row behavior for this column. Undefined = 'none'. The footer
|
|
264
|
+
* renders only when at least one visible column has a non-'none' behavior.
|
|
265
|
+
*/
|
|
266
|
+
totalsBehavior?: TotalsBehavior;
|
|
267
|
+
totalsLabel?: string;
|
|
262
268
|
numberFormat: {
|
|
263
269
|
style: 'decimal' | 'currency' | 'percent' | 'scientific';
|
|
264
270
|
currency: string;
|
|
@@ -271,6 +277,14 @@ declare interface ColumnSettings {
|
|
|
271
277
|
dataBarColor: string;
|
|
272
278
|
dataBarMinValue?: number;
|
|
273
279
|
dataBarMaxValue?: number;
|
|
280
|
+
/**
|
|
281
|
+
* When true, render the cell bg with a heatmap intensity tint scaled
|
|
282
|
+
* across the column's value range. Composes with the existing text
|
|
283
|
+
* color/color-range logic (tint is bg only). `showDataBar` takes
|
|
284
|
+
* precedence when both are set — per the canonical design, a cell is
|
|
285
|
+
* either a data-bar or a heatmap, never both.
|
|
286
|
+
*/
|
|
287
|
+
showHeatmap?: boolean;
|
|
274
288
|
};
|
|
275
289
|
dateFormat: {
|
|
276
290
|
format: string;
|
|
@@ -755,6 +769,8 @@ declare interface FilterGroup {
|
|
|
755
769
|
groups: FilterGroup[];
|
|
756
770
|
}
|
|
757
771
|
|
|
772
|
+
declare type FilterKind = 'field' | 'global-date';
|
|
773
|
+
|
|
758
774
|
/**
|
|
759
775
|
* Filter layout settings for controlling how dashboard filters are displayed
|
|
760
776
|
*/
|
|
@@ -1202,6 +1218,14 @@ declare type StyleProps = {
|
|
|
1202
1218
|
};
|
|
1203
1219
|
};
|
|
1204
1220
|
|
|
1221
|
+
/**
|
|
1222
|
+
* Row rhythm for the whole table. Authors pick one per card; undefined
|
|
1223
|
+
* falls back to 'compact' (the canonical default — dense scanning, matches
|
|
1224
|
+
* the Linear-style spec). Drives row padding, cell font size, and header
|
|
1225
|
+
* font size via a shared density spec in DataTable.
|
|
1226
|
+
*/
|
|
1227
|
+
declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
|
|
1228
|
+
|
|
1205
1229
|
declare type TablePreferences = {
|
|
1206
1230
|
columnSettingsMap?: ColumnSettingsMap;
|
|
1207
1231
|
selectColumnVisible?: boolean;
|
|
@@ -1210,6 +1234,7 @@ declare type TablePreferences = {
|
|
|
1210
1234
|
pageSize?: number;
|
|
1211
1235
|
enableDevModePagination?: boolean;
|
|
1212
1236
|
forceClientPagination?: boolean;
|
|
1237
|
+
density?: TableDensity;
|
|
1213
1238
|
};
|
|
1214
1239
|
|
|
1215
1240
|
/**
|
|
@@ -1704,6 +1729,7 @@ declare type TDynamicVisualIntent = {
|
|
|
1704
1729
|
};
|
|
1705
1730
|
|
|
1706
1731
|
declare type TFilter = {
|
|
1732
|
+
kind?: FilterKind;
|
|
1707
1733
|
type?: 'single' | 'multiple';
|
|
1708
1734
|
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
1709
1735
|
dateSelectionMode?: DateSelectionMode;
|
|
@@ -1888,6 +1914,20 @@ declare type TLegendOptions = {
|
|
|
1888
1914
|
/** Line dash style options */
|
|
1889
1915
|
declare type TLineStyle = 'solid' | 'dashed' | 'dotted' | 'dash-dot';
|
|
1890
1916
|
|
|
1917
|
+
/**
|
|
1918
|
+
* Per-column contribution to the table-level totals row (`<tfoot>`).
|
|
1919
|
+
* Additive and optional — omitting it keeps the cell empty in the footer,
|
|
1920
|
+
* matching existing behavior when a totals row is not needed.
|
|
1921
|
+
*
|
|
1922
|
+
* - 'sum' → aggregate the column across the full dataset
|
|
1923
|
+
* - 'avg' → arithmetic mean across the full dataset
|
|
1924
|
+
* - 'count' → non-null count across the full dataset
|
|
1925
|
+
* - 'label' → render `totalsLabel` (or 'Total') as static text — typically
|
|
1926
|
+
* on the first column so the footer reads as a labeled row
|
|
1927
|
+
* - 'none' → blank cell in the footer
|
|
1928
|
+
*/
|
|
1929
|
+
declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
|
|
1930
|
+
|
|
1891
1931
|
/** Point style options supported by Chart.js */
|
|
1892
1932
|
declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
|
|
1893
1933
|
|
|
@@ -279,6 +279,12 @@ declare interface ColumnSettings {
|
|
|
279
279
|
maxWidth?: number;
|
|
280
280
|
textOverflow?: 'ellipsis' | 'wrap' | 'clip';
|
|
281
281
|
textWrap: 'wrap' | 'nowrap';
|
|
282
|
+
/**
|
|
283
|
+
* Totals-row behavior for this column. Undefined = 'none'. The footer
|
|
284
|
+
* renders only when at least one visible column has a non-'none' behavior.
|
|
285
|
+
*/
|
|
286
|
+
totalsBehavior?: TotalsBehavior;
|
|
287
|
+
totalsLabel?: string;
|
|
282
288
|
numberFormat: {
|
|
283
289
|
style: 'decimal' | 'currency' | 'percent' | 'scientific';
|
|
284
290
|
currency: string;
|
|
@@ -291,6 +297,14 @@ declare interface ColumnSettings {
|
|
|
291
297
|
dataBarColor: string;
|
|
292
298
|
dataBarMinValue?: number;
|
|
293
299
|
dataBarMaxValue?: number;
|
|
300
|
+
/**
|
|
301
|
+
* When true, render the cell bg with a heatmap intensity tint scaled
|
|
302
|
+
* across the column's value range. Composes with the existing text
|
|
303
|
+
* color/color-range logic (tint is bg only). `showDataBar` takes
|
|
304
|
+
* precedence when both are set — per the canonical design, a cell is
|
|
305
|
+
* either a data-bar or a heatmap, never both.
|
|
306
|
+
*/
|
|
307
|
+
showHeatmap?: boolean;
|
|
294
308
|
};
|
|
295
309
|
dateFormat: {
|
|
296
310
|
format: string;
|
|
@@ -895,6 +909,8 @@ declare interface FilterGroup {
|
|
|
895
909
|
groups: FilterGroup[];
|
|
896
910
|
}
|
|
897
911
|
|
|
912
|
+
declare type FilterKind = 'field' | 'global-date';
|
|
913
|
+
|
|
898
914
|
/**
|
|
899
915
|
* Filter layout settings for controlling how dashboard filters are displayed
|
|
900
916
|
*/
|
|
@@ -984,6 +1000,7 @@ export declare type GetDashboardResponse = {
|
|
|
984
1000
|
filterValues?: TFilterValue[];
|
|
985
1001
|
defaultLensId?: string;
|
|
986
1002
|
assistantProfileId?: string;
|
|
1003
|
+
semanticExecutionPayload: SemanticExecutionPayload;
|
|
987
1004
|
};
|
|
988
1005
|
|
|
989
1006
|
export declare type GetPluginsResponse = {
|
|
@@ -1306,10 +1323,34 @@ declare type RelativeDateFilter = {
|
|
|
1306
1323
|
to: number;
|
|
1307
1324
|
};
|
|
1308
1325
|
|
|
1326
|
+
declare type ResolvedPrimaryDateField = {
|
|
1327
|
+
sourceDataset: string;
|
|
1328
|
+
sourceField: string;
|
|
1329
|
+
name: string;
|
|
1330
|
+
qualifiedFieldName: string;
|
|
1331
|
+
qualifiedEntityName?: string;
|
|
1332
|
+
entityId: string;
|
|
1333
|
+
entityName: string;
|
|
1334
|
+
entityType: string;
|
|
1335
|
+
dataType: string;
|
|
1336
|
+
dateFormat?: string;
|
|
1337
|
+
customFormat?: string;
|
|
1338
|
+
defaultGranularity?: TimeGranularity;
|
|
1339
|
+
supportedGranularities?: TimeGranularity[];
|
|
1340
|
+
} | null;
|
|
1341
|
+
|
|
1309
1342
|
declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
|
|
1310
1343
|
|
|
1311
1344
|
export declare type SelectionState = Record<Level, string | null>;
|
|
1312
1345
|
|
|
1346
|
+
declare type SemanticExecutionPayload = {
|
|
1347
|
+
domainsById: Record<string, {
|
|
1348
|
+
datasetsByName: Record<string, {
|
|
1349
|
+
primaryDateField: ResolvedPrimaryDateField;
|
|
1350
|
+
}>;
|
|
1351
|
+
}>;
|
|
1352
|
+
};
|
|
1353
|
+
|
|
1313
1354
|
declare interface SortByField extends Field {
|
|
1314
1355
|
role: 'sortby';
|
|
1315
1356
|
direction: 'asc' | 'desc';
|
|
@@ -1382,6 +1423,14 @@ export declare type StyleProps = {
|
|
|
1382
1423
|
|
|
1383
1424
|
export declare function Surfboard({ showControls, showFooter, ...rest }: DashboardPlusProps): JSX.Element;
|
|
1384
1425
|
|
|
1426
|
+
/**
|
|
1427
|
+
* Row rhythm for the whole table. Authors pick one per card; undefined
|
|
1428
|
+
* falls back to 'compact' (the canonical default — dense scanning, matches
|
|
1429
|
+
* the Linear-style spec). Drives row padding, cell font size, and header
|
|
1430
|
+
* font size via a shared density spec in DataTable.
|
|
1431
|
+
*/
|
|
1432
|
+
declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
|
|
1433
|
+
|
|
1385
1434
|
declare type TablePreferences = {
|
|
1386
1435
|
columnSettingsMap?: ColumnSettingsMap;
|
|
1387
1436
|
selectColumnVisible?: boolean;
|
|
@@ -1390,6 +1439,7 @@ declare type TablePreferences = {
|
|
|
1390
1439
|
pageSize?: number;
|
|
1391
1440
|
enableDevModePagination?: boolean;
|
|
1392
1441
|
forceClientPagination?: boolean;
|
|
1442
|
+
density?: TableDensity;
|
|
1393
1443
|
};
|
|
1394
1444
|
|
|
1395
1445
|
/**
|
|
@@ -1918,6 +1968,7 @@ export declare type TEvent = {
|
|
|
1918
1968
|
};
|
|
1919
1969
|
|
|
1920
1970
|
declare type TFilter = {
|
|
1971
|
+
kind?: FilterKind;
|
|
1921
1972
|
type?: 'single' | 'multiple';
|
|
1922
1973
|
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
1923
1974
|
dateSelectionMode?: DateSelectionMode;
|
|
@@ -2113,6 +2164,20 @@ export declare type TLens = {
|
|
|
2113
2164
|
/** Line dash style options */
|
|
2114
2165
|
export declare type TLineStyle = 'solid' | 'dashed' | 'dotted' | 'dash-dot';
|
|
2115
2166
|
|
|
2167
|
+
/**
|
|
2168
|
+
* Per-column contribution to the table-level totals row (`<tfoot>`).
|
|
2169
|
+
* Additive and optional — omitting it keeps the cell empty in the footer,
|
|
2170
|
+
* matching existing behavior when a totals row is not needed.
|
|
2171
|
+
*
|
|
2172
|
+
* - 'sum' → aggregate the column across the full dataset
|
|
2173
|
+
* - 'avg' → arithmetic mean across the full dataset
|
|
2174
|
+
* - 'count' → non-null count across the full dataset
|
|
2175
|
+
* - 'label' → render `totalsLabel` (or 'Total') as static text — typically
|
|
2176
|
+
* on the first column so the footer reads as a labeled row
|
|
2177
|
+
* - 'none' → blank cell in the footer
|
|
2178
|
+
*/
|
|
2179
|
+
declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
|
|
2180
|
+
|
|
2116
2181
|
/** Point style options supported by Chart.js */
|
|
2117
2182
|
export declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
|
|
2118
2183
|
|