UNPKG

react-chessdiagram

Version:
6 lines 108 kB
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"));else if("function"==typeof define&&define.amd)define(["react"],t);else{var r=t("object"==typeof exports?require("react"):e.React);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s=31)}([function(t,r){t.exports=e},function(e,t,r){e.exports=r(15)()},function(e,t,r){var n,a;/*! Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ !function(){"use strict";function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n))e.push(r.apply(null,n));else if("object"===a)for(var i in n)o.call(n,i)&&n[i]&&e.push(i)}}return e.join(" ")}var o={}.hasOwnProperty;void 0!==e&&e.exports?e.exports=r:(n=[],void 0!==(a=function(){return r}.apply(t,n))&&(e.exports=a))}()},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function o(e,t,r){if(!t)return e;var n=b(t),a=void 0;try{a=n.reduce(function(e,t){return e[t]},e)}catch(e){}return void 0!==a?a:r}function i(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],r=arguments[2],n=b(t),a=void 0,o=e;(a=n.shift())&&n.length;)o[a]||(o[a]={}),o=o[a];return o[a]=r,e}function s(e,t){var r=t>e.length?0:e.length-t;return e.slice(r)}function l(e){return e[e.length-1]}function u(e){for(var t=[],r=0;r<e;r++)t.push(e);return t}function p(e,t,r){return e.sort(function(e,n){for(var a=0;a<t.length;a++){var o=t[a],i=o(e),s=o(n),l=!1===r[a]||"desc"===r[a];if(i>s)return l?-1:1;if(i<s)return l?1:-1}return r[0]?e.__index-n.__index:n.__index-e.__index})}function f(e,t){return e.filter(function(r,n){return!!t(r)&&(e.splice(n,1),!0)})}function c(e){try{return JSON.parse(JSON.stringify(e,function(e,t){return"function"==typeof t?t.toString():t}))}catch(t){return e}}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0;n<t.length;n++)if(void 0!==t[n])return t[n]}function h(e){return e.reduce(function(e,t){return e+t},0)}function m(e){return function(t){var r=t.children,n=t.className,o=a(t,["children","className"]);return S.default.createElement("div",E({className:(0,T.default)(e,n)},o),r)}}function g(e,t){return e.reduce(function(e,r,n){var a="function"==typeof t?t(r,n):r[t];return e[a]=v(e[a])?e[a]:[],e[a].push(r),e},{})}function v(e){return Array.isArray(e)}function b(e){return y(e).join(".").replace("[",".").replace("]","").split(".")}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(v(e))for(var r=0;r<e.length;r++)y(e[r],t);else t.push(e);return t}function C(e){return{className:e.className,style:e.style,rest:a(e,["className","style"])}}function _(e){var t={};for(var r in e)e.hasOwnProperty(r)&&void 0!==e[r]&&void 0!==e[r]&&(t[r]=e[r]);return t}function w(e){return!("desc"!==e.sort&&!0!==e.desc&&!1!==e.asc)}function x(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?Object.getPrototypeOf(e).isReactComponent?S.default.createElement(e,t):e(t):r}Object.defineProperty(t,"__esModule",{value:!0});var E=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},k=r(0),S=n(k),P=r(2),T=n(P);t.default={get:o,set:i,takeRight:s,last:l,orderBy:p,range:u,remove:f,clone:c,getFirstDefined:d,sum:h,makeTemplateComponent:m,groupBy:g,isArray:v,splitProps:C,compactObject:_,isSortingDesc:w,normalizeComponent:x}},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var r=this[t];r[2]?e.push("@media "+r[2]+"{"+r[1]+"}"):e.push(r[1])}return e.join("")},e.i=function(t,r){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},a=0;a<this.length;a++){var o=this[a][0];"number"==typeof o&&(n[o]=!0)}for(a=0;a<t.length;a++){var i=t[a];"number"==typeof i[0]&&n[i[0]]||(r&&!i[2]?i[2]=r:r&&(i[2]="("+i[2]+") and ("+r+")"),e.push(i))}},e}},function(e,t){function r(e,t){for(var r=0;r<e.length;r++){var n=e[r],a=c[n.id];if(a){a.refs++;for(var o=0;o<a.parts.length;o++)a.parts[o](n.parts[o]);for(;o<n.parts.length;o++)a.parts.push(l(n.parts[o],t))}else{for(var i=[],o=0;o<n.parts.length;o++)i.push(l(n.parts[o],t));c[n.id]={id:n.id,refs:1,parts:i}}}}function n(e){for(var t=[],r={},n=0;n<e.length;n++){var a=e[n],o=a[0],i=a[1],s=a[2],l=a[3],u={css:i,media:s,sourceMap:l};r[o]?r[o].parts.push(u):t.push(r[o]={id:o,parts:[u]})}return t}function a(e,t){var r=m(),n=b[b.length-1];if("top"===e.insertAt)n?n.nextSibling?r.insertBefore(t,n.nextSibling):r.appendChild(t):r.insertBefore(t,r.firstChild),b.push(t);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");r.appendChild(t)}}function o(e){e.parentNode.removeChild(e);var t=b.indexOf(e);t>=0&&b.splice(t,1)}function i(e){var t=document.createElement("style");return t.type="text/css",a(e,t),t}function s(e){var t=document.createElement("link");return t.rel="stylesheet",a(e,t),t}function l(e,t){var r,n,a;if(t.singleton){var l=v++;r=g||(g=i(t)),n=u.bind(null,r,l,!1),a=u.bind(null,r,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(r=s(t),n=f.bind(null,r),a=function(){o(r),r.href&&URL.revokeObjectURL(r.href)}):(r=i(t),n=p.bind(null,r),a=function(){o(r)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else a()}}function u(e,t,r,n){var a=r?"":n.css;if(e.styleSheet)e.styleSheet.cssText=y(t,a);else{var o=document.createTextNode(a),i=e.childNodes;i[t]&&e.removeChild(i[t]),i.length?e.insertBefore(o,i[t]):e.appendChild(o)}}function p(e,t){var r=t.css,n=t.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}function f(e,t){var r=t.css,n=t.sourceMap;n&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */");var a=new Blob([r],{type:"text/css"}),o=e.href;e.href=URL.createObjectURL(a),o&&URL.revokeObjectURL(o)}var c={},d=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}},h=d(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),m=d(function(){return document.head||document.getElementsByTagName("head")[0]}),g=null,v=0,b=[];e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");t=t||{},void 0===t.singleton&&(t.singleton=h()),void 0===t.insertAt&&(t.insertAt="bottom");var a=n(e);return r(a,t),function(e){for(var o=[],i=0;i<a.length;i++){var s=a[i],l=c[s.id];l.refs--,o.push(l)}if(e){r(n(e),t)}for(var i=0;i<o.length;i++){var l=o[i];if(0===l.refs){for(var u=0;u<l.parts.length;u++)l.parts[u]();delete c[l.id]}}}};var y=function(){var e=[];return function(t,r){return e[t]=r,e.filter(Boolean).join("\n")}}()},function(e,t,r){var n,a=function(e){function t(){le=new Array(128),ue={w:F,b:F},pe=A,fe={w:0,b:0},ce=F,de=0,he=1,me=[],ge={},s(o())}function r(){n(G)}function n(e){var r=e.split(/\s+/),n=r[0],i=0;if(!a(e).valid)return!1;t();for(var l=0;l<n.length;l++){var p=n.charAt(l);if("/"===p)i+=8;else if(N(p))i+=parseInt(p,10);else{var f=p<"a"?A:D;u({type:p.toLowerCase(),color:f},z(i)),i++}}return pe=r[1],r[2].indexOf("K")>-1&&(fe.w|=te.KSIDE_CASTLE),r[2].indexOf("Q")>-1&&(fe.w|=te.QSIDE_CASTLE),r[2].indexOf("k")>-1&&(fe.b|=te.KSIDE_CASTLE),r[2].indexOf("q")>-1&&(fe.b|=te.QSIDE_CASTLE),ce="-"===r[3]?F:ie[r[3]],de=parseInt(r[4],10),he=parseInt(r[5],10),s(o()),!0}function a(e){var t={0:"No errors.",1:"FEN string must contain six space-delimited fields.",2:"6th field (move number) must be a positive integer.",3:"5th field (half move counter) must be a non-negative integer.",4:"4th field (en-passant square) is invalid.",5:"3rd field (castling availability) is invalid.",6:"2nd field (side to move) is invalid.",7:"1st field (piece positions) does not contain 8 '/'-delimited rows.",8:"1st field (piece positions) is invalid [consecutive numbers].",9:"1st field (piece positions) is invalid [invalid piece].",10:"1st field (piece positions) is invalid [row too large].",11:"Illegal en-passant square"},r=e.split(/\s+/);if(6!==r.length)return{valid:!1,error_number:1,error:t[1]};if(isNaN(r[5])||parseInt(r[5],10)<=0)return{valid:!1,error_number:2,error:t[2]};if(isNaN(r[4])||parseInt(r[4],10)<0)return{valid:!1,error_number:3,error:t[3]};if(!/^(-|[abcdefgh][36])$/.test(r[3]))return{valid:!1,error_number:4,error:t[4]};if(!/^(KQ?k?q?|Qk?q?|kq?|q|-)$/.test(r[2]))return{valid:!1,error_number:5,error:t[5]};if(!/^(w|b)$/.test(r[1]))return{valid:!1,error_number:6,error:t[6]};var n=r[0].split("/");if(8!==n.length)return{valid:!1,error_number:7,error:t[7]};for(var a=0;a<n.length;a++){for(var o=0,i=!1,s=0;s<n[a].length;s++)if(isNaN(n[a][s])){if(!/^[prnbqkPRNBQK]$/.test(n[a][s]))return{valid:!1,error_number:9,error:t[9]};o+=1,i=!1}else{if(i)return{valid:!1,error_number:8,error:t[8]};o+=parseInt(n[a][s],10),i=!0}if(8!==o)return{valid:!1,error_number:10,error:t[10]}}return"3"==r[3][1]&&"w"==r[1]||"6"==r[3][1]&&"b"==r[1]?{valid:!1,error_number:11,error:t[11]}:{valid:!0,error_number:0,error:t[0]}}function o(){for(var e=0,t="",r=ie.a8;r<=ie.h1;r++){if(null==le[r])e++;else{e>0&&(t+=e,e=0);var n=le[r].color,a=le[r].type;t+=n===A?a.toUpperCase():a.toLowerCase()}r+1&136&&(e>0&&(t+=e),r!==ie.h1&&(t+="/"),e=0,r+=8)}var o="";fe[A]&te.KSIDE_CASTLE&&(o+="K"),fe[A]&te.QSIDE_CASTLE&&(o+="Q"),fe[D]&te.KSIDE_CASTLE&&(o+="k"),fe[D]&te.QSIDE_CASTLE&&(o+="q"),o=o||"-";var i=ce===F?"-":z(ce);return[t,pe,o,i,de,he].join(" ")}function i(e){for(var t=0;t<e.length;t+=2)"string"==typeof e[t]&&"string"==typeof e[t+1]&&(ge[e[t]]=e[t+1]);return ge}function s(e){me.length>0||(e!==G?(ge.SetUp="1",ge.FEN=e):(delete ge.SetUp,delete ge.FEN))}function l(e){var t=le[ie[e]];return t?{type:t.type,color:t.color}:null}function u(e,t){if(!("type"in e&&"color"in e))return!1;if(-1===Q.indexOf(e.type.toLowerCase()))return!1;if(!(t in ie))return!1;var r=ie[t];return(e.type!=B||ue[e.color]==F||ue[e.color]==r)&&(le[r]={type:e.type,color:e.color},e.type===B&&(ue[e.color]=r),s(o()),!0)}function p(e){var t=l(e);return le[ie[e]]=null,t&&t.type===B&&(ue[t.color]=F),s(o()),t}function f(e,t,r,n,a){var o={color:pe,from:t,to:r,flags:n,piece:e[t].type};return a&&(o.flags|=te.PROMOTION,o.promotion=a),e[r]?o.captured=e[r].type:n&te.EP_CAPTURE&&(o.captured=I),o}function c(e){function t(e,t,r,n,a){if(e[r].type!==I||T(n)!==oe&&T(n)!==re)t.push(f(e,r,n,a));else for(var o=[H,K,U,W],i=0,s=o.length;i<s;i++)t.push(f(e,r,n,a,o[i]))}var r=[],n=pe,a=O(n),o={b:ae,w:ne},i=ie.a8,s=ie.h1,l=!1,u=!(void 0!==e&&"legal"in e)||e.legal;if(void 0!==e&&"square"in e){if(!(e.square in ie))return[];i=s=ie[e.square],l=!0}for(var p=i;p<=s;p++)if(136&p)p+=7;else{var c=le[p];if(null!=c&&c.color===n)if(c.type===I){var d=p+$[n][0];if(null==le[d]){t(le,r,p,d,te.NORMAL);var d=p+$[n][1];o[n]===T(p)&&null==le[d]&&t(le,r,p,d,te.BIG_PAWN)}for(h=2;h<4;h++){var d=p+$[n][h];136&d||(null!=le[d]&&le[d].color===a?t(le,r,p,d,te.CAPTURE):d===ce&&t(le,r,p,ce,te.EP_CAPTURE))}}else for(var h=0,v=V[c.type].length;h<v;h++)for(var b=V[c.type][h],d=p;;){if(136&(d+=b))break;if(null!=le[d]){if(le[d].color===n)break;t(le,r,p,d,te.CAPTURE);break}if(t(le,r,p,d,te.NORMAL),"n"===c.type||"k"===c.type)break}}if(!l||s===ue[n]){if(fe[n]&te.KSIDE_CASTLE){var y=ue[n],C=y+2;null!=le[y+1]||null!=le[C]||m(a,ue[n])||m(a,y+1)||m(a,C)||t(le,r,ue[n],C,te.KSIDE_CASTLE)}if(fe[n]&te.QSIDE_CASTLE){var y=ue[n],C=y-2;null!=le[y-1]||null!=le[y-2]||null!=le[y-3]||m(a,ue[n])||m(a,y-1)||m(a,C)||t(le,r,ue[n],C,te.QSIDE_CASTLE)}}if(!u)return r;for(var _=[],p=0,v=r.length;p<v;p++)x(r[p]),g(n)||_.push(r[p]),E();return _}function d(e,t){var r="";if(e.flags&te.KSIDE_CASTLE)r="O-O";else if(e.flags&te.QSIDE_CASTLE)r="O-O-O";else{var n=k(e,t);e.piece!==I&&(r+=e.piece.toUpperCase()+n),e.flags&(te.CAPTURE|te.EP_CAPTURE)&&(e.piece===I&&(r+=z(e.from)[0]),r+="x"),r+=z(e.to),e.flags&te.PROMOTION&&(r+="="+e.promotion.toUpperCase())}return x(e),v()&&(b()?r+="#":r+="+"),E(),r}function h(e){return e.replace(/=/,"").replace(/[+#]?[?!]*$/,"")}function m(e,t){for(var r=ie.a8;r<=ie.h1;r++)if(136&r)r+=7;else if(null!=le[r]&&le[r].color===e){var n=le[r],a=r-t,o=a+119;if(X[o]&1<<Z[n.type]){if(n.type===I){if(a>0){if(n.color===A)return!0}else if(n.color===D)return!0;continue}if("n"===n.type||"k"===n.type)return!0;for(var i=J[o],s=r+i,l=!1;s!==t;){if(null!=le[s]){l=!0;break}s+=i}if(!l)return!0}}return!1}function g(e){return m(O(e),ue[e])}function v(){return g(pe)}function b(){return v()&&0===c().length}function y(){return!v()&&0===c().length}function C(){for(var e={},t=[],r=0,n=0,a=ie.a8;a<=ie.h1;a++)if(n=(n+1)%2,136&a)a+=7;else{var o=le[a];o&&(e[o.type]=o.type in e?e[o.type]+1:1,o.type===U&&t.push(n),r++)}if(2===r)return!0;if(3===r&&(1===e[U]||1===e[W]))return!0;if(r===e[U]+2){for(var i=0,s=t.length,a=0;a<s;a++)i+=t[a];if(0===i||i===s)return!0}return!1}function _(){for(var e=[],t={},r=!1;;){var n=E();if(!n)break;e.push(n)}for(;;){var a=o().split(" ").slice(0,4).join(" ");if(t[a]=a in t?t[a]+1:1,t[a]>=3&&(r=!0),!e.length)break;x(e.pop())}return r}function w(e){me.push({move:e,kings:{b:ue.b,w:ue.w},turn:pe,castling:{b:fe.b,w:fe.w},ep_square:ce,half_moves:de,move_number:he})}function x(e){var t=pe,r=O(t);if(w(e),le[e.to]=le[e.from],le[e.from]=null,e.flags&te.EP_CAPTURE&&(pe===D?le[e.to-16]=null:le[e.to+16]=null),e.flags&te.PROMOTION&&(le[e.to]={type:e.promotion,color:t}),le[e.to].type===B){if(ue[le[e.to].color]=e.to,e.flags&te.KSIDE_CASTLE){var n=e.to-1,a=e.to+1;le[n]=le[a],le[a]=null}else if(e.flags&te.QSIDE_CASTLE){var n=e.to+1,a=e.to-2;le[n]=le[a],le[a]=null}fe[t]=""}if(fe[t])for(var o=0,i=se[t].length;o<i;o++)if(e.from===se[t][o].square&&fe[t]&se[t][o].flag){fe[t]^=se[t][o].flag;break}if(fe[r])for(var o=0,i=se[r].length;o<i;o++)if(e.to===se[r][o].square&&fe[r]&se[r][o].flag){fe[r]^=se[r][o].flag;break}ce=e.flags&te.BIG_PAWN?"b"===pe?e.to-16:e.to+16:F,e.piece===I?de=0:e.flags&(te.CAPTURE|te.EP_CAPTURE)?de=0:de++,pe===D&&he++,pe=O(pe)}function E(){var e=me.pop();if(null==e)return null;var t=e.move;ue=e.kings,pe=e.turn,fe=e.castling,ce=e.ep_square,de=e.half_moves,he=e.move_number;var r=pe,n=O(pe);if(le[t.from]=le[t.to],le[t.from].type=t.piece,le[t.to]=null,t.flags&te.CAPTURE)le[t.to]={type:t.captured,color:n};else if(t.flags&te.EP_CAPTURE){var a;a=r===D?t.to-16:t.to+16,le[a]={type:I,color:n}}if(t.flags&(te.KSIDE_CASTLE|te.QSIDE_CASTLE)){var o,i;t.flags&te.KSIDE_CASTLE?(o=t.to+1,i=t.to-1):t.flags&te.QSIDE_CASTLE&&(o=t.to-2,i=t.to+1),le[o]=le[i],le[i]=null}return t}function k(e,t){for(var r=c({legal:!t}),n=e.from,a=e.to,o=e.piece,i=0,s=0,l=0,u=0,p=r.length;u<p;u++){var f=r[u].from,d=r[u].to;o===r[u].piece&&n!==f&&a===d&&(i++,T(n)===T(f)&&s++,R(n)===R(f)&&l++)}return i>0?s>0&&l>0?z(n):l>0?z(n).charAt(1):z(n).charAt(0):""}function S(){for(var e=" +------------------------+\n",t=ie.a8;t<=ie.h1;t++){if(0===R(t)&&(e+=" "+"87654321"[T(t)]+" |"),null==le[t])e+=" . ";else{var r=le[t].type;e+=" "+(le[t].color===A?r.toUpperCase():r.toLowerCase())+" "}t+1&136&&(e+="|\n",t+=8)}return e+=" +------------------------+\n",e+=" a b c d e f g h\n"}function P(e,t){var r=h(e);if(t){var n=r.match(/([pnbrqkPNBRQK])?([a-h][1-8])x?-?([a-h][1-8])([qrbnQRBN])?/);if(n)var a=n[1],o=n[2],i=n[3],s=n[4]}for(var l=c(),u=0,p=l.length;u<p;u++){if(r===h(d(l[u]))||t&&r===h(d(l[u],!0)))return l[u];if(n&&(!a||a.toLowerCase()==l[u].piece)&&ie[o]==l[u].from&&ie[i]==l[u].to&&(!s||s.toLowerCase()==l[u].promotion))return l[u]}return null}function T(e){return e>>4}function R(e){return 15&e}function z(e){var t=R(e),r=T(e);return"abcdefgh".substring(t,t+1)+"87654321".substring(r,r+1)}function O(e){return e===A?D:A}function N(e){return-1!=="0123456789".indexOf(e)}function M(e){var t=q(e);t.san=d(t,!1),t.to=z(t.to),t.from=z(t.from);var r="";for(var n in te)te[n]&t.flags&&(r+=ee[n]);return t.flags=r,t}function q(e){var t=e instanceof Array?[]:{};for(var r in e)t[r]="object"==typeof r?q(e[r]):e[r];return t}function L(e){return e.replace(/^\s+|\s+$/g,"")}function j(e){for(var t=c({legal:!1}),r=0,n=pe,a=0,o=t.length;a<o;a++){if(x(t[a]),!g(n))if(e-1>0){var i=j(e-1);r+=i}else r++;E()}return r}var D="b",A="w",F=-1,I="p",W="n",U="b",K="r",H="q",B="k",Q="pnbrqkPNBRQK",G="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",Y=["1-0","0-1","1/2-1/2","*"],$={b:[16,32,17,15],w:[-16,-32,-17,-15]},V={n:[-18,-33,-31,-14,18,33,31,14],b:[-17,-15,17,15],r:[-16,1,16,-1],q:[-17,-16,-15,1,17,16,15,-1],k:[-17,-16,-15,1,17,16,15,-1]},X=[20,0,0,0,0,0,0,24,0,0,0,0,0,0,20,0,0,20,0,0,0,0,0,24,0,0,0,0,0,20,0,0,0,0,20,0,0,0,0,24,0,0,0,0,20,0,0,0,0,0,0,20,0,0,0,24,0,0,0,20,0,0,0,0,0,0,0,0,20,0,0,24,0,0,20,0,0,0,0,0,0,0,0,0,0,20,2,24,2,20,0,0,0,0,0,0,0,0,0,0,0,2,53,56,53,2,0,0,0,0,0,0,24,24,24,24,24,24,56,0,56,24,24,24,24,24,24,0,0,0,0,0,0,2,53,56,53,2,0,0,0,0,0,0,0,0,0,0,0,20,2,24,2,20,0,0,0,0,0,0,0,0,0,0,20,0,0,24,0,0,20,0,0,0,0,0,0,0,0,20,0,0,0,24,0,0,0,20,0,0,0,0,0,0,20,0,0,0,0,24,0,0,0,0,20,0,0,0,0,20,0,0,0,0,0,24,0,0,0,0,0,20,0,0,20,0,0,0,0,0,0,24,0,0,0,0,0,0,20],J=[17,0,0,0,0,0,0,16,0,0,0,0,0,0,15,0,0,17,0,0,0,0,0,16,0,0,0,0,0,15,0,0,0,0,17,0,0,0,0,16,0,0,0,0,15,0,0,0,0,0,0,17,0,0,0,16,0,0,0,15,0,0,0,0,0,0,0,0,17,0,0,16,0,0,15,0,0,0,0,0,0,0,0,0,0,17,0,16,0,15,0,0,0,0,0,0,0,0,0,0,0,0,17,16,15,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,-15,-16,-17,0,0,0,0,0,0,0,0,0,0,0,0,-15,0,-16,0,-17,0,0,0,0,0,0,0,0,0,0,-15,0,0,-16,0,0,-17,0,0,0,0,0,0,0,0,-15,0,0,0,-16,0,0,0,-17,0,0,0,0,0,0,-15,0,0,0,0,-16,0,0,0,0,-17,0,0,0,0,-15,0,0,0,0,0,-16,0,0,0,0,0,-17,0,0,-15,0,0,0,0,0,0,-16,0,0,0,0,0,0,-17],Z={p:0,n:1,b:2,r:3,q:4,k:5},ee={NORMAL:"n",CAPTURE:"c",BIG_PAWN:"b",EP_CAPTURE:"e",PROMOTION:"p",KSIDE_CASTLE:"k",QSIDE_CASTLE:"q"},te={NORMAL:1,CAPTURE:2,BIG_PAWN:4,EP_CAPTURE:8,PROMOTION:16,KSIDE_CASTLE:32,QSIDE_CASTLE:64},re=7,ne=6,ae=1,oe=0,ie={a8:0,b8:1,c8:2,d8:3,e8:4,f8:5,g8:6,h8:7,a7:16,b7:17,c7:18,d7:19,e7:20,f7:21,g7:22,h7:23,a6:32,b6:33,c6:34,d6:35,e6:36,f6:37,g6:38,h6:39,a5:48,b5:49,c5:50,d5:51,e5:52,f5:53,g5:54,h5:55,a4:64,b4:65,c4:66,d4:67,e4:68,f4:69,g4:70,h4:71,a3:80,b3:81,c3:82,d3:83,e3:84,f3:85,g3:86,h3:87,a2:96,b2:97,c2:98,d2:99,e2:100,f2:101,g2:102,h2:103,a1:112,b1:113,c1:114,d1:115,e1:116,f1:117,g1:118,h1:119},se={w:[{square:ie.a1,flag:te.QSIDE_CASTLE},{square:ie.h1,flag:te.KSIDE_CASTLE}],b:[{square:ie.a8,flag:te.QSIDE_CASTLE},{square:ie.h8,flag:te.KSIDE_CASTLE}]},le=new Array(128),ue={w:F,b:F},pe=A,fe={w:0,b:0},ce=F,de=0,he=1,me=[],ge={};return n(void 0===e?G:e),{WHITE:A,BLACK:D,PAWN:I,KNIGHT:W,BISHOP:U,ROOK:K,QUEEN:H,KING:B,SQUARES:function(){for(var e=[],t=ie.a8;t<=ie.h1;t++)136&t?t+=7:e.push(z(t));return e}(),FLAGS:ee,load:function(e){return n(e)},reset:function(){return r()},moves:function(e){for(var t=c(e),r=[],n=0,a=t.length;n<a;n++)void 0!==e&&"verbose"in e&&e.verbose?r.push(M(t[n])):r.push(d(t[n],!1));return r},in_check:function(){return v()},in_checkmate:function(){return b()},in_stalemate:function(){return y()},in_draw:function(){return de>=100||y()||C()||_()},insufficient_material:function(){return C()},in_threefold_repetition:function(){return _()},game_over:function(){return de>=100||b()||y()||C()||_()},validate_fen:function(e){return a(e)},fen:function(){return o()},pgn:function(e){var t="object"==typeof e&&"string"==typeof e.newline_char?e.newline_char:"\n",r="object"==typeof e&&"number"==typeof e.max_width?e.max_width:0,n=[],a=!1;for(var o in ge)n.push("["+o+' "'+ge[o]+'"]'+t),a=!0;a&&me.length&&n.push(t);for(var i=[];me.length>0;)i.push(E());for(var s=[],l="";i.length>0;){var u=i.pop();me.length||"b"!==u.color?"w"===u.color&&(l.length&&s.push(l),l=he+"."):l=he+". ...",l=l+" "+d(u,!1),x(u)}if(l.length&&s.push(l),void 0!==ge.Result&&s.push(ge.Result),0===r)return n.join("")+s.join(" ");for(var p=0,o=0;o<s.length;o++)p+s[o].length>r&&0!==o?(" "===n[n.length-1]&&n.pop(),n.push(t),p=0):0!==o&&(n.push(" "),p++),n.push(s[o]),p+=s[o].length;return n.join("")},load_pgn:function(e,t){function a(e){return e.replace(/\\/g,"\\")}var o=void 0!==t&&"sloppy"in t&&t.sloppy,s="object"==typeof t&&"string"==typeof t.newline_char?t.newline_char:"\r?\n",l=new RegExp("^(\\[(.|"+a(s)+")*\\])("+a(s)+")*1.("+a(s)+"|.)*$","g"),u=e.replace(l,"$1");"["!==u[0]&&(u=""),r();var p=function(e,t){for(var r="object"==typeof t&&"string"==typeof t.newline_char?t.newline_char:"\r?\n",n={},o=e.split(new RegExp(a(r))),i="",s="",l=0;l<o.length;l++)i=o[l].replace(/^\[([A-Z][A-Za-z]*)\s.*\]$/,"$1"),s=o[l].replace(/^\[[A-Za-z]+\s"(.*)"\]$/,"$1"),L(i).length>0&&(n[i]=s);return n}(u,t);for(var f in p)i([f,p[f]]);if("1"===p.SetUp&&!("FEN"in p&&n(p.FEN)))return!1;var c=e.replace(u,"").replace(new RegExp(a(s),"g")," ");c=c.replace(/(\{[^}]+\})+?/g,"");for(var d=/(\([^\(\)]+\))+?/g;d.test(c);)c=c.replace(d,"");c=c.replace(/\d+\.(\.\.)?/g,""),c=c.replace(/\.\.\./g,""),c=c.replace(/\$\d+/g,"");var h=L(c).split(new RegExp(/\s+/));h=h.join(",").replace(/,,+/g,",").split(",");for(var m="",g=0;g<h.length-1;g++){if(null==(m=P(h[g],o)))return!1;x(m)}if(m=h[h.length-1],Y.indexOf(m)>-1)(function(e){for(var t in e)return!0;return!1})(ge)&&void 0===ge.Result&&i(["Result",m]);else{if(null==(m=P(m,o)))return!1;x(m)}return!0},header:function(){return i(arguments)},ascii:function(){return S()},turn:function(){return pe},move:function(e,t){var r=void 0!==t&&"sloppy"in t&&t.sloppy,n=null;if("string"==typeof e)n=P(e,r);else if("object"==typeof e)for(var a=c(),o=0,i=a.length;o<i;o++)if(!(e.from!==z(a[o].from)||e.to!==z(a[o].to)||"promotion"in a[o]&&e.promotion!==a[o].promotion)){n=a[o];break}if(!n)return null;var s=M(n);return x(n),s},undo:function(){var e=E();return e?M(e):null},clear:function(){return t()},put:function(e,t){return u(e,t)},get:function(e){return l(e)},remove:function(e){return p(e)},perft:function(e){return j(e)},square_color:function(e){if(e in ie){var t=ie[e];return(T(t)+R(t))%2==0?"light":"dark"}return null},history:function(e){for(var t=[],r=[],n=(void 0!==e&&"verbose"in e&&e.verbose);me.length>0;)t.push(E());for(;t.length>0;){var a=t.pop();n?r.push(M(a)):r.push(d(a)),x(a)}return r}}};t.Chess=a,void 0!==(n=function(){return a}.call(t,r,t,e))&&(e.exports=n)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),u=r(0),p=n(u),f=r(8),c=n(f),d=r(9),h=n(d),m=r(1),g=n(m),v=function(e){function t(e){a(this,t);var r=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),n=e.fen?Array.isArray(e.fen)?e.fen:[e.fen]:e.pgn?e.getFensFromPgn(e.pgn):[""],i=e.pgn?r.startMove:0;return r.state={currentMove:i,moves:n},r}return i(t,e),l(t,[{key:"componentWillReceiveProps",value:function(e){e.fen&&e.fen!==this.props.fen&&this.setState({currentMove:0,moves:[e.fen]}),e.pgn&&e.pgn!==this.props.pgn&&this.setState({currentMove:this.startMove,moves:e.getFensFromPgn(e.pgn)})}},{key:"_onMovePiece",value:function(e,t,r){this.props.allowMoves&&this.props.onMovePiece&&this.props.onMovePiece(e,t,r)}},{key:"_onMovePgnHead",value:function(e){this.setState({currentMove:e})}},{key:"render",value:function(){return p.default.createElement("div",null,p.default.createElement(c.default,s({},this.props,{fen:this.state.moves[this.state.currentMove],style:{display:"inline-block"},onMovePiece:this._onMovePiece.bind(this)})),this.props.gameHistory?p.default.createElement(h.default,{currentMove:this.state.currentMove,getHeader:this.props.getHeader,getMovetext:this.props.getMovetext,getResult:this.props.getResult,getRows:this.props.getRows,moveHead:this._onMovePgnHead.bind(this),newlineChar:this.props.newlineChar,pgn:this.props.pgn,style:{display:"inline-block"}}):null)}},{key:"startMove",get:function(){return"number"==typeof this.props.startMove||parseInt(this.props.startMove)?parseInt(this.props.startMove):2*(parseInt(this.props.startMove.slice(1))-1)+("w"===this.props.startMove[0]?1:2)}}]),t}(u.Component);v.propTypes={allowMoves:g.default.bool,darkSquareColor:g.default.string,fen:g.default.oneOfType([g.default.string,g.default.array]),files:g.default.number,flip:g.default.bool,gameHistory:g.default.bool,getFensFromPgn:g.default.func,getHeader:g.default.func,getMovetext:g.default.func,getResult:g.default.func,getRows:g.default.func,height:g.default.oneOfType([g.default.string,g.default.number]),lightSquareColor:g.default.string,newlineChar:g.default.string,onMovePiece:g.default.func,onSelectSquare:g.default.func,pgn:g.default.string,pgnHeight:g.default.number,pieces:g.default.array,pieceDefinitions:g.default.object,ranks:g.default.number,squareSize:g.default.number,startMove:g.default.oneOfType([g.default.string,g.default.number]),startPosition:g.default.string,width:g.default.oneOfType([g.default.string,g.default.number])};var b=function(e){var t=r(6);t.Chess&&(t=t.Chess);var n=new t;if(!e)return[n.fen()];n.load_pgn(e);for(var a=[n.fen()];;){if(!n.undo())break;a.push(n.fen())}return a=a.reverse()};v.defaultProps={allowMoves:!0,darkSquareColor:"#005EBB",height:"auto",files:8,flip:!1,gameHistory:!1,getFensFromPgn:b,lightSquareColor:"#2492FF",newlineChar:"\r?\n",pieceDefinitions:{},pgnHeight:400,ranks:8,startMove:0,squareSize:45,width:"auto"},t.default=v},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){var r=[],n=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{!n&&s.return&&s.return()}finally{if(a)throw o}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),l=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),u=r(0),p=n(u),f=r(10),c=n(f),d=r(11),h=n(d),m=r(12),g=n(m),v=r(1),b=n(v),y=function(e){function t(e){a(this,t);var r=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r.state={selectedSquare:null,selectedPieceType:null,dragX:0,dragY:0,isDragging:!1,left:0,top:0,width:0,height:0},r._onResize=r._onResize.bind(r),r._onScroll=r._onScroll.bind(r),r}return i(t,e),l(t,[{key:"componentDidMount",value:function(){this._getClientPos(),addEventListener("resize",this._onResize),addEventListener("scroll",this._onScroll)}},{key:"componentWillUnmount",value:function(){removeEventListener("resize",this._onResize),removeEventListener("scroll",this._onScroll)}},{key:"componentWillReceiveProps",value:function(e){if(e.squareSize!==this.props.squareSize||e.ranks!==this.props.ranks||e.files!==this.props.files){var t=new Event("resize");dispatchEvent(t)}}},{key:"_onResize",value:function(){this._getClientPos()}},{key:"_onScroll",value:function(){this._getClientPos()}},{key:"_onMouseDown",value:function(e){e.preventDefault();var t=e.clientX-this.state.left,r=e.clientY-this.state.top;this._grab(t,r)}},{key:"_onTouchStart",value:function(e){e.preventDefault();var t=e.touches[0].clientX-this.state.left,r=e.touches[0].clientY-this.state.top;this._grab(t,r)}},{key:"_onMouseMove",value:function(e){e.preventDefault();var t=e.clientX-this.state.left,r=e.clientY-this.state.top;this._move(t,r)}},{key:"_onTouchMove",value:function(e){e.preventDefault();var t=e.touches[0].clientX-this.state.left,r=e.touches[0].clientY-this.state.top;this._move(t,r)}},{key:"_onMouseUp",value:function(e){e.preventDefault();var t=e.clientX-this.state.left,r=e.clientY-this.state.top;this._release(t,r)}},{key:"_onTouchEnd",value:function(e){e.preventDefault();var t=[this.state.dragX,this.state.dragY],r=t[0],n=t[1];this._release(r,n)}},{key:"_squareToCoords",value:function(e){if(this.props.flip){return[this.props.squareSize*(this.props.files-(e.toLowerCase().charCodeAt(0)-97)),(Number(e.slice(1))-1)*this.props.squareSize]}return[this.props.squareSize*(1+e.toLowerCase().charCodeAt(0)-97),(this.props.ranks-Number(e.slice(1)))*this.props.squareSize]}},{key:"_fileRankToCoords",value:function(e,t){if(this.props.flip){return[this.props.squareSize*(this.props.files-e),this.props.squareSize*t]}return[this.props.squareSize*(1+e),this.props.squareSize*(this.props.ranks-t-1)]}},{key:"_coordsToSquare",value:function(e,t){if(this.props.flip){return String.fromCharCode(97+this.props.files-e/this.props.squareSize+1)+(1+Math.floor(t/this.props.squareSize))}return String.fromCharCode(97+e/this.props.squareSize-1)+(1+Math.floor((this.props.ranks*this.props.squareSize-t)/this.props.squareSize))}},{key:"_grab",value:function(e,t){var r=this.props.squareSize*(1+this.props.files),n=this.props.squareSize*this.props.ranks;if(e<this.props.squareSize||e>r||t<0||t>n)return!1;var a=this._coordsToSquare(e,t),o=this._getPieceAtSquare(a);this.state.selectedSquare&&this.state.selectedSquare!==a||this.setState({selectedSquare:a,selectedPieceType:o?o.pieceType:null,dragX:o?o.x+this.props.squareSize/2:this.state.dragX,dragY:o?o.y+this.props.squareSize/2:this.state.dragY,isDragging:!0}),this.props.onSelectSquare&&this.props.onSelectSquare(a)}},{key:"_move",value:function(e,t){this.state.isDragging&&this.setState({dragX:e,dragY:t})}},{key:"_release",value:function(e,t){this.setState({isDragging:!1});var r=this._coordsToSquare(e,t);r!==this.state.selectedSquare&&(this.props.onMovePiece&&this.props.onMovePiece(this.state.selectedPieceType,this.state.selectedSquare,r),this.setState({selectedSquare:null}))}},{key:"_getClientPos",value:function(){var e=this.Client.getBoundingClientRect();this.setState({left:e.left,top:e.top,width:e.width,height:e.height})}},{key:"_getPieces",value:function(){var e=this;return this.props.pieces?this.props.pieces.map(function(t){var r=t.split("@",2),n=s(r,2),a=n[0],o=n[1];if(!o)return{pieceType:"invalid",square:"none",x:0,y:0};var i=e._squareToCoords(o),l=s(i,2),u=l[0],p=l[1];return isNaN(p)?{pieceType:"invalid",square:"none",x:0,y:0}:{pieceType:a,square:o.toLowerCase(),x:u,y:p}}):[]}},{key:"_getPiecesFromFEN",value:function(){var e=this,t=this.props.fen.split(" ",6),r=Object.assign(g.default,this.props.pieceDefinitions),n=new RegExp("["+Object.keys(r).join("").replace("-","\\-")+"]");return t[0].replace(/(\d+|\w|\/)(?!$)/g,"$1,").split(",").reduce(function(t,r){if(n.test(r)){var a=e._fileRankToCoords(t.file,t.rank),o=s(a,2),i=o[0],l=o[1],u=String.fromCharCode(97+t.file)+(t.rank+1).toString();t.pieces.push({pieceType:r,square:u,x:i,y:l}),t.file++}else"/"===r?(t.rank-=1,t.file=0):Number.isInteger(parseInt(r))&&(t.file+=Number(r));return t},{rank:this.props.ranks-1,file:0,pieces:[]}).pieces}},{key:"_getPieceAtSquare",value:function(e){return(this.props.fen?this._getPiecesFromFEN():this._getPieces()).filter(function(t){return t.square===e})[0]}},{key:"render",value:function(){var e=this,t=this.props.fen?this._getPiecesFromFEN():this._getPieces(),r=Object.assign(g.default,this.props.pieceDefinitions),n={};return this.state.selectedSquare&&(n[this.state.selectedSquare]="yellow"),p.default.createElement("svg",{ref:function(t){e.Client=t},style:{display:"inline-block"},height:"auto"===this.props.height?(1+this.props.ranks)*this.props.squareSize:this.props.height,onMouseDown:this._onMouseDown.bind(this),onMouseMove:this._onMouseMove.bind(this),onTouchEnd:this._onTouchEnd.bind(this),onTouchMove:this._onTouchMove.bind(this),onTouchStart:this._onTouchStart.bind(this),onMouseUp:this._onMouseUp.bind(this),width:"auto"===this.props.width?(1+this.props.files)*this.props.squareSize:this.props.width},p.default.createElement(c.default,{darkSquareColor:this.props.darkSquareColor,files:this.props.files,flip:!!this.props.flip,highlights:n,lightSquareColor:this.props.lightSquareColor,ranks:this.props.ranks,selectedSquare:this.state.selectedSquare,squareSize:this.props.squareSize}),t.map(function(t,n){return p.default.createElement(h.default,{x:e.state.isDragging&&t.square===e.state.selectedSquare?e.state.dragX-e.props.squareSize/2:t.x,y:e.state.isDragging&&t.square===e.state.selectedSquare?e.state.dragY-e.props.squareSize/2:t.y,key:n,pieceType:t.pieceType,squareSize:e.props.squareSize,drawPiece:r[t.pieceType]})}))}}]),t}(u.Component);y.propTypes={allowedMoves:b.default.object,darkSquareColor:b.default.string,fen:b.default.string,files:b.default.number,flip:b.default.bool,height:b.default.oneOfType([b.default.string,b.default.number]),lightSquareColor:b.default.string,onMovePiece:b.default.func,onSelectSquare:b.default.func,pieces:b.default.array,pieceDefinitions:b.default.object,ranks:b.default.number,squareSize:b.default.number,width:b.default.oneOfType([b.default.string,b.default.number])},y.defaultProps={allowedMoves:{},darkSquareColor:"#005EBB",height:"auto",files:8,flip:!1,lightSquareColor:"#2492FF",pieceDefinitions:{},ranks:8,squareSize:45,width:"auto"},t.default=y},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),l=r(0),u=n(l),p=r(20),f=n(p);r(24);var c=r(1),d=n(c),h=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),s(t,[{key:"shouldComponentUpdate",value:function(e){return this.props.rows.length!==e.rows.length||this.props.halfMove!==e.halfMove}},{key:"componentDidMount",value:function(){this._scrollToActiveMove()}},{key:"componentDidUpdate",value:function(){this._scrollToActiveMove()}},{key:"_scrollToActiveMove",value:function(){this.activeMove?this.pgnContainer.scrollTop=this.activeMove.offsetTop:this.pgnContainer.scrollTop=0}},{key:"render",value:function(){var e=this,t=function(t){return function(r){var n=r.value,a=r.row,o=2*(a[0]-1)+t,i=o===e.props.halfMove?"yellow":"#FFF";return u.default.createElement("span",{className:"pgn-cell",onClick:function(){return e.props.moveHead(o)},ref:function(t){o===e.props.halfMove&&(e.activeMove=t)},style:{backgroundColor:i}},n)}},r={sortable:!1},n=[{accessor:"0",id:"move",width:40},{accessor:"1",id:"white",width:90,render:t(1)},{accessor:"2",id:"black",width:90,render:t(2)}].map(function(e){return Object.assign({},r,e)});return u.default.createElement("div",{ref:function(t){e.pgnContainer=t},style:{height:200,overflowY:"scroll"}},u.default.createElement(f.default,{data:this.props.rows,columns:n,showPagination:!1,pageSize:this.props.rows.length}))}}]),t}(l.Component);h.propTypes={rows:d.default.array,halfMove:d.default.number,moveHead:d.default.func};var m=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),s(t,[{key:"render",value:function(){return u.default.createElement("div",null,u.default.createElement("button",{value:-1/0,onClick:this.props.moveHead},"|<"),u.default.createElement("button",{value:-1,onClick:this.props.moveHead},"<"),u.default.createElement("button",{value:1,onClick:this.props.moveHead},">"),u.default.createElement("button",{value:1/0,onClick:this.props.moveHead},">|"))}}]),t}(l.Component);m.propTypes={moveHead:d.default.func.isRequired};var g=function(e){function t(e){a(this,t);var r=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),n=e.getMovetext(e.pgn,e.newlineChar),i=e.getRows(n,e.newlineChar),s=e.pgn?2*(i.length-1)+(i[i.length-1].length-1):0;return r.state={header:e.getHeader(e.pgn,e.newlineChar),movetext:n,maxMove:s,rows:i},r}return i(t,e),s(t,[{key:"componentWillReceiveProps",value:function(e){if(e.pgn!==this.props.pgn){var t=e.getMovetext(e.pgn,e.newlineChar),r=e.getRows(t,e.newlineChar),n=e.pgn?2*(r.length-1)+(r[r.length-1].length-1):0;this.setState({header:e.getHeader(e.pgn,e.newlineChar),maxMove:n,movetext:t,rows:r})}}},{key:"_onMovePgnHead",value:function(e){var t=Number(e.target.value),r=this.props.currentMove,n=t>0?1:-1,a=void 0;a=1===n?Math.min(r+t,this.state.maxMove):Math.max(r+t,0),this.props.moveHead(a)}},{key:"render",value:function(){return u.default.createElement("div",{style:{display:"inline-block",position:"absolute",marginLeft:5}},u.default.createElement(h,{halfMove:this.props.currentMove,moveHead:this.props.moveHead,pgnHeight:this.props.pgnHeight,pgnWidth:this.props.pgnWidth,rows:this.props.getRows(this.props.getMovetext(this.props.pgn,this.props.newlineChar),this.props.newlineChar)}),u.default.createElement(m,{moveHead:this._onMovePgnHead.bind(this)}))}}]),t}(l.Component);g.propTypes={currentMove:d.default.number,getHeader:d.default.func,getMovetext:d.default.func,getResult:d.default.func,getRows:d.default.func,moveHead:d.default.func,newlineChar:d.default.string.isRequired,pgn:d.default.string,pgnHeight:d.default.number,pgnWidth:d.default.number,sloppy:d.default.bool};var v=function(e,t){var r=new RegExp("^("+t+"|.)*(?:"+t+"){2}"),n=r.exec(e);return n?n[0]:""},b=function(e,t){var r=new RegExp("(?:"+t+"){2}("+t+"|.)*$"),n=r.exec(e);return n?n[0]:""},y=function(e,t){var r=e;if(!r)return[];r=r.replace(/(\{[^}]+\})+?/g,"");for(var n=/(\([^\(\)]+\))+?/g;n.test(r);)r=r.replace(n,"");r=r.replace(/\$\d+/g,""),r=r.replace(/(?:1-0|0-1|1\/2-1\/2|\*)$/,""),r=r.replace(/\s\s/g," ").trim();for(var a=[],o=/\d+\.\s?\S+(?:\s+\S+)?/g;;){var i=o.exec(r);if(!i)break;var s=i[0].split(/\s|\.\s?/g);s[0]=parseInt(s[0]),a.push(s)}return a},C=function(e,t){var r=new RegExp(/(?:1-0|0-1|1\/2-1\/2|\*)$/);return e.match(r)[0]};g.defaultProps={getHeader:v,getMovetext:b,getResult:C,getRows:y,newlineChar:"\r?\n",sloppy:!1},t.default=g},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){var r=[],n=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{!n&&s.return&&s.return()}finally{if(a)throw o}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),l=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),u=r(0),p=n(u),f=r(1),c=n(f),d=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),l(t,[{key:"render",value:function(){var e=this.props.light?this.props.lightSquareColor:this.props.darkSquareColor;return p.default.createElement("rect",{fill:e,height:this.props.squareSize,stroke:"black",strokeWidth:"1",width:this.props.squareSize,x:this.props.x,y:this.props.y})}}]),t}(u.Component);d.propTypes={darkSquareColor:c.default.string.isRequired,light:c.default.bool.isRequired,lightSquareColor:c.default.string.isRequired,squareSize:c.default.number.isRequired,x:c.default.number.isRequired,y:c.default.number.isRequired},d.displayName="Square";var h=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),l(t,[{key:"render",value:function(){return p.default.createElement("rect",{x:this.props.x,y:this.props.y,width:this.props.squareSize,height:this.props.squareSize,stroke:this.props.highlightColor,fill:"none",strokeWidth:"3"})}}]),t}(u.Component);h.propTypes={highlightColor:c.default.string.isRequired,squareSize:c.default.number.isRequired,x:c.default.number.isRequired,y:c.default.number.isRequired},h.defaultProps={highlightColor:"yellow"};var m=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),l(t,[{key:"_fileRankToCoords",value:function(e,t){if(this.props.flip){return[this.props.squareSize*(this.props.files-e),this.props.squareSize*t]}return[this.props.squareSize*(1+e),this.props.squareSize*(this.props.ranks-t-1)]}},{key:"render",value:function(){for(var e=this,t=[],r=0;r<this.props.ranks;r++){var n=this.props.flip?r:this.props.ranks-r-1;t.push({y:this.props.squareSize/2+n*this.props.squareSize,label:r+1})}return p.default.createElement("g",null,t.map(function(t,r){return p.default.createElement("text",{x:e.props.squareSize/2,y:t.y,key:r,fontFamily:"Verdana",fontSize:e.props.squareSize/3,textAnchor:"middle"},t.label)}))}}]),t}(u.Component),g=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),l(t,[{key:"render",value:function(){for(var e=this,t=[],r=0;r<this.props.files;r++){var n=this.props.flip?this.props.files-r:1+r;t.push({x:this.props.squareSize/2+n*this.props.squareSize,label:String.fromCharCode(97+r)})}return p.default.createElement("g",null,t.map(function(t,r){return p.default.createElement("text",{x:t.x,y:e.props.squareSize/2+e.props.ranks*e.props.squareSize,key:r,fontFamily:"Verdana",fontSize:e.props.squareSize/3,textAnchor:"middle"},t.label)}))}}]),t}(u.Component),v={files:c.default.number,flip:c.default.bool.isRequired,ranks:c.default.number,squareSize:c.default.number.isRequired};m.propTypes=v,g.propTypes=v;var b=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),l(t,[{key:"_squareToCoords",value:function(e){if(this.props.flip){return[this.props.squareSize*(this.props.files-(e.toLowerCase().charCodeAt(0)-97)),(Number(e.slice(1))-1)*this.props.squareSize]}return[this.props.squareSize*(1+e.toLowerCase().charCodeAt(0)-97),(this.props.ranks-Number(e.slice(1)))*this.props.squareSize]}},{key:"_fileRankToCoords",value:function(e,t){if(this.props.flip){return[this.props.squareSize*(this.props.files-e),this.props.squareSize*t]}return[this.props.squareSize*(1+e),this.props.squareSize*(this.props.ranks-t-1)]}},{key:"_indexToSquare",value:function(e){return"abcdefghijklmno"[Math.floor(e/this.props.files)]+(e%this.props.files+1)}},{key:"shouldComponentUpdate",value:function(e){return e.selectedSquare!==this.props.selectedSquare||e.flip!==this.props.flip||e.squareSize!==this.props.squareSize||e.lightSquareColor!==this.props.lightSquareColor||e.darkSquareColor!==this.props.darkSquareColor||e.ranks!==this.props.ranks||e.files!==this.props.files}},{key:"render",value:function(){for(var e=this,t=[],r=0;r<this.props.files;r++)for(var n=0;n<this.props.ranks;n++){var a=this._fileRankToCoords(r,n),o=s(a,2),i=o[0],l=o[1];t.push({x:i,y:l,light:1&(r^n)})}return p.default.createElement("svg",null,t.map(function(t,r){return p.default.createElement(d,{id:e._indexToSquare(r),square:e._indexToSquare(r),x:t.x,y:t.y,key:r,light:!!t.light,squareSize:e.props.squareSize,lightSquareColor:e.props.lightSquareColor,darkSquareColor:e.props.darkSquareColor})}),p.default.createElement(m,{ranks:this.props.ranks,files:this.props.files,squareSize:this.props.squareSize,flip:this.props.flip}),p.default.createElement(g,{ranks:this.props.ranks,files:this.props.files,squareSize:this.props.squareSize,flip:this.props.flip}),Object.keys(this.props.highlights).map(function(t){var r=e._squareToCoords(t),n=s(r,2),a=n[0],o=n[1];return p.default.createElement(h,{key:t,highlightColor:e.props.highlights[t],squareSize:e.props.squareSize,x:a,y:o})}))}}]),t}(u.Component);b.propTypes={darkSquareColor:c.default.string.isRequired,files:c.default.number.isRequired,flip:c.default.bool.isRequired,highlights:c.default.object,lightSquareColor:c.default.string.isRequired,ranks:c.default.number.isRequired,selectedSquare:c.default.string,squareSize:c.default.number.isRequired},b.defaultProps={darkSquareColor:"#005EBB",files:8,flip:!1,highlights:{},lightSquareColor:"#2492FF",ranks:8,squareSize:45},t.default=b},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),l=r(0);n(l);r(25);var u=r(1),p=n(u),f=function(e){function t(){return a(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),s(t,[{key:"shouldComponentUpdate",value:function(e){return e.x!==this.props.x||e.y!==this.props.y||e.pieceType!==this.props.pieceType||e.squareSize!==this.props.squareSize}},{key:"render",value:function(){var e=this.props.squareSize/45,t="translate("+this.props.x+","+this.props.y+") scale("+e+")";return this.props.drawPiece(t)}}]),t}(l.Component);f.propTypes={drawPiece:p.default.func.isRequired,pieceType:p.default.string.isRequired,squareSize:p.default.number.isRequired,x:p.default.number.isRequired,y:p.default.number.isRequired},t.default=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),a=function(e){return e&&e.__esModule?e:{default:e}}(n),o={K:function(e){return a.default.createElement("svg",null,a.default.createElement("g",{className:"g_0",transform:e},a.default.createElement("path",{d:"M 22.5,11.63 L 22.5,6",className:"path_0"}),a.default.createElement("path",{d:"M 20,8 L 25,8",className:"path_1"}),a.default.createElement("path",{d:"M 22.5,25 C 22.5,25 27,17.5 25.5,14.5 C 25.5,14.5 24.5,12 22.5,12 C 20.5,12 19.5,14.5 19.5,14.5 C 18,17.5 22.5,25 22.5,25",className:"path_2"}),a.default.createElement("path",{d:"M 11.5,37 C 17,40.5 27,40.5 32.5,37 L 32.5,30 C 32.5,30 41.5,25.5 38.5,19.5 C 34.5,13 25,16 22.5,23.5 L 22.5,27 L 22.5,2