@platform/ui.datagrid
Version:
Isolated tabular DataGrid.
44 lines (43 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = void 0;
var operators_1 = require("rxjs/operators");
var common_1 = require("../common");
var STYLE = ['BOLD', 'ITALIC', 'UNDERLINE'];
function init(args) {
var grid = args.grid, command$ = args.command$;
var style$ = command$.pipe((0, operators_1.filter)(function (e) { return STYLE.includes(e.command); }), (0, operators_1.filter)(function (e) { return !e.isCancelled; }));
style$.subscribe(function (e) {
var command = e.command;
var field = toField(command);
var values = (0, common_1.toSelectionValues)({ cells: grid.data.cells, selection: e.selection });
var defaults = common_1.DEFAULT.CELL.PROPS.style;
var changes = Object.keys(values).reduce(function (acc, key) {
var cell = grid.cell(key);
var value = cell.data.value;
var error = cell.data.error;
var props = common_1.util.cell.value.toggleCellProp({
defaults: defaults,
props: cell.data.props,
section: 'style',
field: field,
});
acc[key] = { value: value, props: props, error: error };
return acc;
}, {});
grid.changeCells(changes, { source: 'PROPS/style' });
});
}
exports.init = init;
var toField = function (command) {
switch (command) {
case 'BOLD':
return 'bold';
case 'ITALIC':
return 'italic';
case 'UNDERLINE':
return 'underline';
default:
throw new Error("Command '" + command + "' not supported");
}
};