import * as React from 'react';
import { PlainTable } from './PlainTable';
export var mapColumn = function (fld) {
    if (typeof fld === 'string') {
        return {
            asLink: true,
            name: fld,
        };
    }
    var column = fld;
    if (column.skipList === true)
        return undefined;
    return {
        asLink: true,
        name: column.name,
        render: column.listRenderer,
    };
};
export var createCrudList = function (cfg) {
    var columns = cfg.columns.map(mapColumn).filter(function (fld) { return fld !== undefined; });
    var ListControl = function (props) { return <PlainTable getData={function (p) { return cfg.listItems({ filter: '' }); }} columns={columns.slice()} args={{ params: {} }} onRowClickPath={function (item) { return "/" + cfg.path + "/" + item[cfg.key]; }} onNewClickPath={function () { return "/" + cfg.path + "/new"; }} showDeleteCommand={function (i) { return true; }} onConfirmDelete={cfg.deleteItemById && (function (item) { return cfg.deleteItemById(item[cfg.key]); })}/>; };
    return ListControl;
};
