File

src/app/shared/widgets/interfaces/list.interfaces.ts

Index

Properties

Indexable

[key: string]: any

Key of the configurations entry

Properties

attributesDataType
attributesDataType: string
Type : string
Optional

Property key needed to get data from the "attributeUrl" response

attributeUrl
attributeUrl: string
Type : string
Optional

Url used to get data for "Attributes" dialog

availableDataTypes
availableDataTypes: string[]
Type : string[]
Optional

List of dataTypes option, dataTypes selection dropdown, will only be shown when dataTypeMode is set to "choose" @default([])

cellSelectable
cellSelectable: boolean
Type : boolean
Optional

Enables/Disables rows selection when cell is clicked, can only be used when "rowSelectable" property is disabled @default(true)

clearSortingAndFilteringOnReset
clearSortingAndFilteringOnReset: boolean
Type : boolean
Optional

Enables/Disables clearing the currently applied filters and sorting state when reset is triggered @default(true)

columns
columns: Column[]
Type : Column[]
Optional

List of static columns to be rendered in data-list

columnTemplates
columnTemplates: literal type
Type : literal type
Optional

The templates for dynamically added columns

countDescription
countDescription: string
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: string
Type : string
Optional

Property key, needed to get data from response

dataTypeColumns
dataTypeColumns: literal type
Type : literal type
Optional

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

density
density: string
Type : string
Optional

Set display density for data-list, available options are: "comfortable", "cosy" and "compact" @default("comfortable")

disableContextMenu
disableContextMenu: boolean
Type : boolean
Optional

Disables/Enables context menu button action @default(false)

dynamicColumnLink
dynamicColumnLink: string
Type : string
Optional

Url used to get dynamic columns on data-list initialization, should be embedded using type "attributes" in response

dynamicColumnsFromData
dynamicColumnsFromData: boolean
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)

dynamicColumnsMode
dynamicColumnsMode: "concat" | "unique"
Type : "concat" | "unique"
Optional

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

dynamicTableHeight
dynamicTableHeight: any
Type : any
Optional

Enables/Disables changing table height dynamically

dynamicTableHeightAdditionalHeight
dynamicTableHeightAdditionalHeight: string
Type : string
Optional

Additional height to adjust the data-list, height should be in px (e.g "15px")

dynamicTableHeightAdditionalModifiers
dynamicTableHeightAdditionalModifiers: string[]
Type : string[]
Optional

Additional modifiers used to adjust the data-list height. The modifiers must be configured and added to body in _positions.scss

dynamicTitle
dynamicTitle: boolean
Type : boolean
Optional

Enables/Disables adding a prefix to the data-list title dynamically @default(false)

eagerLimit
eagerLimit: number
Type : number
Optional

Limit for number rows loaded when using eager loading mode, if not set it gets "ALL" by default.

emitSelectedItems
emitSelectedItems: boolean
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: string
Type : string
Optional

Adress for the copy paste parsing to use, @default(/api/core/attributes/parse?include=attribute.source&include=attribute.validation)

excelCopyPasteEverywhere
excelCopyPasteEverywhere: boolean
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: string
Type : string
Optional

Url used to export data-list data

filterMode
filterMode: string
Type : string
Optional

Sets data-list filter mode, available options are: "quickFilter", "excelStyleFilter" or "inlineFilter" @default("excelStyleFilter")

focusFreeTextSearch
focusFreeTextSearch: boolean
Type : boolean
Optional

Set autofocus on the field

footer
footer: any
Type : any
Optional

Data-list footer configuration

frameHeight
frameHeight: number
Type : number
Optional

Height specified for the frame when in tile view mode, used to adjust the tile height @default(270)

getNextPageOnLazyLoad
getNextPageOnLazyLoad: boolean
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: boolean
Type : boolean
Optional

Shows/Hides data-list filter field @default(true)

groupingEnabled
groupingEnabled: boolean
Type : boolean
Optional

Enables/Disables grouping of data @default(true)

groupingExpressions
groupingExpressions: GroupingExpression[]
Type : GroupingExpression[]
Optional

List of grouping configurations used to group the data based on a column or a combination of columns

handleViewModeInBackend
handleViewModeInBackend: boolean
Type : boolean
Optional

Enables/Disables handling view mode change using the backend @default(false)

header
header: string
Type : string
Optional

CSS class selector for header component @default("primary")

headerClasses
headerClasses: literal type
Type : literal type
Optional

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"

headerComponents
headerComponents: any
Type : any
Optional

Add widgets to data-list header

headers
headers: DataListHeaderGroup[]
Type : DataListHeaderGroup[]
Optional

Deprecated: feature is now removed. List of data-list groups headers

highlightReadOnly
highlightReadOnly: boolean
Type : boolean
Optional

Enables/Disables highlighting "readonly" fields with gray background and and overlayed icon @default(true)

identifier
identifier: string
Type : string
Optional

Data-list identifier

ignoreSeconds
ignoreSeconds: boolean
Type : boolean
Optional

Enables/Disables showing seconds for "date" or "datetime" values @default(false)

infoText
infoText: string
Type : string
Optional

Adds the text in the help icon

infoTitle
infoTitle: string
Type : string
Optional

Adds the title to the text provided by the help icon

initialDataType
initialDataType: string
Type : string
Optional

The dataType to be selected initially by default, when there is no previous selection stored

isCollapsible
isCollapsible: boolean
Type : boolean
Optional

Deprecated: feature is now removed. Enables/Disables expanding/collapsing data-list panel vertically @default(false)

isSideCollapsible
isSideCollapsible: boolean
Type : boolean
Optional

Deprecated: feature is now removed. Enables/Disables expanding/collapsing data-list panel horizontally @default(false)

