src/app/shared/widgets/interfaces/list.interfaces.ts
[key: string]:
|
Key of the configurations entry |
attributesDataType |
attributesDataType:
|
Type : string
|
Optional |
Property key needed to get data from the "attributeUrl" response |
attributeUrl |
attributeUrl:
|
Type : string
|
Optional |
Url used to get data for "Attributes" dialog |
availableDataTypes |
availableDataTypes:
|
Type : string[]
|
Optional |
List of dataTypes option, dataTypes selection dropdown, will only be shown when dataTypeMode is set to "choose" @default([]) |
cellSelectable |
cellSelectable:
|
Type : boolean
|
Optional |
Enables/Disables rows selection when cell is clicked, can only be used when "rowSelectable" property is disabled @default(true) |
clearSortingAndFilteringOnReset |
clearSortingAndFilteringOnReset:
|
Type : boolean
|
Optional |
Enables/Disables clearing the currently applied filters and sorting state when reset is triggered @default(true) |
columns |
columns:
|
Type : Column[]
|
Optional |
List of static columns to be rendered in data-list |
columnTemplates |
columnTemplates:
|
Type : literal type
|
Optional |
The templates for dynamically added columns |
countDescription |
countDescription:
|
Type : string
|
Optional |
Description added after the rows count value, only used when rows count is shown with the title (ie: totalWithSubheader property is not set or set to false) |
dataType |
dataType:
|
Type : string
|
Optional |
Property key, needed to get data from response |
density |
density:
|
Type : string
|
Optional |
Set display density for data-list, available options are: "comfortable", "cosy" and "compact" @default("comfortable") |
disableContextMenu |
disableContextMenu:
|
Type : boolean
|
Optional |
Disables/Enables context menu button action @default(false) |
dynamicColumnLink |
dynamicColumnLink:
|
Type : string
|
Optional |
Url used to get dynamic columns on data-list initialization, should be embedded using type "attributes" in response |
dynamicColumnsFromData |
dynamicColumnsFromData:
|
Type : boolean
|
Optional |
Set to true, to get columns defined in response, otherwise alternatively "Attributes" dialog can be used to add dynamic columns @default(false) |
dynamicTableHeight |
dynamicTableHeight:
|
Type : any
|
Optional |
Enables/Disables changing table height dynamically |
dynamicTableHeightAdditionalHeight |
dynamicTableHeightAdditionalHeight:
|
Type : string
|
Optional |
Additional height to adjust the data-list, height should be in px (e.g "15px") |
dynamicTitle |
dynamicTitle:
|
Type : boolean
|
Optional |
Enables/Disables adding a prefix to the data-list title dynamically @default(false) |
eagerLimit |
eagerLimit:
|
Type : number
|
Optional |
Limit for number rows loaded when using eager loading mode, if not set it gets "ALL" by default. |
emitSelectedItems |
emitSelectedItems:
|
Type : boolean
|
Optional |
Enables/Disables emitting the "rowData" entry with the selected rows output, that contains the complete row's data @default(false) |
excelCopyParseUrl |
excelCopyParseUrl:
|
Type : string
|
Optional |
Adress for the copy paste parsing to use, @default(/api/core/attributes/parse?include=attribute.source&include=attribute.validation) |
excelCopyPasteEverywhere |
excelCopyPasteEverywhere:
|
Default value : (false)
|
Type : boolean
|
Optional |
whether or not it is allowed to copy paste for every attribute type. If this is false it will only be allowed to copy paste in STRING,PLAIN_STRING,INTEGER_NUMBER,DECIMAL_NUMBER attributes |
exportPath |
exportPath:
|
Type : string
|
Optional |
Url used to export data-list data |
filterMode |
filterMode:
|
Type : string
|
Optional |
Sets data-list filter mode, available options are: "quickFilter", "excelStyleFilter" or "inlineFilter" @default("excelStyleFilter") |
focusFreeTextSearch |
focusFreeTextSearch:
|
Type : boolean
|
Optional |
Set autofocus on the field |
footer |
footer:
|
Type : any
|
Optional |
Data-list footer configuration |
frameHeight |
frameHeight:
|
Type : number
|
Optional |
Height specified for the frame when in tile view mode, used to adjust the tile height @default(270) |
getNextPageOnLazyLoad |
getNextPageOnLazyLoad:
|
Type : boolean
|
Optional |
Enables/Disables getting a number of rows (the number should be the same as the currently viewed rows, if "pageLimitPerScroll" property is not set), opposed to just getting the next row when using lazy loading mode @default(false) |
globalFilterInput |
globalFilterInput:
|
Type : boolean
|
Optional |
Shows/Hides data-list filter field @default(true) |
groupingEnabled |
groupingEnabled:
|
Type : boolean
|
Optional |
Enables/Disables grouping of data @default(true) |
groupingExpressions |
groupingExpressions:
|
Type : GroupingExpression[]
|
Optional |
List of grouping configurations used to group the data based on a column or a combination of columns |
handleViewModeInBackend |
handleViewModeInBackend:
|
Type : boolean
|
Optional |
Enables/Disables handling view mode change using the backend @default(false) |
header |
header:
|
Type : string
|
Optional |
CSS class selector for header component @default("primary") |
headerComponents |
headerComponents:
|
Type : any
|
Optional |
Add widgets to data-list header |
headers |
headers:
|
Type : DataListHeaderGroup[]
|
Optional |
Deprecated: feature is now removed. List of data-list groups headers |
highlightReadOnly |
highlightReadOnly:
|
Type : boolean
|
Optional |
Enables/Disables highlighting "readonly" fields with gray background and and overlayed icon @default(true) |
identifier |
identifier:
|
Type : string
|
Optional |
Data-list identifier |
ignoreSeconds |
ignoreSeconds:
|
Type : boolean
|
Optional |
Enables/Disables showing seconds for "date" or "datetime" values @default(false) |
infoText |
infoText:
|
Type : string
|
Optional |
Adds the text in the help icon |
infoTitle |
infoTitle:
|
Type : string
|
Optional |
Adds the title to the text provided by the help icon |
initialDataType |
initialDataType:
|
Type : string
|
Optional |
The dataType to be selected initially by default, when there is no previous selection stored |
isCollapsible |
isCollapsible:
|
Type : boolean
|
Optional |
Deprecated: feature is now removed. Enables/Disables expanding/collapsing data-list panel vertically @default(false) |
isSideCollapsible |
isSideCollapsible:
|
Type : boolean
|
Optional |
Deprecated: feature is now removed. Enables/Disables expanding/collapsing data-list panel horizontally @default(false) |
languageSelection |
languageSelection:
|
Type : boolean
|
Optional |
Shows/Hides language selection dropdown @default(false) |
languageSelectionUrl |
languageSelectionUrl:
|
Type : string
|
Optional |
Url used to get languages to be shown in languages selection dropdown, otherwise the default defined url will be used |
languageSelectorValueProperty |
languageSelectorValueProperty:
|
Type : string
|
Optional |
Property key used to get the value from the response, to be set as the option value for the languages selection dropdown @default("id") |
link |
link:
|
Type : ChildrenLink
|
Optional |
Hierachical data-list property, needed to check the children's link source |
loadingMode |
loadingMode:
|
Type : string
|
Optional |
Mode used for loading data, for eager loading use "eager", otherwise it will be set to lazy loading @default("eager") |
localStorageShownAttributes |
localStorageShownAttributes:
|
Type : string
|
Optional |
The local storage entry identifier, needed to save currently shown attributes |
maintenanceLevelLink |
maintenanceLevelLink:
|
Type : string
|
Optional |
Url used to get maintenance levels to be shown in maintenance levels selection dropdown, otherwise the default defined url will be used |
maintenanceLevelSelection |
maintenanceLevelSelection:
|
Type : boolean
|
Optional |
Shows/Hides maintenance levels selection dropdown @default(false) |
metadataKeys |
metadataKeys:
|
Type : string[]
|
Optional |
Deprecated: feature is now removed. List of row properties keys to be emitted with the edited rows output in "metadata" entry. |
overrideTileClickEvent |
overrideTileClickEvent:
|
Type : boolean
|
Optional |
Enables/Disables overriding the row click event redirection in tile mode and emit the row data instead @default(false) |
pageLimitPerScroll |
pageLimitPerScroll:
|
Type : number
|
Optional |
Limit for number rows loaded on scroll action when using lazy loading mode |
primaryKey |
primaryKey:
|
Type : string
|
Optional |
Unique property key, needed to differentiate between data-list rows |
productNumberField |
productNumberField:
|
Type : string
|
Optional |
Field that is used to get the productNo out of the data. Needed for knowing which products are rendered in the table, which is needed to reduce the category attributes to the ones viable for the products in the list |
profileUrl |
profileUrl:
|
Type : string
|
Optional |
The url used to fetch/update attribute-profiles, if null no profile selection/update will be enabled |
reloadOnDataTypeChange |
reloadOnDataTypeChange:
|
Type : boolean
|
Optional |
Enables/Disables relaoding the data-list when dataType is changed @default(true) |
reloadWithUnsavedChanges |
reloadWithUnsavedChanges:
|
Type : boolean
|
Optional |
Enables/Disables prompting the user for confirmation in case of unsaved changes, if set to true it automatically ignores unsaved changes @default(false) |
removeAllFiltersButton |
removeAllFiltersButton:
|
Type : boolean
|
Optional |
Hides/Shows reset table state button, used to clear currently applied filters and sorting state @default(false) |
renderCount |
renderCount:
|
Type : boolean
|
Optional |
Enables/Disables rendering the rows count after the data-list title @default(true) |
restrictAttributesToCategoryOnAttributeDialogOpen |
restrictAttributesToCategoryOnAttributeDialogOpen:
|
Type : boolean
|
Optional |
Enables/Disables running the "restrict to category" action when the "Attributes" dialog is opened @default(false) |
rowEditable |
rowEditable:
|
Type : boolean
|
Optional |
Enables/Disables row editting mode, otherwise cell editting mode is used @default(false) |
rowPinningEnabled |
rowPinningEnabled:
|
Type : boolean
|
Optional |
Enables/Disables row pinning @default(false) |
rowSelectable |
rowSelectable:
|
Type : boolean
|
Optional |
Enables/Disables rows selection @default(true) |
rowSelectionMode |
rowSelectionMode:
|
Type : string
|
Optional |
Sets rows selection mode, possible values "single" or "multiple" can only be used when "rowSelectable" property is enabled @default("multiple") |
selectAttributeMaxAttributes |
selectAttributeMaxAttributes:
|
Default value : (100)
|
Type : number
|
Optional |
Configures the maximum number of selectable attributes |
selectFilterParams |
selectFilterParams:
|
Type : SelectFilterParams
|
Optional |
The configuration for the filter selection dropdown used in "Attributes" dialog. Use an empty object (ie: {}) in order for the dropdown to be removed |
shownAttributesSelection |
shownAttributesSelection:
|
Type : boolean
|
Optional |
Hierachical data-list property, shows/hides "Attributes" dialog open button for children data-lists @default(false) |
showRestrictToCategoryButton |
showRestrictToCategoryButton:
|
Type : boolean
|
Optional |
Shows/Hides the restrict to category button in the select-attributes dialog @default(false) |
showTableOnLinkInput |
showTableOnLinkInput:
|
Type : boolean
|
Optional |
Shows/Hides data-list when "uri" to load the data is changed @default(true) |
sortBy |
sortBy:
|
Type : SortBy[]
|
Optional |
List of column sorting configurations to be used for sorting the data |
sortingExpressions |
sortingExpressions:
|
Type : SortingExpression[]
|
Optional |
List of sorting configurations used to sort the data-list, using a single column or a combination of columns |
subheader |
subheader:
|
Type : string
|
Optional |
Additional subheader for the data-list |
tableHeight |
tableHeight:
|
Type : number
|
Optional |
Sets data-list height |
tableHeightRelativeToRows |
tableHeightRelativeToRows:
|
Type : boolean
|
Optional |
Enables/Disables adjusting data-list height relative to the number of rows @default(false) |
tableHeightVisibleRows |
tableHeightVisibleRows:
|
Type : number
|
Optional |
Sets the table height by configuring the number of visible rows |
tableWidth |
tableWidth:
|
Type : any
|
Optional |
Sets table width @default("100%") |
tileIdentifierField |
tileIdentifierField:
|
Type : string
|
Optional |
Name of the field that shows in the tile view as the tile identifier |
tileRedirectLink |
tileRedirectLink:
|
Type : string
|
Optional |
Link used for redirection when the row is clicked in tile mode |
title |
title:
|
Type : string
|
Optional |
Data-list title |
toggleButtonLabel |
toggleButtonLabel:
|
Type : string
|
Optional |
Label used for the mode toggle-slider |
totalWithSubheader |
totalWithSubheader:
|
Type : boolean
|
Optional |
Shows the rows count with the subheader, only used when subheader property is set @default(false) |
useIgxExport |
useIgxExport:
|
Type : any
|
Optional |
Enables/Disables using the igx-grid export functionality |
viewModeOptions |
viewModeOptions:
|
Type : ViewModeOption[]
|
Optional |
List of options to be shown in the view mode selection dropdown |
viewModeSelection |
viewModeSelection:
|
Type : boolean
|
Optional |
Shows/Hides view mode selection dropdown @default(false) |
wikiLink |
wikiLink:
|
Type : string
|
Optional |
Adds the link to the wiki page explaining the functionality of the content |
withBorder |
withBorder:
|
Type : boolean
|
Optional |
Shows/Hides the border of the panel frame @default(true) |
withHeader |
withHeader:
|
Type : boolean
|
Optional |
Shows/Hides the panel header @default(true) |
import {
ActionNavigation,
Link,
MultiSelectAction,
Resource,
} from "../../components/hal/hal";
import { Selectors } from "../../components/app-context/api";
import { Attribute } from "../../components/edit-attribute";
export interface Result extends Resource {
description?: string;
identifier?: string;
_actions?: {
links: ActionNavigation[];
};
}
export interface ResultResource extends Resource {
total?: number;
_embedded?: {
products: Result[];
};
_actions?: {
multiSelect: MultiSelectAction;
};
_links?: {
custom: Link;
};
}
export interface Column {
/**
* Column identifier
*/
field?: string;
/**
* Column parent, if present
*/
parent?: string;
/**
* Label for column header
*/
header: string;
/**
* Enables/Disables adding a prefix to the column header dynamically
*/
dynamicHeader?: boolean;
/**
* Column width value, will be evaluated in px (e.g 250)
*/
width: number | string;
/**
* Enables/Disables column filtering @default(false)
*/
filter?: boolean;
/**
* Column cells css class name in case column has no type or has an unsupported type
*/
name?: string;
/**
* Column type,
* currently defined types: "attribute", "widget", "boolean", "datetime", "link",
* "main-asset", "chip", "chiplist", "selector", "expander",
* "hal-actions", "interactions", "actions-and-interactions"
*/
type?: string;
/**
* Image size in case column has type "main-asset"
*/
"asset-size"?: string;
/**
* Hides/Shows image placeholder in case column has type "main-asset"
*/
hideAssetPlaceholder?: boolean;
/**
* Redirection url in case column has type "link",
* It can access any of the other columns values,
* and be used like this in the url {column-field-value}
*/
linkTemplate?: string;
/**
* Redirection link type, needed to correctly re-route the link.
* Using "internal" type will redirect the link relative to the current path.
* Can only be used in case column has type "link".
*/
linkType?: string;
/**
* Date format in case column has type "datetime"
*/
dateFormat?: string;
/**
* Tooltip date format in case column has type "datetime" @default("yyyy-MM-dd HH:mm:ss")
*/
tooltipDateFormat?: string;
/**
* Minimum column width
*/
minWidth?: number | string;
/**
* Maximum column width
*/
maxWidth?: number | string;
/**
* Enables/Disables column sorting @default(false)
*/
sortable?: boolean;
/**
* Pins/Unpins column @default(false)
*/
pinned?: boolean;
/**
* Hides/Shows column @default(false)
*/
hidden?: boolean;
/**
* Enables/Disables column editing @default(false)
*/
editable?: boolean;
/**
* Enables/Disables column grouping @default(false)
*/
groupable?: boolean;
/**
* Enables/Disables emitting cell data when it's edited @default(false)
*/
externalEditing?: boolean;
/**
* Disables/Enables column hiding @default(true)
*/
disableHiding?: boolean;
/**
* Filtering type
*/
"filter-type"?: "contains" | undefined;
/**
* Interactions that should be shown in the corresponding cell,
* needed to look up interactions in the browserContext,
* in case column has type "hal-actions", "interactions" or "actions-and-interactions"
*/
selectors?: Selectors;
/**
* Column order
*/
order?: number;
/**
* Locales map needed to update the dynamic columns headers that are shown for the table based on the selected locale.
*/
locales?: Map<string, string>;
/**
* Hides/Shows column pin icon @default(false)
*/
hidePin?: boolean;
/**
* Enables/Disables grid summary functionality per-column @default(false)
*/
hasSummary?: boolean;
/**
* Enables/Disables using customized summaries, instead of using the grid default summaries,
* both of which depend on the dataType of the column @default(false)
*/
customSummary?: boolean;
/**
* Data type of the column values
*/
dataType?: string;
/**
* Map used to set conditional css class selectors for data-list cells,
* using the css class selector as the key and a callback method identifier as the value.
* The callback method should return a boolean result and should be registered to "CellClassesCallbackRegistry" in widget.module.
* by default it already handles marking the headers of mandatory descriptions columns using this callback method "default-mandatory-attribute"
*/
cellClasses?: { [key: string]: string };
/**
* CSS class selector for column headers, can only be used when "inlineFilter" mode is enabled.
*/
headerStyle?: string;
/**
* Makes column mandatory or optional @default(false)
*/
mandatory?: boolean;
/**
* Makes column visibility configurable @default(false)
*/
visibilityConfigurable?: boolean;
/**
* Key of the column entry
*/
[key: string]: any;
/**
* "data-list-tree"-cell value is draggable @default(false)
*/
draggable?: boolean;
/**
* "data-list-tree" if draggable only tree leaves are draggable @default(false)
*/
onlyLeavesDraggable?: boolean;
/**
* cells in the column droppable/non-droppable @default(true)
*/
allowDrop?: boolean;
/**
* Enables/Disables column auto-sizing @default(false)
*/
autosize?: boolean;
/**
* Editing layout. It is used for attribute types : ['TYPE_TEXT' and 'META'].
* its possible values are : ['list' , 'textarea', 'dialog']. @default('list')
*/
editLayout?: string;
}
export type ColumnMap = { [column: string]: Column };
export interface DataListHeaderGroup {
/**
* Label for the header
*/
header?: string;
/**
* Parent of the header group, if present
*/
parent?: string;
/**
* Header group number, used for sorting
*/
order?: number;
/**
* Header group identifier,
* needed for identifying which column field to render and for sorting in case of it's a parent
*/
identifier?: any;
}
export interface DataListConfiguration {
/**
* Data-list identifier
*/
identifier?: string;
/**
* Data-list title
*/
title?: string;
/**
* List of static columns to be rendered in data-list
*/
columns?: Column[];
/**
* Deprecated: feature is now removed.
* List of data-list groups headers
*/
headers?: DataListHeaderGroup[];
/**
* Unique property key, needed to differentiate between data-list rows
*/
primaryKey?: string;
/**
* Property key, needed to get data from response
*/
dataType?: string;
/**
* CSS class selector for header component @default("primary")
*/
header?: string;
/**
* Shows/Hides the panel header @default(true)
*/
withHeader?: boolean;
/**
* Shows/Hides the border of the panel frame @default(true)
*/
withBorder?: boolean;
/**
* Adds the text in the help icon
*/
infoText?: string;
/**
* Adds the title to the text provided by the help icon
*/
infoTitle?: string;
/**
* Set autofocus on the field
*/
focusFreeTextSearch?: boolean;
/**
* Adds the link to the wiki page explaining the functionality of the content
*/
wikiLink?: string;
/**
* Deprecated: feature is now removed.
* Enables/Disables expanding/collapsing data-list panel vertically @default(false)
*/
isCollapsible?: boolean;
/**
* Deprecated: feature is now removed.
* Enables/Disables expanding/collapsing data-list panel horizontally @default(false)
*/
isSideCollapsible?: boolean;
/**
* Mode used for loading data, for eager loading use "eager",
* otherwise it will be set to lazy loading @default("eager")
*/
loadingMode?: string;
/**
* Url used to get data for "Attributes" dialog
*/
attributeUrl?: string;
/**
* Property key needed to get data from the "attributeUrl" response
*/
attributesDataType?: string;
/**
* The configuration for the filter selection dropdown used in "Attributes" dialog.
* Use an empty object (ie: {}) in order for the dropdown to be removed
*/
selectFilterParams?: SelectFilterParams;
/**
* List of property keys used to set additional information text for the attributes in the "Attributes" dialog @default(["type", "group"])
*/
selectAttributeAdditionalProperties?: string[];
/**
* Configures the maximum number of selectable attributes
*
* @default(100)
*/
selectAttributeMaxAttributes?: number;
/**
* Fallback to use, when the user explicitly removes all attributes from the dialog
*
* @default(null)
*/
selectAttributeEmptySelection?: Attribute[];
/**
* Shows/Hides the restrict to category button in the select-attributes dialog @default(false)
*/
showRestrictToCategoryButton?: boolean;
/**
* The url used to fetch/update attribute-profiles, if null no profile selection/update will be enabled
*/
profileUrl?: string;
/**
* Enables/Disables running the "restrict to category" action when the "Attributes" dialog is opened @default(false)
*/
restrictAttributesToCategoryOnAttributeDialogOpen?: boolean;
/**
* The local storage entry identifier, needed to save currently shown attributes
*/
localStorageShownAttributes?: string;
/**
* Url used to get dynamic columns on data-list initialization,
* should be embedded using type "attributes" in response
*/
dynamicColumnLink?: string;
/**
* Shows/Hides maintenance levels selection dropdown @default(false)
*/
maintenanceLevelSelection?: boolean;
/**
* Url used to get maintenance levels to be shown in maintenance levels selection dropdown,
* otherwise the default defined url will be used
*/
maintenanceLevelLink?: string;
/**
* Shows/Hides language selection dropdown @default(false)
*/
languageSelection?: boolean;
/**
* Url used to get languages to be shown in languages selection dropdown,
* otherwise the default defined url will be used
*/
languageSelectionUrl?: string;
/**
* Property key used to get the value from the response,
* to be set as the option value for the languages selection dropdown @default("id")
*/
languageSelectorValueProperty?: string;
/**
* Shows/Hides view mode selection dropdown @default(false)
*/
viewModeSelection?: boolean;
/**
* List of options to be shown in the view mode selection dropdown
*/
viewModeOptions?: ViewModeOption[];
/**
* Enables/Disables handling view mode change using the backend @default(false)
*/
handleViewModeInBackend?: boolean;
/**
* Hides/Shows reset table state button, used to clear currently applied filters and sorting state @default(false)
*/
removeAllFiltersButton?: boolean;
/**
* Deprecated: feature is now removed.
* List of row properties keys to be emitted with the edited rows output in "metadata" entry.
*/
metadataKeys?: string[];
/**
* Enables/Disables emitting the "rowData" entry with the selected rows output,
* that contains the complete row's data @default(false)
*/
emitSelectedItems?: boolean;
/**
* Enables/Disables rows selection @default(true)
*/
rowSelectable?: boolean;
/**
* Sets rows selection mode, possible values "single" or "multiple"
* can only be used when "rowSelectable" property is enabled @default("multiple")
*/
rowSelectionMode?: string;
/**
* Sets data-list height
*/
tableHeight?: number;
/**
* Enables/Disables row editting mode, otherwise cell editting mode is used @default(false)
*/
rowEditable?: boolean;
/**
* List of grouping configurations used to group the data based on a column or a combination of columns
*/
groupingExpressions?: GroupingExpression[];
/**
* List of dataTypes option, dataTypes selection dropdown,
* will only be shown when dataTypeMode is set to "choose" @default([])
*/
availableDataTypes?: string[];
/**
* The dataType to be selected initially by default, when there is no previous selection stored
*/
initialDataType?: string;
/**
* Set to true, to get columns defined in response,
* otherwise alternatively "Attributes" dialog can be used to add dynamic columns @default(false)
*/
dynamicColumnsFromData?: boolean;
/**
* Defines how dynamic columns are added to the existing statically configured columns list,
* "concat" is the default behaviour and simply adds all dynamic columns to the end,
* "unique" will only add columns, that have _not_ been defined in the static configuration
*/
dynamicColumnsMode?: "concat" | "unique";
/**
* A Map containing the list of columns defined for each dataType with the dataType as the key,
* used along with "columns" property, needed when using multiple dataTypes with different columns
*/
dataTypeColumns?: { [key: string]: Column[] };
/**
* Enables/Disables grouping of data @default(true)
*/
groupingEnabled?: boolean;
/**
* Enables/Disables showing seconds for "date" or "datetime" values @default(false)
*/
ignoreSeconds?: boolean;
/**
* Field that is used to get the productNo out of the data.
* Needed for knowing which products are rendered in the table,
* which is needed to reduce the category attributes to the ones viable for the products in the list
*/
productNumberField?: string;
/**
* Enables/Disables highlighting "readonly" fields with gray background and and overlayed icon @default(true)
*/
highlightReadOnly?: boolean;
/**
* Enables/Disables prompting the user for confirmation in case of unsaved changes,
* if set to true it automatically ignores unsaved changes @default(false)
*/
reloadWithUnsavedChanges?: boolean;
/**
* Set display density for data-list, available options are: "comfortable", "cosy" and "compact" @default("comfortable")
*/
density?: string;
/**
* Enables/Disables rendering the rows count after the data-list title @default(true)
*/
renderCount?: boolean;
/**
* List of column sorting configurations to be used for sorting the data
*/
sortBy?: SortBy[];
/**
* Map used to set conditional css class selectors for column headers,
* using the css class selector as the key and a callback method identifier as the value.
* The callback method should return a boolean result and should be registered to "HeaderClassesCallbackRegistry" in widget.module.
* by default it already handles marking the headers of columns with mandatory attributes using this callback method "default-mandatory-attribute"
*/
headerClasses?: { [key: string]: string };
/**
* Shows/Hides data-list when "uri" to load the data is changed @default(true)
*/
showTableOnLinkInput?: boolean;
/**
* Enables/Disables clearing the currently applied filters and sorting state when reset is triggered @default(true)
*/
clearSortingAndFilteringOnReset?: boolean;
/**
* Label used for the mode toggle-slider
*/
toggleButtonLabel?: string;
/**
* Link used for redirection when the row is clicked in tile mode
*/
tileRedirectLink?: string;
/**
* Name of the field that shows in the tile view as the tile identifier
*/
tileIdentifierField?: string;
/**
* Enables/Disables overriding the row click event redirection in tile mode and emit the row data instead @default(false)
*/
overrideTileClickEvent?: boolean;
/**
* Sets table width @default("100%")
*/
tableWidth?: any;
/**
* Height specified for the frame when in tile view mode, used to adjust the tile height @default(270)
*/
frameHeight?: number;
/**
* Enables/Disables adjusting data-list height relative to the number of rows @default(false)
*/
tableHeightRelativeToRows?: boolean;
/**
* Sets the table height by configuring the number of visible rows
*/
tableHeightVisibleRows?: number;
/**
* Shows/Hides data-list filter field @default(true)
*/
globalFilterInput?: boolean;
/**
* Disables/Enables context menu button action @default(false)
*/
disableContextMenu?: boolean;
/**
* Enables/Disables rows selection when cell is clicked,
* can only be used when "rowSelectable" property is disabled @default(true)
*/
cellSelectable?: boolean;
/**
* Enables/Disables getting a number of rows (the number should be the same as the currently viewed rows, if "pageLimitPerScroll" property is not set),
* opposed to just getting the next row when using lazy loading mode @default(false)
*/
getNextPageOnLazyLoad?: boolean;
/**
* Limit for number rows loaded on scroll action when using lazy loading mode
*/
pageLimitPerScroll?: number;
/**
* Limit for number rows loaded when using eager loading mode, if not set it gets "ALL" by default.
*/
eagerLimit?: number;
/**
* Enables/Disables row pinning @default(false)
*/
rowPinningEnabled?: boolean;
/**
* Sets data-list filter mode,
* available options are: "quickFilter", "excelStyleFilter" or "inlineFilter" @default("excelStyleFilter")
*/
filterMode?: string;
/**
* Enables/Disables relaoding the data-list when dataType is changed @default(true)
*/
reloadOnDataTypeChange?: boolean;
/**
* Url used to export data-list data
*/
exportPath?: string;
/**
* Enables/Disables adding a prefix to the data-list title dynamically @default(false)
*/
dynamicTitle?: boolean;
/**
* List of sorting configurations used to sort the data-list, using a single column or a combination of columns
*/
sortingExpressions?: SortingExpression[];
/**
* Enables/Disables using the igx-grid export functionality
*/
useIgxExport?: any;
/**
* Enables/Disables changing table height dynamically
*/
dynamicTableHeight?: any;
/**
* Additional modifiers used to adjust the data-list height.
* The modifiers must be configured and added to body in _positions.scss
*/
dynamicTableHeightAdditionalModifiers?: string[];
/**
* Additional height to adjust the data-list, height should be in px (e.g "15px")
*/
dynamicTableHeightAdditionalHeight?: string;
/**
* Additional subheader for the data-list
*/
subheader?: string;
/**
* Shows the rows count with the subheader, only used when subheader property is set @default(false)
*/
totalWithSubheader?: boolean;
/**
* Description added after the rows count value, only used when rows count is shown with the title (ie: totalWithSubheader property is not set or set to false)
*/
countDescription?: string;
/**
* The templates for dynamically added columns
*/
columnTemplates?: { [key: string]: Column };
/**
* Data-list footer configuration
*/
footer?: any;
/**
* Hierachical data-list property, shows/hides "Attributes" dialog open button for children data-lists @default(false)
*/
shownAttributesSelection?: boolean;
/**
* Hierachical data-list property, needed to check the children's link source
*/
link?: ChildrenLink;
/**
* whether or not it is allowed to copy paste for every attribute type.
* If this is false it will only be allowed to copy paste in STRING,PLAIN_STRING,INTEGER_NUMBER,DECIMAL_NUMBER attributes
* @default(false)
*/
excelCopyPasteEverywhere?: boolean;
/**
* Adress for the copy paste parsing to use, @default(/api/core/attributes/parse?include=attribute.source&include=attribute.validation)
*/
excelCopyParseUrl?: string;
/**
* Add widgets to data-list header
*/
headerComponents?: any;
/**
* Key of the configurations entry
*/
[key: string]: any;
}
export interface ChildrenLink {
/**
* Children link source type, available options: "from-response"
*/
type?: string;
/**
* Link property key in response _links object
*/
key?: string;
}
export interface ViewModeOption {
/**
* Identifier to be set as option value
*/
identifier?: string;
/**
* Description to be displayed in the dropdown
*/
description?: string;
/**
* Icon representing the option
*/
icon?: string;
/**
* references a callback function to allow customizing a cell's column
*/
columnSelector?: string;
/**
* Enable/disable rows drag and drop
*/
enableRowDragging?: boolean;
}
export interface SortBy {
/**
* Column "field" value that should be used for sorting
*/
field?: string;
/**
* Sorting direction, use "asc" for ascending sorting or"desc" for descending sorting
*/
direction?: string;
}
/**
* Interface to transport the recommended attributes data
*
* A separate `count` property is required to handle cases, where
* one attribute entry results in the display of multiple different attributes
*/
export interface RecommendedAttributes {
/**
* list of attributes that will be added to the request URI
*/
attributes: Attribute[];
/**
* number of attributes that are recommended to the user
*/
count: number;
}
export interface DataListTreeConfiguration extends DataListConfiguration {
/**
* Property key in response identifying parent rows @default("parentIdentifier")
*/
foreignKey?: string;
/**
* Property key in response indicating whether a row has children or not
*/
hasChildrenKey?: string;
/**
* Link property key in response used for loading the row children @default("children")
*/
childrenLinkName?: string;
/**
* When emitting selection events the counts will be grouped by this property. In most cases this property should contain the level the selected entry is on
*/
selectionGroupingProperty?: string;
/**
* Auto expand all rows
*/
autoExpand?: boolean;
/**
* Count of levels to be expanded
*/
expansionDepth?: number;
/**
* Clears data in list while new data is loading
*/
clearDataOnNewLink?: boolean;
/**
* adress used to parse the attributes when copy pasting from excel
* If this is unset copy-paste will be disabled
*/
excelCopyParseUrl?: string;
/**
* Filtering strategy used in free text search. available strategies are "default", "parents-only"
*/
filteringStrategy?: "default" | "parents-only";
}
export interface DataListHierachicalConfiguration
extends DataListConfiguration {
/**
* List of child tables configurations
*/
islands?: DataListConfiguration[];
/**
* Icon shown when row is collaped
*/
rowCollapsedIcon?: string;
/**
* Icon shown when row is expanded
*/
rowExpandedIcon?: string;
/**
* Removes margin, padding and header of islands to mimic CSS of data-list-tree @default(false)
*/
removeIslandCss?: boolean;
/**
* Tooltip shown for expander icon
*/
expanderTooltip?: string;
/**
* Shows/Hides table @default(false)
*/
hideTable?: boolean;
}
export interface SortingExpression {
/**
* Sorting direction, use "asc" for ascending sorting or "desc" for descending sorting
*/
direction?: string;
/**
* Column "field" value that should be used for grouping
*/
field?: string;
}
export interface GroupingExpression extends SortingExpression {
/**
* Sorting strategy
*/
strategy?: string;
}
export interface UriParams {
timestamp?: number;
template?: any;
offset?: number;
limit?: number;
sort?: string;
filter?: string[];
[key: string]: any;
}
export interface IslandSelectionParams {
[island: string]: { [parent: string]: SelectionParams };
}
export interface SelectionParams {
count?: number;
rows?: any[];
rowData?: any[];
cacheId?: string;
children?: IslandSelectionParams;
treeSelections?: any;
}
export const EMPTY_SELECTION: SelectionParams = {
count: 0,
rows: [],
rowData: [],
children: {},
};
export interface SelectFilterParams {
/**
* List of properties keys used to filter the attributes in the "Attributes" dialog
*/
filterAttribute?: string | string[];
/**
* Filter selection dropdown placeholder
*/
placeholder?: string;
/**
* Url used to get the options to be shown in the filter selection dropdown
*/
href?: string;
/**
* Property key used to get data from response
*/
dataType?: string;
/**
* List of options to be shown in the filter selection dropdown
*/
options?: any[];
}
export interface DataListStatus {
//The field that changed last, will be null if this status is send after init (restored from local-storage)
lastChange: string;
//The currently selected attributes - if any
attributes: Attribute[];
//The current dataType
dataType: string;
}