# ReportDesigner

## Content

# Namespace: ReportDesigner

## Table of contents

### Classes

- [Designer](../classes/ReportDesigner.Designer)

### Interfaces

- [ActionHandlers](../interfaces/ReportDesigner.ActionHandlers)
- [ResourceProvider](../interfaces/ReportDesigner.ResourceProvider)

### Type aliases

- [ColorTheme](ReportDesigner#colortheme)
- [ColorThemeItem](ReportDesigner#colorthemeitem)
- [ColorThemeShades](ReportDesigner#colorthemeshades)
- [ColorThemeType](ReportDesigner#colorthemetype)
- [CustomInitTemplates](ReportDesigner#custominittemplates)
- [DataSetTemplate](ReportDesigner#datasettemplate)
- [DataSourceTemplate](ReportDesigner#datasourcetemplate)
- [DesignerAppBarControlItem](ReportDesigner#designerappbarcontrolitem)
- [DesignerCommand](ReportDesigner#designercommand)
- [DesignerConfig](ReportDesigner#designerconfig)
- [DocumentChangedEventArgs](ReportDesigner#documentchangedeventargs)
- [EditorAPI](ReportDesigner#editorapi)
- [FontSet](ReportDesigner#fontset)
- [ImageResourceInfo](ReportDesigner#imageresourceinfo)
- [MenuCssIcon](ReportDesigner#menucssicon)
- [MenuIcon](ReportDesigner#menuicon)
- [NewReport](ReportDesigner#newreport)
- [NewReportInfo](ReportDesigner#newreportinfo)
- [NotificationLevel](ReportDesigner#notificationlevel)
- [NotificationsAPI](ReportDesigner#notificationsapi)
- [PanelsAPI](ReportDesigner#panelsapi)
- [PanelsMenuAPI](ReportDesigner#panelsmenuapi)
- [PanelsSidebarAPI](ReportDesigner#panelssidebarapi)
- [PropertyDescriptor](ReportDesigner#propertydescriptor)
- [PropertyDisplayMode](ReportDesigner#propertydisplaymode)
- [Report](ReportDesigner#report)
- [ReportDefinition](ReportDesigner#reportdefinition)
- [ReportInfo](ReportDesigner#reportinfo)
- [ReportLink](ReportDesigner#reportlink)
- [ReportResourceInfo](ReportDesigner#reportresourceinfo)
- [ReportType](ReportDesigner#reporttype)
- [SaveAsResult](ReportDesigner#saveasresult)
- [SaveNewReportInfo](ReportDesigner#savenewreportinfo)
- [SaveReportInfo](ReportDesigner#savereportinfo)
- [SaveResult](ReportDesigner#saveresult)
- [StylesheetResourceInfo](ReportDesigner#stylesheetresourceinfo)
- [ThemeInfo](ReportDesigner#themeinfo)
- [ThemeResourceInfo](ReportDesigner#themeresourceinfo)
- [WhenDirty](ReportDesigner#whendirty)

### Variables

- [ColorThemes](ReportDesigner#colorthemes)

## Type aliases

### <a id="colortheme" name="colortheme"></a> ColorTheme

Ƭ **ColorTheme**: `Object`

Represents a custom UI color theme.

**`example`**
```ts
const customTheme: ColorTheme = {
	name: 'BrandLight',
	type: 'light',
	backgroundMain: '#ffffff',
	backgroundPanels: '#f5f5f5',
	primary: '#2b579a',
	secondary: '#107c10',
	neutral: '#6b6b6b',
	error: '#d13438',
	warning: '#ffb900',
	fontFamily: 'Segoe UI',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `backgroundMain` | `string` | Gets or sets the main background color. |
| `backgroundPanels` | `string` | Gets or sets the panel background color. |
| `error?` | [`ColorThemeItem`](ReportDesigner#colorthemeitem) | Gets or sets the error theme color. |
| `fontFamily?` | `string` | Gets or sets the font family for UI text. |
| `name` | `string` | Gets or sets the theme name. |
| `neutral?` | [`ColorThemeItem`](ReportDesigner#colorthemeitem) | Gets or sets the neutral theme color. |
| `primary?` | [`ColorThemeItem`](ReportDesigner#colorthemeitem) | Gets or sets the primary theme color. |
| `secondary?` | [`ColorThemeItem`](ReportDesigner#colorthemeitem) | Gets or sets the secondary theme color. |
| `type` | [`ColorThemeType`](ReportDesigner#colorthemetype) | Gets or sets the theme type. |
| `warning?` | [`ColorThemeItem`](ReportDesigner#colorthemeitem) | Gets or sets the warning theme color. |

___

### <a id="colorthemeitem" name="colorthemeitem"></a> ColorThemeItem

Ƭ **ColorThemeItem**: `string` \| [`ColorThemeShades`](ReportDesigner#colorthemeshades)

Defines a theme color value as either a single color string or a set of shades.

**`example`**
```ts
const primary: ColorThemeItem = '#2b579a';
```

___

### <a id="colorthemeshades" name="colorthemeshades"></a> ColorThemeShades

Ƭ **ColorThemeShades**: `Object`

Defines the set of color shades used by a theme.

**`example`**
```ts
const shades: ColorThemeShades = {
	veryLight: '#ffffff',
	light: '#f2f2f2',
	lighter: '#e6e6e6',
	lightMedium: '#cccccc',
	medium: '#999999',
	base: '#666666',
	darkMedium: '#4d4d4d',
	darker: '#333333',
	dark: '#1a1a1a',
	veryDark: '#000000',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `base` | `string` | Gets or sets the base shade. |
| `dark?` | `string` | Gets or sets the dark shade. |
| `darkMedium?` | `string` | Gets or sets the dark medium shade. |
| `darker?` | `string` | Gets or sets the darker shade. |
| `light?` | `string` | Gets or sets the light shade. |
| `lightMedium?` | `string` | Gets or sets the light medium shade. |
| `lighter?` | `string` | Gets or sets the lighter shade. |
| `medium?` | `string` | Gets or sets the medium shade. |
| `veryDark?` | `string` | Gets or sets the very dark shade. |
| `veryLight?` | `string` | Gets or sets the very light shade. |

___

### <a id="colorthemetype" name="colorthemetype"></a> ColorThemeType

Ƭ **ColorThemeType**: ``"light"`` \| ``"dark"``

Defines the overall tone of a color theme.

**`remarks`**
Accepted values:
- `'light'`: Light theme.
- `'dark'`: Dark theme.

**`example`**
```ts
const themeType: ColorThemeType = 'light';
```

___

### <a id="custominittemplates" name="custominittemplates"></a> CustomInitTemplates

Ƭ **CustomInitTemplates**: `Object`

Represents the custom templates used to initialize new reports.

**`example`**
```ts
const templates: CustomInitTemplates = {
	imperialTemplates: [{ id: 'report-1', displayName: 'Invoice' }],
	metricTemplates: [{ id: 'report-2', displayName: 'Invoice (Metric)' }],
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `imperialTemplates?` | [`Report`](ReportDesigner#report)[] | Gets or sets the templates for imperial units. |
| `metricTemplates?` | [`Report`](ReportDesigner#report)[] | Gets or sets the templates for metric units. |

___

### <a id="datasettemplate" name="datasettemplate"></a> DataSetTemplate

Ƭ **DataSetTemplate**: `Object`

Represents a dataset template for the data panel.

**`example`**
```ts
const template: DataSetTemplate = {
	id: 'ds1',
	title: 'Orders',
	template: {} as Rdl.DataSet,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `canEdit?` | `boolean` | Gets or sets a value indicating whether datasets created from this template can be edited. |
| `id` | `string` | Gets or sets the template identifier. |
| `nestedTemplates?` | [`DataSet`](Core.Rdl#dataset)[] | Gets or sets the RDLX definitions for nested datasets. |
| `shouldEdit?` | `boolean` | Gets or sets a value indicating whether the designer should show the edit dialog. |
| `template` | [`DataSet`](Core.Rdl#dataset) | Gets or sets the RDLX definition of the dataset. |
| `title` | `string` | Gets or sets the template title. |

___

### <a id="datasourcetemplate" name="datasourcetemplate"></a> DataSourceTemplate

Ƭ **DataSourceTemplate**: `Object`

Represents a data source template for the data panel.

**`example`**
```ts
const template: DataSourceTemplate = {
	id: 'src1',
	title: 'Main Database',
	template: {} as Rdl.DataSource,
	datasets: [],
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `canEdit?` | `boolean` | Gets or sets a value indicating whether datasets created from this template can be edited. |
| `datasets?` | [`DataSetTemplate`](ReportDesigner#datasettemplate)[] | Gets or sets the dataset templates for the data source. |
| `id` | `string` | Gets or sets the template identifier. |
| `shouldEdit?` | `boolean` | Gets or sets a value indicating whether the designer should show the edit dialog. |
| `template` | [`DataSource`](Core.Rdl#datasource) | Gets or sets the RDLX definition of the data source. |
| `title` | `string` | Gets or sets the template title. |

___

### <a id="designerappbarcontrolitem" name="designerappbarcontrolitem"></a> DesignerAppBarControlItem

Ƭ **DesignerAppBarControlItem**: `Object`

Represents an App Bar control item.

**`remarks`**
This is a simplified AppBarButton type to avoid core-ui imports leaking into the public declarations.

**`example`**
```ts
const item: DesignerAppBarControlItem = {
	type: 'button',
	id: 'custom-save',
	title: 'Save',
	disabled: false,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `badge?` | { `content?`: `string` ; `customCSS?`: `string` ; `level?`: ``"warning"`` \| ``"error"`` ; `position?`: `string` ; `rounded?`: `boolean`  } | Gets or sets the badge settings. |
| `badge.content?` | `string` | Gets or sets the badge content. |
| `badge.customCSS?` | `string` | Gets or sets a custom CSS class or styles string for the badge. |
| `badge.level?` | ``"warning"`` \| ``"error"`` | Gets or sets the badge level. |
| `badge.position?` | `string` | Gets or sets the badge position. |
| `badge.rounded?` | `boolean` | Gets or sets a value indicating whether the badge is rounded. |
| `customCSS?` | `string` | Gets or sets a custom CSS class or styles string. |
| `disabled?` | `boolean` | Gets or sets a value indicating whether the control item is disabled. |
| `icon?` | { `content`: `unknown` ; `type`: ``"svg"``  } | Gets or sets the SVG icon descriptor. |
| `icon.content` | `unknown` | Gets or sets the SVG content. |
| `icon.type` | ``"svg"`` | Gets or sets the icon type. |
| `id?` | `string` | Gets or sets the control item identifier. |
| `title?` | `string` | Gets or sets the control item title. |
| `type` | ``"about"`` \| ``"button"`` | Gets or sets the control item type. |
| `onClick?` | (`e`: `MouseEvent`) => `void` | Gets or sets the click handler for the control item. |

___

### <a id="designercommand" name="designercommand"></a> DesignerCommand

Ƭ **DesignerCommand**: ``"save"`` \| ``"saveAs"`` \| ``"create"`` \| ``"open"`` \| ``"render"``

Defines the names of commands that the designer can process.

**`remarks`**
Accepted values:
- `'save'`: Save the current report.
- `'saveAs'`: Save the current report as a new report.
- `'create'`: Create a new report.
- `'open'`: Open an existing report.
- `'render'`: Render the current report.

**`example`**
```ts
const command: DesignerCommand = 'save';
```

___

### <a id="designerconfig" name="designerconfig"></a> DesignerConfig

Ƭ **DesignerConfig**: `Object`

Represents the configuration options for the report designer.

**`example`**
```ts
const config: DesignerConfig = {
	language: 'en',
	fontSet: 'default',
	propertyGrid: { mode: 'Advanced' },
	themeConfig: { initialTheme: 'Default' },
	editor: { showGrid: true },
	menu: { visible: true },
	customInitTemplates: { imperialTemplates: [{ id: 'report-1' }] },
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `allowInlineEditing?` | ``"True"`` \| ``"False"`` \| ``"Auto"`` | Gets or sets whether inline editing is allowed.  **`remarks`** Accepted values: - `'True'`: Always allow inline editing. - `'False'`: Disable inline editing. - `'Auto'`: Use the default behavior.  Default is `'Auto'`. |
| `appBar?` | `AppBarSettings` | Gets or sets the App Bar settings. |
| `customInitTemplates?` | [`CustomInitTemplates`](ReportDesigner#custominittemplates) | Gets or sets the custom initialization templates for new reports. |
| `data?` | `DataSettings` | Gets or sets the data-related settings. |
| `dateFormats?` | `string`[] | Gets or sets the list of supported date formats. |
| `disableFocusTimer?` | `boolean` | Gets or sets a value indicating whether focus highlights are permanent.  **`remarks`** Default is `false`. |
| `disableHistoryHotkeys?` | `boolean` | Gets or sets a value indicating whether the default undo and redo hotkeys are disabled. |
| `disableOpenSaveHotkeys?` | `boolean` | Gets or sets a value indicating whether the default open and save hotkeys are disabled. |
| `disableSystemClipboard?` | `boolean` | Gets or sets a value indicating whether system clipboard usage is disabled.  **`remarks`** Default is `false`. |
| `editor?` | `EditorSettings` | Gets or sets the editor settings. |
| `fontSet?` | [`FontSet`](ReportDesigner#fontset) | Gets or sets the available font set. |
| `language?` | `string` | Gets or sets the application language, for example `'en'`, `'ja'`, or `'zh'`.  **`remarks`** Default is `'en'`. |
| `lockLayout?` | `boolean` | Gets or sets a value indicating whether layout modifications are locked.  **`remarks`** Default is `false`. |
| `menu?` | `MenuSettings` | Gets or sets the menu settings. |
| `propertyGrid?` | `PropertyGridSettings` | Gets or sets the Property Grid settings. |
| `reportPartsLibraries?` | `ReportPartsLibrary`[] | Gets or sets the Report Parts libraries available to the designer. |
| `statusBar?` | `StatusBarSettings` | Gets or sets the status bar settings. |
| `storeUserPreferences?` | `boolean` | Gets or sets a value indicating whether user preferences are stored in browser storage.  **`remarks`** Default is `true`. |
| `themeConfig?` | `ThemeConfig` | Gets or sets the theme configuration. |
| `toolBar?` | `ToolBarSettings` | Gets or sets the Tool Bar settings. |
| `units?` | ``"in"`` \| ``"cm"`` | Gets or sets the default measurement units.  **`remarks`** Default is `'in'`. |
| `filterProperties?` | (`descriptors`: [`PropertyDescriptor`](ReportDesigner#propertydescriptor)[], `item`: `Record`<`string`, `any`\>) => [`PropertyDescriptor`](ReportDesigner#propertydescriptor)[] | Gets or sets a filter that can reorder or filter property descriptors. |

___

### <a id="documentchangedeventargs" name="documentchangedeventargs"></a> DocumentChangedEventArgs

Ƭ **DocumentChangedEventArgs**: `Object`

Represents the event arguments for a document change.

**`example`**
```ts
const args: DocumentChangedEventArgs = {
	definition: {} as Rdl.Report,
	isDirty: true,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `definition` | [`Report`](Core.Rdl#report) | Gets or sets the RDLX report definition. |
| `isDirty` | `boolean` | Gets or sets a value indicating whether the report has unsaved changes. |

___

### <a id="editorapi" name="editorapi"></a> EditorAPI

Ƭ **EditorAPI**: `Object`

Represents the editor command API for report editing actions.

**`example`**
```ts
if (editorApi.canUndo()) {
	editorApi.undo();
}
```

#### Type declaration

| Name | Type |
| :------ | :------ |
| `canCopy` | () => `boolean` |
| `canCut` | () => `boolean` |
| `canDelete` | () => `boolean` |
| `canPaste` | () => `boolean` |
| `canRedo` | () => `boolean` |
| `canUndo` | () => `boolean` |
| `copy` | () => `void` |
| `cut` | () => `void` |
| `delete` | () => `void` |
| `paste` | () => `void` |
| `redo` | () => `void` |
| `undo` | () => `void` |

___

### <a id="fontset" name="fontset"></a> FontSet

Ƭ **FontSet**: ``"default"`` \| ``"registered"`` \| ``"all"``

Represents the available font set options.

**`remarks`**
Accepted values:
- `'default'`: Predefined fonts.
- `'registered'`: Fonts registered in [FontStore](Core#fontstore).
- `'all'`: Both predefined and registered fonts.

**`example`**
```ts
const fontSet: FontSet = 'default';
```

___

### <a id="imageresourceinfo" name="imageresourceinfo"></a> ImageResourceInfo

Ƭ **ImageResourceInfo**: `Object`

Represents image resource information.

**`example`**
```ts
const imageResource: ImageResourceInfo = {
	id: 'image://Logo',
	displayName: 'Logo',
	mimeType: 'image/png',
	thumbnail: '',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `displayName?` | `string` | Gets or sets the resource display name. |
| `id` | `string` | Gets or sets the resource identifier. |
| `mimeType` | `string` | Gets or sets the MIME type. |
| `thumbnail?` | `string` | Gets or sets the thumbnail data. |

___

### <a id="menucssicon" name="menucssicon"></a> MenuCssIcon

Ƭ **MenuCssIcon**: `Object`

Represents a CSS-based menu icon descriptor.

**`example`**
```ts
const icon: MenuCssIcon = { type: 'css', class: 'my-icon' };
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `class` | `string` | Gets or sets the CSS class name. |
| `type` | ``"css"`` | Gets or sets the icon type. |

___

### <a id="menuicon" name="menuicon"></a> MenuIcon

Ƭ **MenuIcon**: [`MenuCssIcon`](ReportDesigner#menucssicon)

Represents a menu icon descriptor.

**`example`**
```ts
const icon: MenuIcon = { type: 'css', class: 'my-icon' };
```

___

### <a id="newreport" name="newreport"></a> NewReport

Ƭ **NewReport**: `Object`

Represents a new report to be created.

**`example`**
```ts
const report: NewReport = {
	displayName: 'New Report',
	reportType: 'Pageless',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `displayName?` | `string` | Gets or sets the report display name. |
| `id?` | `string` | Gets or sets the report identifier. |
| `masterReportId?` | `string` | Gets or sets the master report identifier. |
| `reportType` | [`ReportType`](ReportDesigner#reporttype) | Gets or sets the report layout type. |

___

### <a id="newreportinfo" name="newreportinfo"></a> NewReportInfo

Ƭ **NewReportInfo**: `Object`

Represents the information required to create a new report.

**`example`**
```ts
const newReportInfo: NewReportInfo = {
	reportType: 'FPL',
	masterReportId: 'master-1',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `masterReportId?` | `string` | Gets or sets the master report identifier. |
| `reportType` | [`ReportType`](ReportDesigner#reporttype) | Gets or sets the report layout type. |

___

### <a id="notificationlevel" name="notificationlevel"></a> NotificationLevel

Ƭ **NotificationLevel**: ``"info"`` \| ``"warning"`` \| ``"error"``

Defines the supported notification severity levels.

**`remarks`**
Accepted values:
- `'info'`: Informational notification.
- `'warning'`: Warning notification.
- `'error'`: Error notification.

**`example`**
```ts
const level: NotificationLevel = 'info';
```

___

### <a id="notificationsapi" name="notificationsapi"></a> NotificationsAPI

Ƭ **NotificationsAPI**: `Object`

Represents the notifications API.

**`example`**
```ts
const notifications = {} as NotificationsAPI;
notifications.info('Report saved');
```

#### Type declaration

| Name | Type |
| :------ | :------ |
| `dismissAll` | () => `void` |
| `error` | (`caption`: `string`, `errorText?`: `string`) => `void` |
| `info` | (`caption`: `string`, `text?`: `string`) => `void` |
| `send` | (`level`: [`NotificationLevel`](ReportDesigner#notificationlevel), `caption`: `string`, `content?`: `string`) => `void` |
| `warning` | (`caption`: `string`, `warningText?`: `string`) => `void` |

___

### <a id="panelsapi" name="panelsapi"></a> PanelsAPI

Ƭ **PanelsAPI**: `Object`

Represents the API for controlling the menu and sidebar panels.

**`example`**
```ts
const panels = {} as PanelsAPI;
panels.menu.open('file');
panels.sidebar.open('properties');
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `menu` | [`PanelsMenuAPI`](ReportDesigner#panelsmenuapi) | Gets or sets the menu panel API. |
| `sidebar` | [`PanelsSidebarAPI`](ReportDesigner#panelssidebarapi) | Gets or sets the sidebar panel API. |

___

### <a id="panelsmenuapi" name="panelsmenuapi"></a> PanelsMenuAPI

Ƭ **PanelsMenuAPI**: `Object`

Represents the API for controlling the main menu panel.

**`example`**
```ts
const panels = {} as PanelsAPI;
panels.menu.open('file');
panels.menu.pin();
```

#### Type declaration

| Name | Type |
| :------ | :------ |
| `close` | () => `void` |
| `open` | (`id`: `string`) => `void` |
| `pin` | () => `void` |

___

### <a id="panelssidebarapi" name="panelssidebarapi"></a> PanelsSidebarAPI

Ƭ **PanelsSidebarAPI**: `Object`

Represents the API for controlling the sidebar panel.

**`example`**
```ts
const panels = {} as PanelsAPI;
panels.sidebar.open('properties');
panels.sidebar.close();
```

#### Type declaration

| Name | Type |
| :------ | :------ |
| `close` | () => `void` |
| `open` | (`id`: `string`) => `void` |

___

### <a id="propertydescriptor" name="propertydescriptor"></a> PropertyDescriptor

Ƭ **PropertyDescriptor**: `Object`

Represents a descriptor for a property grid item.

**`example`**
```ts
const descriptor: PropertyDescriptor = {
	category: 'Layout',
	label: 'Width',
	type: 'number',
	valuePath: 'Width',
	mode: 'simple',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `category` | `string` | Gets or sets the property category. |
| `label` | `string` | Gets or sets the property label. |
| `mode` | [`PropertyDisplayMode`](ReportDesigner#propertydisplaymode) | Gets or sets the display mode in which the editor is visible. |
| `type` | `string` | Gets or sets the editor type that will be rendered. |
| `valuePath` | `string` | Gets or sets the path to the property value within the bound object. |

___

### <a id="propertydisplaymode" name="propertydisplaymode"></a> PropertyDisplayMode

Ƭ **PropertyDisplayMode**: ``"simple"`` \| ``"advanced"`` \| ``"both"``

Represents the property display modes supported by the designer.

**`remarks`**
Accepted values:
- `'simple'`: Show simple properties only.
- `'advanced'`: Show advanced properties only.
- `'both'`: Show both simple and advanced properties.

**`example`**
```ts
const mode: PropertyDisplayMode = 'simple';
```

___

### <a id="report" name="report"></a> Report

Ƭ **Report**: [`ReportLink`](ReportDesigner#reportlink) \| [`ReportDefinition`](ReportDesigner#reportdefinition)

Represents a report reference by identifier or by definition.

**`remarks`**
Provide either a [ReportLink](ReportDesigner#reportlink) or a [ReportDefinition](ReportDesigner#reportdefinition).

**`example`**
```ts
const report: Report = { id: 'report-1', displayName: 'Sales Report' };
```

___

### <a id="reportdefinition" name="reportdefinition"></a> ReportDefinition

Ƭ **ReportDefinition**: `Object`

Represents a report definition payload.

**`example`**
```ts
const definition: ReportDefinition = {
	id: 'report-1',
	displayName: 'Sales Report',
	definition: {} as Rdl.Report,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `definition` | [`Report`](Core.Rdl#report) | Gets or sets the RDLX report definition. |
| `displayName?` | `string` | Gets or sets the report display name. |
| `id?` | `string` | Gets or sets the report identifier. |

___

### <a id="reportinfo" name="reportinfo"></a> ReportInfo

Ƭ **ReportInfo**: `Object`

Represents the current report information.

**`example`**
```ts
const info: ReportInfo = {
	id: 'report-1',
	displayName: 'Sales Report',
	definition: {} as Rdl.Report,
	isDirty: false,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `definition` | [`Report`](Core.Rdl#report) | Gets or sets the RDLX report definition. |
| `displayName` | `string` | Gets or sets the report display name. |
| `id` | `string` \| ``null`` | Gets or sets the report identifier.  **`remarks`** This value is `null` when the report has not been saved yet. |
| `isDirty` | `boolean` | Gets or sets a value indicating whether the report has unsaved changes. |

___

### <a id="reportlink" name="reportlink"></a> ReportLink

Ƭ **ReportLink**: `Object`

Represents a reference to a report by identifier.

**`example`**
```ts
const link: ReportLink = {
	id: 'report-1',
	displayName: 'Sales Report',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `displayName?` | `string` | Gets or sets the report display name. |
| `id` | `string` | Gets or sets the report identifier. |

___

### <a id="reportresourceinfo" name="reportresourceinfo"></a> ReportResourceInfo

Ƭ **ReportResourceInfo**: `Object`

Represents report resource information.

**`example`**
```ts
const reportResource: ReportResourceInfo = {
	id: 'report://SalesReport',
	displayName: 'Sales Report',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `displayName?` | `string` | Gets or sets the resource display name. |
| `id` | `string` | Gets or sets the resource identifier. |

___

### <a id="reporttype" name="reporttype"></a> ReportType

Ƭ **ReportType**: ``"CPL"`` \| ``"FPL"`` \| ``"Pageless"``

Represents the layout type of a report.

**`remarks`**
Accepted values:
- `'CPL'`: Continuous Page Layout.
- `'FPL'`: Fixed Page Layout.
- `'Pageless'`: Pageless Report Layout.

**`example`**
```ts
const type: ReportType = 'CPL';
```

___

### <a id="saveasresult" name="saveasresult"></a> SaveAsResult

Ƭ **SaveAsResult**: `Object`

Represents the result of a save-as operation.

**`example`**
```ts
const result: SaveAsResult = {
	id: 'report-2',
	displayName: 'Sales Report Copy',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `displayName?` | `string` | Gets or sets the report display name. |
| `id` | `string` | Gets or sets the new report identifier. |

___

### <a id="savenewreportinfo" name="savenewreportinfo"></a> SaveNewReportInfo

Ƭ **SaveNewReportInfo**: `Object`

Represents the data required to save the current report as new.

**`example`**
```ts
const saveNewInfo: SaveNewReportInfo = {
	displayName: 'Sales Report Copy',
	definition: {} as Rdl.Report,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `definition` | [`Report`](Core.Rdl#report) | Gets or sets the current RDLX report definition. |
| `displayName?` | `string` | Gets or sets the current report display name. |
| `id?` | `string` | Gets or sets the current report identifier. |

___

### <a id="savereportinfo" name="savereportinfo"></a> SaveReportInfo

Ƭ **SaveReportInfo**: `Object`

Represents the data required to save the current report.

**`example`**
```ts
const saveInfo: SaveReportInfo = {
	id: 'report-1',
	displayName: 'Sales Report',
	definition: {} as Rdl.Report,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `definition` | [`Report`](Core.Rdl#report) | Gets or sets the current RDLX report definition. |
| `displayName?` | `string` | Gets or sets the current report display name. |
| `id` | `string` | Gets or sets the current report identifier. |

___

### <a id="saveresult" name="saveresult"></a> SaveResult

Ƭ **SaveResult**: `Object`

Represents the result of a save operation.

**`example`**
```ts
const result: SaveResult = { displayName: 'Sales Report' };
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `displayName?` | `string` | Gets or sets the report display name after saving. |

___

### <a id="stylesheetresourceinfo" name="stylesheetresourceinfo"></a> StylesheetResourceInfo

Ƭ **StylesheetResourceInfo**: `Object`

Represents stylesheet resource information.

**`example`**
```ts
const stylesheetResource: StylesheetResourceInfo = {
	id: 'stylesheet://Light',
	content: {} as Rdl.Stylesheet,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `content` | [`Stylesheet`](Core.Rdl#stylesheet) | Gets or sets the stylesheet content. |
| `id` | `string` | Gets or sets the resource identifier. |

___

### <a id="themeinfo" name="themeinfo"></a> ThemeInfo

Ƭ **ThemeInfo**: `Object`

Represents a short theme descriptor for a report.

**`example`**
```ts
const theme: ThemeInfo = {
	Dark1: '#1b1b1b',
	Dark2: '#333333',
	Light1: '#ffffff',
	Light2: '#f3f3f3',
	Accent1: '#2b579a',
	Accent2: '#107c10',
	Accent3: '#5c2d91',
	Accent4: '#d13438',
	Accent5: '#ffb900',
	Accent6: '#0099bc',
	MajorFontFamily: 'Segoe UI',
	MinorFontFamily: 'Segoe UI',
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `Accent1` | `string` | Gets or sets the Accent1 theme color. |
| `Accent2` | `string` | Gets or sets the Accent2 theme color. |
| `Accent3` | `string` | Gets or sets the Accent3 theme color. |
| `Accent4` | `string` | Gets or sets the Accent4 theme color. |
| `Accent5` | `string` | Gets or sets the Accent5 theme color. |
| `Accent6` | `string` | Gets or sets the Accent6 theme color. |
| `Dark1` | `string` | Gets or sets the Dark1 theme color. |
| `Dark2` | `string` | Gets or sets the Dark2 theme color. |
| `Light1` | `string` | Gets or sets the Light1 theme color. |
| `Light2` | `string` | Gets or sets the Light2 theme color. |
| `MajorFontFamily` | `string` | Gets or sets the major text theme font family. |
| `MinorFontFamily` | `string` | Gets or sets the minor text theme font family. |

___

### <a id="themeresourceinfo" name="themeresourceinfo"></a> ThemeResourceInfo

Ƭ **ThemeResourceInfo**: `Object`

Represents theme information.

**`example`**
```ts
const themeResource: ThemeResourceInfo = {
	id: 'theme://Default',
	displayName: 'Default',
	info: {} as ThemeInfo,
};
```

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `displayName?` | `string` | Gets or sets the resource display name. |
| `id` | `string` | Gets or sets the resource identifier. |
| `info` | [`ThemeInfo`](ReportDesigner#themeinfo) | Gets or sets the theme descriptor. |

___

### <a id="whendirty" name="whendirty"></a> WhenDirty

Ƭ **WhenDirty**: ``"ask"`` \| ``"override"`` \| ``"throw"``

Represents the behavior when the current report has unsaved changes.

**`remarks`**
Accepted values:
- `'ask'`: Prompt for confirmation.
- `'override'`: Override the unsaved report.
- `'throw'`: Throw an error.

**`example`**
```ts
const behavior: WhenDirty = 'ask';
```

## Variables

### <a id="colorthemes" name="colorthemes"></a> ColorThemes

• **ColorThemes**: `Record`<`BuiltInColorTheme`, [`ColorTheme`](ReportDesigner#colortheme)\>

Represents the built-in UI color themes.

**`example`**
```ts
const theme = ColorThemes.Default;
```
