kui-shell
Version:
This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool
55 lines • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const entity_1 = require("./entity");
const sidecar_1 = require("../webapp/views/sidecar");
const table_1 = require("../webapp/models/table");
const table_2 = require("../webapp/views/table");
function isMultiModalResponse(entity) {
const mmr = entity;
return (entity_1.isMetadataBearing(mmr) &&
mmr.modes &&
Array.isArray(mmr.modes) &&
mmr.modes[0] &&
mmr.modes[0].content !== undefined);
}
exports.isMultiModalResponse = isMultiModalResponse;
function formatContent(tab, mmr, content, contentType) {
if (sidecar_1.isCustomSpec(content)) {
return content;
}
else if (table_1.isTable(content) || table_1.isMultiTable(content)) {
return () => {
const dom1 = document.createElement('div');
const dom2 = document.createElement('div');
dom1.classList.add('scrollable', 'scrollable-auto');
dom2.classList.add('result-as-table', 'repl-result');
dom1.appendChild(dom2);
table_2.formatTable(tab, content, dom2);
sidecar_1.insertView(tab)(dom1);
};
}
else {
return { kind: mmr.kind, metadata: mmr.metadata, type: 'custom', content, contentType };
}
}
function show(tab, mmr) {
const modes = mmr.modes.map(_ => ({
mode: _.mode,
label: _.label,
direct: sidecar_1.isCustomSpec(_) ? _ : formatContent(tab, mmr, _.content, _.contentType),
defaultMode: _.defaultMode,
leaveBottomStripeAlone: true
}));
modes.forEach(_ => {
if (typeof _.direct !== 'function') {
_.direct.modes = modes;
}
});
if (!modes.find(_ => _.defaultMode)) {
modes[0].defaultMode = true;
}
const defaultMode = modes.find(_ => _.defaultMode) || modes[0];
return sidecar_1.showCustom(tab, defaultMode.direct);
}
exports.show = show;
//# sourceMappingURL=MultiModalResponse.js.map