UNPKG

carbon-components-angular

Version:
127 lines (123 loc) 3.92 kB
/** * * carbon-angular v0.0.0 | table-item.class.d.ts * * Copyright 2014, 2025 IBM * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { TemplateRef } from "@angular/core"; export declare class TableItem { /** * Data for the table item. */ data: any; /** * Data for the expanded part of the row. * * You only need to set it for the first item in the row. * * See `expandAsTable` documentation if you need to the table to expand to additional * table rows. */ expandedData: any; /** * Used to display data in a desired way. * * If not provided, displays data as a simple string. * * Usage: * * In a component where you're using the table create a template like: * * ```html * <ng-template #customItemTemplate let-data="data"> * <i><a [routerLink]="data.link">{{data.name}}</a></i> * </ng-template> * ``` * where we assume your data contains `link` and `name`. `let-data="data"` is * necessary for you to be able to access item's data in the template. * * Create `ViewChild` property with: * * ```typescript * (at)ViewChild("customItemTemplate") * protected customItemTemplate: TemplateRef<any>; * ``` * * Set the template to the table item, for example: * * ```typescript * this.model.data = [ * [new TableItem({data: {name: "Custom item", link: "/table"}, template: this.customItemTemplate})] * ]; * ``` */ template: TemplateRef<any>; /** * Template for rendering `expandedData` * * You only need to set it for the first item in the row. * */ expandedTemplate: TemplateRef<any>; /** * Setting this to `true` makes table interpret `expandedData` as additional rows to insert in place * for expanded data. `expandedTemplate` is then ignored. * * You can apply the template for individual cells as usual. * * Example model data: * * ```typescript * this.model.data = [ * [new TableItem({ data: "Name 4" }), new TableItem({ data: "twer" })], // regular row * [ * new TableItem({ * data: "Name 3.1", * // `expandedData` mimics the format of the rest of the table * expandedData: [ * [ * new TableItem({ data: "More names", expandedData: "No template" }), * new TableItem({ data: { name: "Morey", link: "#" }, template: this.customTableItemTemplate }) * ], * [ * new TableItem({ data: "Core names", expandedData: "No template" }), * new TableItem({ data: { name: "Corey", link: "#" }, template: this.customTableItemTemplate }) * ] * ], * // `expandAsTable` tells the table to interpret `expandedData` as table data * expandAsTable: true * }), * new TableItem({ data: "swer" }) * ], * [new TableItem({ data: "Name 7" }), new TableItem({data: "twer"})] // regular row * ]; * ``` */ expandAsTable: false; /** * The number of rows to span */ rowSpan: number; /** * The number of columns to span */ colSpan: number; get title(): any; set title(title: any); private _title; /** * Creates an instance of TableItem. */ constructor(rawData?: any); }