Object Widgets

Object widgets are used to display and update nested fields (such as main properties of a product).

It is possible to extend the list and variety of object widgets, and Rierino is shipped with the following widgets:

Localized Editor

LocalizedEditor provides ability to display and enter localized (e.g. by language, currency) values as a nested object. This widget has the following special properties:

Property
Definition
Example
Default

Locales Source

Name of the options list used for populating locales

language

-

Locales List

Id-name pairs of options to list

[{"id":"en", "name": "English"}]

-

Filter Values

List of options to allow for locale selection

[en, de]

-

Filter Value Path

Json path for applying filter on list of locale options to display

data.regions

-

Widget

Widget to use for displaying locale specific data

ChipArrayEditor

TextEditor

Widget Properties

Properties to pass on to localized input component

{"dom":{"multiline":true}}

-

Json Editor

JsonEditor provides ultimate flexibility to display and edit complex data structures with a structured UI component and free text combination. This widget has the following special properties:

Property
Definition
Example
Default

Use Switch

Whether json/text editors should be switched between or presented together

true

false

Default Mode

Default mode to display if switch is enabled

code

tree

Map Editor

MapEditor provides ability to modify map type objects with a table of key-value pairs. This widget has the following special properties:

Property
Definition
Example
Default

Key UI (Widget & Properties)

UI component configuration for the key column

{"widget": "TextEditor", "props":{}}

-

Predefined Key Options

Whether editor should have a predefined list of key entries (uses keyUi options as the list)

true

false

Value UI (Widget & Properties)

UI component configuration for the value column

{"widget": "TextEditor", "props":{}}

-

Flatten Objects

Whether editor should flatten and edit nested objects as well

true

false

Map Object Editor

MapObjectEditor provides ability to modify map type objects with a table of key-value pairs where the value is an object. This widget uses the same properties as Object Table Editor, as well as the following special properties:

Property
Definition
Example
Default

Key UI (Widget & Properties)

UI component configuration for the key column

{"widget": "TextEditor", "props":{}}

-

Predefined Key Options

Whether editor should have a predefined list of key entries (uses keyUi options as the list)

true

false

Table Fields

List of fields to display on map table

-

-

Editor UI (Icon, Title & Contents)

Design of object editor to use for editing

-

-

Contents Editor

ContentsEditor provides ability to display and edit multiple data elements. This editor only displays contents within a single grid, without any tabs or additional layouts applied. This widget has the following special properties:

Property
Definition
Example
Default

Contents

Complete contents mapping object data paths to widgets and props, similar to grid contents

[{"path":"name", "widget": "TextEditor"}]

-

Grid Contents Editor

GridsEditor provides ability to display and edit multiple data elements. This editor displays contents within multiple grids, but without any tabs. This widget has the following special properties:

Property
Definition
Example
Default

Grids

Complete grids mapping object data paths to widgets and props

