ActiveUI

ActiveUI

  • User Guide
  • Developer Documentation

›Reference

About

  • Introduction
  • Changelog

Getting Started

  • Step by Step
  • Development Environment
  • Artifacts
  • ActiveUI Application
  • Usage as an npm Dependency
  • Initialization
  • Project Architecture

Guides

  • Adding KaTex fonts
  • Adding Servers
  • Authentication
  • Bookmark favorites
  • Charts
  • Configuring Widget Handlers and Actions
  • Container
  • Custom UI components with Ant Design
  • Data manipulation
  • Debugging
  • Deployment
  • Internationalization
  • MDX Manipulation
  • Plugins
  • Reporting
  • Settings
  • Tabular View and Pivot Tables
  • Testing

Reference

  • API Reference
  • Default Widget Bookmarks
  • Plugins
  • Settings

Advanced

  • Content Server Setup
  • Experimental Features
  • Maven Integration
  • Offline Installation
  • Script-based Integration

Plugins

The plugin concept is explained here.

The list of all available plugin types and their built-in implementations is shown below:

action

Build an action offered to users in several places of the UI. @remarks

For example in the title bar of a dock in a dashboard, or in context menus or other user event handlers. Most of its methods are optional but one, execute. The methods are given different payloads depending on the situation in which they are instantiated (see ActionSituation to have a list of the different situations).

Available action plugins

