@kui-shell/core
Version:
An Electron-based shell for cloud-native development
76 lines (75 loc) • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TableStyle = exports.Table = exports.Row = exports.Icon = exports.Cell = void 0;
exports.isTable = isTable;
exports.isTableWithCount = isTableWithCount;
exports.isTableWithTimestamp = isTableWithTimestamp;
exports.sameRow = sameRow;
/*
* Copyright 2019 The Kubernetes Authors
*
* 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.
*/
class Row {
constructor(row) {
Object.assign(this, row);
}
}
exports.Row = Row;
class Cell {
constructor(cell) {
Object.assign(this, cell);
}
}
exports.Cell = Cell;
var TableStyle;
exports.TableStyle = TableStyle;
(function (TableStyle) {
TableStyle[TableStyle["Light"] = 0] = "Light";
TableStyle[TableStyle["Medium"] = 1] = "Medium";
TableStyle[TableStyle["Heavy"] = 2] = "Heavy";
})(TableStyle || (exports.TableStyle = TableStyle = {}));
class Table {
constructor(table) {
Object.assign(this, table);
}
}
exports.Table = Table;
function isTableWithTimestamp(table) {
return table.startColumnIdx >= 0 && table.completeColumnIdx >= 0;
}
function isTableWithCount(table) {
return table.body.length >= 1 && table.body.findIndex(row => row.attributes && row.attributes.findIndex(_ => _.key && /^count$/i.test(_.key)) !== -1) !== -1;
}
function isTable(model) {
return model !== undefined && (model instanceof Table || model.body !== undefined && Array.isArray(model.body));
}
/** Are the two Rows the same? */
function sameRow(A, B) {
if (!A || !B) {
// if either one or the other is not defined, then they are different
return false;
}
return A.key === B.key && A.rowKey === B.rowKey && A.name === B.name && A.attributes.length === B.attributes.length && A.attributes.every((a, cidx) => {
const b = B.attributes[cidx];
return a.key === b.key && a.value === b.value && a.css === b.css && a.outerCSS === b.outerCSS && a.tag === b.tag;
});
}
class Icon {
constructor(icon) {
Object.assign(this, icon);
}
}
exports.Icon = Icon;