react-semaphor 0.1.449 → 0.1.454
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/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +119 -112
- package/dist/appearance/index.cjs +1 -1
- package/dist/appearance/index.js +1 -1
- package/dist/brand-studio/index.cjs +4 -4
- package/dist/brand-studio/index.js +15 -13
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +39 -2131
- package/dist/chunks/{analyze-result-contract-T-0Ntzys.js → analyze-result-contract-BbRJ-C06.js} +1 -1
- package/dist/chunks/{analyze-result-contract-BHb7sUUW.cjs → analyze-result-contract-LPDNldic.cjs} +1 -1
- package/dist/chunks/canonical-result-keys-BA0HCP4e.cjs +1 -0
- package/dist/chunks/canonical-result-keys-D6avdjpA.js +467 -0
- package/dist/chunks/color-CJvdlFM_.js +2162 -0
- package/dist/chunks/color-CyB5o13F.cjs +4 -0
- package/dist/chunks/{common-types-CQ6SHfLk.cjs → common-types-C57kJ59w.cjs} +1 -1
- package/dist/chunks/{common-types-B7Jk3Rtj.js → common-types-H51FLKB7.js} +1 -1
- package/dist/chunks/contracts-CoCOpd_i.js +11 -0
- package/dist/chunks/contracts-CtB2VONT.cjs +1 -0
- package/dist/chunks/dashboard-briefing-launcher-Dwj1i7lr.cjs +26 -0
- package/dist/chunks/{dashboard-briefing-launcher-DCHiEkLE.js → dashboard-briefing-launcher-SYroFdae.js} +86 -84
- package/dist/chunks/{dashboard-controls-DwRFCcHV.js → dashboard-controls-1LpeU2sz.js} +15 -13
- package/dist/chunks/{dashboard-controls-CaFioayc.cjs → dashboard-controls-CpFoh7-A.cjs} +1 -1
- package/dist/chunks/dashboard-date-comparison-definition-Ces4alFm.cjs +1 -0
- package/dist/chunks/{dashboard-date-comparison-definition-Ba-clViK.js → dashboard-date-comparison-definition-DC3ekV2S.js} +1 -1
- package/dist/chunks/{dashboard-json-WoILbfTe.js → dashboard-json-D-T-sQxU.js} +25 -23
- package/dist/chunks/dashboard-json-DwSQopc_.cjs +1 -0
- package/dist/chunks/edit-dashboard-visual-BEmoQAET.cjs +172 -0
- package/dist/chunks/{edit-dashboard-visual-ciFhxqaI.js → edit-dashboard-visual-DqxUq4Bs.js} +6925 -6947
- package/dist/chunks/editor-action-buttons-18r2xwei.cjs +16 -0
- package/dist/chunks/{editor-action-buttons-BPo_45pM.js → editor-action-buttons-B2l3WIRC.js} +41 -39
- package/dist/chunks/format-types-CFHQoIuk.js +1350 -0
- package/dist/chunks/format-types-PSZZ7hG8.cjs +1 -0
- package/dist/chunks/index-Bn5wlkHt.cjs +4 -0
- package/dist/chunks/index-ByFbacH7.cjs +1 -0
- package/dist/chunks/index-CACdoqu3.js +318 -0
- package/dist/chunks/index-CLB_NGZ8.cjs +1392 -0
- package/dist/chunks/index-Ca784dpx.js +3714 -0
- package/dist/chunks/{index-CPuawpXJ.js → index-DAoS4BNU.js} +48514 -48484
- package/dist/chunks/index-DSKR3nKn.js +421 -0
- package/dist/chunks/index-F25jnH0p.cjs +1 -0
- package/dist/chunks/matrix-result-contract-CofATICL.js +437 -0
- package/dist/chunks/matrix-result-contract-zamd9euI.cjs +1 -0
- package/dist/chunks/pivot-header-presentation-DhyQXxKq.cjs +4 -0
- package/dist/chunks/pivot-header-presentation-ckYOQ4aZ.js +557 -0
- package/dist/chunks/{pivot-result-identity-CDLRT-YG.cjs → pivot-result-identity-Bb4EixVN.cjs} +1 -1
- package/dist/chunks/{pivot-result-identity-CwJWpKI7.js → pivot-result-identity-DU1v-5Xk.js} +1 -1
- package/dist/chunks/pivot-result-lifecycle-DmcF1ris.cjs +1 -0
- package/dist/chunks/pivot-result-lifecycle-sjzIOpvp.js +1641 -0
- package/dist/chunks/raw-temporal-contract-BtjH_G-d.cjs +1 -0
- package/dist/chunks/raw-temporal-contract-CxncLze5.js +64 -0
- package/dist/chunks/report-preferences-dialog-BgSvlDXa.cjs +1 -0
- package/dist/chunks/report-preferences-dialog-DDc2WUa0.js +723 -0
- package/dist/chunks/{report-runtime-context-C8LZFsqV.cjs → report-runtime-context-DqxS4wbi.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-bCy3CVzK.js → report-runtime-context-SM6YO61_.js} +5 -5
- package/dist/chunks/saved-temporal-bucket-format-CFfWXRl9.cjs +1 -0
- package/dist/chunks/saved-temporal-bucket-format-SGAV0ivR.js +922 -0
- package/dist/chunks/{switch-BXet-Sno.js → switch-BeZW-HnS.js} +4350 -5249
- package/dist/chunks/switch-D-CCcfhc.cjs +138 -0
- package/dist/chunks/temporal-bucket-5UYEotyQ.js +810 -0
- package/dist/chunks/temporal-bucket-DHY1y9lq.cjs +1 -0
- package/dist/chunks/temporal-bucket-authoring-K1kE6R_z.js +222 -0
- package/dist/chunks/temporal-bucket-authoring-o3Emn05L.cjs +1 -0
- package/dist/chunks/{temporal-bucket-contract-ChDBWX8I.cjs → temporal-bucket-contract-D2-93DGr.cjs} +1 -1
- package/dist/chunks/{temporal-bucket-contract-_F6vNhhH.js → temporal-bucket-contract-D5d-xEl3.js} +1 -1
- package/dist/chunks/{token-types-BdQ8kHBm.cjs → token-types-D7CaaI80.cjs} +1 -1
- package/dist/chunks/{token-types-BHR58aTy.js → token-types-GbxRUozo.js} +1 -1
- package/dist/chunks/{update-policy-BxvYMYz0.cjs → update-policy-BmiOd0PB.cjs} +1 -1
- package/dist/chunks/{update-policy-g0rCQ9BM.js → update-policy-hednMF-0.js} +1 -1
- package/dist/chunks/validators-BDYprKI9.cjs +1 -0
- package/dist/chunks/{validators-Cs74WVie.js → validators-DEmd8Sin.js} +1561 -1197
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +2 -2
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +35 -32
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +2 -2
- package/dist/data-app-codegen/index.cjs +1 -1
- package/dist/data-app-codegen/index.js +2 -2
- package/dist/data-app-codegen-node/index.cjs +1 -1
- package/dist/data-app-codegen-node/index.js +3 -3
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +78 -77
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +29 -30
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +21 -21
- package/dist/format-utils/index.cjs +3 -3
- package/dist/format-utils/index.js +156 -140
- package/dist/index.cjs +1 -1
- package/dist/index.js +157 -155
- package/dist/report-runtime-context/index.cjs +1 -1
- package/dist/report-runtime-context/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +3 -3
- package/dist/types/analytics-protocol.d.ts +81 -11
- package/dist/types/briefings.d.ts +727 -19
- package/dist/types/dashboard-assistant.d.ts +37 -17
- package/dist/types/dashboard-authoring.d.ts +61 -14
- package/dist/types/dashboard.d.ts +137 -12
- package/dist/types/data-app-builder.d.ts +28 -2
- package/dist/types/data-app-codegen-node.d.ts +29 -3
- package/dist/types/data-app-codegen.d.ts +29 -3
- package/dist/types/data-app-sdk-adapters.d.ts +28 -2
- package/dist/types/data-app-sdk-validation.d.ts +51 -7
- package/dist/types/data-app-sdk.d.ts +55 -10
- package/dist/types/format-utils.d.ts +190 -3
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/main.d.ts +128 -33
- package/dist/types/shared.d.ts +14 -12
- package/dist/types/surfboard.d.ts +138 -13
- package/dist/types/types.d.ts +117 -23
- package/dist/types/value-format-preferences.d.ts +3 -0
- package/package.json +2 -1
- package/dist/chunks/card-config-utils-15sRtebL.cjs +0 -1
- package/dist/chunks/card-config-utils-BYZ5MJOh.js +0 -16
- package/dist/chunks/catalog-field-grounding-Bnx-3tE0.cjs +0 -1
- package/dist/chunks/catalog-field-grounding-S2jKwKGD.js +0 -100
- package/dist/chunks/dashboard-briefing-launcher-DDgDr2s3.cjs +0 -26
- package/dist/chunks/dashboard-date-comparison-definition-DZq0htjG.cjs +0 -1
- package/dist/chunks/dashboard-input-contract-DSt8dGzP.js +0 -18
- package/dist/chunks/dashboard-input-contract-DV3cshjz.cjs +0 -1
- package/dist/chunks/dashboard-json-CYtvwtvj.cjs +0 -1
- package/dist/chunks/edit-dashboard-visual-DwKcvlsF.cjs +0 -177
- package/dist/chunks/editor-action-buttons-BVmsk0Aj.cjs +0 -16
- package/dist/chunks/format-types-CSv0V7mm.cjs +0 -1
- package/dist/chunks/format-types-DZGgYj39.js +0 -1663
- package/dist/chunks/index-CJdxSyQq.js +0 -2578
- package/dist/chunks/index-DPv8_Ild.cjs +0 -1395
- package/dist/chunks/index-DRlMUglg.cjs +0 -4
- package/dist/chunks/metric-comparison-97zHGEx5.js +0 -387
- package/dist/chunks/metric-comparison-CUAJ8n4y.cjs +0 -1
- package/dist/chunks/pivot-result-lifecycle-BBabQ_da.js +0 -914
- package/dist/chunks/pivot-result-lifecycle-DPc0ANwk.cjs +0 -4
- package/dist/chunks/presentation-execution-BLfPTGX_.js +0 -637
- package/dist/chunks/presentation-execution-BTV-Q43g.cjs +0 -1
- package/dist/chunks/report-preferences-dialog-D9ZCGh9l.js +0 -691
- package/dist/chunks/report-preferences-dialog-DaqTEcac.cjs +0 -1
- package/dist/chunks/switch-Cjk6G06r.cjs +0 -138
- package/dist/chunks/temporal-bucket-BnPxGrAi.js +0 -446
- package/dist/chunks/temporal-bucket-authoring-CPTwHzvs.cjs +0 -1
- package/dist/chunks/temporal-bucket-authoring-CgOuakGW.js +0 -205
- package/dist/chunks/temporal-bucket-pMnV-4Nj.cjs +0 -1
- package/dist/chunks/temporal-result-owner-6peubmhU.js +0 -443
- package/dist/chunks/temporal-result-owner-f6-i65Fb.cjs +0 -1
- package/dist/chunks/validators-9D4KBqKD.cjs +0 -1
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
import { ColumnSizingState } from '@tanstack/react-table';
|
|
2
|
+
import { FontSpec } from 'chart.js';
|
|
2
3
|
|
|
3
4
|
declare type AggregateFunction = 'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX' | 'MEDIAN' | 'DISTINCT';
|
|
4
5
|
|
|
6
|
+
declare type AIContext = {
|
|
7
|
+
selectedEntities: SelectedEntities;
|
|
8
|
+
fileAttachments?: FileAttachment[];
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
declare type AIScopeTable = {
|
|
12
|
+
connectionId: string;
|
|
13
|
+
connectionType: string;
|
|
14
|
+
databaseName: string;
|
|
15
|
+
schemaName: string;
|
|
16
|
+
tableName: string;
|
|
17
|
+
datamodelId: string;
|
|
18
|
+
datamodelName: string;
|
|
19
|
+
};
|
|
20
|
+
|
|
5
21
|
declare type AxisConfig = {
|
|
6
22
|
enabled?: boolean;
|
|
7
23
|
name?: {
|
|
@@ -34,6 +50,24 @@ declare interface BaseColumn {
|
|
|
34
50
|
table?: string;
|
|
35
51
|
}
|
|
36
52
|
|
|
53
|
+
declare type BaseCustomCard = {
|
|
54
|
+
cardId: string;
|
|
55
|
+
replaceDefault?: boolean;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
declare type BaseFilter = {
|
|
59
|
+
filterId: TFilter['id'];
|
|
60
|
+
expression?: string;
|
|
61
|
+
name: string;
|
|
62
|
+
valueType: 'string' | 'number' | 'date' | 'boolean';
|
|
63
|
+
connectionType?: 'database' | 'api';
|
|
64
|
+
dataType?: string;
|
|
65
|
+
fieldMeta?: FilterFieldMeta;
|
|
66
|
+
semanticContext?: FilterSemanticContext;
|
|
67
|
+
/** Governed meaning for canonical grouped-temporal filter values. */
|
|
68
|
+
temporalBucket?: TemporalBucketMetadata;
|
|
69
|
+
};
|
|
70
|
+
|
|
37
71
|
export declare const BRIEFING_ARTIFACT_FORMATS: readonly ["markdown", "html"];
|
|
38
72
|
|
|
39
73
|
export declare const BRIEFING_CONTENT_LIMITS: {
|
|
@@ -315,7 +349,6 @@ export declare type BriefingDraft = {
|
|
|
315
349
|
presentation?: Partial<BriefingPresentation>;
|
|
316
350
|
limits?: BriefingLimits;
|
|
317
351
|
deliveryConfig?: BriefingDeliveryConfig | null;
|
|
318
|
-
resolvedFormats?: ResolvedPresentationEntry[];
|
|
319
352
|
};
|
|
320
353
|
|
|
321
354
|
export declare type BriefingEntityPresentation = {
|
|
@@ -337,8 +370,7 @@ declare type BriefingFragments = {
|
|
|
337
370
|
|
|
338
371
|
export declare type BriefingJobConfig = {
|
|
339
372
|
kind: BriefingKind;
|
|
340
|
-
|
|
341
|
-
resolvedFormats?: ResolvedPresentationEntry[];
|
|
373
|
+
presentationExecutionSnapshot: PresentationExecutionSnapshot;
|
|
342
374
|
source: BriefingSource;
|
|
343
375
|
body: BriefingBody;
|
|
344
376
|
attachments: BriefingAttachment[];
|
|
@@ -479,14 +511,32 @@ export declare type BriefingWebhookConfig = {
|
|
|
479
511
|
secretEncrypted?: string;
|
|
480
512
|
};
|
|
481
513
|
|
|
482
|
-
export declare function buildBriefingJobConfig(input: Omit<Partial<BriefingJobConfig>, 'kind' | 'body' | '
|
|
514
|
+
export declare function buildBriefingJobConfig(input: Omit<Partial<BriefingJobConfig>, 'kind' | 'body' | 'presentationExecutionSnapshot'> & Pick<BriefingJobConfig, 'body' | 'presentationExecutionSnapshot'>): BriefingJobConfig;
|
|
483
515
|
|
|
484
516
|
export declare function buildBriefingScheduleExpr(view: BriefingScheduleViewModel): string;
|
|
485
517
|
|
|
486
518
|
export declare function buildCreateBriefingRequest(draft: BriefingDraft): CreateBriefingRequest;
|
|
487
519
|
|
|
520
|
+
/**
|
|
521
|
+
* Captures resolved temporal presentation at a one-time export click or a
|
|
522
|
+
* recurring-rule save. Targets use stable field IDs; result-column keys are
|
|
523
|
+
* resolved later from the executing query's authoritative column map.
|
|
524
|
+
*/
|
|
525
|
+
export declare function buildDashboardTemporalSnapshotEntries(input: {
|
|
526
|
+
dashboard: TDashboard;
|
|
527
|
+
selections: readonly DashboardTemporalSnapshotSelection[];
|
|
528
|
+
resolveCardConfig?: (card: TCard) => CardConfig;
|
|
529
|
+
valueFormatPreferences: ResolvedValueFormatPreferences;
|
|
530
|
+
calendar: Pick<CalendarContext, 'tz'>;
|
|
531
|
+
}): ResolvedPresentationEntry[];
|
|
532
|
+
|
|
488
533
|
export declare function buildUpdateBriefingRequest(draft: BriefingDraft): UpdateBriefingRequest;
|
|
489
534
|
|
|
535
|
+
declare type CacheConfig = {
|
|
536
|
+
ttl: string;
|
|
537
|
+
status: 'on' | 'on-refresh' | 'off';
|
|
538
|
+
};
|
|
539
|
+
|
|
490
540
|
/**
|
|
491
541
|
* Formula metadata for calculated fields (UI-only metadata)
|
|
492
542
|
* This is supplementary runtime/compiler data to help dashboard UI display,
|
|
@@ -635,6 +685,24 @@ declare interface CardInteractionConfig {
|
|
|
635
685
|
drillHierarchies?: DrillHierarchy[];
|
|
636
686
|
}
|
|
637
687
|
|
|
688
|
+
declare type CardWithContent = BaseCustomCard & {
|
|
689
|
+
content: React.FC<{
|
|
690
|
+
card: TCard;
|
|
691
|
+
}>;
|
|
692
|
+
footer?: React.FC<{
|
|
693
|
+
card: TCard;
|
|
694
|
+
}>;
|
|
695
|
+
};
|
|
696
|
+
|
|
697
|
+
declare type CardWithFooter = BaseCustomCard & {
|
|
698
|
+
content?: React.FC<{
|
|
699
|
+
card: TCard;
|
|
700
|
+
}>;
|
|
701
|
+
footer: React.FC<{
|
|
702
|
+
card: TCard;
|
|
703
|
+
}>;
|
|
704
|
+
};
|
|
705
|
+
|
|
638
706
|
declare interface ClickFilterInteraction {
|
|
639
707
|
mode: 'clickFilter';
|
|
640
708
|
/**
|
|
@@ -876,6 +944,11 @@ declare type ControlBinding = {
|
|
|
876
944
|
mapping: Record<string, string>;
|
|
877
945
|
} | CurrencyPresentationBinding;
|
|
878
946
|
|
|
947
|
+
declare type ControlDashboardInput = DashboardInputBase & {
|
|
948
|
+
kind: 'control';
|
|
949
|
+
control: ControlDefinition;
|
|
950
|
+
};
|
|
951
|
+
|
|
879
952
|
declare type ControlDefinition = {
|
|
880
953
|
id: string;
|
|
881
954
|
label: string;
|
|
@@ -939,7 +1012,6 @@ export declare type CreateBriefingRequest = {
|
|
|
939
1012
|
presentation: BriefingPresentation;
|
|
940
1013
|
limits?: BriefingLimits;
|
|
941
1014
|
deliveryConfig: BriefingDeliveryConfig | null;
|
|
942
|
-
resolvedFormats?: ResolvedPresentationEntry[];
|
|
943
1015
|
};
|
|
944
1016
|
|
|
945
1017
|
declare type CurrencyPresentationBinding = {
|
|
@@ -959,8 +1031,87 @@ declare type CurrencyPresentationTarget = {
|
|
|
959
1031
|
measureId: string;
|
|
960
1032
|
};
|
|
961
1033
|
|
|
1034
|
+
declare type CustomCard = CardWithContent | CardWithFooter;
|
|
1035
|
+
|
|
1036
|
+
declare type DashboardAIContext = AIContext & {
|
|
1037
|
+
mode?: DashboardAIContextMode;
|
|
1038
|
+
};
|
|
1039
|
+
|
|
1040
|
+
declare type DashboardAIContextMode = 'auto' | 'fixed';
|
|
1041
|
+
|
|
1042
|
+
declare type DashboardInput = FilterDashboardInput | ControlDashboardInput;
|
|
1043
|
+
|
|
1044
|
+
declare type DashboardInputBase = {
|
|
1045
|
+
id: string;
|
|
1046
|
+
label: string;
|
|
1047
|
+
variableName: string;
|
|
1048
|
+
description?: string;
|
|
1049
|
+
requiredAtExecution?: boolean;
|
|
1050
|
+
scope: DashboardInputScope;
|
|
1051
|
+
runtimeScope: DashboardInputRuntimeScope;
|
|
1052
|
+
presentation?: DashboardInputPresentation;
|
|
1053
|
+
exports?: DashboardInputExportKey[];
|
|
1054
|
+
compatibility?: DashboardInputCompatibilityMetadata;
|
|
1055
|
+
};
|
|
1056
|
+
|
|
1057
|
+
declare type DashboardInputCompatibilityMetadata = {
|
|
1058
|
+
source: 'dashboardFilter';
|
|
1059
|
+
filterId: string;
|
|
1060
|
+
} | {
|
|
1061
|
+
source: 'dashboardControl';
|
|
1062
|
+
controlId: string;
|
|
1063
|
+
} | {
|
|
1064
|
+
source: 'cardInlineFilter';
|
|
1065
|
+
cardId: string;
|
|
1066
|
+
filterId: string;
|
|
1067
|
+
} | {
|
|
1068
|
+
source: 'cardControl';
|
|
1069
|
+
cardId: string;
|
|
1070
|
+
controlId: string;
|
|
1071
|
+
} | {
|
|
1072
|
+
source: 'documentInput';
|
|
1073
|
+
sheetId: string;
|
|
1074
|
+
inputId: string;
|
|
1075
|
+
};
|
|
1076
|
+
|
|
962
1077
|
declare type DashboardInputExportKey = 'label' | 'value' | 'start' | 'end' | 'range';
|
|
963
1078
|
|
|
1079
|
+
declare type DashboardInputPresentation = {
|
|
1080
|
+
placement?: 'toolbar' | 'card_header' | 'advanced' | 'hidden';
|
|
1081
|
+
widthPx?: number;
|
|
1082
|
+
order?: number;
|
|
1083
|
+
};
|
|
1084
|
+
|
|
1085
|
+
declare type DashboardInputRuntimeScope = 'shared' | 'perSheet' | 'perCard' | 'perDocumentSection';
|
|
1086
|
+
|
|
1087
|
+
declare type DashboardInputScope = {
|
|
1088
|
+
kind: 'allSheets';
|
|
1089
|
+
sheetKinds?: Array<'dashboard' | 'document'>;
|
|
1090
|
+
} | {
|
|
1091
|
+
kind: 'sheets';
|
|
1092
|
+
sheetIds: string[];
|
|
1093
|
+
} | {
|
|
1094
|
+
kind: 'cards';
|
|
1095
|
+
cardIds: string[];
|
|
1096
|
+
} | {
|
|
1097
|
+
kind: 'documentSections';
|
|
1098
|
+
sheetId: string;
|
|
1099
|
+
sectionIds: string[];
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1102
|
+
declare type DashboardInputSlot = ({
|
|
1103
|
+
status: 'set';
|
|
1104
|
+
value: DashboardInputValue;
|
|
1105
|
+
comparisonSelection?: GlobalDateComparisonSelection;
|
|
1106
|
+
}) | ({
|
|
1107
|
+
status: 'cleared';
|
|
1108
|
+
comparisonSelection?: GlobalDateComparisonSelection;
|
|
1109
|
+
}) | {
|
|
1110
|
+
status?: never;
|
|
1111
|
+
value?: never;
|
|
1112
|
+
comparisonSelection: GlobalDateComparisonSelection;
|
|
1113
|
+
};
|
|
1114
|
+
|
|
964
1115
|
declare type DashboardInputTextContent = Array<{
|
|
965
1116
|
type: 'text';
|
|
966
1117
|
value: string;
|
|
@@ -969,6 +1120,21 @@ declare type DashboardInputTextContent = Array<{
|
|
|
969
1120
|
ref: DashboardInputVariableRef;
|
|
970
1121
|
}>;
|
|
971
1122
|
|
|
1123
|
+
declare type DashboardInputValue = {
|
|
1124
|
+
kind: 'filter';
|
|
1125
|
+
filterValue: TFilterValue;
|
|
1126
|
+
} | {
|
|
1127
|
+
kind: 'control';
|
|
1128
|
+
value: unknown;
|
|
1129
|
+
};
|
|
1130
|
+
|
|
1131
|
+
declare type DashboardInputValues = {
|
|
1132
|
+
shared?: Record<string, DashboardInputSlot>;
|
|
1133
|
+
bySheetId?: Record<string, Record<string, DashboardInputSlot>>;
|
|
1134
|
+
byCardId?: Record<string, Record<string, DashboardInputSlot>>;
|
|
1135
|
+
byDocumentSectionId?: Record<string, Record<string, DashboardInputSlot>>;
|
|
1136
|
+
};
|
|
1137
|
+
|
|
972
1138
|
declare type DashboardInputVariableRef = {
|
|
973
1139
|
source: 'dashboardInput';
|
|
974
1140
|
inputId: string;
|
|
@@ -982,6 +1148,13 @@ declare type DashboardInputVariableRef = {
|
|
|
982
1148
|
key: 'generatedAt' | 'pageNumber' | 'pageCount';
|
|
983
1149
|
};
|
|
984
1150
|
|
|
1151
|
+
declare type DashboardTemporalSnapshotSelection = {
|
|
1152
|
+
dashboardId: string;
|
|
1153
|
+
sheetId?: string;
|
|
1154
|
+
cardId?: string;
|
|
1155
|
+
attachmentIndex?: number;
|
|
1156
|
+
};
|
|
1157
|
+
|
|
985
1158
|
declare interface DatabaseEntityReference {
|
|
986
1159
|
connectionId: string;
|
|
987
1160
|
connectionType: ConnectionType;
|
|
@@ -1056,6 +1229,11 @@ export declare function describeBriefingSchedule(expression: string, timezone: s
|
|
|
1056
1229
|
*/
|
|
1057
1230
|
declare interface DetailField extends Omit<Field, 'role' | 'granularity'> {
|
|
1058
1231
|
role: 'detail';
|
|
1232
|
+
/**
|
|
1233
|
+
* Query transport policy for ungrouped temporal values. This marker is
|
|
1234
|
+
* projected into executable config and is never persisted authoring state.
|
|
1235
|
+
*/
|
|
1236
|
+
dateValueMode?: 'canonical' | 'formatted';
|
|
1059
1237
|
dateFormat?: DateFormatValue;
|
|
1060
1238
|
customFormat?: string;
|
|
1061
1239
|
/**
|
|
@@ -1089,6 +1267,189 @@ declare type Dialect = 'mysql' | 'postgres' | 'bigquery' | 'redshift' | 'snowfla
|
|
|
1089
1267
|
|
|
1090
1268
|
declare type DisplayDataType = 'string' | 'date' | 'number' | 'html' | 'none';
|
|
1091
1269
|
|
|
1270
|
+
declare type DocumentChartSection = {
|
|
1271
|
+
id: string;
|
|
1272
|
+
type: 'chart';
|
|
1273
|
+
title?: string;
|
|
1274
|
+
card: TCard;
|
|
1275
|
+
heightPx: number;
|
|
1276
|
+
};
|
|
1277
|
+
|
|
1278
|
+
declare type DocumentControlInputDefinition = DocumentInputBase & {
|
|
1279
|
+
kind: 'control';
|
|
1280
|
+
control: ControlDefinition;
|
|
1281
|
+
exports?: DocumentInputExportKey[];
|
|
1282
|
+
};
|
|
1283
|
+
|
|
1284
|
+
declare type DocumentDefinition = {
|
|
1285
|
+
version: 1;
|
|
1286
|
+
page: DocumentPageSetup;
|
|
1287
|
+
runtime?: DocumentRuntimeSettings;
|
|
1288
|
+
inputs?: DocumentInputDefinition[];
|
|
1289
|
+
defaultInputValues?: Record<string, unknown>;
|
|
1290
|
+
header?: DocumentHeaderRegion;
|
|
1291
|
+
footer?: DocumentFooterRegion;
|
|
1292
|
+
sections: DocumentSection[];
|
|
1293
|
+
theme?: DocumentTheme;
|
|
1294
|
+
};
|
|
1295
|
+
|
|
1296
|
+
declare type DocumentFilterInputDefinition = DocumentInputBase & {
|
|
1297
|
+
kind: 'filter';
|
|
1298
|
+
filter: TFilter;
|
|
1299
|
+
exports?: DocumentInputExportKey[];
|
|
1300
|
+
};
|
|
1301
|
+
|
|
1302
|
+
declare type DocumentFooterRegion = DocumentRegionBase & {
|
|
1303
|
+
region: 'footer';
|
|
1304
|
+
layout: {
|
|
1305
|
+
type: 'preset';
|
|
1306
|
+
preset: 'mvp_footer';
|
|
1307
|
+
};
|
|
1308
|
+
};
|
|
1309
|
+
|
|
1310
|
+
declare type DocumentHeaderRegion = DocumentRegionBase & {
|
|
1311
|
+
region: 'header';
|
|
1312
|
+
layout: {
|
|
1313
|
+
type: 'preset';
|
|
1314
|
+
preset: 'mvp_header';
|
|
1315
|
+
};
|
|
1316
|
+
};
|
|
1317
|
+
|
|
1318
|
+
declare type DocumentImageRegionBlock = DocumentRegionBlockBase & {
|
|
1319
|
+
type: 'image';
|
|
1320
|
+
role?: 'logo';
|
|
1321
|
+
src: string;
|
|
1322
|
+
alt?: string;
|
|
1323
|
+
widthPx?: number;
|
|
1324
|
+
};
|
|
1325
|
+
|
|
1326
|
+
declare type DocumentInputBase = {
|
|
1327
|
+
id: string;
|
|
1328
|
+
label: string;
|
|
1329
|
+
variableName: string;
|
|
1330
|
+
requiredAtExecution: boolean;
|
|
1331
|
+
documentPlacement?: 'input_bar';
|
|
1332
|
+
description?: string;
|
|
1333
|
+
};
|
|
1334
|
+
|
|
1335
|
+
declare type DocumentInputDefinition = DocumentFilterInputDefinition | DocumentControlInputDefinition;
|
|
1336
|
+
|
|
1337
|
+
declare type DocumentInputExportKey = 'label' | 'value' | 'start' | 'end' | 'range';
|
|
1338
|
+
|
|
1339
|
+
declare type DocumentPageBreakSection = {
|
|
1340
|
+
id: string;
|
|
1341
|
+
type: 'page_break';
|
|
1342
|
+
};
|
|
1343
|
+
|
|
1344
|
+
declare type DocumentPageSetup = {
|
|
1345
|
+
size: 'letter' | 'a4';
|
|
1346
|
+
orientation: 'portrait' | 'landscape';
|
|
1347
|
+
margins: {
|
|
1348
|
+
top: number;
|
|
1349
|
+
right: number;
|
|
1350
|
+
bottom: number;
|
|
1351
|
+
left: number;
|
|
1352
|
+
unit: 'in' | 'mm';
|
|
1353
|
+
};
|
|
1354
|
+
};
|
|
1355
|
+
|
|
1356
|
+
declare type DocumentRegionBase = {
|
|
1357
|
+
enabled: boolean;
|
|
1358
|
+
heightPx?: number;
|
|
1359
|
+
layout: DocumentRegionLayout;
|
|
1360
|
+
blocks: DocumentRegionBlock[];
|
|
1361
|
+
};
|
|
1362
|
+
|
|
1363
|
+
declare type DocumentRegionBlock = DocumentTextRegionBlock | DocumentImageRegionBlock;
|
|
1364
|
+
|
|
1365
|
+
declare type DocumentRegionBlockBase = {
|
|
1366
|
+
id: string;
|
|
1367
|
+
area?: 'left' | 'center' | 'right' | 'title' | 'metadata' | 'note' | 'pageInfo';
|
|
1368
|
+
};
|
|
1369
|
+
|
|
1370
|
+
declare type DocumentRegionLayout = {
|
|
1371
|
+
type: 'preset';
|
|
1372
|
+
preset: 'mvp_header' | 'mvp_footer';
|
|
1373
|
+
};
|
|
1374
|
+
|
|
1375
|
+
declare type DocumentRuntimeSettings = {
|
|
1376
|
+
generatedAtFormat?: string;
|
|
1377
|
+
};
|
|
1378
|
+
|
|
1379
|
+
declare type DocumentSection = DocumentTextSection | DocumentTableSection | DocumentChartSection | DocumentSpacerSection | DocumentPageBreakSection;
|
|
1380
|
+
|
|
1381
|
+
declare type DocumentSpacerSection = {
|
|
1382
|
+
id: string;
|
|
1383
|
+
type: 'spacer';
|
|
1384
|
+
heightPx: number;
|
|
1385
|
+
};
|
|
1386
|
+
|
|
1387
|
+
declare type DocumentTableSection = {
|
|
1388
|
+
id: string;
|
|
1389
|
+
type: 'table';
|
|
1390
|
+
title?: string;
|
|
1391
|
+
card: TCard;
|
|
1392
|
+
table: {
|
|
1393
|
+
totalsRow?: boolean;
|
|
1394
|
+
columnFormatting?: Record<string, unknown>;
|
|
1395
|
+
repeatHeaderOnPageBreak?: boolean;
|
|
1396
|
+
rowHeightPx?: number;
|
|
1397
|
+
};
|
|
1398
|
+
};
|
|
1399
|
+
|
|
1400
|
+
declare type DocumentTextContent = DocumentTextNode[];
|
|
1401
|
+
|
|
1402
|
+
declare type DocumentTextInlineFormat = {
|
|
1403
|
+
bold?: boolean;
|
|
1404
|
+
italic?: boolean;
|
|
1405
|
+
underline?: boolean;
|
|
1406
|
+
};
|
|
1407
|
+
|
|
1408
|
+
declare type DocumentTextNode = {
|
|
1409
|
+
type: 'text';
|
|
1410
|
+
value: string;
|
|
1411
|
+
format?: DocumentTextInlineFormat;
|
|
1412
|
+
} | {
|
|
1413
|
+
type: 'variable';
|
|
1414
|
+
ref: DocumentVariableRef;
|
|
1415
|
+
format?: DocumentTextInlineFormat;
|
|
1416
|
+
};
|
|
1417
|
+
|
|
1418
|
+
declare type DocumentTextRegionBlock = DocumentRegionBlockBase & {
|
|
1419
|
+
type: 'text';
|
|
1420
|
+
role?: 'title' | 'metadata' | 'note' | 'pageInfo';
|
|
1421
|
+
content: DocumentTextContent;
|
|
1422
|
+
style?: DocumentTextStyle;
|
|
1423
|
+
};
|
|
1424
|
+
|
|
1425
|
+
declare type DocumentTextSection = {
|
|
1426
|
+
id: string;
|
|
1427
|
+
type: 'text';
|
|
1428
|
+
content: DocumentTextContent;
|
|
1429
|
+
style?: DocumentTextStyle;
|
|
1430
|
+
};
|
|
1431
|
+
|
|
1432
|
+
declare type DocumentTextStyle = {
|
|
1433
|
+
fontSize?: number;
|
|
1434
|
+
fontWeight?: 'normal' | 'medium' | 'semibold' | 'bold';
|
|
1435
|
+
color?: string;
|
|
1436
|
+
align?: 'left' | 'center' | 'right';
|
|
1437
|
+
};
|
|
1438
|
+
|
|
1439
|
+
declare type DocumentTheme = {
|
|
1440
|
+
fontFamily?: string;
|
|
1441
|
+
primaryColor?: string;
|
|
1442
|
+
};
|
|
1443
|
+
|
|
1444
|
+
declare type DocumentVariableRef = {
|
|
1445
|
+
source: 'input';
|
|
1446
|
+
inputId: string;
|
|
1447
|
+
export: DocumentInputExportKey;
|
|
1448
|
+
} | {
|
|
1449
|
+
source: 'documentMeta';
|
|
1450
|
+
key: 'generatedAt' | 'pageNumber' | 'pageCount';
|
|
1451
|
+
};
|
|
1452
|
+
|
|
1092
1453
|
declare interface DrillDownInteraction {
|
|
1093
1454
|
mode: 'drillDown';
|
|
1094
1455
|
/**
|
|
@@ -1228,6 +1589,13 @@ declare interface DynamicDrillInteraction {
|
|
|
1228
1589
|
/* Excluded from this release type: drillField */
|
|
1229
1590
|
}
|
|
1230
1591
|
|
|
1592
|
+
declare type EmailSettings = {
|
|
1593
|
+
companyName: string;
|
|
1594
|
+
dashboardUrl: string;
|
|
1595
|
+
supportEmail: string;
|
|
1596
|
+
senderTitle: string;
|
|
1597
|
+
};
|
|
1598
|
+
|
|
1231
1599
|
declare type EntityType = 'table' | 'view' | 'materialized view' | 'model' | 'file' | 'dataset' | 'url' | 'upload';
|
|
1232
1600
|
|
|
1233
1601
|
declare interface Field {
|
|
@@ -1288,6 +1656,17 @@ declare interface Field {
|
|
|
1288
1656
|
|
|
1289
1657
|
declare type FieldScope = 'card' | 'sheet' | 'dashboard' | 'domain';
|
|
1290
1658
|
|
|
1659
|
+
declare type FileAttachment = {
|
|
1660
|
+
id: string;
|
|
1661
|
+
name: string;
|
|
1662
|
+
size: number;
|
|
1663
|
+
type: string;
|
|
1664
|
+
data?: string;
|
|
1665
|
+
url?: string;
|
|
1666
|
+
preview?: string;
|
|
1667
|
+
uploadProgress?: number;
|
|
1668
|
+
};
|
|
1669
|
+
|
|
1291
1670
|
declare interface FileEntityReference extends DatabaseEntityReference {
|
|
1292
1671
|
id: string;
|
|
1293
1672
|
type: 'file' | 'url' | 'upload';
|
|
@@ -1320,6 +1699,19 @@ declare interface FilterCondition {
|
|
|
1320
1699
|
temporalBucket?: TemporalBucketMetadata;
|
|
1321
1700
|
}
|
|
1322
1701
|
|
|
1702
|
+
declare type FilterDashboardInput = DashboardInputBase & {
|
|
1703
|
+
kind: 'filter';
|
|
1704
|
+
filter: TFilter;
|
|
1705
|
+
};
|
|
1706
|
+
|
|
1707
|
+
/**
|
|
1708
|
+
* Display mode for individual filters
|
|
1709
|
+
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
1710
|
+
* - 'toolbar': Filter displayed in the compact toolbar
|
|
1711
|
+
* - 'inherit': Use the dashboard's filterLayout.displayMode setting (default)
|
|
1712
|
+
*/
|
|
1713
|
+
declare type FilterDisplayMode = 'canvas' | 'toolbar' | 'inherit';
|
|
1714
|
+
|
|
1323
1715
|
declare type FilterFieldMeta = Pick<Field, 'name' | 'qualifiedFieldName'> & Partial<Pick<Field, 'id' | 'qualifiedEntityName' | 'entityId' | 'dataType' | 'role' | 'fieldScope'>> & {
|
|
1324
1716
|
entityName?: Field['entityName'];
|
|
1325
1717
|
entityType?: string;
|
|
@@ -1327,6 +1719,43 @@ declare type FilterFieldMeta = Pick<Field, 'name' | 'qualifiedFieldName'> & Part
|
|
|
1327
1719
|
calculatedFormula?: CalculatedFieldFormula;
|
|
1328
1720
|
};
|
|
1329
1721
|
|
|
1722
|
+
declare type FilterForBetween = BaseFilter & {
|
|
1723
|
+
operation: 'between' | 'not between';
|
|
1724
|
+
values: [number, number];
|
|
1725
|
+
};
|
|
1726
|
+
|
|
1727
|
+
declare type FilterForCompare = BaseFilter & {
|
|
1728
|
+
operation: '>' | '<' | '>=' | '<=';
|
|
1729
|
+
values: [number];
|
|
1730
|
+
};
|
|
1731
|
+
|
|
1732
|
+
declare type FilterForDate = BaseFilter & {
|
|
1733
|
+
operation: 'between' | 'not between' | '=' | '!=' | '>' | '<' | '>=' | '<=';
|
|
1734
|
+
values: [Date | string, Date | string] | [Date | string];
|
|
1735
|
+
relativeMeta?: RelativeDateFilter;
|
|
1736
|
+
temporalPrecision?: TemporalPrecision;
|
|
1737
|
+
};
|
|
1738
|
+
|
|
1739
|
+
declare type FilterForEqual = BaseFilter & {
|
|
1740
|
+
operation: '=' | '!=';
|
|
1741
|
+
values: [string | number];
|
|
1742
|
+
};
|
|
1743
|
+
|
|
1744
|
+
declare type FilterForIn = BaseFilter & {
|
|
1745
|
+
operation: 'in' | 'not in';
|
|
1746
|
+
values: (string | number)[];
|
|
1747
|
+
};
|
|
1748
|
+
|
|
1749
|
+
declare type FilterForNull = BaseFilter & {
|
|
1750
|
+
operation: 'is null' | 'is not null';
|
|
1751
|
+
values: [];
|
|
1752
|
+
};
|
|
1753
|
+
|
|
1754
|
+
declare type FilterForString = BaseFilter & {
|
|
1755
|
+
operation: 'like' | 'not like';
|
|
1756
|
+
values: [string];
|
|
1757
|
+
};
|
|
1758
|
+
|
|
1330
1759
|
declare interface FilterGroup {
|
|
1331
1760
|
id: string;
|
|
1332
1761
|
logicalOperator: LogicalOperator;
|
|
@@ -1335,6 +1764,38 @@ declare interface FilterGroup {
|
|
|
1335
1764
|
groups: FilterGroup[];
|
|
1336
1765
|
}
|
|
1337
1766
|
|
|
1767
|
+
declare type FilterKind = 'field' | 'global-date';
|
|
1768
|
+
|
|
1769
|
+
/**
|
|
1770
|
+
* Filter layout settings for controlling how dashboard filters are displayed
|
|
1771
|
+
*/
|
|
1772
|
+
declare type FilterLayoutSettings = {
|
|
1773
|
+
/**
|
|
1774
|
+
* Display mode for filters
|
|
1775
|
+
* - 'canvas': Filters displayed as draggable/resizable cards on the dashboard canvas (default)
|
|
1776
|
+
* - 'toolbar': Filters displayed in a compact horizontal toolbar below dashboard controls
|
|
1777
|
+
*/
|
|
1778
|
+
displayMode?: 'canvas' | 'toolbar';
|
|
1779
|
+
/**
|
|
1780
|
+
* Whether the toolbar should wrap filters to multiple lines
|
|
1781
|
+
* - false: Horizontal scroll when filters overflow (default)
|
|
1782
|
+
* - true: Wrap to multiple lines
|
|
1783
|
+
*/
|
|
1784
|
+
toolbarWrap?: boolean;
|
|
1785
|
+
/**
|
|
1786
|
+
* Whether to show a download button in the filter toolbar
|
|
1787
|
+
* Useful when embedding Dashboard component without Surfboard's controls
|
|
1788
|
+
*/
|
|
1789
|
+
showDownloadButton?: boolean;
|
|
1790
|
+
/**
|
|
1791
|
+
* Mixed toolbar item order for dashboard-level filter and control chips.
|
|
1792
|
+
* Values use prefixed ids like `filter:<id>` and `control:<id>`.
|
|
1793
|
+
*/
|
|
1794
|
+
toolbarItemOrder?: string[];
|
|
1795
|
+
};
|
|
1796
|
+
|
|
1797
|
+
declare type FilterLocation = 'dashboard' | 'frame' | 'sheet' | undefined;
|
|
1798
|
+
|
|
1338
1799
|
declare type FilterOnClick = {
|
|
1339
1800
|
expression?: string;
|
|
1340
1801
|
columnIndex: number;
|
|
@@ -1438,6 +1899,13 @@ export declare function getDefaultBriefingCardAttachmentFormat(input: {
|
|
|
1438
1899
|
allowDownload?: boolean;
|
|
1439
1900
|
}): BriefingAttachmentFormat;
|
|
1440
1901
|
|
|
1902
|
+
declare type GlobalDateComparisonSelection = {
|
|
1903
|
+
mode: 'off';
|
|
1904
|
+
} | {
|
|
1905
|
+
mode: 'period';
|
|
1906
|
+
spec: ViewerPeriodComparisonSpec;
|
|
1907
|
+
};
|
|
1908
|
+
|
|
1441
1909
|
declare type Granularity = SemaphorTimeGrain;
|
|
1442
1910
|
|
|
1443
1911
|
declare interface GroupByColumn extends BaseColumn {
|
|
@@ -1449,11 +1917,6 @@ declare interface GroupByColumn extends BaseColumn {
|
|
|
1449
1917
|
declare interface GroupByField extends Field {
|
|
1450
1918
|
role: 'groupby';
|
|
1451
1919
|
granularity?: TimeGranularity;
|
|
1452
|
-
/**
|
|
1453
|
-
* Query transport policy for grouped temporal values. This is projected
|
|
1454
|
-
* into executable card config and is not persisted authoring state.
|
|
1455
|
-
*/
|
|
1456
|
-
dateValueMode?: 'canonical' | 'formatted';
|
|
1457
1920
|
/**
|
|
1458
1921
|
* Optional SQL expression for grouping (e.g., DATE_TRUNC('month', order_date)).
|
|
1459
1922
|
* If present, used in SELECT and GROUP BY instead of just the column name.
|
|
@@ -1788,11 +2251,6 @@ declare interface PivotByField extends Field {
|
|
|
1788
2251
|
* so existing cards need no migration.
|
|
1789
2252
|
*/
|
|
1790
2253
|
memberOrder?: PivotMemberOrder;
|
|
1791
|
-
/**
|
|
1792
|
-
* Query transport policy for grouped temporal pivot members. This is
|
|
1793
|
-
* projected into executable config and is never persisted authoring state.
|
|
1794
|
-
*/
|
|
1795
|
-
dateValueMode?: 'canonical' | 'formatted';
|
|
1796
2254
|
}
|
|
1797
2255
|
|
|
1798
2256
|
/**
|
|
@@ -1804,6 +2262,12 @@ declare interface PivotByField extends Field {
|
|
|
1804
2262
|
*/
|
|
1805
2263
|
declare type PivotMemberOrder = 'auto' | 'asc' | 'desc';
|
|
1806
2264
|
|
|
2265
|
+
declare type PresentationExecutionSnapshot = {
|
|
2266
|
+
version: 1;
|
|
2267
|
+
reportContext: ReportRuntimeContext;
|
|
2268
|
+
resolvedFormats: ResolvedPresentationEntry[];
|
|
2269
|
+
};
|
|
2270
|
+
|
|
1807
2271
|
declare type PresentationScope = {
|
|
1808
2272
|
dashboardId: string;
|
|
1809
2273
|
cardId?: string;
|
|
@@ -1832,6 +2296,13 @@ declare type RangeValue = {
|
|
|
1832
2296
|
gt?: string | number;
|
|
1833
2297
|
};
|
|
1834
2298
|
|
|
2299
|
+
declare type RawTemporalPatternDialect = 'semaphor_tokens' | 'date_fns';
|
|
2300
|
+
|
|
2301
|
+
declare type RawTemporalPresentationTarget = {
|
|
2302
|
+
kind: 'column';
|
|
2303
|
+
columnKey: string;
|
|
2304
|
+
};
|
|
2305
|
+
|
|
1835
2306
|
declare type RelativeDateFilter = {
|
|
1836
2307
|
mode: 'last';
|
|
1837
2308
|
n: number;
|
|
@@ -1882,10 +2353,47 @@ declare type ResolvedNumericPresentationEntry = {
|
|
|
1882
2353
|
format: NumericCanonicalFormat;
|
|
1883
2354
|
};
|
|
1884
2355
|
|
|
1885
|
-
declare type ResolvedPresentationEntry = ResolvedNumericPresentationEntry | ResolvedTemporalBucketPresentationEntry;
|
|
2356
|
+
declare type ResolvedPresentationEntry = ResolvedNumericPresentationEntry | ResolvedTemporalBucketPresentationEntry | ResolvedRawTemporalPresentationEntry;
|
|
1886
2357
|
|
|
1887
|
-
declare type
|
|
2358
|
+
declare type ResolvedRawTemporalFormat = {
|
|
2359
|
+
type: 'raw_temporal';
|
|
1888
2360
|
locale: string;
|
|
2361
|
+
calendarTimezone: string;
|
|
2362
|
+
/** Resolved source timezone for timezone-less wall datetimes, when authored. */
|
|
2363
|
+
sourceTimezone?: string;
|
|
2364
|
+
presentation: {
|
|
2365
|
+
mode: 'auto';
|
|
2366
|
+
styles: ResolvedTemporalStyleSet;
|
|
2367
|
+
} | {
|
|
2368
|
+
mode: 'pattern';
|
|
2369
|
+
dialect: RawTemporalPatternDialect;
|
|
2370
|
+
pattern: string;
|
|
2371
|
+
};
|
|
2372
|
+
};
|
|
2373
|
+
|
|
2374
|
+
declare type ResolvedRawTemporalPresentationEntry = {
|
|
2375
|
+
scope: PresentationScope;
|
|
2376
|
+
target: RawTemporalPresentationTarget;
|
|
2377
|
+
format: ResolvedRawTemporalFormat;
|
|
2378
|
+
};
|
|
2379
|
+
|
|
2380
|
+
declare type ResolvedTemporalBucketFormat = {
|
|
2381
|
+
type: 'temporal_bucket';
|
|
2382
|
+
locale: string;
|
|
2383
|
+
presentation: {
|
|
2384
|
+
mode: 'auto';
|
|
2385
|
+
styles: ResolvedTemporalStyleSet;
|
|
2386
|
+
};
|
|
2387
|
+
} | {
|
|
2388
|
+
type: 'temporal_bucket';
|
|
2389
|
+
locale: string;
|
|
2390
|
+
presentation: {
|
|
2391
|
+
mode: 'preset';
|
|
2392
|
+
preset: TemporalBucketPreset;
|
|
2393
|
+
} | {
|
|
2394
|
+
mode: 'pattern';
|
|
2395
|
+
pattern: string;
|
|
2396
|
+
};
|
|
1889
2397
|
};
|
|
1890
2398
|
|
|
1891
2399
|
declare type ResolvedTemporalBucketPresentationEntry = {
|
|
@@ -1894,6 +2402,14 @@ declare type ResolvedTemporalBucketPresentationEntry = {
|
|
|
1894
2402
|
format: ResolvedTemporalBucketFormat;
|
|
1895
2403
|
};
|
|
1896
2404
|
|
|
2405
|
+
declare type ResolvedTemporalStyleSet = {
|
|
2406
|
+
dateStyle: LocaleStyle;
|
|
2407
|
+
dateTime: {
|
|
2408
|
+
dateStyle: LocaleStyle;
|
|
2409
|
+
timeStyle: LocaleStyle;
|
|
2410
|
+
};
|
|
2411
|
+
};
|
|
2412
|
+
|
|
1897
2413
|
declare type ResolvedValueFormatPreferences = {
|
|
1898
2414
|
locale: string;
|
|
1899
2415
|
dateStyle: LocaleStyle;
|
|
@@ -2032,6 +2548,8 @@ declare type SemaphorMatrixAxisLevel = {
|
|
|
2032
2548
|
id?: string;
|
|
2033
2549
|
field: SemaphorFieldRef;
|
|
2034
2550
|
grain?: SemaphorMatrixTimeGrain;
|
|
2551
|
+
format?: TemporalBucketFormat;
|
|
2552
|
+
semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
|
|
2035
2553
|
label?: string;
|
|
2036
2554
|
subtotal?: boolean | SemaphorMatrixSubtotalOptions;
|
|
2037
2555
|
sortBy?: SemaphorMatrixAxisSortRule;
|
|
@@ -2040,7 +2558,7 @@ declare type SemaphorMatrixAxisLevel = {
|
|
|
2040
2558
|
declare type SemaphorMatrixAxisSortRule = {
|
|
2041
2559
|
direction: 'asc' | 'desc';
|
|
2042
2560
|
by: {
|
|
2043
|
-
kind: '
|
|
2561
|
+
kind: 'member';
|
|
2044
2562
|
} | {
|
|
2045
2563
|
kind: 'field';
|
|
2046
2564
|
field: SemaphorFieldRef;
|
|
@@ -2095,12 +2613,17 @@ declare type SemaphorMatrixMemberPathSegment = {
|
|
|
2095
2613
|
value: unknown;
|
|
2096
2614
|
};
|
|
2097
2615
|
|
|
2616
|
+
declare type SemaphorMatrixSemanticTemporalPresentation = {
|
|
2617
|
+
granularity: SemaphorMatrixTimeGrain;
|
|
2618
|
+
format: TemporalBucketFormat;
|
|
2619
|
+
};
|
|
2620
|
+
|
|
2098
2621
|
declare type SemaphorMatrixSortRule = {
|
|
2099
2622
|
axis: 'row' | 'column';
|
|
2100
2623
|
targetId?: string;
|
|
2101
2624
|
direction: 'asc' | 'desc';
|
|
2102
2625
|
by: {
|
|
2103
|
-
kind: '
|
|
2626
|
+
kind: 'member';
|
|
2104
2627
|
} | {
|
|
2105
2628
|
kind: 'field';
|
|
2106
2629
|
field: SemaphorFieldRef;
|
|
@@ -2257,6 +2780,47 @@ declare type StructuralFieldSelectorTarget = GroupByField;
|
|
|
2257
2780
|
|
|
2258
2781
|
declare type StructuralMetricSelectorTarget = MetricField;
|
|
2259
2782
|
|
|
2783
|
+
/**
|
|
2784
|
+
* Style propeerites for the dashboard
|
|
2785
|
+
*/
|
|
2786
|
+
declare type StyleProps = {
|
|
2787
|
+
/** Theme for dashboard background */
|
|
2788
|
+
canvasTheme?: 'clear' | 'muted' | string;
|
|
2789
|
+
/** css class for `dashboard-panel` */
|
|
2790
|
+
dashboardPanel?: string;
|
|
2791
|
+
/** css class for `dashboard-tabs-container` */
|
|
2792
|
+
dashboardTabsContainer?: string;
|
|
2793
|
+
/** css class for `dashboard-card` */
|
|
2794
|
+
/** css class for `dashboard-card-container` */
|
|
2795
|
+
dashboardCardContainer?: string;
|
|
2796
|
+
dashboardCard?: string;
|
|
2797
|
+
/** grid-layout config */
|
|
2798
|
+
/**
|
|
2799
|
+
* Border radius for the control inputs such as filter input, tabs, date picker, etc.
|
|
2800
|
+
*/
|
|
2801
|
+
controlInputRadius?: number;
|
|
2802
|
+
/**
|
|
2803
|
+
* Border radius for the cards
|
|
2804
|
+
*/
|
|
2805
|
+
cardBorderRadius?: number;
|
|
2806
|
+
gridLayout?: {
|
|
2807
|
+
/** css class for `react-grid-layout` */
|
|
2808
|
+
className?: string;
|
|
2809
|
+
margin?: [number, number];
|
|
2810
|
+
};
|
|
2811
|
+
/** chart config */
|
|
2812
|
+
chart?: {
|
|
2813
|
+
/** chart font config */
|
|
2814
|
+
font?: Partial<FontSpec>;
|
|
2815
|
+
dataset?: any;
|
|
2816
|
+
/** chart options */
|
|
2817
|
+
options?: any;
|
|
2818
|
+
};
|
|
2819
|
+
table?: {
|
|
2820
|
+
tableHeaderColor?: string;
|
|
2821
|
+
};
|
|
2822
|
+
};
|
|
2823
|
+
|
|
2260
2824
|
declare type SubDayDateUnit = 'minute' | 'hour';
|
|
2261
2825
|
|
|
2262
2826
|
declare type TableBaseFormatting = {
|
|
@@ -2335,6 +2899,22 @@ declare type TableTotalsStylePreferences = {
|
|
|
2335
2899
|
borderTopColor?: string;
|
|
2336
2900
|
};
|
|
2337
2901
|
|
|
2902
|
+
/**
|
|
2903
|
+
* Target column configuration for multi-field filters.
|
|
2904
|
+
* Allows a single filter to target multiple columns from the SAME table,
|
|
2905
|
+
* with users selecting which column to filter at runtime.
|
|
2906
|
+
*
|
|
2907
|
+
* Note: Cross-table filtering is not supported. All target columns must
|
|
2908
|
+
* be from the same table as the filter's primary table. For cross-table
|
|
2909
|
+
* date filtering, create separate filters or use a shared date dimension.
|
|
2910
|
+
*/
|
|
2911
|
+
declare type TargetColumn = {
|
|
2912
|
+
/** Column name (e.g., "shipping_date") - must be from the filter's table */
|
|
2913
|
+
column: string;
|
|
2914
|
+
/** Display label shown in the dropdown (e.g., "Shipping Date") */
|
|
2915
|
+
label: string;
|
|
2916
|
+
};
|
|
2917
|
+
|
|
2338
2918
|
/** Global bar style configuration */
|
|
2339
2919
|
declare type TBarStyleConfig = {
|
|
2340
2920
|
/** Default border radius for all bars - 0-20 pixels */
|
|
@@ -2347,6 +2927,15 @@ declare type TBarStyleConfig = {
|
|
|
2347
2927
|
categoryPercentage?: number;
|
|
2348
2928
|
};
|
|
2349
2929
|
|
|
2930
|
+
declare type TBaseQuery = {
|
|
2931
|
+
id: string;
|
|
2932
|
+
name: string;
|
|
2933
|
+
connectionId: string;
|
|
2934
|
+
sql: string;
|
|
2935
|
+
context?: string;
|
|
2936
|
+
description?: string;
|
|
2937
|
+
};
|
|
2938
|
+
|
|
2350
2939
|
declare type TBubbleScatterConfig = {
|
|
2351
2940
|
/**
|
|
2352
2941
|
* Explicit key for X-axis metric. Falls back to auto-detection.
|
|
@@ -2677,6 +3266,34 @@ declare type TCustomFilterPreferences = {
|
|
|
2677
3266
|
settings?: Record<string, string | number | boolean>;
|
|
2678
3267
|
};
|
|
2679
3268
|
|
|
3269
|
+
declare type TDashboard = {
|
|
3270
|
+
id: string;
|
|
3271
|
+
title?: string;
|
|
3272
|
+
aiContext?: DashboardAIContext;
|
|
3273
|
+
summary?: {
|
|
3274
|
+
enabled?: boolean;
|
|
3275
|
+
position?: 'top' | 'bottom';
|
|
3276
|
+
maxItems?: number;
|
|
3277
|
+
};
|
|
3278
|
+
description?: string;
|
|
3279
|
+
sheets?: TSheet[];
|
|
3280
|
+
calculatedFields?: Field[];
|
|
3281
|
+
style?: TStyle;
|
|
3282
|
+
filters?: TFilter[];
|
|
3283
|
+
customCards?: CustomCard[];
|
|
3284
|
+
baseQueries?: TBaseQuery[];
|
|
3285
|
+
aiScopeTables?: AIScopeTable[];
|
|
3286
|
+
globalStyle?: TStyle;
|
|
3287
|
+
globalCacheConfig?: CacheConfig;
|
|
3288
|
+
emailSettings?: EmailSettings;
|
|
3289
|
+
defaultFilterValues?: TFilterValue[];
|
|
3290
|
+
controls?: ControlDefinition[];
|
|
3291
|
+
defaultControlValues?: Record<string, unknown>;
|
|
3292
|
+
inputs?: DashboardInput[];
|
|
3293
|
+
defaultInputValues?: DashboardInputValues;
|
|
3294
|
+
filterLayout?: FilterLayoutSettings;
|
|
3295
|
+
};
|
|
3296
|
+
|
|
2680
3297
|
declare type TDataLabelsConfig = {
|
|
2681
3298
|
enabled?: boolean;
|
|
2682
3299
|
position?: 'center' | 'top' | 'bottom' | 'left' | 'right' | 'auto' | 'custom';
|
|
@@ -2805,6 +3422,8 @@ declare type TemporalBucketPresentationTarget = {
|
|
|
2805
3422
|
|
|
2806
3423
|
declare type TemporalBucketPreset = (typeof TEMPORAL_BUCKET_PRESETS)[number];
|
|
2807
3424
|
|
|
3425
|
+
declare type TemporalPrecision = 'minute';
|
|
3426
|
+
|
|
2808
3427
|
declare type TextCardInlineFormat = {
|
|
2809
3428
|
bold?: boolean;
|
|
2810
3429
|
italic?: boolean;
|
|
@@ -2850,6 +3469,61 @@ declare type TextCardRichInline = {
|
|
|
2850
3469
|
}>;
|
|
2851
3470
|
};
|
|
2852
3471
|
|
|
3472
|
+
declare type TFilter = {
|
|
3473
|
+
kind?: FilterKind;
|
|
3474
|
+
type?: 'single' | 'multiple';
|
|
3475
|
+
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
3476
|
+
dateSelectionMode?: DateSelectionMode;
|
|
3477
|
+
defaultValues?: (string | number)[];
|
|
3478
|
+
defaultDateFilter?: DefaultDateFilter;
|
|
3479
|
+
sheetId?: string;
|
|
3480
|
+
location?: FilterLocation;
|
|
3481
|
+
hide?: boolean;
|
|
3482
|
+
id: string;
|
|
3483
|
+
/** Alias exposed to document/text variables, for example {{region}}. */
|
|
3484
|
+
variableName?: string;
|
|
3485
|
+
connectionId: string;
|
|
3486
|
+
title: string;
|
|
3487
|
+
column: string;
|
|
3488
|
+
dataType: string;
|
|
3489
|
+
table?: string;
|
|
3490
|
+
database?: string;
|
|
3491
|
+
qualifiedTableName?: string;
|
|
3492
|
+
sql: string;
|
|
3493
|
+
operation: Operation;
|
|
3494
|
+
fieldMeta?: FilterFieldMeta;
|
|
3495
|
+
semanticContext?: FilterSemanticContext;
|
|
3496
|
+
/**
|
|
3497
|
+
* Multi-field filter support: When set, provides multiple column options.
|
|
3498
|
+
* The first column becomes the default. Users can select which column
|
|
3499
|
+
* to filter at runtime via a dropdown in the date picker.
|
|
3500
|
+
* If not set, the single `column` field is used (backward compatible).
|
|
3501
|
+
*/
|
|
3502
|
+
targetColumns?: TargetColumn[];
|
|
3503
|
+
searchMode?: 'text' | 'numeric' | 'auto';
|
|
3504
|
+
applyToSheetIds?: string[];
|
|
3505
|
+
excludeSheetIds?: string[];
|
|
3506
|
+
applyToCardIds?: string[];
|
|
3507
|
+
excludeCardIds?: string[];
|
|
3508
|
+
customFilterPreferences?: TCustomFilterPreferences;
|
|
3509
|
+
/** Whether to show the label above the filter (default: true) */
|
|
3510
|
+
showLabel?: boolean;
|
|
3511
|
+
/**
|
|
3512
|
+
* Width in pixels when displayed in toolbar mode.
|
|
3513
|
+
* Defaults vary by filter type (160px for dropdowns, 220px for date ranges, etc.)
|
|
3514
|
+
*/
|
|
3515
|
+
toolbarWidth?: number;
|
|
3516
|
+
/**
|
|
3517
|
+
* Display mode for this filter
|
|
3518
|
+
* - 'canvas': Always show as draggable card on canvas
|
|
3519
|
+
* - 'toolbar': Always show in toolbar
|
|
3520
|
+
* - 'inherit': Use dashboard's filterLayout.displayMode setting (default)
|
|
3521
|
+
*/
|
|
3522
|
+
displayMode?: FilterDisplayMode;
|
|
3523
|
+
};
|
|
3524
|
+
|
|
3525
|
+
declare type TFilterValue = FilterForString | FilterForEqual | FilterForCompare | FilterForBetween | FilterForIn | FilterForNull | FilterForDate;
|
|
3526
|
+
|
|
2853
3527
|
declare type TFormatOptions = {
|
|
2854
3528
|
type?: 'auto' | 'number' | 'currency' | 'percent' | 'scientific' | 'date' | 'duration';
|
|
2855
3529
|
decimalPlaces?: number;
|
|
@@ -2875,6 +3549,15 @@ declare type TFormatOptions = {
|
|
|
2875
3549
|
durationMaxUnits?: number;
|
|
2876
3550
|
};
|
|
2877
3551
|
|
|
3552
|
+
declare type TFrame = {
|
|
3553
|
+
id: string;
|
|
3554
|
+
visualId?: string;
|
|
3555
|
+
filterId?: string;
|
|
3556
|
+
cards: TCard[];
|
|
3557
|
+
activeCardId: string;
|
|
3558
|
+
calculatedFields?: Field[];
|
|
3559
|
+
};
|
|
3560
|
+
|
|
2878
3561
|
declare type TFunnelConfig = {
|
|
2879
3562
|
/**
|
|
2880
3563
|
* How to calculate percentage in tooltips and data labels.
|
|
@@ -2987,6 +3670,27 @@ declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
|
|
|
2987
3670
|
/** Point style options supported by Chart.js */
|
|
2988
3671
|
declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
|
|
2989
3672
|
|
|
3673
|
+
declare type TSheet = {
|
|
3674
|
+
id: string;
|
|
3675
|
+
kind?: 'dashboard' | 'document';
|
|
3676
|
+
title?: string;
|
|
3677
|
+
description?: string;
|
|
3678
|
+
layout?: ReactGridLayout.Layout[];
|
|
3679
|
+
layouts?: ReactGridLayout.Layouts;
|
|
3680
|
+
cards?: TCard[];
|
|
3681
|
+
frames?: TFrame[];
|
|
3682
|
+
calculatedFields?: Field[];
|
|
3683
|
+
document?: DocumentDefinition;
|
|
3684
|
+
};
|
|
3685
|
+
|
|
3686
|
+
/**
|
|
3687
|
+
* Style for the dashboard
|
|
3688
|
+
*/
|
|
3689
|
+
declare type TStyle = {
|
|
3690
|
+
default: StyleProps;
|
|
3691
|
+
dark?: StyleProps;
|
|
3692
|
+
};
|
|
3693
|
+
|
|
2990
3694
|
declare type TTooltipFormatConfig = {
|
|
2991
3695
|
formatMode?: 'inherit' | 'override';
|
|
2992
3696
|
/** @deprecated Use formatMode */
|
|
@@ -3031,6 +3735,10 @@ export declare function validateBriefingDraft(draft: unknown): BriefingValidatio
|
|
|
3031
3735
|
|
|
3032
3736
|
export declare function validateBriefingJobConfig(input: unknown): BriefingValidationResult<BriefingJobConfig>;
|
|
3033
3737
|
|
|
3738
|
+
declare type ViewerPeriodComparisonSpec = Extract<MetricComparisonSpec, {
|
|
3739
|
+
kind: 'previous_period' | 'previous_year';
|
|
3740
|
+
}>;
|
|
3741
|
+
|
|
3034
3742
|
/**
|
|
3035
3743
|
* Display mode for visual components - controls which UI elements are shown
|
|
3036
3744
|
*/
|