KeyDescription
aboutDisplays the about popup. There is no requirement concerning its availability (it can be used anywhere).
activemonitor-messagesDisplay the ActiveMonitor Messages. It is displaying the number of unread messages in a badge.
add-serverOpens the Add Server popup
add-to-favoritesAdds a bookmark to the user's favorites.
add-widgetAn action available with dashboards only, to display a popup to add widgets in a dashboard.
activemonitor-alertsDisplay the ActiveMonitor Alerts. It is displaying the number of alerts in a badge.
bookmark-state-editorOpen a popup to edit the bookmark corresponding to the target node.
chart-png-exportAn action to export the chart as a png.
chart-show-dataAn action to display the data of the chart as a table.
chart-tooltip-showDisplay a tooltip for the chart widget.
chart-sortAn action to sort charts.
chart-remove-sortAn action to remove sort on charts.
clear-dockUnload the current bookmark from the dock (or in other terms, clear the dock).
conditional-formattingOpen a popup to format the current measure.
copy-cellsCopy the table's selected cells to the clipboard.
copy-tableCopy to clipboard the underlying table. Only available if the underlying table is fully downloaded (i.e. not lazy loaded)
create-folderOpen a popup to create a folder under the selected node.
create-kpiAn action to open the kpi editor, with some contextual information if available.
delete-bookmarkDeletes a bookmark or a folder recursively. If the bookmark has been registered as user's favorite and the user has the right to edit that, it will also delete the favorite.
delete-calculated-measureAn action to delete the a persisted measure, disabled if the user does not have the permissions to delete it.
delete-kpiAn action to delete the kpi, disabled if the user does not have the permissions to delete it.
delete-pointvaluesOpen a popup to notify a user before deleting the selected rows.
delete-serverOpens a popup to confirm the deletion of a server from the serversPool.
edit-bookmarkOpens a popup to edit a bookmark or a folder.
edit-calculated-measureOpen a popup to edit a calculated measure and modify the MDX of the widget.
edit-kpiAn action to open the kpi editor, with some contextual information if available.
featured-values-tooltip-showDisplay a tooltip for the featured values widget.
full-sizeDisplay widgets in full screen.
hide-tooltipAn action to hide any tooltip that is displayed in ActiveUI.
homeReset a root widget to its default view
load-bookmarkIf bookmark is a dashboard, loads it in a root container, opening a popup if several are available. If it is a widget bookmark, adds widget to active dashboard.
logoutLogs the current user out. There is no requirement concerning its availability (it can be used anywhere).
make-home-pageSets a bookmark to be the home page.
member-filterOpen a popup to filter on the current column
move-bookmarkOpens a popup to move a bookmark or a folder.
new-dashboardReset the root widget to a new dashboard.
open-alertOpens a popup with the details of an alert.
open-drillthroughOpens a popup to choose where to display a drillthrough widget containing the result of the drillthrough on the given cell.
open-messageOpens a popup with the details of a message.
open-monitorOpens a popup with the details of an alert.
open-widget-to-modifyLoads a saved widget bookmark in a root container, opening a popup if several are available.
pivot-table-toggle-grand-totalShow / Hide the grand total on rows
pivot-table-toggle-subtotalsShow / Hide the sub total on rows
publish-calculated-measureOpen a popup to publish a calculated measure, moving its definition from the widget’s MDX to the content server.
query-editorOpen a popup to edit the mdx and context values of the widget
redoFor a root widget, loads the next view
refresh-discoveryExpands a node of a tree, if it is expandable.
refresh-queryRefresh the current query associated with the widget. Only available on widgets with data sources using mdx.
remove-dockAn action to remove the widget from its parent dashboard. Only available when the widget is in a dashboard.
rename-bookmarkOpens a popup to rename a bookmark or a folder.
rename-serverOpens a popup to rename a server from the serversPool.
reset-dashboardAn action available with dashboards only, to reset a dashboard to its last persisted state. The ActionResult resolved by this action will contain the api of the reloaded bookmark.
saveSave the changes of the widget.
save-asSave the current widget in a bookmark. It will display the bookmark popup.
separatorThis is a fake action, it is used to separate items in context menus, but does not do anything on execute.
shareDisplays a popup that allows to edit the permissions of a saved bookmark, and to get a shareable URL for it.
show-default-widgetsAn action to restore the default built-in widgets in the dashboard.
sub-menuThis is a fake action, used to offer sub-menus in context menus.
tabular-clear-sortRemove the sorting based on the context that received the click.
tabular-collapse-levelA tabular view action that allows to collapse the view on a given member.
tabular-collapse-entire-fieldAn action that allows collapsing down to a given level
tabular-column-differenceA tabular view action that allows to create a calculated measure that computes the difference between two selected columns.
tabular-edit-cellSet the cell as edited in the tabular configuration.
tabular-edit-headerSet the header as edited in the tabular configuration.
tabular-expand-levelA tabular view action that allows to expand the view on a given member (opens a popup to choose the level on which to expand).
tabular-expand-entire-fieldAn action that allows expansion of all cells at a given level
tabular-freeze-headerFreezes the column so that it is always visible in the table.
tabular-header-styleOpens a popup to customize the look of a header.
tabular-remove-headerRemoves a set of columns from a table.
tabular-select-cellSet the cell as selected in the tabular configuration.
tabular-select-columnSet the column as selected in the tabular configuration. Supports the multi-selection when the user uses the keys ctrl or shift while he clicks.
tabular-show-sparklinesThis action is meant to be used on tabular headers. It adds the tree cell column configuration to the list of column groups of the tabular if it was not there, or removes it if it was already there.
tabular-show-tree-columnThis action is meant to be used on tabular headers. It adds the tree cell column configuration to the list of column groups of the tabular if it was not there, or removes it if it was already there.
tabular-sortApply a sorting based on the context that received the click.
tabular-sparkline-add-colorsThis action is meant to be used on tabular headers. It adds the tree cell column configuration to the list of column groups of the tabular if it was not there, or removes it if it was already there.
tabular-tooltip-showShow a tooltip for the tabular view/pivot table widget.
toggle-dock-title-barToggle the title bar of the widget.
toggle-filtersToggle the filters area at the top of the widget. This is only available on widgets that use mdx.
toggle-text-editingToggle between editing and preview mode for the RichTextEditor container.
toggle-tree-nodeToggles the expansion of the node of a tree, if it is expandable.
toggle-wizardToggle the wizard. This is available on the pivot table widget, and the chart widget.
tree-tooltip-showShow a tooltip for the tree widget, if the node contains information to display.
undoFor a root widget, loads the previous view
update-query-modeChange the query update mode to the next mode.
watch-measureAn action to start watching a measure in a table.
widget-csv-exportOpen a popup to export the data of the widget into a csv file. Only available if the underlying table is fully downloaded (i.e. not lazy loaded).
widget-state-editorOpen a popup to edit the bookmark corresponding to the widget.

Implement a custom action plugin