languageSelection
languageSelection: boolean
Type : boolean
Optional

Shows/Hides language selection dropdown @default(false)

languageSelectionUrl
languageSelectionUrl: string
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: string
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: ChildrenLink
Type : ChildrenLink
Optional

Hierachical data-list property, needed to check the children's link source

loadingMode
loadingMode: string
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: string
Type : string
Optional

The local storage entry identifier, needed to save currently shown attributes

maintenanceLevelLink
maintenanceLevelLink: string
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: boolean
Type : boolean
Optional

Shows/Hides maintenance levels selection dropdown @default(false)

metadataKeys
metadataKeys: string[]
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: boolean
Type : boolean
Optional

Enables/Disables overriding the row click event redirection in tile mode and emit the row data instead @default(false)

pageLimitPerScroll
pageLimitPerScroll: number
Type : number
Optional

Limit for number rows loaded on scroll action when using lazy loading mode

primaryKey
primaryKey: string
Type : string
Optional

Unique property key, needed to differentiate between data-list rows

productNumberField
productNumberField: string
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: string
Type : string
Optional

The url used to fetch/update attribute-profiles, if null no profile selection/update will be enabled

reloadOnDataTypeChange
reloadOnDataTypeChange: boolean
Type : boolean
Optional

Enables/Disables relaoding the data-list when dataType is changed @default(true)

reloadWithUnsavedChanges
reloadWithUnsavedChanges: boolean
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: boolean
Type : boolean
Optional

Hides/Shows reset table state button, used to clear currently applied filters and sorting state @default(false)

renderCount
renderCount: boolean
Type : boolean
Optional

Enables/Disables rendering the rows count after the data-list title @default(true)

restrictAttributesToCategoryOnAttributeDialogOpen
restrictAttributesToCategoryOnAttributeDialogOpen: boolean
Type : boolean
Optional

Enables/Disables running the "restrict to category" action when the "Attributes" dialog is opened @default(false)

rowEditable
rowEditable: boolean
Type : boolean
Optional

Enables/Disables row editting mode, otherwise cell editting mode is used @default(false)

rowPinningEnabled
rowPinningEnabled: boolean
Type : boolean
Optional

Enables/Disables row pinning @default(false)

rowSelectable
rowSelectable: boolean
Type : boolean
Optional

Enables/Disables rows selection @default(true)

rowSelectionMode
rowSelectionMode: string
Type : string
Optional

Sets rows selection mode, possible values "single" or "multiple" can only be used when "rowSelectable" property is enabled @default("multiple")

selectAttributeAdditionalProperties
selectAttributeAdditionalProperties: string[]
Type : string[]
Optional

List of property keys used to set additional information text for the attributes in the "Attributes" dialog @default(["type", "group"])

selectAttributeEmptySelection
selectAttributeEmptySelection: Attribute[]
Default value : (null)
Type : Attribute[]
Optional

Fallback to use, when the user explicitly removes all attributes from the dialog

selectAttributeMaxAttributes
selectAttributeMaxAttributes: number
Default value : (100)
Type : number
Optional

Configures the maximum number of selectable attributes

selectFilterParams
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: boolean
Type : boolean
Optional

Hierachical data-list property, shows/hides "Attributes" dialog open button for children data-lists @default(false)

showRestrictToCategoryButton
showRestrictToCategoryButton: boolean
Type : boolean
Optional

Shows/Hides the restrict to category button in the select-attributes dialog @default(false)

showTableOnLinkInput
showTableOnLinkInput: boolean
Type : boolean
Optional

Shows/Hides data-list when "uri" to load the data is changed @default(true)

sortBy
sortBy: SortBy[]
Type : SortBy[]
Optional

List of column sorting configurations to be used for sorting the data

sortingExpressions
sortingExpressions: SortingExpression[]
Type : SortingExpression[]
Optional

List of sorting configurations used to sort the data-list, using a single column or a combination of columns

subheader
subheader: string
Type : string
Optional

Additional subheader for the data-list

tableHeight
tableHeight: number
Type : number
Optional

Sets data-list height

tableHeightRelativeToRows
tableHeightRelativeToRows: boolean
Type : boolean
Optional

Enables/Disables adjusting data-list height relative to the number of rows @default(false)

tableHeightVisibleRows
tableHeightVisibleRows: number
Type : number
Optional

Sets the table height by configuring the number of visible rows

tableWidth
tableWidth: any
Type : any
Optional

Sets table width @default("100%")

tileIdentifierField
tileIdentifierField: string
Type : string
Optional

Name of the field that shows in the tile view as the tile identifier

tileRedirectLink
tileRedirectLink: string
Type : string
Optional

Link used for redirection when the row is clicked in tile mode

title
title: string
Type : string
Optional

Data-list title

toggleButtonLabel
toggleButtonLabel: string
Type : string
Optional

Label used for the mode toggle-slider

totalWithSubheader
totalWithSubheader: boolean
Type : boolean
Optional

Shows the rows count with the subheader, only used when subheader property is set @default(false)

useIgxExport
useIgxExport: any
Type : any
Optional

Enables/Disables using the igx-grid export functionality

viewModeOptions
viewModeOptions: ViewModeOption[]
Type : ViewModeOption[]
Optional

List of options to be shown in the view mode selection dropdown

viewModeSelection
viewModeSelection: boolean
Type : boolean
Optional

Shows/Hides view mode selection dropdown @default(false)

wikiLink
wikiLink: string
Type : string
Optional

Adds the link to the wiki page explaining the functionality of the content

withBorder
withBorder: boolean
Type : boolean
Optional

Shows/Hides the border of the panel frame @default(true)

withHeader
withHeader: boolean
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;
}

results matching ""

    No results matching ""