[{"contents": [{"path":"name", "widget": "TextEditor"}]]

-

Media Metadata Editor

ContentsEditor displays an image or video with metadata fields editable, represented by its relative URL path. This widget has the following special properties in addition to those listed in Media Editor:

Property
Definition
Example
Default

Editor UI (Icon, Title & Contents)

Complete editor UI configurations for detail contents

{"tabs":[{"tab":"DEFINITION"}]}

-

Value DOM

Additional dom properties to pass on to div encapsulating the image

-

-

Input DOM

Additional dom properties to pass on to TextField for entering image path

-

-

Dynamic Editor

DynamicParameterEditor provides ability to use a dynamic UI, where displayed widgets and data depend on a specific data value (e.g. parameters required for a business rule). This widget has the following special properties:

Property
Definition
Example
Default

Source

Name of data source mapping to use for fetching dynamic UI configuration

rule_basket_promotion

-

Source Path

Json path in source data which specifies UI details

data.parameters.conditionParameters

-

Id Path

Json path in current record, which is used for selecting dynamic UI entry in source

data.rule

-

Dynamic Object Editor

DynamicObjectEditor provides ability to embed and display data in the form of another ObjectEditor. It is typically used for displaying data input by another user for approval. This widget has the following special properties:

Property
Definition
Example
Default

UI Reference Path

Json path of editor id

data.type

-

UI Reference

Static id for the UI editor

product

-

Handlebars Display

HandlebarsDisplay provides ability to render read-only Handlebars templates using UI data, typically used for preview functionality or static messages. This widget has the following special properties:

Property
Definition
Example
Default

Template Code

Full static template text to use

<span>

Testing

</span>

-

Template Source

Source to use dynamic templates from

preview_template

-

Template Id

Static id for selecting template from the source

test-template

-

Template Id Path

Json path of dynamic id for selecting template from the source

data.templateId

-

Source Path

Json path of template text in source records

data.content

-

Data Lookups

List of data sources to pass on to template as lookups

{"product-lkp": { source: "product", idPath: "data.product"}}

-

As iframe

Whether widget should be rendered as an iframe (or div)

true

false

Disable Print

Whether widget should allow disable printing

true

false

Editor Source

Source UI for editor references (in case template is editable with pop-ups)

page_component

-

circle-info

When not structured as iframe, handlebars displays use shadow #root to isolate its styling, so it will be subject to shadow dom constraints (e.g. not supporting @font-face)

circle-info

To make a handlebars display editable with pop-ups, define props.editorSource and add "data-path", "data-editor", "data-action" attributes to rendered html tags. For "add" type data actions used on arrays, it is also possible to use "data-default" and "data-default-pattern" attributes for adding new records with default data values.

circle-info

To add drag & drop features to handlebars displays, "data-drag-value", "data-drag-path", "data-drop-value", "data-drop-event", "data-drop-params", "data-drop-path" attributes can be added to rendered html tags.

Handlebars Builder

HandlebarsTemplateEditor is a drag & drop UI builder for creating Handlebars templates and static HTML contents. This widget stores generated contents as "markup" as well as platform independent structured elements.

TipTap Editor

TipTapEditor is a WYSIWYG editor, allowing editing and visualization of rich content, which produces JSON output in { type, content, html } form that can be used for platform independent UI generation or direct HTML injection. This widget has the following special properties:

Property
Definition
Example
Default

Text Data

Whether to use/generate text only data or structured (object) data instead

true

false

MDX Editor

MDXEditor is a template based editor, allowing building interactive custom content, using a blend of JSX and markdown. This widget has the following special properties:

Property
Definition
Example
Default

Template Code

MDX code to display & edit data with

Hello World <TextEditor data={data} onChange={onChange}/>

-

circle-info

All props of the MDXEditor are passed to its MDX code, along with all registered widgets to allow using them as components and an onChange event to pass changes inside the editor.

Mermaid Display

MermaidDisplay is a visualization editor, allowing creating Mermaid diagrams using its special markdown language. This widget has the following special properties:

Property
Definition
Example
Default

Diagram Template

Handlebars template used to produce mermaid diagram contents

<p>flowchart TD<br>A[Start] --> B{Decision}<br>B --> C[Next]</p>

-

circle-info

If props.template is not provided, this display can use full text contents as an input instead.

Button Action

ButtonAction is a specialized component, which allows triggering one or more actions from within a UI using buttons. Button actions receive data assigned to this widget. This widget has the following special properties:

Property
Definition
Example
Default

Buttons

List of buttons to display with UI details

[{title: "Accept", icon: "ok", type: "CallAPI"}]

-

Read Only Behavior

Action behavior when widget is set to be read-only (i.e. snapshot) (hide, display, click)

click

display

File Manager

FileManagerEditor provides ability to manage a file system, by listing, creating and deleting files and folders. This widget supports all non-media specific properties listed in Media Editor.

Data Visualization Display

DVDisplay provides ability to display data visualization components such as charts inside object editors, typically using an array input. This widget has the following special properties:

Property
Definition
Example
Default

Component Type

Visualization component type

RPlotly

-

Component Properties

Visualization component type specific properties

width=200

-

Data Visualization Editor

DVLayoutEditor provides ability to design data visualization layouts, used for embedded dashboards and reports. This widget has no extra properties, as it creates and edits data inline with data visualization data format.

Condition Editor

ConditionEditor is a special component for editing conditional logic for business rules and queries through a user friendly interface. This widget has the following special properties:

Property
Definition
Example
Default

Domain

Rule domain (for loading available functions, if editor is for the rule engine)

product_discount

-

Last updated