UNPKG

chessground

Version:
45 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configure = void 0; const board_1 = require("./board"); const fen_1 = require("./fen"); function configure(state, config) { var _a; if ((_a = config.movable) === null || _a === void 0 ? void 0 : _a.dests) state.movable.dests = undefined; merge(state, config); if (config.fen) { state.pieces = fen_1.read(config.fen); state.drawable.shapes = []; } if (config.hasOwnProperty('check')) board_1.setCheck(state, config.check || false); if (config.hasOwnProperty('lastMove') && !config.lastMove) state.lastMove = undefined; else if (config.lastMove) state.lastMove = config.lastMove; if (state.selected) board_1.setSelected(state, state.selected); if (!state.animation.duration || state.animation.duration < 100) state.animation.enabled = false; if (!state.movable.rookCastle && state.movable.dests) { const rank = state.movable.color === 'white' ? '1' : '8', kingStartPos = ('e' + rank), dests = state.movable.dests.get(kingStartPos), king = state.pieces.get(kingStartPos); if (!dests || !king || king.role !== 'king') return; state.movable.dests.set(kingStartPos, dests.filter(d => !(d === 'a' + rank && dests.includes(('c' + rank))) && !(d === 'h' + rank && dests.includes(('g' + rank))))); } } exports.configure = configure; function merge(base, extend) { for (const key in extend) { if (isObject(base[key]) && isObject(extend[key])) merge(base[key], extend[key]); else base[key] = extend[key]; } } function isObject(o) { return typeof o === 'object'; } //# sourceMappingURL=config.js.map