@aappddeevv/dynamics-client-ui
Version:
## What is it? A library to help you create great dynamics applications.
39 lines • 1.59 kB
JavaScript
;
/** Helpers for working with components, layout, etc. */
Object.defineProperty(exports, "__esModule", { value: true });
const R = require("ramda");
/**
* Columns have hierarchical structure.
* columns: [ index: number(optional),
* props: { className, style: {}}, // apply to headers and cells
* cells: { props: { className, style: { } } // only for cells
* ]
*/
/** Combine content in column definitions. */
exports.processColumns = (columns) => {
if (!columns)
return [];
return columns.map((c, idx) => {
const style = Object.assign({}, R.path(["props", "style"], c) || {}, R.path(["cells", "props", "style"], c) || {});
const className = Object.assign({}, R.path(["props", "className"], c) || {}, R.path(["cells", "props", "className"], c) || {});
return { column: c.index || idx, style, className };
});
};
// columns: [ index: number(optional), props: { style: {}}, cells: { props: { styles: {} } }]
exports.getColumnStyles = (columns) => {
return exports.processColumns(columns).reduce((out, s) => { out[s.column] = s.style; return out; }, {});
};
/** Combine classNames info for each column. */
exports.getClassNames = (columns) => {
return exports.processColumns(columns).reduce((out, s) => { out[s.column] = s.className; return out; }, {});
};
exports.ToolColumn = {
props: {
className: ["toolColumn"],
style: {
width: "auto"
}
}
};
exports.addToolColumn = (columns) => columns.push(exports.ToolColumn);
//# sourceMappingURL=Helpers.js.map