To implement a custom 'action' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'action': [
      {
        key: 'my-custom-action',
        // returns an object of type ActionImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            execute: (event: React.SyntheticEvent, actionPayload: ActionPayload) => void | Promise<ActionResult>;
            getBadge?: (actionPayload: ActionPayload) => string | number;
            getCaption?: (actionPayload: ActionPayload) => TranslationPayload;
            getIconSrcKey?: (actionPayload: ActionPayload) => string;
            isAvailable?: (actionPayload: ActionPayload) => boolean;
            isDisabled?: (actionPayload: ActionPayload) => boolean;
            load?: (actionPayload: ActionPayload) => void | (() => void);
            unload?: (actionPayload: ActionPayload) => void;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

authentication-holder

Exposes the authentication API that every part of ActiveUI requiring authentication can consume.

Available authentication-holder plugins

KeyDescription
basicResend Basic authentication for each REST call and uses cookies for WebSockets.
jwtUses JWT for REST and cookies for WebSockets.
keycloakUses Keycloak for REST and cookies for WebSocket.

Implement a custom authentication-holder plugin

To implement a custom 'authentication-holder' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'authentication-holder': [
      {
        key: 'my-custom-authentication-holder',
        // returns an object of type AuthenticationHolderImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getRequestOptions: (url?: Url) => Promise<RequestInit>;
            getSortedRoles: () => SortedRoles;
            getUsername: () => Username | null | undefined;
            invalidate?: (usedParameters: RequestInit) => Promise<void>;
            logout: (keepLogin?: boolean) => Promise<void>;
          };
        },
        // is an object of type AuthenticationHolderImplementationStaticProperties
        staticProperties: {
          isSingleSignOn?: boolean;
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

caption-producer

Produces captions based on the provided headers.

Available caption-producer plugins

KeyDescription
columnMergeA caption producer that merges headers together, separated with a '/', like 'Desk / Currency'
firstColumnThis caption producer keeps the caption as it is in the first column of the group.
expiryThis caption producer is useful when the expiry column groups several expiries together.
mdxHeaderCaptionA caption producer relying on an MDX dataSource, useful for producing synthetic headers when grouping columns.
simpleThis caption producer simply returns the caption defined in the caption parameter, or the translated version of a caption defined in the locales files via the captionData and captionPath parameters.

Implement a custom caption-producer plugin

To implement a custom 'caption-producer' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'caption-producer': [
      {
        key: 'my-custom-caption-producer',
        // returns an object of type HeaderCaptionProducerImplementationProperties
        createProperties(parameters,activeUI) {
          return /* HeaderCaptionProducerImplementationProperties = GetCaptionProperty | GetCaptionsProperty; */
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

cell-editor

A cell editor that can be added in a table.

Available cell-editor plugins

There are no exposed implementations of the cell-editor plugin.

Implement a custom cell-editor plugin

To implement a custom 'cell-editor' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'cell-editor': [
      {
        key: 'my-custom-cell-editor',
        // returns an object of type CellEditorImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            isEditable: (rowIndex: number, columnKey: string, data: Table, dataSource: DataSource, columnProps: TabularColumnProps) => boolean;
            renderEditor: (a: {
                    colKey: string;
                    columnProps: TabularColumnProps;
                    rowIdx: number;
                }) => React.ReactElement<any>;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

cell-factory

Performs a manipulation on the columns of a table, for example to render several columns as one.

Available cell-factory plugins

KeyDescription
expiryRenders a progress bar instead of the start and expiry columns of a KPI.
kpi-statusRenders the customized cell of the status of a KPI status.
lookupRenders an editable cell when the column displays a lookup.
relative-timeRenders an cell displaying the time relatively.
sparkline-dynamic-colorRenders the underlying columns as sparklines, using some of the columns for the color range of the sparklines.
sparkline-no-colorRenders the underlying columns as sparklines.
treeCellsRenders the underlying columns as a tree.

Implement a custom cell-factory plugin

To implement a custom 'cell-factory' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'cell-factory': [
      {
        key: 'my-custom-cell-factory',
        // returns an object of type CellFactoryImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getColumnProps?: (columnProps: TabularColumnProps, columnInstance: any) => any;
            getDefaultOptions?: () => any;
            getRowHeight?: (rowIndex: number, minRowHeight: number, columnProps: TabularColumnProps) => number;
            hasCustomRowHeight?: () => boolean;
            renderCell: (a: {
                    colKey: string;
                    columnProps: TabularColumnProps;
                    rowIdx: number;
                }) => ReactElement<any>;
            replaceCells?: () => boolean;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

cell-renderer

Change the rendering of cells in a table.

Available cell-renderer plugins

KeyDescription
caption-rendererRender the caption contained in the cell.

Implement a custom cell-renderer plugin

To implement a custom 'cell-renderer' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'cell-renderer': [
      {
        key: 'my-custom-cell-renderer',
        // returns an object of type CellRendererImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getCellStyle?: (rowIndex: number, columnProps: TabularColumnProps) => {};
            isAvailable?: (a: {
                    colKey: string;
                    columnProps: TabularColumnProps;
                    rowIdx: number;
                }) => boolean;
            renderCell: (a: {
                    colKey: string;
                    columnProps: TabularColumnProps;
                    onCellRef: (a: HTMLElement | null | undefined) => {};
                    rowIdx: number;
                }) => React.ReactElement<any>;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

chart-element-styler

Merges the ouput style on top of the current style.

Available chart-element-styler plugins

KeyDescription
selection-highlightA styler that highlights selected chart elements.

Implement a custom chart-element-styler plugin

To implement a custom 'chart-element-styler' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'chart-element-styler': [
      {
        key: 'my-custom-chart-element-styler',
        // returns an object of type ChartElementStylerImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getStyle: (tuple: TableTuple, headers: TableHeaders, currentStyle: CSSObject, layerApi: WidgetApi, chartType: PluginKey) => CSSObject;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

chart-overlay

Display an overlay over a chart.

Available chart-overlay plugins

KeyDescription
constantAn overlay that displays a line of constant value. Only available on charts with an x and y axis, and with y being a numerical axis.
linearAn overlay displaying a line following the equation y = mx + b. Only available on charts with an x and y axis, and with y being a numerical axis.
regressionAn overlay displaying a line following a regression of a given type, calculated from the values of the measure being used for the y axis.

Implement a custom chart-overlay plugin

To implement a custom 'chart-overlay' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'chart-overlay': [
      {
        key: 'my-custom-chart-overlay',
        // returns an object of type ChartOverlayImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getCustomizableParameters: () => OverlayCustomizableParameter[];
            getDescription: () => React.ReactElement<any>;
            render: (renderOverlayPayload: RenderOverlayPayload) => void;
          };
        },
        // is an object of type ChartOverlayImplementationStaticProperties
        staticProperties: {
          canDisplay: (canOverlayDisplayPayload: CanOverlayDisplayPayload) => boolean;
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

chart-selection-handler

Lets projects interact with the core chart selection.

Available chart-selection-handler plugins

KeyDescription
defaultDefault chart selection mechanism

Implement a custom chart-selection-handler plugin

To implement a custom 'chart-selection-handler' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'chart-selection-handler': [
      {
        key: 'my-custom-chart-selection-handler',
        // returns an object of type ChartSelectionHandlerImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            onChange?: (selection: ChartSelection, layerApi: WidgetApi, widgetApi: WidgetApi) => void;
            transform?: (selection: ChartSelection, layerApi: WidgetApi, widgetApi: WidgetApi) => ChartSelection;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

chart-time-formatter

Format date/time members on chart axis

Available chart-time-formatter plugins

KeyDescription
defaultAutomatically format a date based on how much details the date contains.
simplifiedAutomatically format a date based on how much details the date contains.

Implement a custom chart-time-formatter plugin

To implement a custom 'chart-time-formatter' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'chart-time-formatter': [
      {
        key: 'my-custom-chart-time-formatter',
        // returns an object of type ChartTimeFormatterImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getFormatters: (d3: D3Api, translator: Translator) => Formatter[];
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

column-selector

A column selector, used for grouping table columns.

Available column-selector plugins

KeyDescription
kpi-expiryGroups together the start and expiry columns of a kpi
kpi-goalSelects the columns that are the goal of a kpi.
kpi-statusGroups together the status columns of a kpi.
lookupSelects the columns that correspond to a formula lookup("...").
manualCreates one group of columns, according to the selection provided.
memberCreates a group of columns containing all the levels representing members (as opposed to measures).
numericCreates a group of columns containing all the levels presenting measures (as opposed to members).
regexpCreates a group of columns based on a regexp ran on the column header value.

Implement a custom column-selector plugin

To implement a custom 'column-selector' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'column-selector': [
      {
        key: 'my-custom-column-selector',
        // returns an object of type ColumnsSelectorImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            select: (headers: TableHeader[], hiddenColumnsNames: string[], dataSource: DataSource) => {
                    key: string;
                    selection: TableHeader[];
                }[];
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

comparator

Customizes the order in which tabular view and pivot table columns are displayed.

Available comparator plugins

KeyDescription
alphabeticalSorts headers alphabetically.
explicitSorts headers in the same order as a given list.
originalKeeps the headers in the same order than in the data table.
reverseSorts the headers in the reverse order than in the data table.

Implement a custom comparator plugin

To implement a custom 'comparator' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'comparator': [
      {
        key: 'my-custom-comparator',
        // returns an object of type HeaderComparatorImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            compare: (h1: SortableTabularHeader, h2: SortableTabularHeader) => number;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

container

Projects should only use ReactContainerImplementationProperties.

Available container plugins

There are no exposed implementations of the container plugin.

Implement a custom container plugin

To implement a custom 'container' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'container': [
      {
        key: 'my-custom-container',
        // returns an object of type ContainerImplementationProperties
        createProperties(parameters,activeUI) {
          return /* ContainerImplementationProperties = ReactContainerImplementationProperties | CoreContainerImplementationProperties; */
        },
        // is an object of type ContainerImplementationStaticProperties
        staticProperties: /* ContainerImplementationStaticProperties = ReactContainerImplementationStaticProperties | CoreContainerImplementationStaticProperties; */
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

formatter

Formats a caption into a specific format incorporating the user's locale.

Available formatter plugins

KeyDescription
billionsFormats axis tick labels into k/M/B notation. e.g. 1000 -> 1k
currencyFormats axis tick labels into currency. e.g. 1000 -> $1,000.00
millionsFormats axis tick labels into k/M/B notation. e.g. 1000 -> 1k
percentageFormats axis tick labels into a percentage format. e.g. .1 -> 10%
rawFormats axis tick labels to show just the numerical value without any group separation or other decoration 1,000,000 -> 1000000
scientificFormats axis tick labels into scientific notation. e.g. 1000 -> 1e+3%
thousandsFormats axis tick labels into k/M/B notation. e.g. 1000 -> 1k

Implement a custom formatter plugin

To implement a custom 'formatter' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'formatter': [
      {
        key: 'my-custom-formatter',
        // returns an object of type FormatterImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            format: (value: string | number, caption: string) => string;
          };
        },
        // is an object of type FormatterImplementationStaticProperties
        staticProperties: /* FormatterImplementationStaticProperties = ChooseableFormatterImplementationStaticProperties | NotChooseableFormatterImplementationStaticProperties; */
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

html-renderer

Responsible for converting plain text to HTML.

Available html-renderer plugins

KeyDescription
markdownUses the default preset of https://github.com/markdown-it/markdown-it to convert Markdown to HTML.
sanitized-htmlUse https://github.com/punkave/sanitize-html to sanitize HTML.

Implement a custom html-renderer plugin

To implement a custom 'html-renderer' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'html-renderer': [
      {
        key: 'my-custom-html-renderer',
        // returns an object of type HtmlRendererImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getPlaceholder: () => ReactTranslationPayload;
            toHtml: (plainText: string) => string;
          };
        },
        // is an object of type HtmlRendererImplementationStaticProperties
        staticProperties: {
          getClassName?: () => string;
          getCssRules?: (palette: Palette) => CssRules;
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

icon

Renders an icon. The expected output is any React element. @remarks

For the list of available keys in the SDK, see the icons snippet in the showcase.

Available icon plugins

There are no exposed implementations of the icon plugin.

Implement a custom icon plugin

To implement a custom 'icon' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'icon': [
      {
        key: 'my-custom-icon',
        // returns an object of type IconImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            render: (palette: CorePalette, props: any) => React.ReactElement<any>;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

logger

A plugin to handle logging side-effect. It is called for every logging request in activeUI

Available logger plugins

KeyDescription
debugA logger that logs everything, and adds timestamp and the caller to each message.
errorsA logger that only logs errors.
noopA logger that does not log anything. This is to be used CAREFULLY, because it does not even log errors.
verboseA logger that logs everything.
warningsA logger that only logs warnings and errors.

Implement a custom logger plugin

To implement a custom 'logger' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'logger': [
      {
        key: 'my-custom-logger',
        // is an object of type LoggerImplementationStaticProperties
        staticProperties: {
          handle: (data: LoggingData, a: {
        formatter: LoggingFormatter;
        tags: LoggingTags;
    }) => void;
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

mdx-filter-selector

MdxFilterSelector are used to retrieve one or more filters matching a specific set of conditions in order to manipulate it: read, write, remove...

Available mdx-filter-selector plugins

KeyDescription
allMatches any filter
except-filters-keyFilters out the specified filters on top of using a key
hierarchyMatches filters with the provided hierarchy
hierarchy-greater-indexMatches filters with the provided hierarchy and an index greater than the one provided
hierarchy-keyMatches filters with the provided key and hierarchy
hierarchy-key-indexMatches filters with the provided key, index and hierarchy
hierarchy-key-valueMatches filters with the provided key, filter value and hierarchy
keyMatches non server filters with the provided key
userMatches non server filters with the provided key

Implement a custom mdx-filter-selector plugin

To implement a custom 'mdx-filter-selector' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'mdx-filter-selector': [
      {
        key: 'my-custom-mdx-filter-selector',
        // returns an object of type MdxFilterSelectorImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            matches: (activeFilter: AugmentedActiveFilter) => boolean;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

numeric-scale-profile

A plugin used when computing numerical scales, in order to customize the mapping of a value on a scale.

Available numeric-scale-profile plugins

KeyDescription
linearA linear profile, that returns the percentage of the value between the domain min and max.
linear-piecewiseA profile linear in 2 pieces, centered around middle.
positive-or-negativeA binary profile, that returns either 1 or 0 for positive or negative values.

Implement a custom numeric-scale-profile plugin

To implement a custom 'numeric-scale-profile' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'numeric-scale-profile': [
      {
        key: 'my-custom-numeric-scale-profile',
        // returns an object of type NumericScaleProfileImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            scale: (value: number, domain: number[]) => number;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

ordinal-color-scale

Provide a set of colors given a set of values. Can be used to associate a particular color to a particular value

Available ordinal-color-scale plugins

KeyDescription
activeviamColor scale of size 10 created by ActiveViam with the following colors: turquoise blue, wisteria, cream can, celery, cinnabar, el salva, neon carrot, cabaret, governor bay, nepal
black-whiteColor scale of size 2: black and white
d3-10Color scale of size 10 provided by D3. See https://github.com/d3/d3-scale/blob/master/README.md#schemeCategory10
d3-20Color scale of size 20 provided by D3. See https://github.com/d3/d3-scale/blob/master/README.md#schemeCategory20
d3-20bColor scale of size 20 provided by D3. See https://github.com/d3/d3-scale/blob/master/README.md#schemeCategory20b
d3-20cColor scale of size 20 provided by D3. See https://github.com/d3/d3-scale/blob/master/README.md#schemeCategory20c
explicitCreate a custom color scale that explicitly list all colors. Fallback to text color if no parameters are provided.
google-chartColor scale of size 5 following Google Chart/ActivePivot Live 3 color scheme. It contains the following colors: mariner, tia maria, orange peel, la palma, flirt. See https://developers.google.com/chart/
mono-accentColor scale of size 1 based on the current theme accent color
mono-textColor scale of size 1 based on the current theme text color
optimizedColor scale of size 9 inspired from http://www.mulinblog.com/a-color-palette-optimized-for-data-visualization/
theme-3Color scale of size 3 based on the current theme: text, accent and alternate colors

Implement a custom ordinal-color-scale plugin

To implement a custom 'ordinal-color-scale' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'ordinal-color-scale': [
      {
        key: 'my-custom-ordinal-color-scale',
        // returns an object of type OrdinalColorScaleImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            compute: (values: any[]) => Color[];
          };
        },
        // is an object of type OrdinalColorScaleImplementationStaticProperties
        staticProperties: {
          defaultParameters?: {};
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

reporter

Exports a report

Available reporter plugins

KeyDescription
app-stateExports the whole state of the application
consoleExports all info, warning and error logs logged through the ActiveUI logging framework.
environmentExports information about the application's environment: server, browser, build...
errorExports information related to the provided exception
screenshotExports a screenshot of the application. Does not work under Internet Explorer
statExports performance statistics about the application

Implement a custom reporter plugin

To implement a custom 'reporter' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'reporter': [
      {
        key: 'my-custom-reporter',
        // returns an object of type ReporterImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            canReport: () => boolean;
            report: () => Promise<Report>;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

row-action

Renders a row action, displayed by default at the end of each row in a table widget.

Available row-action plugins

There are no exposed implementations of the row-action plugin.

Implement a custom row-action plugin

To implement a custom 'row-action' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'row-action': [
      {
        key: 'my-custom-row-action',
        // returns an object of type RowActionImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getIconKey?: (a: {
                    columnProps: TabularColumnProps;
                    index: number;
                    rowIndex: number;
                }) => string;
            getIconStyle?: (a: {
                    columnProps: TabularColumnProps;
                    index: number;
                    isDisabled: boolean;
                    rowIndex: number;
                }) => CSSObject;
            getIconTitle?: (a: {
                    columnProps: TabularColumnProps;
                    index: number;
                    rowIndex: number;
                }) => TranslationPayload | null | undefined;
            isDisabled?: (a: {
                    columnProps: TabularColumnProps;
                    index: number;
                    rowIndex: number;
                }) => boolean;
            onClick?: (e: React.SyntheticEvent, a: {
                    columnProps: TabularColumnProps;
                    index: number;
                    rowIndex: number;
                }) => void;
            render?: (index: number, rowIdx: number, columnProps: TabularColumnProps) => React.ReactElement<any> | null | undefined;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

row-style

Customizes the style of all the cells in a row.

Available row-style plugins

KeyDescription
bold-totalUses bold font if the row corresponds to a parent aggregate.
color-alternateUses the tabularAlternatingRowColor as a background on even-indexed rows.

Implement a custom row-style plugin

To implement a custom 'row-style' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'row-style': [
      {
        key: 'my-custom-row-style',
        // returns an object of type RowStyleImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            getRowStyle: (rowIndex: number, columnsProps: TabularColumnProps[]) => CSSObject | null | undefined;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

table-selection-handler

Lets projects interact with the core tabular selection.

Available table-selection-handler plugins

KeyDescription
defaultDefault Tabular selection mechanism
emptyHandler that always returns an empty selection

Implement a custom table-selection-handler plugin

To implement a custom 'table-selection-handler' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'table-selection-handler': [
      {
        key: 'my-custom-table-selection-handler',
        // returns an object of type TableSelectionHandlerImplementationProperties
        createProperties(parameters, activeUI) {
          return {
            onChange?: (selection: TableSelection, api: TabularApi) => void;
            transform?: (selection: TableSelection, api: TabularApi) => TableSelection;
          };
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});

theme

Allows to define the main color of the theme, as well as if it is a dark theme.

Available theme plugins

KeyDescription
dark-activeviamA built-in dark theme.
explicitTheme reading its properties from its parameters.
light-activeviamA built-in light theme.

Implement a custom theme plugin

To implement a custom 'theme' plugin, please refer to properties and static properties documentations.

Example:

createActiveUI({
  plugins: {
    'theme': [
      {
        key: 'my-custom-theme',
        // returns an object of type ThemeImplementationProperties
        createProperties(parameters,activeUI) {
          return /* ThemeImplementationProperties = UserThemeConfig; */
        },
        // is an object of type ThemeImplementationStaticProperties
        staticProperties: {
          selectable?: boolean;
        },
        // if your plugin accepts parameters, indicate how they should be serialized/deserialized
        parametersSerializationFn: (s13n: SerializationHelper) => [
          {name: 'myParam', sn: s13n.string}
        ]
      },
    ],
  },
});
← Default Widget BookmarksSettings →
  • action
  • authentication-holder
  • caption-producer
  • cell-editor
  • cell-factory
  • cell-renderer
  • chart-element-styler
  • chart-overlay
  • chart-selection-handler
  • chart-time-formatter
  • column-selector
  • comparator
  • container
  • formatter
  • html-renderer
  • icon
  • logger
  • mdx-filter-selector
  • numeric-scale-profile
  • ordinal-color-scale
  • reporter
  • row-action
  • row-style
  • table-selection-handler
  • theme
Copyright © 2023 ActiveViam