UNPKG

chessground-haichess

Version:
59 lines 7.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Chessground = void 0; const api_1 = require("./api"); const config_1 = require("./config"); const state_1 = require("./state"); const wrap_1 = require("./wrap"); const events = require("./events"); const render_1 = require("./render"); const svg = require("./svg"); const util = require("./util"); function Chessground(element, config) { const maybeState = state_1.defaults(); config_1.configure(maybeState, config || {}); function redrawAll() { const prevUnbind = 'dom' in maybeState ? maybeState.dom.unbind : undefined; const relative = maybeState.viewOnly && !maybeState.drawable.visible, elements = wrap_1.renderWrap(element, maybeState, relative), bounds = util.memo(() => elements.board.getBoundingClientRect()), redrawNow = (skipSvg) => { render_1.render(state); if (!skipSvg && elements.svg) svg.renderSvg(state, elements.svg, elements.customSvg); }, boundsUpdated = () => { bounds.clear(); render_1.updateBounds(state); if (elements.svg) svg.renderSvg(state, elements.svg, elements.customSvg); }; const state = maybeState; state.dom = { elements, bounds, redraw: debounceRedraw(redrawNow), redrawNow, unbind: prevUnbind, relative, }; state.drawable.prevSvgHash = ''; redrawNow(false); events.bindBoard(state, boundsUpdated); if (!prevUnbind) state.dom.unbind = events.bindDocument(state, boundsUpdated); state.events.insert && state.events.insert(elements); return state; } return api_1.start(redrawAll(), redrawAll); } exports.Chessground = Chessground; function debounceRedraw(redrawNow) { let redrawing = false; return () => { if (redrawing) return; redrawing = true; requestAnimationFrame(() => { redrawNow(); redrawing = false; }); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlc3Nncm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvY2hlc3Nncm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQW1DO0FBQ25DLHFDQUE2QztBQUM3QyxtQ0FBeUQ7QUFFekQsaUNBQW9DO0FBQ3BDLG1DQUFtQztBQUNuQyxxQ0FBZ0Q7QUFDaEQsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixTQUFnQixXQUFXLENBQUMsT0FBb0IsRUFBRSxNQUFlO0lBQy9ELE1BQU0sVUFBVSxHQUEwQixnQkFBUSxFQUFFLENBQUM7SUFFckQsa0JBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXBDLFNBQVMsU0FBUztRQUNoQixNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRzNFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFDbEUsUUFBUSxHQUFHLGlCQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFDcEQsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEVBQ2hFLFNBQVMsR0FBRyxDQUFDLE9BQWlCLEVBQVEsRUFBRTtZQUN0QyxlQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxHQUFHO2dCQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLFNBQVUsQ0FBQyxDQUFDO1FBQ3hGLENBQUMsRUFDRCxhQUFhLEdBQUcsR0FBUyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLHFCQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsSUFBSSxRQUFRLENBQUMsR0FBRztnQkFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFVLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUM7UUFDSixNQUFNLEtBQUssR0FBRyxVQUFtQixDQUFDO1FBQ2xDLEtBQUssQ0FBQyxHQUFHLEdBQUc7WUFDVixRQUFRO1lBQ1IsTUFBTTtZQUNOLE1BQU0sRUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQ2pDLFNBQVM7WUFDVCxNQUFNLEVBQUUsVUFBVTtZQUNsQixRQUFRO1NBQ1QsQ0FBQztRQUNGLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNoQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVU7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM5RSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLFdBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBdkNELGtDQXVDQztBQUVELFNBQVMsY0FBYyxDQUFDLFNBQXNDO0lBQzVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN0QixPQUFPLEdBQUcsRUFBRTtRQUNWLElBQUksU0FBUztZQUFFLE9BQU87UUFDdEIsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekIsU0FBUyxFQUFFLENBQUM7WUFDWixTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaSwgc3RhcnQgfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBDb25maWcsIGNvbmZpZ3VyZSB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IEhlYWRsZXNzU3RhdGUsIFN0YXRlLCBkZWZhdWx0cyB9IGZyb20gJy4vc3RhdGUnO1xuXG5pbXBvcnQgeyByZW5kZXJXcmFwIH0gZnJvbSAnLi93cmFwJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyByZW5kZXIsIHVwZGF0ZUJvdW5kcyB9IGZyb20gJy4vcmVuZGVyJztcbmltcG9ydCAqIGFzIHN2ZyBmcm9tICcuL3N2Zyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVzc2dyb3VuZChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29uZmlnPzogQ29uZmlnKTogQXBpIHtcbiAgY29uc3QgbWF5YmVTdGF0ZTogU3RhdGUgfCBIZWFkbGVzc1N0YXRlID0gZGVmYXVsdHMoKTtcblxuICBjb25maWd1cmUobWF5YmVTdGF0ZSwgY29uZmlnIHx8IHt9KTtcblxuICBmdW5jdGlvbiByZWRyYXdBbGwoKTogU3RhdGUge1xuICAgIGNvbnN0IHByZXZVbmJpbmQgPSAnZG9tJyBpbiBtYXliZVN0YXRlID8gbWF5YmVTdGF0ZS5kb20udW5iaW5kIDogdW5kZWZpbmVkO1xuICAgIC8vIGNvbXB1dGUgYm91bmRzIGZyb20gZXhpc3RpbmcgYm9hcmQgZWxlbWVudCBpZiBwb3NzaWJsZVxuICAgIC8vIHRoaXMgYWxsb3dzIG5vbi1zcXVhcmUgYm9hcmRzIGZyb20gQ1NTIHRvIGJlIGhhbmRsZWQgKGZvciAzRClcbiAgICBjb25zdCByZWxhdGl2ZSA9IG1heWJlU3RhdGUudmlld09ubHkgJiYgIW1heWJlU3RhdGUuZHJhd2FibGUudmlzaWJsZSxcbiAgICAgIGVsZW1lbnRzID0gcmVuZGVyV3JhcChlbGVtZW50LCBtYXliZVN0YXRlLCByZWxhdGl2ZSksXG4gICAgICBib3VuZHMgPSB1dGlsLm1lbW8oKCkgPT4gZWxlbWVudHMuYm9hcmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLFxuICAgICAgcmVkcmF3Tm93ID0gKHNraXBTdmc/OiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgIHJlbmRlcihzdGF0ZSk7XG4gICAgICAgIGlmICghc2tpcFN2ZyAmJiBlbGVtZW50cy5zdmcpIHN2Zy5yZW5kZXJTdmcoc3RhdGUsIGVsZW1lbnRzLnN2ZywgZWxlbWVudHMuY3VzdG9tU3ZnISk7XG4gICAgICB9LFxuICAgICAgYm91bmRzVXBkYXRlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgYm91bmRzLmNsZWFyKCk7XG4gICAgICAgIHVwZGF0ZUJvdW5kcyhzdGF0ZSk7XG4gICAgICAgIGlmIChlbGVtZW50cy5zdmcpIHN2Zy5yZW5kZXJTdmcoc3RhdGUsIGVsZW1lbnRzLnN2ZywgZWxlbWVudHMuY3VzdG9tU3ZnISk7XG4gICAgICB9O1xuICAgIGNvbnN0IHN0YXRlID0gbWF5YmVTdGF0ZSBhcyBTdGF0ZTtcbiAgICBzdGF0ZS5kb20gPSB7XG4gICAgICBlbGVtZW50cyxcbiAgICAgIGJvdW5kcyxcbiAgICAgIHJlZHJhdzogZGVib3VuY2VSZWRyYXcocmVkcmF3Tm93KSxcbiAgICAgIHJlZHJhd05vdyxcbiAgICAgIHVuYmluZDogcHJldlVuYmluZCxcbiAgICAgIHJlbGF0aXZlLFxuICAgIH07XG4gICAgc3RhdGUuZHJhd2FibGUucHJldlN2Z0hhc2ggPSAnJztcbiAgICByZWRyYXdOb3coZmFsc2UpO1xuICAgIGV2ZW50cy5iaW5kQm9hcmQoc3RhdGUsIGJvdW5kc1VwZGF0ZWQpO1xuICAgIGlmICghcHJldlVuYmluZCkgc3RhdGUuZG9tLnVuYmluZCA9IGV2ZW50cy5iaW5kRG9jdW1lbnQoc3RhdGUsIGJvdW5kc1VwZGF0ZWQpO1xuICAgIHN0YXRlLmV2ZW50cy5pbnNlcnQgJiYgc3RhdGUuZXZlbnRzLmluc2VydChlbGVtZW50cyk7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgcmV0dXJuIHN0YXJ0KHJlZHJhd0FsbCgpLCByZWRyYXdBbGwpO1xufVxuXG5mdW5jdGlvbiBkZWJvdW5jZVJlZHJhdyhyZWRyYXdOb3c6IChza2lwU3ZnPzogYm9vbGVhbikgPT4gdm9pZCk6ICgpID0+IHZvaWQge1xuICBsZXQgcmVkcmF3aW5nID0gZmFsc2U7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgaWYgKHJlZHJhd2luZykgcmV0dXJuO1xuICAgIHJlZHJhd2luZyA9IHRydWU7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHJlZHJhd05vdygpO1xuICAgICAgcmVkcmF3aW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH07XG59XG4iXX0=