@aappddeevv/dynamics-client-ui
Version:
## What is it? A library to help you create great dynamics applications.
52 lines • 1.65 kB
JavaScript
;
/** CrmTable renderers for different data types. */
Object.defineProperty(exports, "__esModule", { value: true });
const moment = require("moment");
const R = require("ramda");
exports.defaultDateTimeFormat = "MM/DD/YY h:mm:ss a";
function dateRenderer(props) {
return {
id: props.id ? props.id : props.property,
property: props.property,
header: {
label: props.label
},
props: {
style: {
minWidth: props.width ? props.width : 100
}
},
cell: {
formatters: [
(dt) => dt ? moment(dt).format(props.dateFormat ?
props.dateFormat :
exports.defaultDateTimeFormat) : ""
]
}
};
}
exports.dateRenderer = dateRenderer;
/** Default used with renderers produced internally by the factory. */
const defaultRendererProps = {
width: 125
};
/**
* Based on a string type, obtain a renderer. Props may contain additional hints
* about which renderer to use. The returned object should be merged with other
* properties before being used in CrmTable. If you merge, use a deep/smart merge
* approach as Object.assign only does a toplevel merge.
*/
function columnFactory(dtype, props) {
const fprops = R.deepMergeRight(defaultRendererProps, props);
switch (dtype) {
case "string": {
return {};
}
case "date": {
return dateRenderer(fprops);
}
}
throw new Error(`Unknown type ${dtype}`);
}
exports.columnFactory = columnFactory;
//# sourceMappingURL=CrmTableRenderers.js.map