Overview
This page contains the list of components, their representation in JSON and intended functionality for Dynamic Account Management v2.
The JSON data needs to be encrypted before sent back and forth between Axis and the product. Please check Account Management v2 - External APIs for the APIs and information about the encryption.
Validation
Validation rules can consist of any of the options listed below and are used when the user has modified the data and is being submitted back to the product.
Axis provides two step validation, once on the client and once on the server side before the updated data is submitted to the Product.
| Name | JSON Type | Applies To | Required | Description |
|---|---|---|---|---|
| max | number | Float | No | The maximum numeric value supported |
| min | number | Float | No | The minimum numeric value supported |
| maxLength | number | String | No | Validation constraint for maximum length of string data. |
| minLength | number | String | No | Validation constraint for minimum length of string data |
| regex | string | String | No | A regular expression to apply to the value. NOTE: Regex has to use double backslashes to be valid in JSON (i.e. "[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,3}$") |
| required | boolean | All types | No | A flag to determine if object is required. When required, an Array must have a value, a String cannot be empty or null, a Number, Date or Boolean cannot be null |
| description | string | All types | No | Description of validation requirements. It should cover all requirements. If not used, the default validation descriptions are used. Accepts {label} and {value} as placeholders. Value is related to the value of the validation property. For example, if regex is "[A-Z]+" and the label is "Code" then you can have "Value for Code didn't match the pattern [A-Z]+". Value is not applicable to Objects or Arrays. |
Other Validations
| Name | JSON Type | Applies To | Required | Description |
|---|---|---|---|---|
| readOnly | boolean | All types | Yes | This is component property. A value cannot be saved when readOnly is set to true |
| value | string | DropDown | Yes | A DropDown value is validate whether present in the options. |
| confirmation.required | boolean | All types | No | It will check in the client-side whether the user confirmed the changes. |
| note.required | boolean | All types | No | It validates whether a mandatory note is set. |
| format.decimals | number | Number | No | Validates whether the value has more decimals then expected. |
Other Objects
Confirmation
Confirmation will prompt a modal asking the user if they really want to perform an action. The modal is combined with the note object if required.
| Name | JSON Type | Applies To | Required | Description |
|---|---|---|---|---|
| required | boolean | All types | No | It will check in the client-side whether the user confirmed the changes. |
| message | string | All types | No | A localized message alerting the user about the change or asking for confirmation before proceeding. A default localized message is presented if none is provided. |
Note
Note will prompt a modal asking the user for the reasons for the action. The modal is combined with the confirmation object if required.
| Name | JSON Type | Applies To | Required | Description |
|---|---|---|---|---|
| required | boolean | All types | No | It validates whether a mandatory note is set. |
| message | string | All types | No | A localized message requesting for a reason for the change. A default localized message is presented if none is provided. |
| value | string | All types | No | An optional default note value. |
Format
| Name | JSON Type | Applies To | Required | Description |
|---|---|---|---|---|
| decimals | number | Number | No | Defines the decimal precision. |
Component Configuration
| Name | JSON Type | Applies To | Required | Description |
|---|---|---|---|---|
| step | number | Number | No | Defines the steps to increment or decrement a number. |
Data Types
Components consist of scalars, collections, layouts/groups. Below is a quick chart which contains the features and brief description of each available component.
| Name | Type | Features | Description |
|---|---|---|---|
| Table | TABLE |
| A tabular data display component that offers an array of features:
|
| String | STRING |
| String value display and editing |
| Number | NUMBER |
| Numerical (both integer and floats are acceptable) values input |
| Dropdown | DROPDOWN |
| A dropdown list from which a single value can be selected |
| Date | DATE |
| Displays date string only *values are in Unix timestamp format. |
| Date and Time | DATETIME |
| Displays date and time string only *values are in Unix timestamp format. |
| Boolean | BOOLEAN |
| For true/false, on/off values where presence/absence is desired |
| Hyperlink | HYPERLINK |
| Performs GET requests to a provided URL to perform an action |
| Layout | LAYOUT |
| |
| Group | GROUP |
| The Using groups a product may split the screen in 1/2 and 1/4, groups will follow native responsive nature |
| Action Button | ACTION_BUTTON |
| Performs POST requests to a provided information to perform an action such as reset an account password. |
| Status Indicator | STATUS | Displays an indicator of service or status. | |
| Email validation |
Table Component
Description: The table data type is rendered as a read-only grid (columns and rows) that is filterable. Default filter behaviour matches against all elements in a row (full-record search). The key names in the JSON objects for table row data must be the same as the "header" names for matching and ordering purposes.
Note: Tables cannot be under another component.
The Model for Table Component Inherits from base properties
| Name | Type | Required | Description |
|---|---|---|---|
| canAdd | boolean | yes | If true, allow items to be added based on the columns[].componentModel object. |
| canEdit | boolean | yes | If false, it overrides rows[].canEdit. |
| canDelete | boolean | yes | If false, it overrides rows[].canDelete. |
| rows | component [ ] | yes | Provides details about table row setup as well as individual cell details and values. Contains collection of components |
| columns | list | yes | Provides details setup details about columns |
Model for Column
| Name | Type | Required | Description |
|---|---|---|---|
| property | string | yes | A reference to the object inside of the items collection |
| width | integer | yes | Defines a default width for a column. Users can manually change the width. |
| locked | boolean | yes | If true, the column will be locked to the left most edge of the table. When scrolling horizontally other columns will go behind a locked column |
| componentModel | component | yes | Defines the column type and the model to create an item from. These are the accepted components under a table: STRING, NUMBER, DROPDOWN, DATE, DATETIME, BOOLEAN, HYPERLINK, STATUS and EMAIL |
Model for the Row
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The Unique Id of the item |
| canEdit | boolean | yes | If true, allows editable row items to be modified |
| canDelete | boolean | yes | If true, row will render with an remove action button available |
| cells | component[ ] | yes | Scalar component details used for display in inside of table. These are the accepted components under a table: STRING, NUMBER, DROPDOWN, DATE, DATETIME, BOOLEAN, HYPERLINK, STATUS and EMAIL |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
String Component
Description: The string component will be the most common component used in building views. Use it wherever free-form flowing alphanumeric text is needed to be displayed. Examples would be name, address and notes.
A String component input can be length-limited if the minLength and/or maxLength validation constraints are present. Additionally, regex validation of a string data type is also supported. When providing a regex for validation, it must be enclosed in double quotes as a string.
A String component can be provided a "searchBy" method, if a product provides this property the string will appear as a clickable link, that when interacted with will perform a search by the set method.
The Model for String Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| searchBy | string | no | If provided component will display as hyperlink, with auto search feature by provided type |
| readOnly | boolean | yes | If true, allows the field to be edited |
| value | string | yes | The value for the component |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Provides details about how the component should validate |
Number Component
Description: Any numeric values that need to be displayed should use this field (integer and floating). The number component is very similar to the string component except that it is limited to numeric data. Non-readonly values will be editable via a Edit button besides the value.
A Number can be provided a "searchBy" method, if a product provides this property the string will appear as a clickable link, that when interacted with will perform a search by the set method.
The Number Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| readOnly | boolean | yes | If true, allows the field to be edited |
| searchBy | string | no | If provided component will display as hyperlink, with auto search feature by provided type |
| format | object | no | If provided the component will render the given format configuration. |
| componentConfiguration | object | no | If provided, the component will assume the options in its settings. |
| value | number | yes | The value for the component |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Provides details about how the component should validate |
Format Properties
| Name | Type | Required | Description |
|---|---|---|---|
| decimals | number | no | Specifies the number precision applied to the widget value and when the number component is focused. If not set, the precision defined by the current culture is used. If the user enters a number with a greater precision than is currently configured, the widget value will be rounded. |
Component Configuration Properties
| Name | Type | Required | Description |
|---|---|---|---|
| step | number | no | Specifies the value used to increment or decrement value. The default is 1. |
Dropdown Component
Description: A dropdown type allows displaying a dropdown list of options from which a singular value can be selected.
Note: The dropdown component does not support multiple selection and values that are not available in the options. Required is the only validation property to work on dropdowns.
The Model for Dropdown Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| options | list | yes | defines key / value objects inside of dropdown selctor |
| readOnly | boolean | yes | If true, allows the field to be edited |
| value | string | yes | The value for the component |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Provides details about how the component should validate |
Date Component
Description: Date component displays localized dates, optionally formatted by the user, and will provide a date picker for editing. The value provided should be a UTC timestamp in milliseconds.
The Model for Date Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| readOnly | boolean | yes | If true, allows the field to be edited |
| value | number | yes | The value for the component |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Provides details about how the component should validate |
Date and Time Component
Description: Date and Time component displays localized dates and time, optionally formatted by the user, and will provide a date-time picker for editing. The value provided should be a UTC timestamp in milliseconds.
The Model for Date and Time Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| readOnly | boolean | yes | If true, allows the field to be edited |
| value | number | yes | The value for the component |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Provides details about how the component should validate |
Boolean Component
Description: A boolean value should be used to display data that can only have binary values (0, 1, true, false). Some examples where this would be a fitting component to use to display would be: isMember, isActive. These are inherently fields with true/false values.
A boolean component would render this as a checkbox whose state (checked or unchecked) would indicate the value (true or false).
The Model for Boolean Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| readOnly | boolean | yes | If true, allows the field to be edited |
| value | boolean | yes | The value for the component
|
| cssClasses | string | no | Whether to change the boolean visually to appear as a toggle or a checkbox. The CSS classes have to be pre-defined in Axis. No custom classes are allowed. Currently we allow: "toggle". |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Only "required" is validated. If "required" is true, then null is invalid. |
Hyperlink Component
Description: The hyperlink is a component that allows users to open provided URLs in other tabs outside of Axis.
The Model for Hyperlink Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| target | string | no | If provided, changes the target action of the hyperlink. The default is "_blank" and "_self" is not accepted. |
| value | string | yes | The value for the component |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | It's ignored as this component is not editable |
| confirmation | object | no | It's ignored as this component is not editable |
| validation | object | no | It's ignored as this component is not editable |
Layout Component
Description: Layouts provide the ability to section the screen into columns, by default a layout will generate up to four columns depending on the screen size, but can be told to divide its content into 3, 2 or 1 column. Layouts can only be used in the first level of data therefore they cannot be a child item of a component.
The layout still responds to the responsive nature of the tool, and will handle shuffling items as the screen size changes.
*Layout is not an editable component. The components in it are the ones to have readOnly definitions.
The Model for Group Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| colspan | integer | no | Defines how many columns the group uses to determine it's responsive width |
| items | component [] | yes | Contains collection of components to be displayed within the group |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | no | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | Won't have effect in layout the component |
| confirmation | object | no | Won't have effect in layout the component |
| validation | object | no | Won't have effect in layout the component |
Group Component
Description: A group behaves similar to a Layout component. The main difference is that it can be editable and responsible to edit its child items and can be a child of a layout. Groups cannot have Layout, Group or Table components as one of its child items.
Groups still respond to the responsive nature of the tool, and will handle shuffling items as the screen size changes.
*If a group component's readonly property is true, then the group will be responsible to save the changes under its components. The components still need to have their own definitions for readonly.
The Model for Group Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| readOnly | boolean | yes | If true, allows the field to be edited |
| colspan | integer | no | Defines how many columns the group uses to determine it's responsive width |
| items | component [] | yes | Contains collection of components to be displayed within the group |
| cssClasses | string | no | Whether to change the grid visually to appear as a compound component. The CSS classes have to be pre-defined in Axis. No custom classes are allowed. Currently we allow: "bordered". |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | no | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Won't have effect in group |
Action Button Component
Description: The action button is a component that appears as a button in the interface, and sends an action value to the Product service for processing and appropriate actions to take place.
Note: This action button shares very little functionality with the action button in version 1 of Dynamic Modules. That action button triggered an API call to a provided URL that would be called from the Axis Client. Due to security and other considerations, that functionality will no longer be supported moving forward. If a Product wishes to call to another service or location they must initiate those calls from the product end itself.
The Model for Action Button Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| cssClass | string | no | Define a color for the button to emphasize the action relevance. "red", "green" and "blue" are supported. "blue" is the default. |
| disabled | boolean | no | If true, shows the button in a disabled state. This allows the product to control whether an action should be allwoed to be performed more than once. |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
Status Indicator Component
Description: A Status Indicator allows the viewing of a descriptive label along with a corresponding color value.
There are several available colors for this component. By changing the "color" property to one of the following:
- green - provides a green indicator
- yellow - provides a yellow indicator
- red - provides a red indicator
- black - provides a black indicator
Changing the "label" property , will update the label to the left of the desired indicator.
Changing the "value" property will add a "word" into the color status light
The Status Indicator does not currently support any validation options, nor is it editable
The Model for Status Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| color | string | no | Provides the color desired to display with the status. Defaults to black. |
| value | string | no | The value for the component to be displayed in the status color. Empty string if no text value desired |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | Won't have effect in this component |
| confirmation | object | no | Won't have effect in this component |
| validation | object | no | Won't have effect in this component |
Email Component
Description: The email component will display and edit the same as a string component would provide, however visually it will look like a clickable link. When a user interacts with it and "searchBy" is defined, the "value" of the string will be put into the search bar for Axis, and will perform a search for the user (smart search is performed per default)
Note: The email component accepts all string component validation options, and it will by default validate any edits to verify that it is a valid email address. So in essence there is no need to have minLength, maxLength and regex on validation unless if the product has special cases.
The Model for Email Component Inherits all base properties
| Name | Type | Required | Description |
|---|---|---|---|
| searchBy | string | no | If provided component will display as hyperlink, with auto search feature by provided type |
| readOnly | boolean | yes | If true, allows the field to be edited |
| value | string | yes | The value for the component |
Inherited Properties
| Name | Type | Required | Description |
|---|---|---|---|
| label | string | yes | The localized label to display |
| id | string | yes | The unique id of the component |
| type | enum | yes | The type of field |
| displayable | boolean | yes | If true, displays the field |
| customValues | map | no | Allows product to provide extra details they may want back with a component |
| note | object | no | If provided, will prompt user to provide a note for the action taken |
| confirmation | object | no | If provided, will prompt user to confirm they want to continue with an action |
| validation | object | no | Provides details about how the component should validate |
Deprecated v1 Components
Key Value and Inventory components are no longer supported in v2. If you have v1 APIs in Axis 6, than you may have seen that these 2 components are rendered as tables now. Having that in mind, it's possible to replicate these components using the table component in v2.
Please check Replacing Deprecated v1 Components page for JSON examples.