@gooddata/sdk-model 11.36.0-alpha.2 → 11.36.0-alpha.6

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.
@@ -28,7 +28,15 @@ export declare const getAttributeIdentifiersPlaceholdersFromUrl: (url: string) =
28
28
  * @internal
29
29
  */
30
30
  export declare const getDashboardAttributeFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
31
+ /**
32
+ * @internal
33
+ */
34
+ export declare const getDashboardMeasureValueFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
31
35
  /**
32
36
  * @internal
33
37
  */
34
38
  export declare const getInsightAttributeFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
39
+ /**
40
+ * @internal
41
+ */
42
+ export declare const getInsightMeasureValueFilterPlaceholdersFromUrl: (url: string) => IDrillToUrlPlaceholder[];
@@ -1,4 +1,4 @@
1
- // (C) 2022-2025 GoodData Corporation
1
+ // (C) 2022-2026 GoodData Corporation
2
2
  import { idRef } from "../objRef/factory.js";
3
3
  import { isIdentifierRef } from "../objRef/index.js";
4
4
  function matchAll(regex, text) {
@@ -12,7 +12,9 @@ function matchAll(regex, text) {
12
12
  const attributeIdentifierSplitRegexp = /(\{attribute_title\(.*?\)\})/;
13
13
  const attributeIdentifierMatchRegexp = /\{attribute_title\((.*?)\)\}/g;
14
14
  const dashboardAttributeFilterMatchRegexp = /\{dash_attribute_filter_selection\((.*?)\)\}/g;
15
+ const dashboardMeasureValueFilterMatchRegexp = /\{dash_mvf_condition\((.*?)\)\}/g;
15
16
  const insightAttributeFilterMatchRegexp = /\{attribute_filter_selection\((.*?)\)\}/g;
17
+ const insightMeasureValueFilterMatchRegexp = /\{mvf_condition\((.*?)\)\}/g;
16
18
  const attributeIdentifierToPlaceholder = (ref) => `{attribute_title(${ref.identifier})}`;
17
19
  const matchToUrlPlaceholder = (match) => ({
18
20
  placeholder: match[0],
@@ -20,6 +22,12 @@ const matchToUrlPlaceholder = (match) => ({
20
22
  ref: idRef(match[1], "displayForm"),
21
23
  toBeEncoded: match.index !== 0,
22
24
  });
25
+ const matchToMeasureUrlPlaceholder = (match) => ({
26
+ placeholder: match[0],
27
+ identifier: match[1],
28
+ ref: idRef(match[1], "measure"),
29
+ toBeEncoded: match.index !== 0,
30
+ });
23
31
  const splitAttributeIdentifierUrl = (url) => url.split(attributeIdentifierSplitRegexp);
24
32
  /**
25
33
  * @internal
@@ -58,7 +66,15 @@ export const getAttributeIdentifiersPlaceholdersFromUrl = (url) => matchAll(attr
58
66
  * @internal
59
67
  */
60
68
  export const getDashboardAttributeFilterPlaceholdersFromUrl = (url) => matchAll(dashboardAttributeFilterMatchRegexp, url).map(matchToUrlPlaceholder);
69
+ /**
70
+ * @internal
71
+ */
72
+ export const getDashboardMeasureValueFilterPlaceholdersFromUrl = (url) => matchAll(dashboardMeasureValueFilterMatchRegexp, url).map(matchToMeasureUrlPlaceholder);
61
73
  /**
62
74
  * @internal
63
75
  */
64
76
  export const getInsightAttributeFilterPlaceholdersFromUrl = (url) => matchAll(insightAttributeFilterMatchRegexp, url).map(matchToUrlPlaceholder);
77
+ /**
78
+ * @internal
79
+ */
80
+ export const getInsightMeasureValueFilterPlaceholdersFromUrl = (url) => matchAll(insightMeasureValueFilterMatchRegexp, url).map(matchToMeasureUrlPlaceholder);
@@ -2,6 +2,7 @@ import { type DateFilterGranularity, type DateString } from "../dateFilterConfig
2
2
  import { type EmptyValues, type IAttributeElements, type ILowerBoundedFilter, type IUpperBoundedFilter, type MatchFilterOperator, type MeasureValueFilterCondition } from "../execution/filter/index.js";
3
3
  import { type ObjRef } from "../objRef/index.js";
4
4
  import { type IDashboardObjectIdentity } from "./common.js";
5
+ import { type IDashboardParameter } from "./parameter.js";
5
6
  /**
6
7
  * Date filter type - relative
7
8
  * @beta
@@ -684,6 +685,13 @@ export interface IDashboardFilterView {
684
685
  readonly filterContext: IFilterContextDefinition;
685
686
  readonly isDefault?: boolean;
686
687
  readonly tabLocalIdentifier?: string;
688
+ /**
689
+ * Dashboard parameter overrides captured at the time the view was saved.
690
+ * Absent when the view was saved before parameters were supported.
691
+ *
692
+ * @alpha
693
+ */
694
+ readonly parameters?: IDashboardParameter[];
687
695
  }
688
696
  /**
689
697
  * Interface that represents an entity provided to SPI function that creates a new dashboard filter view
@@ -697,4 +705,10 @@ export interface IDashboardFilterViewSaveRequest {
697
705
  readonly filterContext: IFilterContextDefinition;
698
706
  readonly isDefault?: boolean;
699
707
  readonly tabLocalIdentifier?: string;
708
+ /**
709
+ * Dashboard parameter overrides to capture in the filter view alongside the filter context.
710
+ *
711
+ * @alpha
712
+ */
713
+ readonly parameters?: IDashboardParameter[];
700
714
  }
package/esm/index.d.ts CHANGED
@@ -35,7 +35,7 @@ export { type IExecutionDefinition, type IExecutionConfig, type IMeasureDefiniti
35
35
  export { type IInsightParameterValue } from "./execution/parameter/index.js";
36
36
  export { newDefForItems, newDefForBuckets, newDefForInsight, defWithDimensions, defWithSorting, defWithPostProcessing, defWithBuckets, defWithDateFormat, defWithExecConfig, defaultDimensionsGenerator, emptyDef, } from "./execution/executionDefinition/factory.js";
37
37
  export { type GuidType, type RgbType, type IRgbColorValue, type IColor, type IColorPalette, type IColorPaletteItem, type IColorFromPalette, type IRgbColor, type IColorPaletteMetadataObject, type IColorPaletteDefinition, isColorFromPalette, isRgbColor, isColorPaletteItem, colorPaletteItemToRgb, colorPaletteToColors, } from "./colors/index.js";
38
- export { type IInsight, type IInsightDefinition, type IVisualizationClass, type IVisualizationClassBody, type VisualizationProperties, type IAttributeFilterConfigs, type IAttributeFilterConfig, type IColorMappingItem, type GeoLayerType, type GeoVisualizationType, type InsightDisplayFormUsage, type IInsightLayerDefinition, geoLayerTypeFromVisualizationType, GeoLayerTypes, GeoVisualizationTypes, isGeoLayerType, isInsight, isColorMappingItem, insightRef, insightId, insightItems, insightMeasures, insightHasMeasures, insightAttributes, insightHasAttributes, insightHasDataDefined, insightProperties, insightBuckets, insightSorts, insightBucket, insightTags, insightSummary, insightTitle, insightUri, insightIsLocked, insightCreated, insightCreatedBy, insightUpdated, insightUpdatedBy, insightTotals, insightFilters, insightAttributeFilterConfigs, insightVisualizationUrl, insightVisualizationType, insightSetFilters, insightSetBuckets, insightSetProperties, insightSetSorts, insightParameters, insightSetParameters, insightModifyItems, insightReduceItems, insightDisplayFormUsage, insightLayers, insightSetLayers, visClassUrl, visClassId, visClassUri, isInsightLayerDefinition, } from "./insight/index.js";
38
+ export { type IInsight, type IInsightDefinition, type IVisualizationClass, type IVisualizationClassBody, type VisualizationProperties, type IAttributeFilterConfigs, type IAttributeFilterConfig, type IColorMappingItem, type GeoLayerType, type GeoVisualizationType, type InsightDisplayFormUsage, type IInsightLayerDefinition, geoLayerTypeFromVisualizationType, GeoLayerTypes, GeoVisualizationTypes, isGeoLayerType, isInsight, isColorMappingItem, insightRef, insightId, insightItems, insightMeasures, insightHasMeasures, insightAttributes, insightHasAttributes, insightHasDataDefined, insightProperties, insightBuckets, insightSorts, insightBucket, insightTags, insightSummary, insightTitle, insightUri, insightIsLocked, insightIsHidden, insightCreated, insightCreatedBy, insightUpdated, insightUpdatedBy, insightTotals, insightFilters, insightAttributeFilterConfigs, insightVisualizationUrl, insightVisualizationType, insightSetFilters, insightSetBuckets, insightSetProperties, insightSetSorts, insightParameters, insightSetParameters, insightModifyItems, insightReduceItems, insightDisplayFormUsage, insightLayers, insightSetLayers, visClassUrl, visClassId, visClassUri, isInsightLayerDefinition, } from "./insight/index.js";
39
39
  export { insightCreatedComparator, insightCreatedByComparator, insightTitleComparator, insightUpdatedComparator, insightUpdatedByComparator, } from "./insight/comparators.js";
40
40
  export { type InsightModifications, newInsightDefinition, InsightDefinitionBuilder, } from "./insight/factory.js";
41
41
  export { insightSanitize, sanitizeBucketTotals } from "./insight/sanitization.js";
package/esm/index.js CHANGED
@@ -34,7 +34,7 @@ export { bucketItemLocalId } from "./execution/buckets/bucketItem.js";
34
34
  export { defWithFilters, defFingerprint, defSetDimensions, defSetSorts, defSetBuckets, defTotals, defSetExecConfig, defSetPostProcessing, } from "./execution/executionDefinition/index.js";
35
35
  export { newDefForItems, newDefForBuckets, newDefForInsight, defWithDimensions, defWithSorting, defWithPostProcessing, defWithBuckets, defWithDateFormat, defWithExecConfig, defaultDimensionsGenerator, emptyDef, } from "./execution/executionDefinition/factory.js";
36
36
  export { isColorFromPalette, isRgbColor, isColorPaletteItem, colorPaletteItemToRgb, colorPaletteToColors, } from "./colors/index.js";
37
- export { geoLayerTypeFromVisualizationType, GeoLayerTypes, GeoVisualizationTypes, isGeoLayerType, isInsight, isColorMappingItem, insightRef, insightId, insightItems, insightMeasures, insightHasMeasures, insightAttributes, insightHasAttributes, insightHasDataDefined, insightProperties, insightBuckets, insightSorts, insightBucket, insightTags, insightSummary, insightTitle, insightUri, insightIsLocked, insightCreated, insightCreatedBy, insightUpdated, insightUpdatedBy, insightTotals, insightFilters, insightAttributeFilterConfigs, insightVisualizationUrl, insightVisualizationType, insightSetFilters, insightSetBuckets, insightSetProperties, insightSetSorts, insightParameters, insightSetParameters, insightModifyItems, insightReduceItems, insightDisplayFormUsage, insightLayers, insightSetLayers, visClassUrl, visClassId, visClassUri, isInsightLayerDefinition, } from "./insight/index.js";
37
+ export { geoLayerTypeFromVisualizationType, GeoLayerTypes, GeoVisualizationTypes, isGeoLayerType, isInsight, isColorMappingItem, insightRef, insightId, insightItems, insightMeasures, insightHasMeasures, insightAttributes, insightHasAttributes, insightHasDataDefined, insightProperties, insightBuckets, insightSorts, insightBucket, insightTags, insightSummary, insightTitle, insightUri, insightIsLocked, insightIsHidden, insightCreated, insightCreatedBy, insightUpdated, insightUpdatedBy, insightTotals, insightFilters, insightAttributeFilterConfigs, insightVisualizationUrl, insightVisualizationType, insightSetFilters, insightSetBuckets, insightSetProperties, insightSetSorts, insightParameters, insightSetParameters, insightModifyItems, insightReduceItems, insightDisplayFormUsage, insightLayers, insightSetLayers, visClassUrl, visClassId, visClassUri, isInsightLayerDefinition, } from "./insight/index.js";
38
38
  export { insightCreatedComparator, insightCreatedByComparator, insightTitleComparator, insightUpdatedComparator, insightUpdatedByComparator, } from "./insight/comparators.js";
39
39
  export { newInsightDefinition, InsightDefinitionBuilder, } from "./insight/factory.js";
40
40
  export { insightSanitize, sanitizeBucketTotals } from "./insight/sanitization.js";
@@ -583,6 +583,14 @@ export declare function insightUpdatedBy(insight: IInsight): IUser | undefined;
583
583
  * @public
584
584
  */
585
585
  export declare function insightIsLocked(insight: IInsight): boolean;
586
+ /**
587
+ * Checks if insight is hidden
588
+ *
589
+ * @param insight - insight
590
+ * @returns boolean
591
+ * @alpha
592
+ */
593
+ export declare function insightIsHidden(insight: IInsight): boolean;
586
594
  /**
587
595
  * Gets a new insight that 'inherits' all data from the provided insight but has different properties.
588
596
  *
@@ -407,6 +407,17 @@ export function insightIsLocked(insight) {
407
407
  invariant(insight, "insight must be specified");
408
408
  return insight.insight.isLocked || false;
409
409
  }
410
+ /**
411
+ * Checks if insight is hidden
412
+ *
413
+ * @param insight - insight
414
+ * @returns boolean
415
+ * @alpha
416
+ */
417
+ export function insightIsHidden(insight) {
418
+ invariant(insight, "insight must be specified");
419
+ return insight.insight.isHidden || false;
420
+ }
410
421
  /**
411
422
  * Gets a new insight that 'inherits' all data from the provided insight but has different properties.
412
423
  *
package/esm/internal.d.ts CHANGED
@@ -1 +1 @@
1
- export { type IDrillToUrlPlaceholder, joinDrillUrlParts, splitDrillUrlParts, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
1
+ export { type IDrillToUrlPlaceholder, joinDrillUrlParts, splitDrillUrlParts, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getDashboardMeasureValueFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, getInsightMeasureValueFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
package/esm/internal.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // (C) 2023-2026 GoodData Corporation
2
2
  /* oxlint-disable no-barrel-files/no-barrel-files */
3
- export { joinDrillUrlParts, splitDrillUrlParts, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
3
+ export { joinDrillUrlParts, splitDrillUrlParts, getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getDashboardMeasureValueFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, getInsightMeasureValueFilterPlaceholdersFromUrl, } from "./dashboard/drillUrl.js";
@@ -401,8 +401,16 @@ export interface IExternalUrlPluggableApplicationModule {
401
401
  /**
402
402
  * URL of the external application.
403
403
  *
404
+ * May contain the placeholder `{workspaceId}` which the host substitutes with the
405
+ * id of the currently active workspace at navigation time. The placeholder is the
406
+ * only supported variable; other tokens are left untouched. If no workspace is
407
+ * active when the URL is composed, the placeholder is substituted with an empty
408
+ * string.
409
+ *
404
410
  * @example
405
411
  * https://google.com
412
+ * @example
413
+ * /dashboards/#/project/\{workspaceId\}
406
414
  */
407
415
  url: string;
408
416
  }
@@ -4740,6 +4740,13 @@ export declare interface IDashboardFilterView {
4740
4740
  readonly filterContext: IFilterContextDefinition;
4741
4741
  readonly isDefault?: boolean;
4742
4742
  readonly tabLocalIdentifier?: string;
4743
+ /**
4744
+ * Dashboard parameter overrides captured at the time the view was saved.
4745
+ * Absent when the view was saved before parameters were supported.
4746
+ *
4747
+ * @alpha
4748
+ */
4749
+ readonly parameters?: IDashboardParameter[];
4743
4750
  }
4744
4751
 
4745
4752
  /**
@@ -4754,6 +4761,12 @@ export declare interface IDashboardFilterViewSaveRequest {
4754
4761
  readonly filterContext: IFilterContextDefinition;
4755
4762
  readonly isDefault?: boolean;
4756
4763
  readonly tabLocalIdentifier?: string;
4764
+ /**
4765
+ * Dashboard parameter overrides to capture in the filter view alongside the filter context.
4766
+ *
4767
+ * @alpha
4768
+ */
4769
+ readonly parameters?: IDashboardParameter[];
4757
4770
  }
4758
4771
 
4759
4772
  /**
@@ -6301,8 +6314,16 @@ export declare interface IExternalUrlPluggableApplicationModule {
6301
6314
  /**
6302
6315
  * URL of the external application.
6303
6316
  *
6317
+ * May contain the placeholder `{workspaceId}` which the host substitutes with the
6318
+ * id of the currently active workspace at navigation time. The placeholder is the
6319
+ * only supported variable; other tokens are left untouched. If no workspace is
6320
+ * active when the URL is composed, the placeholder is substituted with an empty
6321
+ * string.
6322
+ *
6304
6323
  * @example
6305
6324
  * https://google.com
6325
+ * @example
6326
+ * /dashboards/#/project/\{workspaceId\}
6306
6327
  */
6307
6328
  url: string;
6308
6329
  }
@@ -6352,6 +6373,10 @@ export declare interface IFeatureFlags {
6352
6373
  * Indicates whether the Waterfall Chart is available in AD.
6353
6374
  */
6354
6375
  enableWaterfallChart?: boolean;
6376
+ /**
6377
+ * Indicates whether the Radar Chart is available in AD.
6378
+ */
6379
+ enableRadarChart?: boolean;
6355
6380
  /**
6356
6381
  * Indicates whether the Embed dashboard button is available in KPI dashboards.
6357
6382
  */
@@ -6560,10 +6585,6 @@ export declare interface IFeatureFlags {
6560
6585
  * Enable fine-tuning options for visualization in AD configuration panel.
6561
6586
  */
6562
6587
  enableVisualizationFineTuning?: boolean;
6563
- /**
6564
- * Enable improved attribute filters experience in Analytical Designer.
6565
- */
6566
- enableImprovedAdFilters?: boolean;
6567
6588
  /**
6568
6589
  * Enable external recipients options
6569
6590
  */
@@ -6630,6 +6651,14 @@ export declare interface IFeatureFlags {
6630
6651
  * @alpha
6631
6652
  */
6632
6653
  enableDashboardSectionHeadersDateDataSet?: boolean;
6654
+ /**
6655
+ * When enabled, dashboards are stored using the V3 analytical-dashboard model — tabs-only,
6656
+ * no root-level layout / filter configs / parameters. This reduces payload size for large
6657
+ * dashboards but breaks readability for SDK versions that only know V2 root-level properties.
6658
+ * Opt-in for customers who do not consume dashboards via legacy SDK readers.
6659
+ * @alpha
6660
+ */
6661
+ enableAnalyticalDashboardVersion3?: boolean;
6633
6662
  /**
6634
6663
  * Enable execution cancelling.
6635
6664
  */
@@ -6646,10 +6675,6 @@ export declare interface IFeatureFlags {
6646
6675
  * Enable using execution timestamp.
6647
6676
  */
6648
6677
  enableExecutionTimestamp?: boolean;
6649
- /**
6650
- * Enable automation filter context.
6651
- */
6652
- enableAutomationFilterContext?: boolean;
6653
6678
  /**
6654
6679
  * Enables storing date filter identifiers.
6655
6680
  */
@@ -9451,6 +9476,15 @@ export declare function insightHasMeasures(insight: IInsightDefinition): boolean
9451
9476
  */
9452
9477
  export declare function insightId(insight: IInsight): string;
9453
9478
 
9479
+ /**
9480
+ * Checks if insight is hidden
9481
+ *
9482
+ * @param insight - insight
9483
+ * @returns boolean
9484
+ * @alpha
9485
+ */
9486
+ export declare function insightIsHidden(insight: IInsight): boolean;
9487
+
9454
9488
  /**
9455
9489
  * Checks if insight is locked
9456
9490
  *
@@ -420,6 +420,10 @@ export interface IFeatureFlags {
420
420
  * Indicates whether the Waterfall Chart is available in AD.
421
421
  */
422
422
  enableWaterfallChart?: boolean;
423
+ /**
424
+ * Indicates whether the Radar Chart is available in AD.
425
+ */
426
+ enableRadarChart?: boolean;
423
427
  /**
424
428
  * Indicates whether the Embed dashboard button is available in KPI dashboards.
425
429
  */
@@ -628,10 +632,6 @@ export interface IFeatureFlags {
628
632
  * Enable fine-tuning options for visualization in AD configuration panel.
629
633
  */
630
634
  enableVisualizationFineTuning?: boolean;
631
- /**
632
- * Enable improved attribute filters experience in Analytical Designer.
633
- */
634
- enableImprovedAdFilters?: boolean;
635
635
  /**
636
636
  * Enable external recipients options
637
637
  */
@@ -698,6 +698,14 @@ export interface IFeatureFlags {
698
698
  * @alpha
699
699
  */
700
700
  enableDashboardSectionHeadersDateDataSet?: boolean;
701
+ /**
702
+ * When enabled, dashboards are stored using the V3 analytical-dashboard model — tabs-only,
703
+ * no root-level layout / filter configs / parameters. This reduces payload size for large
704
+ * dashboards but breaks readability for SDK versions that only know V2 root-level properties.
705
+ * Opt-in for customers who do not consume dashboards via legacy SDK readers.
706
+ * @alpha
707
+ */
708
+ enableAnalyticalDashboardVersion3?: boolean;
701
709
  /**
702
710
  * Enable execution cancelling.
703
711
  */
@@ -714,10 +722,6 @@ export interface IFeatureFlags {
714
722
  * Enable using execution timestamp.
715
723
  */
716
724
  enableExecutionTimestamp?: boolean;
717
- /**
718
- * Enable automation filter context.
719
- */
720
- enableAutomationFilterContext?: boolean;
721
725
  /**
722
726
  * Enables storing date filter identifiers.
723
727
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-model",
3
- "version": "11.36.0-alpha.2",
3
+ "version": "11.36.0-alpha.6",
4
4
  "description": "GoodData Model definitions used by UI components and Backend SPI",
5
5
  "license": "MIT",
6
6
  "author": "GoodData",
@@ -57,8 +57,8 @@
57
57
  "oxlint-tsgolint": "0.11.4",
58
58
  "typescript": "5.9.3",
59
59
  "vitest": "4.1.0",
60
- "@gooddata/eslint-config": "11.36.0-alpha.2",
61
- "@gooddata/oxlint-config": "11.36.0-alpha.2"
60
+ "@gooddata/eslint-config": "11.36.0-alpha.6",
61
+ "@gooddata/oxlint-config": "11.36.0-alpha.6"
62
62
  },
63
63
  "scripts": {
64
64
  "_phase:build": "npm run build",