/** * Defines the type of default actions available */ export declare enum MatrixDefaultActions { /** * Selects all the cells for a given row */ SelectAll = 0, /** * Selects the remaining unselected cells for a given row */ SelectRemaining = 1, /** * Unselects the selected cells for a given row */ UnselectAll = 2, /** * Indicative of a custom action provided by the external component */ Custom = 3 } /** * Defines the possible types of selection restriction that can be applied to cells */ export declare enum MatrixCellSelectionRestriction { /** * No cell selection restriction */ None = 0, /** * Defines that there must be only one cell selection per column */ OnePerColumn = 1, /** * Defines that there must be only one selected cell in the entire matrix */ Solitaire = 2, /** * Defines that only colored cells may be clicked, and only one cell can be clicked */ SolitaireColored = 3 } /** * Interface used to define the columns to populate the matrix */ export interface MatrixColumnGroup { /** * Title of the column group */ title?: string; /** * Each column in this column group */ columns: string[]; } /** * Interface used to define the rows to populate the matrix */ export interface MatrixRowGroup { /** * The id of the matrix row group */ id?: string; /** * Row label */ label?: string; /** * Additional text for the label * Displayed in lower font size and has an opacity of 50% */ additionalLabel?: string; /** * If defined, this row becomes a collapsible row without cells, * and each child row will be a normal row */ childrenRows?: MatrixRowGroup[]; /** * Defines if the collapsible row should be pre-expanded */ expanded?: boolean; /** * If defined, indicates that its a row group to be collapsible */ collapsible?: boolean; /** * Property for ngTemplateOutletContext */ context?: any; /** * Selected row */ selected?: boolean; /** * Context label */ contextLabel?: any; } /** * Defines which content can be applied to a single cell */ export interface MatrixCellsContent { /** * The id of the row group */ rowGroupId: string; /** * The child row index */ x: number; /** * The column index */ y: number; /** * If defined, the cell will be pre-selected */ selected?: boolean; /** * If defined, the cell will be colored with a color that is matched with the available colors by the matrix */ color?: number | string; } /** * Interface to populate additional actions for the matrix rows */ export interface MatrixRowAdditionalAction { /** * The action's title */ title: string; /** * If true, the action will be disabled */ disabled?: boolean; /** * If defined, the action will be presented along with an icon */ iconClass?: string; } /** * Interface to populate additional context in the matrix's footer. * Displayed right beneath the matrix body */ export interface MatrixFooterContent { /** * Footer content message */ message?: string; /** * Footer content action */ action?: string; } /** * Interface that defines the matrix cell */ export interface MatrixCell { /** * The cell selection status */ selected?: boolean; /** * The cell color */ color?: string; /** * The text color */ textColor?: string; } /** * Interface that defines the structure of the data sent as an output when matrix content change */ export interface MatrixContentChangeArgs { /** * The row groups of the matrix */ rowGroups: { /** * The row group main row (the collapsible row) */ mainRow: MatrixRowGroup; /** * The child rows present in the matrix */ childrenRows: { /** * The matrix row that this child row represents */ row: MatrixRowGroup; /** * Each of the cells of the matrix row that this child row represents */ cells: MatrixCell[]; }[]; }[]; } /** * Interface that defines the structure of the data sent as an output when a action is clicked on a row */ export interface MatrixRowOptionsClickArgs { /** * Indicates the row */ row: MatrixRowGroup; /** * The action that was clicked */ action: string; } /** * Interface that defines the structure of the data sent as an output when a new row selection happens */ export interface MatrixRowSelectionArgs { /** * The main row that the cell belongs too */ mainRow: MatrixRowGroup; /** * The child row that the cell belongs too */ row: MatrixRowGroup; } /** * Interface that defines the structure of the data sent as an output when a new cell selection happens */ export interface MatrixCellSelectionArgs { /** * The main row that the cell belongs too */ mainRow: MatrixRowGroup; /** * The child row that the cell belongs too */ row: MatrixRowGroup; /** * The column */ column: string; /** * The cell selection status */ selected: boolean; /** * The color of the cell */ color: string; } /** * Interface that defines the structure of the data sent as an output when a new cell selection happens */ export interface MatrixCellHoverArgs { /** * The main row that the cell belongs too */ rowGroup: MatrixRowGroup; /** * The child row that the cell belongs too */ row: MatrixRowGroup; /** * The column */ column: string; /** * Mouse Hover Event */ mouseEvent: MouseEvent; } /** * Interface that defines the internal matrix content */ export interface MatrixContentInternal { /** * Array of columns, displayed in an absolute configuration (without splitted by groups) */ columnsTitle: string[]; /** * Matrix model */ rowGroups: { /** * The id of the row group */ id: string; /** * The main row of the matrix row group */ mainRow: MatrixRowGroup; /** * The row group child rows */ childrenRows: { /** * The row of the child row */ row: MatrixRowGroup; /** * The cells of the child row with their content */ cells: MatrixCell[]; }[]; }[]; }