carbon-components-angular
Version:
Next generation components
52 lines • 9.16 kB
JavaScript
export class TableItem {
/**
* Creates an instance of TableItem.
*/
constructor(rawData) {
/**
* The number of rows to span
*/
this.rowSpan = 1;
/**
* The number of columns to span
*/
this.colSpan = 1;
/**
* When true, this row includes an AI label / decorator in the first column and row-level AI styles apply
* (with `cds-table` `[withRowAILabels]="true"`).
*/
this.hasAILabelDecorator = false;
// defaults so we dont leave things empty
const defaults = {
data: ""
};
// fill our object with provided props, and fallback to defaults
const data = Object.assign({}, defaults, rawData);
for (const property of Object.getOwnPropertyNames(data)) {
if (data.hasOwnProperty(property)) {
this[property] = data[property];
}
}
}
get title() {
if (typeof this._title === "string") {
return this._title;
}
if (!this.data) {
return "";
}
if (typeof this.data === "string") {
return this.data;
}
if (this.data.toString &&
this.data.constructor !== ({}).constructor) {
return this.data.toString();
}
// data can’t be reasonably converted to an end user readable string
return "";
}
set title(title) {
this._title = title;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaXRlbS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1pdGVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxTQUFTO0lBaUpyQjs7T0FFRztJQUNILFlBQVksT0FBYTtRQXREekI7O1dBRUc7UUFDSCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRVo7O1dBRUc7UUFDSCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBT1o7OztXQUdHO1FBQ0gsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBb0MzQix5Q0FBeUM7UUFDekMsTUFBTSxRQUFRLEdBQUc7WUFDaEIsSUFBSSxFQUFFLEVBQUU7U0FDUixDQUFDO1FBQ0YsZ0VBQWdFO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRCxLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4RCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDaEM7U0FDRDtJQUNGLENBQUM7SUE3Q0QsSUFBSSxLQUFLO1FBQ1IsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNuQjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDVjtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDakI7UUFFRCxJQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFDekM7WUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDNUI7UUFFRCxvRUFBb0U7UUFDcEUsT0FBTyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FvQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRUZW1wbGF0ZVJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY2xhc3MgVGFibGVJdGVtIHtcblx0LyoqXG5cdCAqIERhdGEgZm9yIHRoZSB0YWJsZSBpdGVtLlxuXHQgKi9cblx0ZGF0YTogYW55O1xuXG5cdC8qKlxuXHQgKiBEYXRhIGZvciB0aGUgZXhwYW5kZWQgcGFydCBvZiB0aGUgcm93LlxuXHQgKlxuXHQgKiBZb3Ugb25seSBuZWVkIHRvIHNldCBpdCBmb3IgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIHJvdy5cblx0ICpcblx0ICogU2VlIGBleHBhbmRBc1RhYmxlYCBkb2N1bWVudGF0aW9uIGlmIHlvdSBuZWVkIHRvIHRoZSB0YWJsZSB0byBleHBhbmQgdG8gYWRkaXRpb25hbFxuXHQgKiB0YWJsZSByb3dzLlxuXHQgKi9cblx0ZXhwYW5kZWREYXRhOiBhbnk7XG5cblx0LyoqXG5cdCAqIFVzZWQgdG8gZGlzcGxheSBkYXRhIGluIGEgZGVzaXJlZCB3YXkuXG5cdCAqXG5cdCAqIElmIG5vdCBwcm92aWRlZCwgZGlzcGxheXMgZGF0YSBhcyBhIHNpbXBsZSBzdHJpbmcuXG5cdCAqXG5cdCAqIFVzYWdlOlxuXHQgKlxuXHQgKiBJbiBhIGNvbXBvbmVudCB3aGVyZSB5b3UncmUgdXNpbmcgdGhlIHRhYmxlIGNyZWF0ZSBhIHRlbXBsYXRlIGxpa2U6XG5cdCAqXG5cdCAqIGBgYGh0bWxcblx0ICogPG5nLXRlbXBsYXRlICNjdXN0b21JdGVtVGVtcGxhdGUgbGV0LWRhdGE9XCJkYXRhXCI+XG5cdCAqIFx0PGk+PGEgW3JvdXRlckxpbmtdPVwiZGF0YS5saW5rXCI+e3tkYXRhLm5hbWV9fTwvYT48L2k+XG5cdCAqIDwvbmctdGVtcGxhdGU+XG5cdCAqIGBgYFxuXHQgKiB3aGVyZSB3ZSBhc3N1bWUgeW91ciBkYXRhIGNvbnRhaW5zIGBsaW5rYCBhbmQgYG5hbWVgLiBgbGV0LWRhdGE9XCJkYXRhXCJgIGlzXG5cdCAqIG5lY2Vzc2FyeSBmb3IgeW91IHRvIGJlIGFibGUgdG8gYWNjZXNzIGl0ZW0ncyBkYXRhIGluIHRoZSB0ZW1wbGF0ZS5cblx0ICpcblx0ICogQ3JlYXRlIGBWaWV3Q2hpbGRgIHByb3BlcnR5IHdpdGg6XG5cdCAqXG5cdCAqIGBgYHR5cGVzY3JpcHRcblx0ICogKGF0KVZpZXdDaGlsZChcImN1c3RvbUl0ZW1UZW1wbGF0ZVwiKVxuXHQgKiBwcm90ZWN0ZWQgY3VzdG9tSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQgKiBgYGBcblx0ICpcblx0ICogU2V0IHRoZSB0ZW1wbGF0ZSB0byB0aGUgdGFibGUgaXRlbSwgZm9yIGV4YW1wbGU6XG5cdCAqXG5cdCAqIGBgYHR5cGVzY3JpcHRcblx0ICogdGhpcy5tb2RlbC5kYXRhID0gW1xuXHQgKiBcdFtuZXcgVGFibGVJdGVtKHtkYXRhOiB7bmFtZTogXCJDdXN0b20gaXRlbVwiLCBsaW5rOiBcIi90YWJsZVwifSwgdGVtcGxhdGU6IHRoaXMuY3VzdG9tSXRlbVRlbXBsYXRlfSldXG5cdCAqIF07XG5cdCAqIGBgYFxuXHQgKi9cblx0dGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0LyoqXG5cdCAqIFRlbXBsYXRlIGZvciByZW5kZXJpbmcgYGV4cGFuZGVkRGF0YWBcblx0ICpcblx0ICogWW91IG9ubHkgbmVlZCB0byBzZXQgaXQgZm9yIHRoZSBmaXJzdCBpdGVtIGluIHRoZSByb3cuXG5cdCAqXG5cdCAqL1xuXHRleHBhbmRlZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG5cdC8qKlxuXHQgKiBTZXR0aW5nIHRoaXMgdG8gYHRydWVgIG1ha2VzIHRhYmxlIGludGVycHJldCBgZXhwYW5kZWREYXRhYCBhcyBhZGRpdGlvbmFsIHJvd3MgdG8gaW5zZXJ0IGluIHBsYWNlXG5cdCAqIGZvciBleHBhbmRlZCBkYXRhLiBgZXhwYW5kZWRUZW1wbGF0ZWAgaXMgdGhlbiBpZ25vcmVkLlxuXHQgKlxuXHQgKiBZb3UgY2FuIGFwcGx5IHRoZSB0ZW1wbGF0ZSBmb3IgaW5kaXZpZHVhbCBjZWxscyBhcyB1c3VhbC5cblx0ICpcblx0ICogRXhhbXBsZSBtb2RlbCBkYXRhOlxuXHQgKlxuXHQgKiBgYGB0eXBlc2NyaXB0XG5cdCAqIHRoaXMubW9kZWwuZGF0YSA9IFtcblx0ICogXHRbbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwiTmFtZSA0XCIgfSksIG5ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcInR3ZXJcIiB9KV0sIC8vIHJlZ3VsYXIgcm93XG5cdCAqIFx0W1xuXHQgKiBcdFx0bmV3IFRhYmxlSXRlbSh7XG5cdCAqIFx0XHRcdGRhdGE6IFwiTmFtZSAzLjFcIixcblx0ICogXHRcdFx0Ly8gYGV4cGFuZGVkRGF0YWAgbWltaWNzIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3Qgb2YgdGhlIHRhYmxlXG5cdCAqIFx0XHRcdGV4cGFuZGVkRGF0YTogW1xuXHQgKiBcdFx0XHRcdFtcblx0ICogXHRcdFx0XHRcdG5ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcIk1vcmUgbmFtZXNcIiwgZXhwYW5kZWREYXRhOiBcIk5vIHRlbXBsYXRlXCIgfSksXG5cdCAqIFx0XHRcdFx0XHRuZXcgVGFibGVJdGVtKHsgZGF0YTogeyBuYW1lOiBcIk1vcmV5XCIsIGxpbms6IFwiI1wiIH0sIHRlbXBsYXRlOiB0aGlzLmN1c3RvbVRhYmxlSXRlbVRlbXBsYXRlIH0pXG5cdCAqIFx0XHRcdFx0XSxcblx0ICogXHRcdFx0XHRbXG5cdCAqIFx0XHRcdFx0XHRuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJDb3JlIG5hbWVzXCIsIGV4cGFuZGVkRGF0YTogXCJObyB0ZW1wbGF0ZVwiIH0pLFxuXHQgKiBcdFx0XHRcdFx0bmV3IFRhYmxlSXRlbSh7IGRhdGE6IHsgbmFtZTogXCJDb3JleVwiLCBsaW5rOiBcIiNcIiB9LCB0ZW1wbGF0ZTogdGhpcy5jdXN0b21UYWJsZUl0ZW1UZW1wbGF0ZSB9KVxuXHQgKiBcdFx0XHRcdF1cblx0ICogXHRcdFx0XSxcblx0ICogXHRcdFx0Ly8gYGV4cGFuZEFzVGFibGVgIHRlbGxzIHRoZSB0YWJsZSB0byBpbnRlcnByZXQgYGV4cGFuZGVkRGF0YWAgYXMgdGFibGUgZGF0YVxuXHQgKiBcdFx0XHRleHBhbmRBc1RhYmxlOiB0cnVlXG5cdCAqIFx0XHR9KSxcblx0ICogXHRcdG5ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcInN3ZXJcIiB9KVxuXHQgKiBcdF0sXG5cdCAqIFx0W25ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcIk5hbWUgN1wiIH0pLCBuZXcgVGFibGVJdGVtKHtkYXRhOiBcInR3ZXJcIn0pXSAvLyByZWd1bGFyIHJvd1xuXHQgKiBdO1xuXHQgKiBgYGBcblx0ICovXG5cdGV4cGFuZEFzVGFibGU6IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBUaGUgbnVtYmVyIG9mIHJvd3MgdG8gc3BhblxuXHQgKi9cblx0cm93U3BhbiA9IDE7XG5cblx0LyoqXG5cdCAqIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBzcGFuXG5cdCAqL1xuXHRjb2xTcGFuID0gMTtcblxuXHQvKipcblx0ICogT3B0aW9uYWwgZXh0cmEgY2xhc3NlcyBvbiB0aGlzIGNlbGzigJlzIGB0ZGAgKG1lcmdlZCB3aXRoIHRoZSBjb2x1bW4gaGVhZGVyIGBjbGFzc05hbWVgKS5cblx0ICovXG5cdGNlbGxDbGFzc05hbWU6IHN0cmluZztcblxuXHQvKipcblx0ICogV2hlbiB0cnVlLCB0aGlzIHJvdyBpbmNsdWRlcyBhbiBBSSBsYWJlbCAvIGRlY29yYXRvciBpbiB0aGUgZmlyc3QgY29sdW1uIGFuZCByb3ctbGV2ZWwgQUkgc3R5bGVzIGFwcGx5XG5cdCAqICh3aXRoIGBjZHMtdGFibGVgIGBbd2l0aFJvd0FJTGFiZWxzXT1cInRydWVcImApLlxuXHQgKi9cblx0aGFzQUlMYWJlbERlY29yYXRvciA9IGZhbHNlO1xuXG5cdGdldCB0aXRsZSgpIHtcblx0XHRpZiAodHlwZW9mIHRoaXMuX3RpdGxlID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fdGl0bGU7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmRhdGEpIHtcblx0XHRcdHJldHVybiBcIlwiO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2YgdGhpcy5kYXRhID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5kYXRhO1xuXHRcdH1cblxuXHRcdGlmIChcblx0XHRcdHRoaXMuZGF0YS50b1N0cmluZyAmJlxuXHRcdFx0dGhpcy5kYXRhLmNvbnN0cnVjdG9yICE9PSAoe30pLmNvbnN0cnVjdG9yXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5kYXRhLnRvU3RyaW5nKCk7XG5cdFx0fVxuXG5cdFx0Ly8gZGF0YSBjYW7igJl0IGJlIHJlYXNvbmFibHkgY29udmVydGVkIHRvIGFuIGVuZCB1c2VyIHJlYWRhYmxlIHN0cmluZ1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cblx0c2V0IHRpdGxlKHRpdGxlKSB7XG5cdFx0dGhpcy5fdGl0bGUgPSB0aXRsZTtcblx0fVxuXG5cdHByaXZhdGUgX3RpdGxlOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgVGFibGVJdGVtLlxuXHQgKi9cblx0Y29uc3RydWN0b3IocmF3RGF0YT86IGFueSkge1xuXHRcdC8vIGRlZmF1bHRzIHNvIHdlIGRvbnQgbGVhdmUgdGhpbmdzIGVtcHR5XG5cdFx0Y29uc3QgZGVmYXVsdHMgPSB7XG5cdFx0XHRkYXRhOiBcIlwiXG5cdFx0fTtcblx0XHQvLyBmaWxsIG91ciBvYmplY3Qgd2l0aCBwcm92aWRlZCBwcm9wcywgYW5kIGZhbGxiYWNrIHRvIGRlZmF1bHRzXG5cdFx0Y29uc3QgZGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRzLCByYXdEYXRhKTtcblx0XHRmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGRhdGEpKSB7XG5cdFx0XHRpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcblx0XHRcdFx0dGhpc1twcm9wZXJ0eV0gPSBkYXRhW3Byb3BlcnR5XTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==