react-semaphor 0.1.459 → 0.1.460
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 +32 -32
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +4 -4
- package/dist/chunks/{analyze-result-contract-BbRJ-C06.js → analyze-result-contract-DROq4vgY.js} +1 -1
- package/dist/chunks/{analyze-result-contract-LPDNldic.cjs → analyze-result-contract-DSGoFuXQ.cjs} +1 -1
- package/dist/chunks/canonical-result-keys-CEQefvdO.js +33 -0
- package/dist/chunks/canonical-result-keys-Cb96edol.cjs +1 -0
- package/dist/chunks/{common-types-H51FLKB7.js → common-types-BHVKgxRR.js} +1 -1
- package/dist/chunks/{common-types-C57kJ59w.cjs → common-types-BcV9PD9D.cjs} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-ClCj98sq.js → dashboard-briefing-launcher-B07JnyCb.js} +60 -61
- package/dist/chunks/{dashboard-briefing-launcher-DHtEouuH.cjs → dashboard-briefing-launcher-BCkOKkCv.cjs} +2 -2
- package/dist/chunks/{dashboard-controls-VRShl9J0.cjs → dashboard-controls-BpxouYOZ.cjs} +1 -1
- package/dist/chunks/{dashboard-controls-B8gsKlxc.js → dashboard-controls-C8OxHQV6.js} +44 -45
- package/dist/chunks/dashboard-filter-value-compatibility-KXIyvbhc.js +677 -0
- package/dist/chunks/dashboard-filter-value-compatibility-UapptYnn.cjs +1 -0
- package/dist/chunks/dashboard-input-contract-BkRFQ7Tq.cjs +1 -0
- package/dist/chunks/{dashboard-date-comparison-definition-DC3ekV2S.js → dashboard-input-contract-D5dxTWJ5.js} +41 -25
- package/dist/chunks/dashboard-json-Bc-iIwxF.cjs +1 -0
- package/dist/chunks/{dashboard-json-i_Auue_K.js → dashboard-json-CecgbGtq.js} +13 -14
- package/dist/chunks/{edit-dashboard-visual-B3JF0fe4.js → edit-dashboard-visual-CpJKJaER.js} +880 -894
- package/dist/chunks/{edit-dashboard-visual-DWWyT55u.cjs → edit-dashboard-visual-xacUS2i5.cjs} +28 -28
- package/dist/chunks/{editor-action-buttons-BTlCsP63.cjs → editor-action-buttons-23Wf8EMx.cjs} +2 -2
- package/dist/chunks/{editor-action-buttons-C9x3nGnb.js → editor-action-buttons-DEoieV2G.js} +28 -28
- package/dist/chunks/index-B9c22LmC.cjs +1392 -0
- package/dist/chunks/{index-BS2-ZZGf.js → index-DDoyXYWM.js} +43665 -41560
- package/dist/chunks/{index-BIFLI8ul.js → index-De_7nrwb.js} +10 -10
- package/dist/chunks/index-DjjKJPDy.cjs +4 -0
- package/dist/chunks/{matrix-result-contract-CofATICL.js → matrix-result-contract-BTpPuHOc.js} +88 -104
- package/dist/chunks/matrix-result-contract-ZRNfeIbI.cjs +1 -0
- package/dist/chunks/{pivot-header-presentation-B9nXXKlW.cjs → pivot-header-presentation-BijPbP33.cjs} +1 -1
- package/dist/chunks/{pivot-header-presentation-D-0jvUwn.js → pivot-header-presentation-DW0gKG8g.js} +2 -2
- package/dist/chunks/{pivot-result-identity-Bb4EixVN.cjs → pivot-result-identity-DxHtiKVj.cjs} +1 -1
- package/dist/chunks/{pivot-result-identity-DU1v-5Xk.js → pivot-result-identity-Z9tN2tEV.js} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-DTLRuDEW.cjs → pivot-result-lifecycle-BXzIlQVu.cjs} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-CHWEGU2o.js → pivot-result-lifecycle-g2U-vzQb.js} +7 -7
- package/dist/chunks/{raw-temporal-contract-BtjH_G-d.cjs → raw-temporal-contract-DfAvqNMo.cjs} +1 -1
- package/dist/chunks/{raw-temporal-contract-CxncLze5.js → raw-temporal-contract-UtAqoOZO.js} +1 -1
- package/dist/chunks/{report-preferences-dialog-BDpkcUtz.js → report-preferences-dialog-CZiNX1Ri.js} +6 -6
- package/dist/chunks/{report-preferences-dialog-BK0yAJnQ.cjs → report-preferences-dialog-D_N6NXnq.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-DqxS4wbi.cjs → report-runtime-context-C0NfLPfc.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-SM6YO61_.js → report-runtime-context-CNncA3VD.js} +11 -11
- package/dist/chunks/{saved-temporal-bucket-format-CFfWXRl9.cjs → saved-temporal-bucket-format-3QKveR3v.cjs} +1 -1
- package/dist/chunks/{saved-temporal-bucket-format-SGAV0ivR.js → saved-temporal-bucket-format-Dd2eixTH.js} +11 -11
- package/dist/chunks/switch-DNFbgZz4.cjs +138 -0
- package/dist/chunks/{switch-DQR-Va05.js → switch-DSZobe8w.js} +6542 -5189
- package/dist/chunks/{temporal-bucket-5UYEotyQ.js → temporal-bucket-C85rmFmC.js} +4 -4
- package/dist/chunks/temporal-bucket-authoring-1fZuPAVb.js +653 -0
- package/dist/chunks/temporal-bucket-authoring-BK1UhYpD.cjs +1 -0
- package/dist/chunks/{temporal-bucket-contract-D5d-xEl3.js → temporal-bucket-contract-DXXNZssK.js} +1 -1
- package/dist/chunks/{temporal-bucket-contract-D2-93DGr.cjs → temporal-bucket-contract-xFkvboaw.cjs} +1 -1
- package/dist/chunks/{temporal-bucket-DHY1y9lq.cjs → temporal-bucket-pMfghsLX.cjs} +1 -1
- package/dist/chunks/{token-types-GbxRUozo.js → token-types-BLxc7UwR.js} +1 -1
- package/dist/chunks/{token-types-D7CaaI80.cjs → token-types-BYYO109W.cjs} +1 -1
- package/dist/chunks/{update-policy-hednMF-0.js → update-policy-CB8XJIoY.js} +1 -1
- package/dist/chunks/{update-policy-BmiOd0PB.cjs → update-policy-DMjjGjQY.cjs} +1 -1
- package/dist/chunks/{validators-DEmd8Sin.js → validators-DVd8s3qY.js} +416 -350
- package/dist/chunks/validators-dJlwubP4.cjs +1 -0
- 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 +328 -311
- 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 +55 -55
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +61 -56
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +9 -9
- package/dist/format-utils/index.cjs +1 -1
- package/dist/format-utils/index.js +15 -15
- package/dist/index.cjs +1 -1
- package/dist/index.js +154 -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 +16 -8
- package/dist/types/briefings.d.ts +80 -9
- package/dist/types/dashboard-assistant.d.ts +11 -6
- package/dist/types/dashboard-authoring.d.ts +242 -15
- package/dist/types/dashboard.d.ts +94 -10
- package/dist/types/data-app-builder.d.ts +11 -6
- package/dist/types/data-app-codegen-node.d.ts +16 -8
- package/dist/types/data-app-codegen.d.ts +16 -8
- package/dist/types/data-app-sdk-adapters.d.ts +17 -11
- package/dist/types/data-app-sdk-validation.d.ts +17 -11
- package/dist/types/data-app-sdk.d.ts +17 -11
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/main.d.ts +210 -16
- package/dist/types/shared.d.ts +80 -9
- package/dist/types/surfboard.d.ts +94 -10
- package/dist/types/types.d.ts +94 -10
- package/package.json +1 -1
- package/dist/chunks/canonical-result-keys-BA0HCP4e.cjs +0 -1
- package/dist/chunks/canonical-result-keys-D6avdjpA.js +0 -467
- package/dist/chunks/dashboard-date-comparison-definition-Ces4alFm.cjs +0 -1
- package/dist/chunks/dashboard-json-BhvPMpZA.cjs +0 -1
- package/dist/chunks/index-DHF-2AqS.cjs +0 -1392
- package/dist/chunks/index-k8tEp0ys.cjs +0 -4
- package/dist/chunks/matrix-result-contract-zamd9euI.cjs +0 -1
- package/dist/chunks/switch-f3TuZNLr.cjs +0 -138
- package/dist/chunks/temporal-bucket-authoring-K1kE6R_z.js +0 -222
- package/dist/chunks/temporal-bucket-authoring-o3Emn05L.cjs +0 -1
- package/dist/chunks/validators-BDYprKI9.cjs +0 -1
package/dist/types/main.d.ts
CHANGED
|
@@ -43,6 +43,15 @@ declare type Actions_2 = {
|
|
|
43
43
|
setDefaultControlValues: (controlValues: Record<string, unknown> | undefined) => void;
|
|
44
44
|
setDashboardInputs: (inputs: DashboardInput[]) => void;
|
|
45
45
|
upsertDashboardInput: (input: DashboardInput) => void;
|
|
46
|
+
updateFilterDashboardInputDefinition: (inputId: string, filter: TFilter, metadata?: {
|
|
47
|
+
variableName?: string;
|
|
48
|
+
label?: string;
|
|
49
|
+
}) => void;
|
|
50
|
+
acceptDashboardFilterOptionSource: (updatedFilter: TFilter, optionSource: DashboardFilterOptionSource, settings?: DashboardFilterAuthoringSettingsUpdate, inputMetadata?: {
|
|
51
|
+
variableName?: string;
|
|
52
|
+
}) => DashboardFilterOptionSourceAcceptanceResult;
|
|
53
|
+
acceptDashboardFilterMapping: (request: DashboardFilterMappingAuthoringRequest, updatedFilter?: TFilter, settings?: DashboardFilterAuthoringSettingsUpdate) => DashboardFilterMappingAcceptanceResult;
|
|
54
|
+
disableDashboardFilterMapping: (filterId: string, updatedFilter?: TFilter, settings?: DashboardFilterAuthoringSettingsUpdate) => DashboardFilterMappingDisableResult;
|
|
46
55
|
removeDashboardInput: (inputId: string) => void;
|
|
47
56
|
setDefaultDashboardInputValues: (values: DashboardInputValues | undefined) => void;
|
|
48
57
|
setDefaultDashboardInputComparisonSelection: (input: Pick<DashboardInput, 'id' | 'runtimeScope'>, target: DashboardInputRuntimeTarget, selection: GlobalDateComparisonSelection | undefined) => void;
|
|
@@ -2041,6 +2050,37 @@ declare interface DashboardExportDialogProps {
|
|
|
2041
2050
|
onOpenChange: (open: boolean) => void;
|
|
2042
2051
|
}
|
|
2043
2052
|
|
|
2053
|
+
export declare type DashboardFilterApplication = {
|
|
2054
|
+
kind: 'cardMappings';
|
|
2055
|
+
/**
|
|
2056
|
+
* Sparse grounded bindings and explicit exclusions. A missing config card
|
|
2057
|
+
* may reuse a proven Option Value target on an executable source; it is not
|
|
2058
|
+
* an implicit exclusion, and source identity alone is not field evidence.
|
|
2059
|
+
*/
|
|
2060
|
+
cards: DashboardFilterCardApplication[];
|
|
2061
|
+
};
|
|
2062
|
+
|
|
2063
|
+
declare type DashboardFilterAuthoringSettingsUpdate = {
|
|
2064
|
+
defaultValueChanged: boolean;
|
|
2065
|
+
defaultFilterValue?: TFilterValue;
|
|
2066
|
+
defaultComparisonChanged: boolean;
|
|
2067
|
+
defaultComparisonSelection?: GlobalDateComparisonSelection;
|
|
2068
|
+
target: DashboardInputRuntimeTarget;
|
|
2069
|
+
optionSourceChanged?: boolean;
|
|
2070
|
+
optionSource?: DashboardFilterOptionSource;
|
|
2071
|
+
/** Raw selection identity changed; the previous runtime value is invalid. */
|
|
2072
|
+
selectionIdentityChanged?: boolean;
|
|
2073
|
+
};
|
|
2074
|
+
|
|
2075
|
+
export declare type DashboardFilterBoundCardApplication = {
|
|
2076
|
+
kind: 'bound';
|
|
2077
|
+
cardId: string;
|
|
2078
|
+
bindingId: string;
|
|
2079
|
+
target: DashboardFilterTarget;
|
|
2080
|
+
};
|
|
2081
|
+
|
|
2082
|
+
export declare type DashboardFilterCardApplication = DashboardFilterBoundCardApplication | DashboardFilterExcludedCardApplication;
|
|
2083
|
+
|
|
2044
2084
|
export declare function DashboardFilterControlsButton({ showFilters, onShowFiltersChange, pickerContent, settingsContent, size, className, primaryButtonClassName, secondaryButtonClassName, pickerContentClassName, settingsContentClassName, }: DashboardFilterControlsButtonProps): JSX.Element;
|
|
2045
2085
|
|
|
2046
2086
|
/**
|
|
@@ -2102,6 +2142,126 @@ declare type DashboardFilterControlsLauncherProps = {
|
|
|
2102
2142
|
settingsContentClassName?: string;
|
|
2103
2143
|
};
|
|
2104
2144
|
|
|
2145
|
+
export declare type DashboardFilterExcludedCardApplication = {
|
|
2146
|
+
kind: 'excluded';
|
|
2147
|
+
cardId: string;
|
|
2148
|
+
};
|
|
2149
|
+
|
|
2150
|
+
declare type DashboardFilterMappingAcceptanceResult = {
|
|
2151
|
+
ok: true;
|
|
2152
|
+
draft: DashboardFilterMappingDraft;
|
|
2153
|
+
input: ReferencedFilterDashboardInput;
|
|
2154
|
+
} | {
|
|
2155
|
+
ok: false;
|
|
2156
|
+
draft?: DashboardFilterMappingDraft;
|
|
2157
|
+
issues: DashboardFilterMappingAuthoringIssue[];
|
|
2158
|
+
};
|
|
2159
|
+
|
|
2160
|
+
declare type DashboardFilterMappingAuthoringIssue = {
|
|
2161
|
+
code: DashboardFilterMappingAuthoringIssueCode;
|
|
2162
|
+
message: string;
|
|
2163
|
+
filterId: string;
|
|
2164
|
+
cardId?: string;
|
|
2165
|
+
};
|
|
2166
|
+
|
|
2167
|
+
declare type DashboardFilterMappingAuthoringIssueCode = 'filterNotFound' | 'mappingNotFound' | 'globalDateUnsupported' | 'conflictingDashboardInput' | 'unsupportedOuterScope' | 'unsupportedRuntimeScope' | 'missingDecision' | 'invalidTarget' | 'metadataUnavailable';
|
|
2168
|
+
|
|
2169
|
+
declare type DashboardFilterMappingAuthoringRequest = {
|
|
2170
|
+
filterId: string;
|
|
2171
|
+
candidatesByCardId: Record<string, DashboardFilterMappingCandidateCatalog | undefined>;
|
|
2172
|
+
/** Grounded field that supplies the current filter value. */
|
|
2173
|
+
selectionField?: Pick<DashboardFilterTargetField, 'name' | 'sourceField'> & Partial<Pick<DashboardFilterTargetField, 'source'>>;
|
|
2174
|
+
/** Datatype of the raw selection value, which may differ from the label. */
|
|
2175
|
+
selectionDataType?: string;
|
|
2176
|
+
/**
|
|
2177
|
+
* Re-check saved targets against selectionField after the author changes
|
|
2178
|
+
* the raw Option Value identity. Explicit draft decisions still win.
|
|
2179
|
+
*/
|
|
2180
|
+
revalidatePersistedTargets?: boolean;
|
|
2181
|
+
decisionsByCardId?: Record<string, DashboardFilterMappingDraftDecision | undefined>;
|
|
2182
|
+
/** Staged outer sheet scope. Omit when the author did not edit Scope. */
|
|
2183
|
+
outerScope?: DashboardFilterMappingDraft['outerScope'];
|
|
2184
|
+
/** Test seam; production callers use opaque random UUIDs. */
|
|
2185
|
+
createId?: () => string;
|
|
2186
|
+
};
|
|
2187
|
+
|
|
2188
|
+
declare type DashboardFilterMappingCandidateCatalog = {
|
|
2189
|
+
status: 'ready';
|
|
2190
|
+
targets: DashboardFilterTarget[];
|
|
2191
|
+
} | {
|
|
2192
|
+
status: 'metadataUnavailable';
|
|
2193
|
+
message?: string;
|
|
2194
|
+
};
|
|
2195
|
+
|
|
2196
|
+
declare type DashboardFilterMappingDisableResult = {
|
|
2197
|
+
ok: true;
|
|
2198
|
+
inputId: string;
|
|
2199
|
+
} | {
|
|
2200
|
+
ok: false;
|
|
2201
|
+
issues: DashboardFilterMappingAuthoringIssue[];
|
|
2202
|
+
};
|
|
2203
|
+
|
|
2204
|
+
declare type DashboardFilterMappingDraft = {
|
|
2205
|
+
filterId: string;
|
|
2206
|
+
existingInputId?: string;
|
|
2207
|
+
outerScope: Extract<DashboardInputScope, {
|
|
2208
|
+
kind: 'allSheets' | 'sheets';
|
|
2209
|
+
}>;
|
|
2210
|
+
rows: DashboardFilterMappingDraftRow[];
|
|
2211
|
+
};
|
|
2212
|
+
|
|
2213
|
+
declare type DashboardFilterMappingDraftDecision = {
|
|
2214
|
+
kind: 'bound';
|
|
2215
|
+
target: DashboardFilterTarget;
|
|
2216
|
+
} | {
|
|
2217
|
+
kind: 'excluded';
|
|
2218
|
+
};
|
|
2219
|
+
|
|
2220
|
+
declare type DashboardFilterMappingDraftRow = {
|
|
2221
|
+
cardId: string;
|
|
2222
|
+
sheetId: string;
|
|
2223
|
+
executionKind: 'config' | 'sql' | 'unconfigured';
|
|
2224
|
+
status: DashboardFilterMappingDraftStatus;
|
|
2225
|
+
candidates: DashboardFilterTarget[];
|
|
2226
|
+
selectedTarget?: DashboardFilterTarget;
|
|
2227
|
+
persistedApplication?: DashboardFilterCardApplication;
|
|
2228
|
+
metadataMessage?: string;
|
|
2229
|
+
guidanceMessage?: string;
|
|
2230
|
+
automaticFieldName?: string;
|
|
2231
|
+
};
|
|
2232
|
+
|
|
2233
|
+
declare type DashboardFilterMappingDraftStatus = 'pendingSource' | 'suggested' | 'needsMapping' | 'mapped' | 'notApplicable' | 'excluded' | 'invalidMapping' | 'metadataUnavailable';
|
|
2234
|
+
|
|
2235
|
+
/** Persisted label/value option definition for a mapped dashboard filter. */
|
|
2236
|
+
export declare type DashboardFilterOptionSource = SemaphorInputOptionSource;
|
|
2237
|
+
|
|
2238
|
+
declare type DashboardFilterOptionSourceAcceptanceResult = {
|
|
2239
|
+
ok: true;
|
|
2240
|
+
input: ReferencedFilterDashboardInput;
|
|
2241
|
+
created: boolean;
|
|
2242
|
+
} | {
|
|
2243
|
+
ok: false;
|
|
2244
|
+
issues: DashboardFilterMappingAuthoringIssue[];
|
|
2245
|
+
};
|
|
2246
|
+
|
|
2247
|
+
export declare type DashboardFilterTarget = {
|
|
2248
|
+
kind: 'field';
|
|
2249
|
+
field: DashboardFilterTargetField;
|
|
2250
|
+
};
|
|
2251
|
+
|
|
2252
|
+
/** Persisted, source-qualified field that a mapped filter targets. */
|
|
2253
|
+
export declare type DashboardFilterTargetField = {
|
|
2254
|
+
name: string;
|
|
2255
|
+
source: DashboardFilterTargetSource;
|
|
2256
|
+
dataType: 'string' | 'number' | 'boolean' | 'date' | 'datetime';
|
|
2257
|
+
/** Catalog-grounded physical column used when it differs from the semantic name. */
|
|
2258
|
+
sourceField?: string;
|
|
2259
|
+
};
|
|
2260
|
+
|
|
2261
|
+
export declare type DashboardFilterTargetSource = Extract<SemaphorSourceRef, {
|
|
2262
|
+
kind: 'semantic' | 'physical';
|
|
2263
|
+
}>;
|
|
2264
|
+
|
|
2105
2265
|
export declare type DashboardInput = FilterDashboardInput | ControlDashboardInput;
|
|
2106
2266
|
|
|
2107
2267
|
export declare type DashboardInputBase = {
|
|
@@ -2177,14 +2337,14 @@ export declare type DashboardInputScope = {
|
|
|
2177
2337
|
sectionIds: string[];
|
|
2178
2338
|
};
|
|
2179
2339
|
|
|
2180
|
-
export declare type DashboardInputSlot =
|
|
2340
|
+
export declare type DashboardInputSlot = {
|
|
2181
2341
|
status: 'set';
|
|
2182
2342
|
value: DashboardInputValue;
|
|
2183
2343
|
comparisonSelection?: GlobalDateComparisonSelection;
|
|
2184
|
-
}
|
|
2344
|
+
} | {
|
|
2185
2345
|
status: 'cleared';
|
|
2186
2346
|
comparisonSelection?: GlobalDateComparisonSelection;
|
|
2187
|
-
}
|
|
2347
|
+
} | {
|
|
2188
2348
|
status?: never;
|
|
2189
2349
|
value?: never;
|
|
2190
2350
|
comparisonSelection: GlobalDateComparisonSelection;
|
|
@@ -3282,6 +3442,14 @@ export declare type EmailSettings = {
|
|
|
3282
3442
|
senderTitle: string;
|
|
3283
3443
|
};
|
|
3284
3444
|
|
|
3445
|
+
export declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
|
|
3446
|
+
kind: 'filter';
|
|
3447
|
+
filter: TFilter;
|
|
3448
|
+
filterReference?: never;
|
|
3449
|
+
optionSource?: DashboardFilterOptionSource;
|
|
3450
|
+
application?: DashboardFilterApplication;
|
|
3451
|
+
};
|
|
3452
|
+
|
|
3285
3453
|
export declare const emitDashboardLoad: () => void;
|
|
3286
3454
|
|
|
3287
3455
|
export declare const emitDashboardUnload: () => void;
|
|
@@ -3571,10 +3739,7 @@ export declare interface FilterCondition {
|
|
|
3571
3739
|
temporalBucket?: TemporalBucketMetadata;
|
|
3572
3740
|
}
|
|
3573
3741
|
|
|
3574
|
-
export declare type FilterDashboardInput =
|
|
3575
|
-
kind: 'filter';
|
|
3576
|
-
filter: TFilter;
|
|
3577
|
-
};
|
|
3742
|
+
export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
3578
3743
|
|
|
3579
3744
|
/**
|
|
3580
3745
|
* Display mode for individual filters
|
|
@@ -4726,6 +4891,17 @@ declare type NoneOptions = {};
|
|
|
4726
4891
|
*/
|
|
4727
4892
|
export declare function normalizeDashboardForDirtyCheck(dashboard: TDashboard | null): TDashboard | null;
|
|
4728
4893
|
|
|
4894
|
+
export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
|
|
4895
|
+
|
|
4896
|
+
/** Runtime form after dashboard-filter references are resolved once. */
|
|
4897
|
+
export declare type NormalizedFilterDashboardInput = DashboardInputBase & {
|
|
4898
|
+
kind: 'filter';
|
|
4899
|
+
filter: TFilter;
|
|
4900
|
+
optionSource?: DashboardFilterOptionSource;
|
|
4901
|
+
application?: DashboardFilterApplication;
|
|
4902
|
+
definitionOrigin: 'embedded' | 'dashboardFilter';
|
|
4903
|
+
};
|
|
4904
|
+
|
|
4729
4905
|
/**
|
|
4730
4906
|
* Notification bell icon with badge.
|
|
4731
4907
|
*
|
|
@@ -5052,6 +5228,17 @@ declare type RawTemporalValueMetadata = {
|
|
|
5052
5228
|
valueKind: RawTemporalValueKind;
|
|
5053
5229
|
};
|
|
5054
5230
|
|
|
5231
|
+
export declare type ReferencedFilterDashboardInput = DashboardInputBase & {
|
|
5232
|
+
kind: 'filter';
|
|
5233
|
+
filter?: never;
|
|
5234
|
+
filterReference: {
|
|
5235
|
+
kind: 'dashboardFilter';
|
|
5236
|
+
filterId: string;
|
|
5237
|
+
};
|
|
5238
|
+
optionSource?: DashboardFilterOptionSource;
|
|
5239
|
+
application?: DashboardFilterApplication;
|
|
5240
|
+
};
|
|
5241
|
+
|
|
5055
5242
|
declare type RelativeDateFilter = {
|
|
5056
5243
|
mode: 'last';
|
|
5057
5244
|
n: number;
|
|
@@ -5140,6 +5327,8 @@ export declare type ResolvedDashboardInput = {
|
|
|
5140
5327
|
exports: Partial<Record<DashboardInputExportKey, string | number | boolean | null>>;
|
|
5141
5328
|
filter?: TFilter;
|
|
5142
5329
|
filterValue?: TFilterValue;
|
|
5330
|
+
/** Present when a set filter slot cannot be used with its current definition. */
|
|
5331
|
+
invalidFilterSelection?: boolean;
|
|
5143
5332
|
control?: ControlDefinition;
|
|
5144
5333
|
controlValue?: unknown;
|
|
5145
5334
|
missingRequiredValue?: boolean;
|
|
@@ -5147,7 +5336,7 @@ export declare type ResolvedDashboardInput = {
|
|
|
5147
5336
|
};
|
|
5148
5337
|
|
|
5149
5338
|
export declare type ResolvedDashboardInputContext = {
|
|
5150
|
-
inputs:
|
|
5339
|
+
inputs: NormalizedDashboardInput[];
|
|
5151
5340
|
resolvedInputs: ResolvedDashboardInput[];
|
|
5152
5341
|
activeFilters: TFilterValue[];
|
|
5153
5342
|
controlDefinitions: ControlDefinition[];
|
|
@@ -5546,17 +5735,12 @@ declare type SemaphorInputBinding = {
|
|
|
5546
5735
|
|
|
5547
5736
|
declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'between' | 'not_between' | '>' | '>=' | '<' | '<=';
|
|
5548
5737
|
|
|
5549
|
-
declare type SemaphorInputOptionsIntent = {
|
|
5738
|
+
declare type SemaphorInputOptionsIntent = SemaphorInputOptionSource & {
|
|
5550
5739
|
kind: 'inputOptions';
|
|
5551
5740
|
version?: SemaphorProtocolVersion;
|
|
5552
5741
|
id?: string;
|
|
5553
5742
|
label?: string;
|
|
5554
5743
|
inputId: string;
|
|
5555
|
-
source: SemaphorSourceRef;
|
|
5556
|
-
labelField: SemaphorFieldRef;
|
|
5557
|
-
valueField: SemaphorFieldRef;
|
|
5558
|
-
searchField?: SemaphorFieldRef;
|
|
5559
|
-
disambiguationFields?: SemaphorFieldRef[];
|
|
5560
5744
|
population?: SemaphorOptionPopulation;
|
|
5561
5745
|
dependencies?: SemaphorOptionDependencies;
|
|
5562
5746
|
search?: string;
|
|
@@ -5565,6 +5749,16 @@ declare type SemaphorInputOptionsIntent = {
|
|
|
5565
5749
|
derivedFields?: SemaphorDerivedFieldDefinition[];
|
|
5566
5750
|
};
|
|
5567
5751
|
|
|
5752
|
+
declare type SemaphorInputOptionSource = {
|
|
5753
|
+
source: Extract<SemaphorSourceRef, {
|
|
5754
|
+
kind: 'semantic' | 'physical';
|
|
5755
|
+
}>;
|
|
5756
|
+
labelField: SemaphorFieldRef;
|
|
5757
|
+
valueField: SemaphorFieldRef;
|
|
5758
|
+
searchField?: SemaphorFieldRef;
|
|
5759
|
+
disambiguationFields?: SemaphorFieldRef[];
|
|
5760
|
+
};
|
|
5761
|
+
|
|
5568
5762
|
declare type SemaphorMatrixAxisExpansionOptions = {
|
|
5569
5763
|
defaultDepth?: number;
|
|
5570
5764
|
lazy?: boolean;
|
|
@@ -6947,7 +7141,7 @@ export declare type TFilter = {
|
|
|
6947
7141
|
type?: 'single' | 'multiple';
|
|
6948
7142
|
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
6949
7143
|
dateSelectionMode?: DateSelectionMode;
|
|
6950
|
-
defaultValues?: (string | number)[];
|
|
7144
|
+
defaultValues?: (string | number | boolean)[];
|
|
6951
7145
|
defaultDateFilter?: DefaultDateFilter;
|
|
6952
7146
|
sheetId?: string;
|
|
6953
7147
|
location?: FilterLocation;
|
|
@@ -7119,7 +7313,7 @@ export declare type TInlineFilter = {
|
|
|
7119
7313
|
/** Date picker type: 'range' for full calendar, 'months' for month picker */
|
|
7120
7314
|
dateSelectionMode?: DateSelectionMode;
|
|
7121
7315
|
/** Default values applied when the dashboard first loads */
|
|
7122
|
-
defaultValues?: (string | number)[];
|
|
7316
|
+
defaultValues?: (string | number | boolean)[];
|
|
7123
7317
|
/** Default date filter applied on dashboard load (relative or fixed month/year) */
|
|
7124
7318
|
defaultDateFilter?: DefaultDateFilter;
|
|
7125
7319
|
/** Search mode for numeric filters: 'text' treats as text, 'numeric' enables operators (>, <, =) */
|
package/dist/types/shared.d.ts
CHANGED
|
@@ -559,6 +559,51 @@ declare type DashboardAIContext = AIContext & {
|
|
|
559
559
|
|
|
560
560
|
declare type DashboardAIContextMode = 'auto' | 'fixed';
|
|
561
561
|
|
|
562
|
+
declare type DashboardFilterApplication = {
|
|
563
|
+
kind: 'cardMappings';
|
|
564
|
+
/**
|
|
565
|
+
* Sparse grounded bindings and explicit exclusions. A missing config card
|
|
566
|
+
* may reuse a proven Option Value target on an executable source; it is not
|
|
567
|
+
* an implicit exclusion, and source identity alone is not field evidence.
|
|
568
|
+
*/
|
|
569
|
+
cards: DashboardFilterCardApplication[];
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
declare type DashboardFilterBoundCardApplication = {
|
|
573
|
+
kind: 'bound';
|
|
574
|
+
cardId: string;
|
|
575
|
+
bindingId: string;
|
|
576
|
+
target: DashboardFilterTarget;
|
|
577
|
+
};
|
|
578
|
+
|
|
579
|
+
declare type DashboardFilterCardApplication = DashboardFilterBoundCardApplication | DashboardFilterExcludedCardApplication;
|
|
580
|
+
|
|
581
|
+
declare type DashboardFilterExcludedCardApplication = {
|
|
582
|
+
kind: 'excluded';
|
|
583
|
+
cardId: string;
|
|
584
|
+
};
|
|
585
|
+
|
|
586
|
+
/** Persisted label/value option definition for a mapped dashboard filter. */
|
|
587
|
+
declare type DashboardFilterOptionSource = SemaphorInputOptionSource;
|
|
588
|
+
|
|
589
|
+
declare type DashboardFilterTarget = {
|
|
590
|
+
kind: 'field';
|
|
591
|
+
field: DashboardFilterTargetField;
|
|
592
|
+
};
|
|
593
|
+
|
|
594
|
+
/** Persisted, source-qualified field that a mapped filter targets. */
|
|
595
|
+
declare type DashboardFilterTargetField = {
|
|
596
|
+
name: string;
|
|
597
|
+
source: DashboardFilterTargetSource;
|
|
598
|
+
dataType: 'string' | 'number' | 'boolean' | 'date' | 'datetime';
|
|
599
|
+
/** Catalog-grounded physical column used when it differs from the semantic name. */
|
|
600
|
+
sourceField?: string;
|
|
601
|
+
};
|
|
602
|
+
|
|
603
|
+
declare type DashboardFilterTargetSource = Extract<SemaphorSourceRef, {
|
|
604
|
+
kind: 'semantic' | 'physical';
|
|
605
|
+
}>;
|
|
606
|
+
|
|
562
607
|
declare type DashboardInput = FilterDashboardInput | ControlDashboardInput;
|
|
563
608
|
|
|
564
609
|
declare type DashboardInputBase = {
|
|
@@ -619,14 +664,14 @@ declare type DashboardInputScope = {
|
|
|
619
664
|
sectionIds: string[];
|
|
620
665
|
};
|
|
621
666
|
|
|
622
|
-
declare type DashboardInputSlot =
|
|
667
|
+
declare type DashboardInputSlot = {
|
|
623
668
|
status: 'set';
|
|
624
669
|
value: DashboardInputValue;
|
|
625
670
|
comparisonSelection?: GlobalDateComparisonSelection;
|
|
626
|
-
}
|
|
671
|
+
} | {
|
|
627
672
|
status: 'cleared';
|
|
628
673
|
comparisonSelection?: GlobalDateComparisonSelection;
|
|
629
|
-
}
|
|
674
|
+
} | {
|
|
630
675
|
status?: never;
|
|
631
676
|
value?: never;
|
|
632
677
|
comparisonSelection: GlobalDateComparisonSelection;
|
|
@@ -1098,6 +1143,14 @@ declare type EmailSettings = {
|
|
|
1098
1143
|
senderTitle: string;
|
|
1099
1144
|
};
|
|
1100
1145
|
|
|
1146
|
+
declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
|
|
1147
|
+
kind: 'filter';
|
|
1148
|
+
filter: TFilter;
|
|
1149
|
+
filterReference?: never;
|
|
1150
|
+
optionSource?: DashboardFilterOptionSource;
|
|
1151
|
+
application?: DashboardFilterApplication;
|
|
1152
|
+
};
|
|
1153
|
+
|
|
1101
1154
|
declare type EntityType = 'table' | 'view' | 'materialized view' | 'model' | 'file' | 'dataset' | 'url' | 'upload';
|
|
1102
1155
|
|
|
1103
1156
|
declare interface Field {
|
|
@@ -1201,10 +1254,7 @@ declare interface FilterCondition {
|
|
|
1201
1254
|
temporalBucket?: TemporalBucketMetadata;
|
|
1202
1255
|
}
|
|
1203
1256
|
|
|
1204
|
-
declare type FilterDashboardInput =
|
|
1205
|
-
kind: 'filter';
|
|
1206
|
-
filter: TFilter;
|
|
1207
|
-
};
|
|
1257
|
+
declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
1208
1258
|
|
|
1209
1259
|
/**
|
|
1210
1260
|
* Display mode for individual filters
|
|
@@ -1700,6 +1750,17 @@ declare type RangeValue = {
|
|
|
1700
1750
|
gt?: string | number;
|
|
1701
1751
|
};
|
|
1702
1752
|
|
|
1753
|
+
declare type ReferencedFilterDashboardInput = DashboardInputBase & {
|
|
1754
|
+
kind: 'filter';
|
|
1755
|
+
filter?: never;
|
|
1756
|
+
filterReference: {
|
|
1757
|
+
kind: 'dashboardFilter';
|
|
1758
|
+
filterId: string;
|
|
1759
|
+
};
|
|
1760
|
+
optionSource?: DashboardFilterOptionSource;
|
|
1761
|
+
application?: DashboardFilterApplication;
|
|
1762
|
+
};
|
|
1763
|
+
|
|
1703
1764
|
declare type RelativeDateFilter = {
|
|
1704
1765
|
mode: 'last';
|
|
1705
1766
|
n: number;
|
|
@@ -1834,6 +1895,16 @@ declare type SemaphorInputBinding = {
|
|
|
1834
1895
|
|
|
1835
1896
|
declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'between' | 'not_between' | '>' | '>=' | '<' | '<=';
|
|
1836
1897
|
|
|
1898
|
+
declare type SemaphorInputOptionSource = {
|
|
1899
|
+
source: Extract<SemaphorSourceRef, {
|
|
1900
|
+
kind: 'semantic' | 'physical';
|
|
1901
|
+
}>;
|
|
1902
|
+
labelField: SemaphorFieldRef;
|
|
1903
|
+
valueField: SemaphorFieldRef;
|
|
1904
|
+
searchField?: SemaphorFieldRef;
|
|
1905
|
+
disambiguationFields?: SemaphorFieldRef[];
|
|
1906
|
+
};
|
|
1907
|
+
|
|
1837
1908
|
declare type SemaphorMatrixAxisExpansionOptions = {
|
|
1838
1909
|
defaultDepth?: number;
|
|
1839
1910
|
lazy?: boolean;
|
|
@@ -2766,7 +2837,7 @@ declare type TFilter = {
|
|
|
2766
2837
|
type?: 'single' | 'multiple';
|
|
2767
2838
|
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
2768
2839
|
dateSelectionMode?: DateSelectionMode;
|
|
2769
|
-
defaultValues?: (string | number)[];
|
|
2840
|
+
defaultValues?: (string | number | boolean)[];
|
|
2770
2841
|
defaultDateFilter?: DefaultDateFilter;
|
|
2771
2842
|
sheetId?: string;
|
|
2772
2843
|
location?: FilterLocation;
|
|
@@ -2930,7 +3001,7 @@ declare type TInlineFilter = {
|
|
|
2930
3001
|
/** Date picker type: 'range' for full calendar, 'months' for month picker */
|
|
2931
3002
|
dateSelectionMode?: DateSelectionMode;
|
|
2932
3003
|
/** Default values applied when the dashboard first loads */
|
|
2933
|
-
defaultValues?: (string | number)[];
|
|
3004
|
+
defaultValues?: (string | number | boolean)[];
|
|
2934
3005
|
/** Default date filter applied on dashboard load (relative or fixed month/year) */
|
|
2935
3006
|
defaultDateFilter?: DefaultDateFilter;
|
|
2936
3007
|
/** Search mode for numeric filters: 'text' treats as text, 'numeric' enables operators (>, <, =) */
|
|
@@ -702,6 +702,51 @@ export declare type DashboardEventHandlers = {
|
|
|
702
702
|
onExportData?: (payload: ExportDataPayload) => void;
|
|
703
703
|
};
|
|
704
704
|
|
|
705
|
+
export declare type DashboardFilterApplication = {
|
|
706
|
+
kind: 'cardMappings';
|
|
707
|
+
/**
|
|
708
|
+
* Sparse grounded bindings and explicit exclusions. A missing config card
|
|
709
|
+
* may reuse a proven Option Value target on an executable source; it is not
|
|
710
|
+
* an implicit exclusion, and source identity alone is not field evidence.
|
|
711
|
+
*/
|
|
712
|
+
cards: DashboardFilterCardApplication[];
|
|
713
|
+
};
|
|
714
|
+
|
|
715
|
+
export declare type DashboardFilterBoundCardApplication = {
|
|
716
|
+
kind: 'bound';
|
|
717
|
+
cardId: string;
|
|
718
|
+
bindingId: string;
|
|
719
|
+
target: DashboardFilterTarget;
|
|
720
|
+
};
|
|
721
|
+
|
|
722
|
+
export declare type DashboardFilterCardApplication = DashboardFilterBoundCardApplication | DashboardFilterExcludedCardApplication;
|
|
723
|
+
|
|
724
|
+
export declare type DashboardFilterExcludedCardApplication = {
|
|
725
|
+
kind: 'excluded';
|
|
726
|
+
cardId: string;
|
|
727
|
+
};
|
|
728
|
+
|
|
729
|
+
/** Persisted label/value option definition for a mapped dashboard filter. */
|
|
730
|
+
export declare type DashboardFilterOptionSource = SemaphorInputOptionSource;
|
|
731
|
+
|
|
732
|
+
export declare type DashboardFilterTarget = {
|
|
733
|
+
kind: 'field';
|
|
734
|
+
field: DashboardFilterTargetField;
|
|
735
|
+
};
|
|
736
|
+
|
|
737
|
+
/** Persisted, source-qualified field that a mapped filter targets. */
|
|
738
|
+
export declare type DashboardFilterTargetField = {
|
|
739
|
+
name: string;
|
|
740
|
+
source: DashboardFilterTargetSource;
|
|
741
|
+
dataType: 'string' | 'number' | 'boolean' | 'date' | 'datetime';
|
|
742
|
+
/** Catalog-grounded physical column used when it differs from the semantic name. */
|
|
743
|
+
sourceField?: string;
|
|
744
|
+
};
|
|
745
|
+
|
|
746
|
+
export declare type DashboardFilterTargetSource = Extract<SemaphorSourceRef, {
|
|
747
|
+
kind: 'semantic' | 'physical';
|
|
748
|
+
}>;
|
|
749
|
+
|
|
705
750
|
export declare type DashboardInput = FilterDashboardInput | ControlDashboardInput;
|
|
706
751
|
|
|
707
752
|
export declare type DashboardInputBase = {
|
|
@@ -771,14 +816,14 @@ export declare type DashboardInputScope = {
|
|
|
771
816
|
sectionIds: string[];
|
|
772
817
|
};
|
|
773
818
|
|
|
774
|
-
export declare type DashboardInputSlot =
|
|
819
|
+
export declare type DashboardInputSlot = {
|
|
775
820
|
status: 'set';
|
|
776
821
|
value: DashboardInputValue;
|
|
777
822
|
comparisonSelection?: GlobalDateComparisonSelection;
|
|
778
|
-
}
|
|
823
|
+
} | {
|
|
779
824
|
status: 'cleared';
|
|
780
825
|
comparisonSelection?: GlobalDateComparisonSelection;
|
|
781
|
-
}
|
|
826
|
+
} | {
|
|
782
827
|
status?: never;
|
|
783
828
|
value?: never;
|
|
784
829
|
comparisonSelection: GlobalDateComparisonSelection;
|
|
@@ -1457,6 +1502,14 @@ export declare type EmailSettings = {
|
|
|
1457
1502
|
senderTitle: string;
|
|
1458
1503
|
};
|
|
1459
1504
|
|
|
1505
|
+
export declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
|
|
1506
|
+
kind: 'filter';
|
|
1507
|
+
filter: TFilter;
|
|
1508
|
+
filterReference?: never;
|
|
1509
|
+
optionSource?: DashboardFilterOptionSource;
|
|
1510
|
+
application?: DashboardFilterApplication;
|
|
1511
|
+
};
|
|
1512
|
+
|
|
1460
1513
|
export declare const EMPTY_SELECTION: SelectionState;
|
|
1461
1514
|
|
|
1462
1515
|
declare type EntityType = 'table' | 'view' | 'materialized view' | 'model' | 'file' | 'dataset' | 'url' | 'upload';
|
|
@@ -1573,10 +1626,7 @@ declare interface FilterCondition {
|
|
|
1573
1626
|
temporalBucket?: TemporalBucketMetadata;
|
|
1574
1627
|
}
|
|
1575
1628
|
|
|
1576
|
-
export declare type FilterDashboardInput =
|
|
1577
|
-
kind: 'filter';
|
|
1578
|
-
filter: TFilter;
|
|
1579
|
-
};
|
|
1629
|
+
export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
1580
1630
|
|
|
1581
1631
|
/**
|
|
1582
1632
|
* Display mode for individual filters
|
|
@@ -2080,6 +2130,17 @@ declare type MonthAlignedFiscalCalendar = {
|
|
|
2080
2130
|
|
|
2081
2131
|
declare type NoneOptions = {};
|
|
2082
2132
|
|
|
2133
|
+
export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
|
|
2134
|
+
|
|
2135
|
+
/** Runtime form after dashboard-filter references are resolved once. */
|
|
2136
|
+
export declare type NormalizedFilterDashboardInput = DashboardInputBase & {
|
|
2137
|
+
kind: 'filter';
|
|
2138
|
+
filter: TFilter;
|
|
2139
|
+
optionSource?: DashboardFilterOptionSource;
|
|
2140
|
+
application?: DashboardFilterApplication;
|
|
2141
|
+
definitionOrigin: 'embedded' | 'dashboardFilter';
|
|
2142
|
+
};
|
|
2143
|
+
|
|
2083
2144
|
export declare type NumberAxisFormat = {
|
|
2084
2145
|
decimalPlaces?: number;
|
|
2085
2146
|
minimumFractionDigits?: number;
|
|
@@ -2237,6 +2298,17 @@ declare type RawTemporalPresentationTarget = {
|
|
|
2237
2298
|
columnKey: string;
|
|
2238
2299
|
};
|
|
2239
2300
|
|
|
2301
|
+
export declare type ReferencedFilterDashboardInput = DashboardInputBase & {
|
|
2302
|
+
kind: 'filter';
|
|
2303
|
+
filter?: never;
|
|
2304
|
+
filterReference: {
|
|
2305
|
+
kind: 'dashboardFilter';
|
|
2306
|
+
filterId: string;
|
|
2307
|
+
};
|
|
2308
|
+
optionSource?: DashboardFilterOptionSource;
|
|
2309
|
+
application?: DashboardFilterApplication;
|
|
2310
|
+
};
|
|
2311
|
+
|
|
2240
2312
|
declare type RelativeDateFilter = {
|
|
2241
2313
|
mode: 'last';
|
|
2242
2314
|
n: number;
|
|
@@ -2316,6 +2388,8 @@ export declare type ResolvedDashboardInput = {
|
|
|
2316
2388
|
exports: Partial<Record<DashboardInputExportKey, string | number | boolean | null>>;
|
|
2317
2389
|
filter?: TFilter;
|
|
2318
2390
|
filterValue?: TFilterValue;
|
|
2391
|
+
/** Present when a set filter slot cannot be used with its current definition. */
|
|
2392
|
+
invalidFilterSelection?: boolean;
|
|
2319
2393
|
control?: ControlDefinition;
|
|
2320
2394
|
controlValue?: unknown;
|
|
2321
2395
|
missingRequiredValue?: boolean;
|
|
@@ -2323,7 +2397,7 @@ export declare type ResolvedDashboardInput = {
|
|
|
2323
2397
|
};
|
|
2324
2398
|
|
|
2325
2399
|
export declare type ResolvedDashboardInputContext = {
|
|
2326
|
-
inputs:
|
|
2400
|
+
inputs: NormalizedDashboardInput[];
|
|
2327
2401
|
resolvedInputs: ResolvedDashboardInput[];
|
|
2328
2402
|
activeFilters: TFilterValue[];
|
|
2329
2403
|
controlDefinitions: ControlDefinition[];
|
|
@@ -2571,6 +2645,16 @@ declare type SemaphorInputBinding = {
|
|
|
2571
2645
|
|
|
2572
2646
|
declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'between' | 'not_between' | '>' | '>=' | '<' | '<=';
|
|
2573
2647
|
|
|
2648
|
+
declare type SemaphorInputOptionSource = {
|
|
2649
|
+
source: Extract<SemaphorSourceRef, {
|
|
2650
|
+
kind: 'semantic' | 'physical';
|
|
2651
|
+
}>;
|
|
2652
|
+
labelField: SemaphorFieldRef;
|
|
2653
|
+
valueField: SemaphorFieldRef;
|
|
2654
|
+
searchField?: SemaphorFieldRef;
|
|
2655
|
+
disambiguationFields?: SemaphorFieldRef[];
|
|
2656
|
+
};
|
|
2657
|
+
|
|
2574
2658
|
declare type SemaphorMatrixAxisExpansionOptions = {
|
|
2575
2659
|
defaultDepth?: number;
|
|
2576
2660
|
lazy?: boolean;
|
|
@@ -3606,7 +3690,7 @@ declare type TFilter = {
|
|
|
3606
3690
|
type?: 'single' | 'multiple';
|
|
3607
3691
|
uiType?: 'radio' | 'dropdown' | 'tabs';
|
|
3608
3692
|
dateSelectionMode?: DateSelectionMode;
|
|
3609
|
-
defaultValues?: (string | number)[];
|
|
3693
|
+
defaultValues?: (string | number | boolean)[];
|
|
3610
3694
|
defaultDateFilter?: DefaultDateFilter;
|
|
3611
3695
|
sheetId?: string;
|
|
3612
3696
|
location?: FilterLocation;
|
|
@@ -3778,7 +3862,7 @@ export declare type TInlineFilter = {
|
|
|
3778
3862
|
/** Date picker type: 'range' for full calendar, 'months' for month picker */
|
|
3779
3863
|
dateSelectionMode?: DateSelectionMode;
|
|
3780
3864
|
/** Default values applied when the dashboard first loads */
|
|
3781
|
-
defaultValues?: (string | number)[];
|
|
3865
|
+
defaultValues?: (string | number | boolean)[];
|
|
3782
3866
|
/** Default date filter applied on dashboard load (relative or fixed month/year) */
|
|
3783
3867
|
defaultDateFilter?: DefaultDateFilter;
|
|
3784
3868
|
/** Search mode for numeric filters: 'text' treats as text, 'numeric' enables operators (>, <, =) */
|