├── .babelrc ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── LICENSE ├── README.md ├── config ├── webpack.config.base.js ├── webpack.config.browser.js ├── webpack.config.common.js └── webpack.config.dev.js ├── dist ├── vue-chessboard.browser.js ├── vue-chessboard.common.js └── vue-chessboard.css ├── index.js ├── package-lock.json ├── package.json └── src ├── components └── chessboard │ ├── Util.js │ ├── index.vue │ └── style │ └── theme.css └── index.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["es2015", { "modules": false }], 4 | "stage-0" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | config/ 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: 'babel-eslint', 4 | parserOptions: { 5 | sourceType: 'module' 6 | }, 7 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 8 | extends: 'standard', 9 | // required to lint *.vue files 10 | plugins: [ 11 | 'html' 12 | ], 13 | env: { 14 | browser: true, 15 | }, 16 | // add your custom rules here 17 | 'rules': { 18 | // allow paren-less arrow functions 19 | 'arrow-parens': 0, 20 | // allow async-await 21 | 'generator-star-spacing': 0, 22 | // allow debugger during development 23 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 24 | // trailing comma 25 | 'comma-dangle': ['error', 'always-multiline'], 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-chessboard 2 | 3 | [![npm](https://img.shields.io/npm/v/vue-chessboard.svg) ![npm](https://img.shields.io/npm/dm/vue-chessboard.svg)](https://www.npmjs.com/package/vue-chessboard) 4 | [![vue2](https://img.shields.io/badge/vue-2.x-brightgreen.svg)](https://vuejs.org/) 5 | 6 | Chessboard vue component to load positions, create positions and see threats 7 | 8 | - It uses [chess.js](https://github.com/jhlywa/chess.js) for chess movements and validations 9 | - It uses chessground for chessboard UI [chessground](https://github.com/ornicar/chessground) 10 | 11 | ![http://g.recordit.co/40JDuy8tAk.gif](http://g.recordit.co/40JDuy8tAk.gif) 12 | 13 | Check live examples: [http://vitomd.com/vue-chessboard-examples/](http://vitomd.com/vue-chessboard-examples/) 14 | 15 | ## Table of contents 16 | 17 | - [Installation](#installation) 18 | - [Usage](#usage) 19 | - [Example](#example) 20 | 21 | # Installation 22 | 23 | ``` 24 | npm install --save vue-chessboard 25 | ``` 26 | 27 | ## Default component import 28 | 29 | 30 | ```javascript 31 | import {chessboard} from 'vue-chessboard' 32 | import 'vue-chessboard/dist/vue-chessboard.css' 33 | ``` 34 | 35 | Then use it in your template 36 | ```html 37 | 38 | ``` 39 | 40 | ## Browser 41 | 42 | ```html 43 |
44 | 45 |
46 | 47 | 48 | 49 | 50 | 51 | 52 | 60 | ``` 61 | 62 | # Examples 63 | 64 | Check live examples: [http://vitomd.com/vue-chessboard-examples/](http://vitomd.com/vue-chessboard-examples/) 65 | 66 | Check live examples repository: [https://github.com/vitogit/vue-chessboard-examples](https://github.com/vitogit/vue-chessboard-examples) 67 | 68 | Check full application using the component: [Chess Guardian](http://vitomd.com/vue-chess-guardian/) 69 | 70 | #### Simple Chessboard with legal moves 71 | ```html 72 | 73 | ``` 74 | #### Simple Chessboard with free moves 75 | ```html 76 | 77 | ``` 78 | 79 | #### Simple Chessboard with black orientation. Default is white 80 | ```html 81 | 82 | ``` 83 | 84 | #### Simple Chessboard that shows threats for current position and player 85 | ```html 86 | 87 | ``` 88 | 89 | #### Fen binded to the chessboard (load position when click on a new position) 90 | ```html 91 | 92 | 95 | ``` 96 | 97 | #### Chessboard with onmove callback. Returns positional info { "legal_black": 20, "checks_black": 0, "threat_black": 0, "turn": "black" } after each move. 98 | It also returns the fen and the history data. 99 | ```html 100 | 101 |
102 | {{this.positionInfo}} 103 |
104 | ``` 105 | ```js 106 | showInfo(data) { 107 | this.positionInfo = data 108 | } 109 | ``` 110 | 111 | #### Chessboard with onpromote callback 112 | When there is a promotion it will execute the callback. Just return the first letter of the piece: q:Queen, r:Rook, k:Knight, b:Bishop 113 | ```html 114 | 115 | ``` 116 | ```js 117 | promote() { 118 | return 'r' // This will promote to a rook 119 | } 120 | ``` 121 | 122 | #### Extended Component (Play vs random AI). 123 |

You can extend the chessboard component to add new methods

124 | 125 | ```html 126 | // newboard.vue 127 | 170 | ``` 171 | --- 172 | 173 | ## Want to see all my chess related projects? 174 | 175 | Check [My projects](http://vitomd.com/blog/projects/) for a full detailed list. 176 | 177 | ## License 178 | 179 | GPL-3.0 180 | -------------------------------------------------------------------------------- /config/webpack.config.base.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack') 2 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 3 | 4 | var outputFile = 'vue-chessboard' 5 | var globalName = 'VueChessboard' 6 | 7 | var config = require('../package.json') 8 | 9 | module.exports = { 10 | entry: './src/index.js', 11 | module: { 12 | rules: [ 13 | { 14 | enforce: 'pre', 15 | test: /\.(js|vue)$/, 16 | loader: 'eslint-loader', 17 | exclude: /node_modules/, 18 | }, 19 | { 20 | test: /.js$/, 21 | use: 'babel-loader', 22 | }, 23 | { 24 | test: /\.vue$/, 25 | loader: 'vue-loader', 26 | options: { 27 | loaders: { 28 | css: ExtractTextPlugin.extract('css-loader'), 29 | }, 30 | }, 31 | }, 32 | ], 33 | }, 34 | plugins: [ 35 | new webpack.DefinePlugin({ 36 | 'VERSION': JSON.stringify(config.version), 37 | }), 38 | new ExtractTextPlugin(outputFile + '.css'), 39 | ], 40 | } 41 | -------------------------------------------------------------------------------- /config/webpack.config.browser.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack') 2 | var merge = require('webpack-merge') 3 | var base = require('./webpack.config.base') 4 | var path = require('path') 5 | 6 | var outputFile = 'vue-chessboard' 7 | var globalName = 'VueChessboard' 8 | 9 | module.exports = merge(base, { 10 | output: { 11 | path: path.resolve(__dirname, '../dist'), 12 | filename: outputFile + '.browser.js', 13 | library: globalName, 14 | libraryTarget: 'umd', 15 | }, 16 | externals: { 17 | // Put external libraries like lodash here 18 | // With their global name 19 | // Example: 'lodash': '_' 20 | }, 21 | plugins: [ 22 | new webpack.optimize.UglifyJsPlugin({ 23 | compress: { 24 | warnings: true, 25 | }, 26 | mangle: false, 27 | }), 28 | ], 29 | }) 30 | -------------------------------------------------------------------------------- /config/webpack.config.common.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack') 2 | var merge = require('webpack-merge') 3 | var base = require('./webpack.config.base') 4 | var path = require('path') 5 | 6 | var outputFile = 'vue-chessboard' 7 | var globalName = 'VueChessboard' 8 | 9 | module.exports = merge(base, { 10 | output: { 11 | path: path.resolve(__dirname, '../dist'), 12 | filename: outputFile + '.common.js', 13 | libraryTarget: 'commonjs2', 14 | }, 15 | target: 'node', 16 | externals: { 17 | // Put external libraries like lodash here 18 | // With their package name 19 | // Example: 'lodash': 'lodash' 20 | }, 21 | plugins: [ 22 | new webpack.optimize.UglifyJsPlugin({ 23 | compress: { 24 | warnings: true, 25 | }, 26 | mangle: false, 27 | }), 28 | ], 29 | }) 30 | -------------------------------------------------------------------------------- /config/webpack.config.dev.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var base = require('./webpack.config.base') 3 | var path = require('path') 4 | 5 | var outputFile = 'vue-chessboard' 6 | var globalName = 'VueChessboard' 7 | 8 | module.exports = merge(base, { 9 | output: { 10 | path: path.resolve(__dirname, '../dist'), 11 | filename: outputFile + '.common.js', 12 | library: globalName, 13 | libraryTarget: 'umd', 14 | }, 15 | devtool: 'eval-source-map', 16 | }) 17 | -------------------------------------------------------------------------------- /dist/vue-chessboard.common.js: -------------------------------------------------------------------------------- 1 | module.exports=function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=20)}([function(module,exports,__webpack_require__){"use strict";function memo(f){var v,ret=function(){return void 0===v&&(v=f()),v};return ret.clear=function(){v=void 0},ret}function containsX(xs,x){return void 0!==xs&&-1!==xs.indexOf(x)}Object.defineProperty(exports,"__esModule",{value:!0});var cg=__webpack_require__(3);exports.colors=["white","black"],exports.invRanks=[8,7,6,5,4,3,2,1],exports.allKeys=(_a=Array.prototype).concat.apply(_a,cg.files.map(function(c){return cg.ranks.map(function(r){return c+r})})),exports.pos2key=function(pos){return exports.allKeys[8*pos[0]+pos[1]-9]},exports.key2pos=function(k){return[k.charCodeAt(0)-96,k.charCodeAt(1)-48]},exports.memo=memo,exports.timer=function(){var startAt;return{start:function(){startAt=Date.now()},cancel:function(){startAt=void 0},stop:function(){if(!startAt)return 0;var time=Date.now()-startAt;return startAt=void 0,time}}},exports.opposite=function(c){return"white"===c?"black":"white"},exports.containsX=containsX,exports.distanceSq=function(pos1,pos2){return Math.pow(pos1[0]-pos2[0],2)+Math.pow(pos1[1]-pos2[1],2)},exports.samePiece=function(p1,p2){return p1.role===p2.role&&p1.color===p2.color},exports.computeIsTrident=function(){return window.navigator.userAgent.indexOf("Trident/")>-1};var posToTranslateBase=function(pos,asWhite,xFactor,yFactor){return[(asWhite?pos[0]-1:8-pos[0])*xFactor,(asWhite?8-pos[1]:pos[1]-1)*yFactor]};exports.posToTranslateAbs=function(bounds){var xFactor=bounds.width/8,yFactor=bounds.height/8;return function(pos,asWhite){return posToTranslateBase(pos,asWhite,xFactor,yFactor)}},exports.posToTranslateRel=function(pos,asWhite){return posToTranslateBase(pos,asWhite,12.5,12.5)},exports.translateAbs=function(el,pos){el.style.transform="translate("+pos[0]+"px,"+pos[1]+"px)"},exports.translateRel=function(el,percents){el.style.left=percents[0]+"%",el.style.top=percents[1]+"%"},exports.setVisible=function(el,v){el.style.visibility=v?"visible":"hidden"},exports.eventPosition=function(e){return e.clientX||0===e.clientX?[e.clientX,e.clientY]:e.touches&&e.targetTouches[0]?[e.targetTouches[0].clientX,e.targetTouches[0].clientY]:void 0},exports.isRightButton=function(e){return 2===e.buttons||2===e.button},exports.createEl=function(tagName,className){var el=document.createElement(tagName);return className&&(el.className=className),el},exports.raf=(window.requestAnimationFrame||window.setTimeout).bind(window);var _a},function(module,exports,__webpack_require__){"use strict";function callUserFunction(f){for(var args=[],_i=1;_i0&&file<9&&rank>0&&rank<9?util_1.pos2key([file,rank]):void 0}Object.defineProperty(exports,"__esModule",{value:!0});var util_1=__webpack_require__(0),premove_1=__webpack_require__(15);exports.callUserFunction=callUserFunction,exports.toggleOrientation=toggleOrientation,exports.reset=reset,exports.setPieces=setPieces,exports.setCheck=setCheck,exports.unsetPremove=unsetPremove,exports.unsetPredrop=unsetPredrop,exports.baseMove=baseMove,exports.baseNewPiece=baseNewPiece,exports.userMove=userMove,exports.dropNewPiece=dropNewPiece,exports.selectSquare=selectSquare,exports.setSelected=setSelected,exports.unselect=unselect,exports.canMove=canMove,exports.isDraggable=isDraggable,exports.playPremove=playPremove,exports.playPredrop=playPredrop,exports.cancelMove=cancelMove,exports.stop=stop,exports.getKeyAtDomPos=getKeyAtDomPos},function(module,exports,__webpack_require__){"use strict";function read(fen){"start"===fen&&(fen=exports.initial);for(var pieces={},row=8,col=0,_i=0,fen_1=fen;_i1)){e.preventDefault();var asWhite="white"===s.orientation,bounds=s.dom.bounds(),position=util.eventPosition(e),orig=board.getKeyAtDomPos(position,asWhite,bounds);if(orig){var piece=s.pieces[orig],previouslySelected=s.selected;previouslySelected||!s.drawable.enabled||!s.drawable.eraseOnClick&&piece&&piece.color===s.turnColor||draw_1.clear(s);var hadPremove=!!s.premovable.current,hadPredrop=!!s.predroppable.current;s.stats.ctrlKey=e.ctrlKey,s.selected&&board.canMove(s,s.selected,orig)?anim_1.anim(function(state){return board.selectSquare(state,orig)},s):board.selectSquare(s,orig);var stillSelected=s.selected===orig,element=pieceElementByKey(s,orig);if(piece&&element&&stillSelected&&board.isDraggable(s,orig)){var squareBounds=computeSquareBounds(orig,asWhite,bounds);s.draggable.current={orig:orig,origPos:util.key2pos(orig),piece:piece,rel:position,epos:position,pos:[0,0],dec:s.draggable.centerPiece?[position[0]-(squareBounds.left+squareBounds.width/2),position[1]-(squareBounds.top+squareBounds.height/2)]:[0,0],started:s.draggable.autoDistance&&s.stats.dragged,element:element,previouslySelected:previouslySelected,originTarget:e.target},element.cgDragging=!0,element.classList.add("dragging");var ghost=s.dom.elements.ghost;ghost&&(ghost.className="ghost "+piece.color+" "+piece.role,util.translateAbs(ghost,util.posToTranslateAbs(bounds)(util.key2pos(orig),asWhite)),util.setVisible(ghost,!0)),processDrag(s)}else hadPremove&&board.unsetPremove(s),hadPredrop&&board.unsetPredrop(s);s.dom.redraw()}}}function dragNewPiece(s,piece,e,force){s.pieces.a0=piece,s.dom.redraw();var position=util.eventPosition(e),asWhite="white"===s.orientation,bounds=s.dom.bounds(),squareBounds=computeSquareBounds("a0",asWhite,bounds),rel=[(asWhite?0:7)*squareBounds.width+bounds.left,(asWhite?8:-1)*squareBounds.height+bounds.top];s.draggable.current={orig:"a0",origPos:util.key2pos("a0"),piece:piece,rel:rel,epos:position,pos:[position[0]-rel[0],position[1]-rel[1]],dec:[-squareBounds.width/2,-squareBounds.height/2],started:!0,element:function(){return pieceElementByKey(s,"a0")},originTarget:e.target,newPiece:!0,force:force||!1},processDrag(s)}function processDrag(s){util.raf(function(){var cur=s.draggable.current;if(cur){s.animation.current&&s.animation.current.plan.anims[cur.orig]&&(s.animation.current=void 0);var origPiece=s.pieces[cur.orig];if(origPiece&&util.samePiece(origPiece,cur.piece)){if(!cur.started&&util.distanceSq(cur.epos,cur.rel)>=Math.pow(s.draggable.distance,2)&&(cur.started=!0),cur.started){if("function"==typeof cur.element){var found=cur.element();if(!found)return;cur.element=found,cur.element.cgDragging=!0,cur.element.classList.add("dragging")}var asWhite="white"===s.orientation,bounds=s.dom.bounds();cur.pos=[cur.epos[0]-cur.rel[0],cur.epos[1]-cur.rel[1]];var translation=util.posToTranslateAbs(bounds)(cur.origPos,asWhite);translation[0]+=cur.pos[0]+cur.dec[0],translation[1]+=cur.pos[1]+cur.dec[1],util.translateAbs(cur.element,translation)}}else cancel(s);processDrag(s)}})}function move(s,e){s.draggable.current&&(!e.touches||e.touches.length<2)&&(s.draggable.current.epos=util.eventPosition(e))}function end(s,e){var cur=s.draggable.current;if(cur){if("touchend"===e.type&&cur&&cur.originTarget!==e.target&&!cur.newPiece)return void(s.draggable.current=void 0);board.unsetPremove(s),board.unsetPredrop(s);var eventPos=util.eventPosition(e)||cur.epos,dest=board.getKeyAtDomPos(eventPos,"white"===s.orientation,s.dom.bounds());dest&&cur.started?cur.newPiece?board.dropNewPiece(s,cur.orig,dest,cur.force):(s.stats.ctrlKey=e.ctrlKey,board.userMove(s,cur.orig,dest)&&(s.stats.dragged=!0)):cur.newPiece?delete s.pieces[cur.orig]:s.draggable.deleteOnDropOff&&(delete s.pieces[cur.orig],board.callUserFunction(s.events.change)),!cur||cur.orig!==cur.previouslySelected||cur.orig!==dest&&dest?s.selectable.enabled||board.unselect(s):board.unselect(s),removeDragElements(s),s.draggable.current=void 0,s.dom.redraw()}}function cancel(s){var cur=s.draggable.current;cur&&(cur.newPiece&&delete s.pieces[cur.orig],s.draggable.current=void 0,board.unselect(s),removeDragElements(s),s.dom.redraw())}function removeDragElements(s){var e=s.dom.elements;e.ghost&&util.setVisible(e.ghost,!1)}function computeSquareBounds(key,asWhite,bounds){var pos=util.key2pos(key);return asWhite||(pos[0]=9-pos[0],pos[1]=9-pos[1]),{left:bounds.left+bounds.width*(pos[0]-1)/8,top:bounds.top+bounds.height*(8-pos[1])/8,width:bounds.width/8,height:bounds.height/8}}function pieceElementByKey(s,key){for(var el=s.dom.elements.board.firstChild;el;){if(el.cgKey===key&&"PIECE"===el.tagName)return el;el=el.nextSibling}}Object.defineProperty(exports,"__esModule",{value:!0});var board=__webpack_require__(1),util=__webpack_require__(0),draw_1=__webpack_require__(7),anim_1=__webpack_require__(4);exports.start=start,exports.dragNewPiece=dragNewPiece,exports.move=move,exports.end=end,exports.cancel=cancel},function(module,exports,__webpack_require__){"use strict";function start(state,e){if(!(e.touches&&e.touches.length>1)){e.stopPropagation(),e.preventDefault(),e.ctrlKey?board_1.unselect(state):board_1.cancelMove(state);var position=util_1.eventPosition(e),orig=board_1.getKeyAtDomPos(position,"white"===state.orientation,state.dom.bounds());orig&&(state.drawable.current={orig:orig,pos:position,brush:eventBrush(e)},processDraw(state))}}function processDraw(state){util_1.raf(function(){var cur=state.drawable.current;if(cur){var mouseSq=board_1.getKeyAtDomPos(cur.pos,"white"===state.orientation,state.dom.bounds());mouseSq!==cur.mouseSq&&(cur.mouseSq=mouseSq,cur.dest=mouseSq!==cur.orig?mouseSq:void 0,state.dom.redrawNow()),processDraw(state)}})}function move(state,e){state.drawable.current&&(state.drawable.current.pos=util_1.eventPosition(e))}function end(state){var cur=state.drawable.current;cur&&(cur.mouseSq&&addShape(state.drawable,cur),cancel(state))}function cancel(state){state.drawable.current&&(state.drawable.current=void 0,state.dom.redraw())}function clear(state){state.drawable.shapes.length&&(state.drawable.shapes=[],state.dom.redraw(),onChange(state.drawable))}function eventBrush(e){var a=e.shiftKey&&util_1.isRightButton(e)?1:0,b=e.altKey?2:0;return brushes[a+b]}function not(f){return function(x){return!f(x)}}function addShape(drawable,cur){var sameShape=function(s){return s.orig===cur.orig&&s.dest===cur.dest},similar=drawable.shapes.filter(sameShape)[0];similar&&(drawable.shapes=drawable.shapes.filter(not(sameShape))),similar&&similar.brush===cur.brush||drawable.shapes.push(cur),onChange(drawable)}function onChange(drawable){drawable.onChange&&drawable.onChange(drawable.shapes)}Object.defineProperty(exports,"__esModule",{value:!0});var board_1=__webpack_require__(1),util_1=__webpack_require__(0),brushes=["green","red","blue","yellow"];exports.start=start,exports.processDraw=processDraw,exports.move=move,exports.end=end,exports.cancel=cancel,exports.clear=clear},function(module,exports,__webpack_require__){"use strict";function createElement(tagName){return document.createElementNS("http://www.w3.org/2000/svg",tagName)}function renderSvg(state,root){var d=state.drawable,curD=d.current,cur=curD&&curD.mouseSq?curD:void 0,arrowDests={};d.shapes.concat(d.autoShapes).concat(cur?[cur]:[]).forEach(function(s){s.dest&&(arrowDests[s.dest]=(arrowDests[s.dest]||0)+1)});var shapes=d.shapes.concat(d.autoShapes).map(function(s){return{shape:s,current:!1,hash:shapeHash(s,arrowDests,!1)}});cur&&shapes.push({shape:cur,current:!0,hash:shapeHash(cur,arrowDests,!0)});var fullHash=shapes.map(function(sc){return sc.hash}).join("");if(fullHash!==state.drawable.prevSvgHash){state.drawable.prevSvgHash=fullHash;var defsEl=root.firstChild;syncDefs(d,shapes,defsEl),syncShapes(state,shapes,d.brushes,arrowDests,root,defsEl)}}function syncDefs(d,shapes,defsEl){var brush,brushes={};shapes.forEach(function(s){s.shape.dest&&(brush=d.brushes[s.shape.brush],s.shape.modifiers&&(brush=makeCustomBrush(brush,s.shape.modifiers)),brushes[brush.key]=brush)});for(var keysInDom={},el=defsEl.firstChild;el;)keysInDom[el.getAttribute("cgKey")]=!0,el=el.nextSibling;for(var key in brushes)keysInDom[key]||defsEl.appendChild(renderMarker(brushes[key]))}function syncShapes(state,shapes,brushes,arrowDests,root,defsEl){void 0===isTrident&&(isTrident=util_1.computeIsTrident());var bounds=state.dom.bounds(),hashesInDom={},toRemove=[];shapes.forEach(function(sc){hashesInDom[sc.hash]=!1});for(var elHash,el=defsEl.nextSibling;el;)elHash=el.getAttribute("cgHash"),hashesInDom.hasOwnProperty(elHash)?hashesInDom[elHash]=!0:toRemove.push(el),el=el.nextSibling;toRemove.forEach(function(el){return root.removeChild(el)}),shapes.forEach(function(sc){hashesInDom[sc.hash]||root.appendChild(renderShape(state,sc,brushes,arrowDests,bounds))})}function shapeHash(_a,arrowDests,current){var orig=_a.orig,dest=_a.dest,brush=_a.brush,piece=_a.piece,modifiers=_a.modifiers;return[current,orig,dest,brush,dest&&arrowDests[dest]>1,piece&&pieceHash(piece),modifiers&&modifiersHash(modifiers)].filter(function(x){return x}).join("")}function pieceHash(piece){return[piece.color,piece.role,piece.scale].filter(function(x){return x}).join("")}function modifiersHash(m){return""+(m.lineWidth||"")}function renderShape(state,_a,brushes,arrowDests,bounds){var el,shape=_a.shape,current=_a.current,hash=_a.hash;if(shape.piece)el=renderPiece(state.drawable.pieces.baseUrl,orient(util_1.key2pos(shape.orig),state.orientation),shape.piece,bounds);else{var orig=orient(util_1.key2pos(shape.orig),state.orientation);if(shape.orig&&shape.dest){var brush=brushes[shape.brush];shape.modifiers&&(brush=makeCustomBrush(brush,shape.modifiers)),el=renderArrow(brush,orig,orient(util_1.key2pos(shape.dest),state.orientation),current,arrowDests[shape.dest]>1,bounds)}else el=renderCircle(brushes[shape.brush],orig,current,bounds)}return el.setAttribute("cgHash",hash),el}function renderCircle(brush,pos,current,bounds){var o=pos2px(pos,bounds),widths=circleWidth(bounds),radius=(bounds.width+bounds.height)/32;return setAttributes(createElement("circle"),{stroke:brush.color,"stroke-width":widths[current?0:1],fill:"none",opacity:opacity(brush,current),cx:o[0],cy:o[1],r:radius-widths[1]/2})}function renderArrow(brush,orig,dest,current,shorten,bounds){var m=arrowMargin(bounds,shorten&&!current),a=pos2px(orig,bounds),b=pos2px(dest,bounds),dx=b[0]-a[0],dy=b[1]-a[1],angle=Math.atan2(dy,dx),xo=Math.cos(angle)*m,yo=Math.sin(angle)*m;return setAttributes(createElement("line"),{stroke:brush.color,"stroke-width":lineWidth(brush,current,bounds),"stroke-linecap":"round","marker-end":isTrident?void 0:"url(#arrowhead-"+brush.key+")",opacity:opacity(brush,current),x1:a[0],y1:a[1],x2:b[0]-xo,y2:b[1]-yo})}function renderPiece(baseUrl,pos,piece,bounds){var o=pos2px(pos,bounds),size=bounds.width/8*(piece.scale||1),name=piece.color[0]+("knight"===piece.role?"n":piece.role[0]).toUpperCase();return setAttributes(createElement("image"),{className:piece.role+" "+piece.color,x:o[0]-size/2,y:o[1]-size/2,width:size,height:size,href:baseUrl+name+".svg"})}function renderMarker(brush){var marker=setAttributes(createElement("marker"),{id:"arrowhead-"+brush.key,orient:"auto",markerWidth:4,markerHeight:8,refX:2.05,refY:2.01});return marker.appendChild(setAttributes(createElement("path"),{d:"M0,0 V4 L3,2 Z",fill:brush.color})),marker.setAttribute("cgKey",brush.key),marker}function setAttributes(el,attrs){for(var key in attrs)el.setAttribute(key,attrs[key]);return el}function orient(pos,color){return"white"===color?pos:[9-pos[0],9-pos[1]]}function makeCustomBrush(base,modifiers){var brush={color:base.color,opacity:Math.round(10*base.opacity)/10,lineWidth:Math.round(modifiers.lineWidth||base.lineWidth)};return brush.key=[base.key,modifiers.lineWidth].filter(function(x){return x}).join(""),brush}function circleWidth(bounds){var base=bounds.width/512;return[3*base,4*base]}function lineWidth(brush,current,bounds){return(brush.lineWidth||10)*(current?.85:1)/512*bounds.width}function opacity(brush,current){return(brush.opacity||1)*(current?.9:1)}function arrowMargin(bounds,shorten){return isTrident?0:(shorten?20:10)/512*bounds.width}function pos2px(pos,bounds){return[(pos[0]-.5)*bounds.width/8,(8.5-pos[1])*bounds.height/8]}Object.defineProperty(exports,"__esModule",{value:!0});var util_1=__webpack_require__(0);exports.createElement=createElement;var isTrident;exports.renderSvg=renderSvg},function(module,exports,__webpack_require__){var Component=__webpack_require__(22)(__webpack_require__(21),__webpack_require__(23),null,null);module.exports=Component.exports},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__,_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},Chess=function(fen){function _clear(){board=new Array(128),kings={w:EMPTY,b:EMPTY},_turn=WHITE,castling={w:0,b:0},ep_square=EMPTY,half_moves=0,move_number=1,_history=[],header={},update_setup(generate_fen())}function _reset(){_load(DEFAULT_POSITION)}function _load(fen){var tokens=fen.split(/\s+/),position=tokens[0],square=0;if(!_validate_fen(fen).valid)return!1;_clear();for(var i=0;i-1&&(castling.w|=BITS.KSIDE_CASTLE),tokens[2].indexOf("Q")>-1&&(castling.w|=BITS.QSIDE_CASTLE),tokens[2].indexOf("k")>-1&&(castling.b|=BITS.KSIDE_CASTLE),tokens[2].indexOf("q")>-1&&(castling.b|=BITS.QSIDE_CASTLE),ep_square="-"===tokens[3]?EMPTY:SQUARES[tokens[3]],half_moves=parseInt(tokens[4],10),move_number=parseInt(tokens[5],10),update_setup(generate_fen()),!0}function _validate_fen(fen){var errors={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"},tokens=fen.split(/\s+/);if(6!==tokens.length)return{valid:!1,error_number:1,error:errors[1]};if(isNaN(tokens[5])||parseInt(tokens[5],10)<=0)return{valid:!1,error_number:2,error:errors[2]};if(isNaN(tokens[4])||parseInt(tokens[4],10)<0)return{valid:!1,error_number:3,error:errors[3]};if(!/^(-|[abcdefgh][36])$/.test(tokens[3]))return{valid:!1,error_number:4,error:errors[4]};if(!/^(KQ?k?q?|Qk?q?|kq?|q|-)$/.test(tokens[2]))return{valid:!1,error_number:5,error:errors[5]};if(!/^(w|b)$/.test(tokens[1]))return{valid:!1,error_number:6,error:errors[6]};var rows=tokens[0].split("/");if(8!==rows.length)return{valid:!1,error_number:7,error:errors[7]};for(var i=0;i0&&(fen+=empty,empty=0);var color=board[i].color,piece=board[i].type;fen+=color===WHITE?piece.toUpperCase():piece.toLowerCase()}i+1&136&&(empty>0&&(fen+=empty),i!==SQUARES.h1&&(fen+="/"),empty=0,i+=8)}var cflags="";castling[WHITE]&BITS.KSIDE_CASTLE&&(cflags+="K"),castling[WHITE]&BITS.QSIDE_CASTLE&&(cflags+="Q"),castling[BLACK]&BITS.KSIDE_CASTLE&&(cflags+="k"),castling[BLACK]&BITS.QSIDE_CASTLE&&(cflags+="q"),cflags=cflags||"-";var epflags=ep_square===EMPTY?"-":algebraic(ep_square);return[fen,_turn,cflags,epflags,half_moves,move_number].join(" ")}function set_header(args){for(var i=0;i0||(fen!==DEFAULT_POSITION?(header.SetUp="1",header.FEN=fen):(delete header.SetUp,delete header.FEN))}function _get(square){var piece=board[SQUARES[square]];return piece?{type:piece.type,color:piece.color}:null}function _put(piece,square){if(!("type"in piece&&"color"in piece))return!1;if(-1===SYMBOLS.indexOf(piece.type.toLowerCase()))return!1;if(!(square in SQUARES))return!1;var sq=SQUARES[square];return(piece.type!=KING||kings[piece.color]==EMPTY||kings[piece.color]==sq)&&(board[sq]={type:piece.type,color:piece.color},piece.type===KING&&(kings[piece.color]=sq),update_setup(generate_fen()),!0)}function _remove(square){var piece=_get(square);return board[SQUARES[square]]=null,piece&&piece.type===KING&&(kings[piece.color]=EMPTY),update_setup(generate_fen()),piece}function build_move(board,from,to,flags,promotion){var move={color:_turn,from:from,to:to,flags:flags,piece:board[from].type};return promotion&&(move.flags|=BITS.PROMOTION,move.promotion=promotion),board[to]?move.captured=board[to].type:flags&BITS.EP_CAPTURE&&(move.captured=PAWN),move}function generate_moves(options){function add_move(board,moves,from,to,flags){if(board[from].type!==PAWN||rank(to)!==RANK_8&&rank(to)!==RANK_1)moves.push(build_move(board,from,to,flags));else for(var pieces=[QUEEN,ROOK,BISHOP,KNIGHT],i=0,len=pieces.length;i0){if(piece.color===WHITE)return!0}else if(piece.color===BLACK)return!0;continue}if("n"===piece.type||"k"===piece.type)return!0;for(var offset=RAYS[index],j=i+offset,blocked=!1;j!==square;){if(null!=board[j]){blocked=!0;break}j+=offset}if(!blocked)return!0}}return!1}function king_attacked(color){return attacked(swap_color(color),kings[color])}function _in_check(){return king_attacked(_turn)}function _in_checkmate(){return _in_check()&&0===generate_moves().length}function _in_stalemate(){return!_in_check()&&0===generate_moves().length}function _insufficient_material(){for(var pieces={},bishops=[],num_pieces=0,sq_color=0,i=SQUARES.a8;i<=SQUARES.h1;i++)if(sq_color=(sq_color+1)%2,136&i)i+=7;else{var piece=board[i];piece&&(pieces[piece.type]=piece.type in pieces?pieces[piece.type]+1:1,piece.type===BISHOP&&bishops.push(sq_color),num_pieces++)}if(2===num_pieces)return!0;if(3===num_pieces&&(1===pieces[BISHOP]||1===pieces[KNIGHT]))return!0;if(num_pieces===pieces[BISHOP]+2){for(var sum=0,len=bishops.length,i=0;i=3&&(repetition=!0),!moves.length)break;make_move(moves.pop())}return repetition}function push(move){_history.push({move:move,kings:{b:kings.b,w:kings.w},turn:_turn,castling:{b:castling.b,w:castling.w},ep_square:ep_square,half_moves:half_moves,move_number:move_number})}function make_move(move){var us=_turn,them=swap_color(us);if(push(move),board[move.to]=board[move.from],board[move.from]=null,move.flags&BITS.EP_CAPTURE&&(_turn===BLACK?board[move.to-16]=null:board[move.to+16]=null),move.flags&BITS.PROMOTION&&(board[move.to]={type:move.promotion,color:us}),board[move.to].type===KING){if(kings[board[move.to].color]=move.to,move.flags&BITS.KSIDE_CASTLE){var castling_to=move.to-1,castling_from=move.to+1;board[castling_to]=board[castling_from],board[castling_from]=null}else if(move.flags&BITS.QSIDE_CASTLE){var castling_to=move.to+1,castling_from=move.to-2;board[castling_to]=board[castling_from],board[castling_from]=null}castling[us]=""}if(castling[us])for(var i=0,len=ROOKS[us].length;i0?same_rank>0&&same_file>0?algebraic(from):same_file>0?algebraic(from).charAt(1):algebraic(from).charAt(0):""}function _ascii(){for(var s=" +------------------------+\n",i=SQUARES.a8;i<=SQUARES.h1;i++){if(0===file(i)&&(s+=" "+"87654321"[rank(i)]+" |"),null==board[i])s+=" . ";else{var piece=board[i].type;s+=" "+(board[i].color===WHITE?piece.toUpperCase():piece.toLowerCase())+" "}i+1&136&&(s+="|\n",i+=8)}return s+=" +------------------------+\n",s+=" a b c d e f g h\n"}function move_from_san(move,sloppy){var clean_move=stripped_san(move);if(sloppy){var matches=clean_move.match(/([pnbrqkPNBRQK])?([a-h][1-8])x?-?([a-h][1-8])([qrbnQRBN])?/);if(matches)var piece=matches[1],from=matches[2],to=matches[3],promotion=matches[4]}for(var moves=generate_moves(),i=0,len=moves.length;i>4}function file(i){return 15&i}function algebraic(i){var f=file(i),r=rank(i);return"abcdefgh".substring(f,f+1)+"87654321".substring(r,r+1)}function swap_color(c){return c===WHITE?BLACK:WHITE}function is_digit(c){return-1!=="0123456789".indexOf(c)}function make_pretty(ugly_move){var move=clone(ugly_move);move.san=move_to_san(move,!1),move.to=algebraic(move.to),move.from=algebraic(move.from);var flags="";for(var flag in BITS)BITS[flag]&move.flags&&(flags+=FLAGS[flag]);return move.flags=flags,move}function clone(obj){var dupe=obj instanceof Array?[]:{};for(var property in obj)"object"===(void 0===property?"undefined":_typeof(property))?dupe[property]=clone(obj[property]):dupe[property]=obj[property];return dupe}function trim(str){return str.replace(/^\s+|\s+$/g,"")}function _perft(depth){for(var moves=generate_moves({legal:!1}),nodes=0,color=_turn,i=0,len=moves.length;i0){var child_nodes=_perft(depth-1);nodes+=child_nodes}else nodes++;undo_move()}return nodes}var BLACK="b",WHITE="w",EMPTY=-1,PAWN="p",KNIGHT="n",BISHOP="b",ROOK="r",QUEEN="q",KING="k",SYMBOLS="pnbrqkPNBRQK",DEFAULT_POSITION="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",POSSIBLE_RESULTS=["1-0","0-1","1/2-1/2","*"],PAWN_OFFSETS={b:[16,32,17,15],w:[-16,-32,-17,-15]},PIECE_OFFSETS={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]},ATTACKS=[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],RAYS=[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],SHIFTS={p:0,n:1,b:2,r:3,q:4,k:5},FLAGS={NORMAL:"n",CAPTURE:"c",BIG_PAWN:"b",EP_CAPTURE:"e",PROMOTION:"p",KSIDE_CASTLE:"k",QSIDE_CASTLE:"q"},BITS={NORMAL:1,CAPTURE:2,BIG_PAWN:4,EP_CAPTURE:8,PROMOTION:16,KSIDE_CASTLE:32,QSIDE_CASTLE:64},RANK_1=7,RANK_2=6,RANK_7=1,RANK_8=0,SQUARES={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},ROOKS={w:[{square:SQUARES.a1,flag:BITS.QSIDE_CASTLE},{square:SQUARES.h1,flag:BITS.KSIDE_CASTLE}],b:[{square:SQUARES.a8,flag:BITS.QSIDE_CASTLE},{square:SQUARES.h8,flag:BITS.KSIDE_CASTLE}]},board=new Array(128),kings={w:EMPTY,b:EMPTY},_turn=WHITE,castling={w:0,b:0},ep_square=EMPTY,half_moves=0,move_number=1,_history=[],header={};return _load(void 0===fen?DEFAULT_POSITION:fen),{WHITE:WHITE,BLACK:BLACK,PAWN:PAWN,KNIGHT:KNIGHT,BISHOP:BISHOP,ROOK:ROOK,QUEEN:QUEEN,KING:KING,SQUARES:function(){for(var keys=[],i=SQUARES.a8;i<=SQUARES.h1;i++)136&i?i+=7:keys.push(algebraic(i));return keys}(),FLAGS:FLAGS,load:function(fen){return _load(fen)},reset:function(){return _reset()},moves:function(options){for(var ugly_moves=generate_moves(options),moves=[],i=0,len=ugly_moves.length;i=100||_in_stalemate()||_insufficient_material()||_in_threefold_repetition()},insufficient_material:function(){return _insufficient_material()},in_threefold_repetition:function(){return _in_threefold_repetition()},game_over:function(){return half_moves>=100||_in_checkmate()||_in_stalemate()||_insufficient_material()||_in_threefold_repetition()},validate_fen:function(fen){return _validate_fen(fen)},fen:function(){return generate_fen()},pgn:function(options){var newline="object"===(void 0===options?"undefined":_typeof(options))&&"string"==typeof options.newline_char?options.newline_char:"\n",max_width="object"===(void 0===options?"undefined":_typeof(options))&&"number"==typeof options.max_width?options.max_width:0,result=[],header_exists=!1;for(var i in header)result.push("["+i+' "'+header[i]+'"]'+newline),header_exists=!0;header_exists&&_history.length&&result.push(newline);for(var reversed_history=[];_history.length>0;)reversed_history.push(undo_move());for(var moves=[],move_string="";reversed_history.length>0;){var move=reversed_history.pop();_history.length||"b"!==move.color?"w"===move.color&&(move_string.length&&moves.push(move_string),move_string=move_number+"."):move_string=move_number+". ...",move_string=move_string+" "+move_to_san(move,!1),make_move(move)}if(move_string.length&&moves.push(move_string),void 0!==header.Result&&moves.push(header.Result),0===max_width)return result.join("")+moves.join(" ");for(var current_width=0,i=0;imax_width&&0!==i?(" "===result[result.length-1]&&result.pop(),result.push(newline),current_width=0):0!==i&&(result.push(" "),current_width++),result.push(moves[i]),current_width+=moves[i].length;return result.join("")},load_pgn:function(pgn,options){function mask(str){return str.replace(/\\/g,"\\")}var sloppy=void 0!==options&&"sloppy"in options&&options.sloppy,newline_char="object"===(void 0===options?"undefined":_typeof(options))&&"string"==typeof options.newline_char?options.newline_char:"\r?\n",regex=new RegExp("^(\\[(.|"+mask(newline_char)+")*\\])("+mask(newline_char)+")*1.("+mask(newline_char)+"|.)*$","g"),header_string=pgn.replace(regex,"$1");"["!==header_string[0]&&(header_string=""),_reset();var headers=function(header,options){for(var newline_char="object"===(void 0===options?"undefined":_typeof(options))&&"string"==typeof options.newline_char?options.newline_char:"\r?\n",header_obj={},headers=header.split(new RegExp(mask(newline_char))),key="",value="",i=0;i0&&(header_obj[key]=value);return header_obj}(header_string,options);for(var key in headers)set_header([key,headers[key]]);if("1"===headers.SetUp&&!("FEN"in headers&&_load(headers.FEN)))return!1;var ms=pgn.replace(header_string,"").replace(new RegExp(mask(newline_char),"g")," ");ms=ms.replace(/(\{[^}]+\})+?/g,"");for(var rav_regex=/(\([^\(\)]+\))+?/g;rav_regex.test(ms);)ms=ms.replace(rav_regex,"");ms=ms.replace(/\d+\.(\.\.)?/g,""),ms=ms.replace(/\.\.\./g,""),ms=ms.replace(/\$\d+/g,"");var moves=trim(ms).split(new RegExp(/\s+/));moves=moves.join(",").replace(/,,+/g,",").split(",");for(var move="",half_move=0;half_move-1)(function(object){for(var key in object)return!0;return!1})(header)&&void 0===header.Result&&set_header(["Result",move]);else{if(null==(move=move_from_san(move,sloppy)))return!1;make_move(move)}return!0},header:function(){return set_header(arguments)},ascii:function(){return _ascii()},turn:function(){return _turn},move:function(_move,options){var sloppy=void 0!==options&&"sloppy"in options&&options.sloppy,move_obj=null;if("string"==typeof _move)move_obj=move_from_san(_move,sloppy);else if("object"===(void 0===_move?"undefined":_typeof(_move)))for(var moves=generate_moves(),i=0,len=moves.length;i0;)reversed_history.push(undo_move());for(;reversed_history.length>0;){var move=reversed_history.pop();verbose?move_history.push(make_pretty(move)):move_history.push(move_to_san(move)),make_move(move)}return move_history}}};exports.Chess=Chess,void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return Chess}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},function(module,exports,__webpack_require__){"use strict";function start(state,redrawAll){function toggleOrientation(){board.toggleOrientation(state),redrawAll()}return{set:function(config){config.orientation&&config.orientation!==state.orientation&&toggleOrientation(),(config.fen?anim_1.anim:anim_1.render)(function(state){return config_1.configure(state,config)},state)},state:state,getFen:function(){return fen_1.write(state.pieces)},toggleOrientation:toggleOrientation,setPieces:function(pieces){anim_1.anim(function(state){return board.setPieces(state,pieces)},state)},selectSquare:function(key,force){key?anim_1.anim(function(state){return board.selectSquare(state,key,force)},state):state.selected&&(board.unselect(state),state.dom.redraw())},move:function(orig,dest){anim_1.anim(function(state){return board.baseMove(state,orig,dest)},state)},newPiece:function(piece,key){anim_1.anim(function(state){return board.baseNewPiece(state,piece,key)},state)},playPremove:function(){if(state.premovable.current){if(anim_1.anim(board.playPremove,state))return!0;state.dom.redraw()}return!1},playPredrop:function(validate){if(state.predroppable.current){var result=board.playPredrop(state,validate);return state.dom.redraw(),result}return!1},cancelPremove:function(){anim_1.render(board.unsetPremove,state)},cancelPredrop:function(){anim_1.render(board.unsetPredrop,state)},cancelMove:function(){anim_1.render(function(state){board.cancelMove(state),drag_1.cancel(state)},state)},stop:function(){anim_1.render(function(state){board.stop(state),drag_1.cancel(state)},state)},explode:function(keys){explosion_1.default(state,keys)},setAutoShapes:function(shapes){anim_1.render(function(state){return state.drawable.autoShapes=shapes},state)},setShapes:function(shapes){anim_1.render(function(state){return state.drawable.shapes=shapes},state)},getKeyAtDomPos:function(pos){return board.getKeyAtDomPos(pos,"white"===state.orientation,state.dom.bounds())},redrawAll:redrawAll,dragNewPiece:function(piece,event,force){drag_1.dragNewPiece(state,piece,event,force)},destroy:function(){board.stop(state),state.dom.unbind&&state.dom.unbind(),state.dom.destroyed=!0}}}Object.defineProperty(exports,"__esModule",{value:!0});var board=__webpack_require__(1),fen_1=__webpack_require__(2),config_1=__webpack_require__(5),anim_1=__webpack_require__(4),drag_1=__webpack_require__(6),explosion_1=__webpack_require__(14);exports.start=start},function(module,exports,__webpack_require__){"use strict";function Chessground(element,config){function redrawAll(){var prevUnbind=state.dom&&state.dom.unbind;element.classList.add("cg-board-wrap");var bounds=util.memo(function(){return element.getBoundingClientRect()}),relative=state.viewOnly&&!state.drawable.visible,elements=wrap_1.default(element,state,relative?void 0:bounds()),redrawNow=function(skipSvg){render_1.default(state),!skipSvg&&elements.svg&&svg.renderSvg(state,elements.svg)};state.dom={elements:elements,bounds:bounds,redraw:debounceRedraw(redrawNow),redrawNow:redrawNow,unbind:prevUnbind,relative:relative},state.drawable.prevSvgHash="",redrawNow(!1),events.bindBoard(state),prevUnbind||(state.dom.unbind=events.bindDocument(state,redrawAll))}var state=state_1.defaults();return config_1.configure(state,config||{}),redrawAll(),api_1.start(state,redrawAll)}function debounceRedraw(redrawNow){var redrawing=!1;return function(){redrawing||(redrawing=!0,util.raf(function(){redrawNow(),redrawing=!1}))}}Object.defineProperty(exports,"__esModule",{value:!0});var api_1=__webpack_require__(11),config_1=__webpack_require__(5),state_1=__webpack_require__(17),wrap_1=__webpack_require__(18),events=__webpack_require__(13),render_1=__webpack_require__(16),svg=__webpack_require__(8),util=__webpack_require__(0);exports.Chessground=Chessground},function(module,exports,__webpack_require__){"use strict";function bindBoard(s){if(!s.viewOnly){var boardEl=s.dom.elements.board,onStart=startDragOrDraw(s);boardEl.addEventListener("touchstart",onStart),boardEl.addEventListener("mousedown",onStart),(s.disableContextMenu||s.drawable.enabled)&&boardEl.addEventListener("contextmenu",function(e){return e.preventDefault()})}}function bindDocument(s,redrawAll){var unbinds=[];if(!s.dom.relative&&s.resizable){var onResize=function(){s.dom.bounds.clear(),util_1.raf(redrawAll)};unbinds.push(unbindable(document.body,"chessground.resize",onResize))}if(!s.viewOnly){var onmove_1=dragOrDraw(s,drag.move,draw.move),onend_1=dragOrDraw(s,drag.end,draw.end);["touchmove","mousemove"].forEach(function(ev){return unbinds.push(unbindable(document,ev,onmove_1))}),["touchend","mouseup"].forEach(function(ev){return unbinds.push(unbindable(document,ev,onend_1))});var onScroll=function(){return s.dom.bounds.clear()};unbinds.push(unbindable(window,"scroll",onScroll,{passive:!0})),unbinds.push(unbindable(window,"resize",onScroll,{passive:!0}))}return function(){return unbinds.forEach(function(f){return f()})}}function unbindable(el,eventName,callback,options){return el.addEventListener(eventName,callback,options),function(){return el.removeEventListener(eventName,callback)}}function startDragOrDraw(s){return function(e){s.draggable.current?drag.cancel(s):s.drawable.current?draw.cancel(s):e.shiftKey||util_1.isRightButton(e)?s.drawable.enabled&&draw.start(s,e):s.viewOnly||drag.start(s,e)}}function dragOrDraw(s,withDrag,withDraw){return function(e){e.shiftKey||util_1.isRightButton(e)?s.drawable.enabled&&withDraw(s,e):s.viewOnly||withDrag(s,e)}}Object.defineProperty(exports,"__esModule",{value:!0});var drag=__webpack_require__(6),draw=__webpack_require__(7),util_1=__webpack_require__(0);exports.bindBoard=bindBoard,exports.bindDocument=bindDocument},function(module,exports,__webpack_require__){"use strict";function explosion(state,keys){state.exploding={stage:1,keys:keys},state.dom.redraw(),setTimeout(function(){setStage(state,2),setTimeout(function(){return setStage(state,void 0)},120)},120)}function setStage(state,stage){state.exploding&&(stage?state.exploding.stage=stage:state.exploding=void 0,state.dom.redraw())}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=explosion},function(module,exports,__webpack_require__){"use strict";function diff(a,b){return Math.abs(a-b)}function pawn(color){return function(x1,y1,x2,y2){return diff(x1,x2)<2&&("white"===color?y2===y1+1||y1<=2&&y2===y1+2&&x1===x2:y2===y1-1||y1>=7&&y2===y1-2&&x1===x2)}}function king(color,rookFiles,canCastle){return function(x1,y1,x2,y2){return diff(x1,x2)<2&&diff(y1,y2)<2||canCastle&&y1===y2&&y1===("white"===color?1:8)&&(5===x1&&(3===x2||7===x2)||util.containsX(rookFiles,x2))}}function rookFilesOf(pieces,color){var piece;return Object.keys(pieces).filter(function(key){return(piece=pieces[key])&&piece.color===color&&"rook"===piece.role}).map(function(key){return util.key2pos(key)[0]})}function premove(pieces,key,canCastle){var mobility,piece=pieces[key],pos=util.key2pos(key);switch(piece.role){case"pawn":mobility=pawn(piece.color);break;case"knight":mobility=knight;break;case"bishop":mobility=bishop;break;case"rook":mobility=rook;break;case"queen":mobility=queen;break;case"king":mobility=king(piece.color,rookFilesOf(pieces,piece.color),canCastle)}return util.allKeys.map(util.key2pos).filter(function(pos2){return(pos[0]!==pos2[0]||pos[1]!==pos2[1])&&mobility(pos[0],pos[1],pos2[0],pos2[1])}).map(util.pos2key)}Object.defineProperty(exports,"__esModule",{value:!0});var util=__webpack_require__(0),knight=function(x1,y1,x2,y2){var xd=diff(x1,x2),yd=diff(y1,y2);return 1===xd&&2===yd||2===xd&&1===yd},bishop=function(x1,y1,x2,y2){return diff(x1,x2)===diff(y1,y2)},rook=function(x1,y1,x2,y2){return x1===x2||y1===y2},queen=function(x1,y1,x2,y2){return bishop(x1,y1,x2,y2)||rook(x1,y1,x2,y2)};exports.default=premove},function(module,exports,__webpack_require__){"use strict";function render(s){var k,p,el,pieceAtKey,elPieceName,anim,fading,pMvdset,pMvd,sMvdset,sMvd,asWhite="white"===s.orientation,posToTranslate=s.dom.relative?util.posToTranslateRel:util.posToTranslateAbs(s.dom.bounds()),translate=s.dom.relative?util.translateRel:util.translateAbs,boardEl=s.dom.elements.board,pieces=s.pieces,curAnim=s.animation.current,anims=curAnim?curAnim.plan.anims:{},fadings=curAnim?curAnim.plan.fadings:{},curDrag=s.draggable.current,squares=computeSquareClasses(s),samePieces={},sameSquares={},movedPieces={},movedSquares={},piecesKeys=Object.keys(pieces);for(el=boardEl.firstChild;el;){if(k=el.cgKey,isPieceNode(el))if(pieceAtKey=pieces[k],anim=anims[k],fading=fadings[k],elPieceName=el.cgPiece,!el.cgDragging||curDrag&&curDrag.orig===k||(el.classList.remove("dragging"),translate(el,posToTranslate(util_1.key2pos(k),asWhite)),el.cgDragging=!1),!fading&&el.cgFading&&(el.cgFading=!1,el.classList.remove("fading")),pieceAtKey){if(anim&&el.cgAnimating&&elPieceName===pieceNameOf(pieceAtKey)){var pos=util_1.key2pos(k);pos[0]+=anim[2],pos[1]+=anim[3],el.classList.add("anim"),translate(el,posToTranslate(pos,asWhite))}else el.cgAnimating&&(el.cgAnimating=!1,el.classList.remove("anim"),translate(el,posToTranslate(util_1.key2pos(k),asWhite)),s.addPieceZIndex&&(el.style.zIndex=posZIndex(util_1.key2pos(k),asWhite)));elPieceName!==pieceNameOf(pieceAtKey)||fading&&el.cgFading?fading&&elPieceName===pieceNameOf(fading)?(el.classList.add("fading"),el.cgFading=!0):movedPieces[elPieceName]?movedPieces[elPieceName].push(el):movedPieces[elPieceName]=[el]:samePieces[k]=!0}else movedPieces[elPieceName]?movedPieces[elPieceName].push(el):movedPieces[elPieceName]=[el];else if(isSquareNode(el)){var cn=el.className;squares[k]===cn?sameSquares[k]=!0:movedSquares[cn]?movedSquares[cn].push(el):movedSquares[cn]=[el]}el=el.nextSibling}for(var sk in squares)if(!sameSquares[sk]){sMvdset=movedSquares[squares[sk]],sMvd=sMvdset&&sMvdset.pop();var translation=posToTranslate(util_1.key2pos(sk),asWhite);if(sMvd)sMvd.cgKey=sk,translate(sMvd,translation);else{var squareNode=util_1.createEl("square",squares[sk]);squareNode.cgKey=sk,translate(squareNode,translation),boardEl.insertBefore(squareNode,boardEl.firstChild)}}for(var j in piecesKeys)if(k=piecesKeys[j],p=pieces[k],anim=anims[k],!samePieces[k])if(pMvdset=movedPieces[pieceNameOf(p)],pMvd=pMvdset&&pMvdset.pop()){pMvd.cgKey=k,pMvd.cgFading&&(pMvd.classList.remove("fading"),pMvd.cgFading=!1);var pos=util_1.key2pos(k);s.addPieceZIndex&&(pMvd.style.zIndex=posZIndex(pos,asWhite)),anim&&(pMvd.cgAnimating=!0,pMvd.classList.add("anim"),pos[0]+=anim[2],pos[1]+=anim[3]),translate(pMvd,posToTranslate(pos,asWhite))}else{var pieceName=pieceNameOf(p),pieceNode=util_1.createEl("piece",pieceName),pos=util_1.key2pos(k);pieceNode.cgPiece=pieceName,pieceNode.cgKey=k,anim&&(pieceNode.cgAnimating=!0,pos[0]+=anim[2],pos[1]+=anim[3]),translate(pieceNode,posToTranslate(pos,asWhite)),s.addPieceZIndex&&(pieceNode.style.zIndex=posZIndex(pos,asWhite)),boardEl.appendChild(pieceNode)}for(var i in movedPieces)removeNodes(s,movedPieces[i]);for(var i in movedSquares)removeNodes(s,movedSquares[i])}function isPieceNode(el){return"PIECE"===el.tagName}function isSquareNode(el){return"SQUARE"===el.tagName}function removeNodes(s,nodes){for(var i in nodes)s.dom.elements.board.removeChild(nodes[i])}function posZIndex(pos,asWhite){var z=2+8*(pos[1]-1)+(8-pos[0]);return asWhite&&(z=67-z),z+""}function pieceNameOf(piece){return piece.color+" "+piece.role}function computeSquareClasses(s){var i,k,squares={};if(s.lastMove&&s.highlight.lastMove)for(i in s.lastMove)addSquare(squares,s.lastMove[i],"last-move");if(s.check&&s.highlight.check&&addSquare(squares,s.check,"check"),s.selected&&(addSquare(squares,s.selected,"selected"),s.movable.showDests)){var dests=s.movable.dests&&s.movable.dests[s.selected];if(dests)for(i in dests)k=dests[i],addSquare(squares,k,"move-dest"+(s.pieces[k]?" oc":""));var pDests=s.premovable.dests;if(pDests)for(i in pDests)k=pDests[i],addSquare(squares,k,"premove-dest"+(s.pieces[k]?" oc":""))}var premove=s.premovable.current;if(premove)for(i in premove)addSquare(squares,premove[i],"current-premove");else s.predroppable.current&&addSquare(squares,s.predroppable.current.key,"current-premove");var o=s.exploding;if(o)for(i in o.keys)addSquare(squares,o.keys[i],"exploding"+o.stage);return squares}function addSquare(squares,key,klass){squares[key]?squares[key]+=" "+klass:squares[key]=klass}Object.defineProperty(exports,"__esModule",{value:!0});var util_1=__webpack_require__(0),util=__webpack_require__(0);exports.default=render},function(module,exports,__webpack_require__){"use strict";function defaults(){return{pieces:fen.read(fen.initial),orientation:"white",turnColor:"white",coordinates:!0,autoCastle:!0,viewOnly:!1,disableContextMenu:!1,resizable:!0,addPieceZIndex:!1,pieceKey:!1,highlight:{lastMove:!0,check:!0},animation:{enabled:!0,duration:200},movable:{free:!0,color:"both",showDests:!0,events:{},rookCastle:!0},premovable:{enabled:!0,showDests:!0,castle:!0,events:{}},predroppable:{enabled:!1,events:{}},draggable:{enabled:!0,distance:3,autoDistance:!0,centerPiece:!0,showGhost:!0,deleteOnDropOff:!1},selectable:{enabled:!0},stats:{dragged:!("ontouchstart"in window)},events:{},drawable:{enabled:!0,visible:!0,eraseOnClick:!0,shapes:[],autoShapes:[],brushes:{green:{key:"g",color:"#15781B",opacity:1,lineWidth:10},red:{key:"r",color:"#882020",opacity:1,lineWidth:10},blue:{key:"b",color:"#003088",opacity:1,lineWidth:10},yellow:{key:"y",color:"#e68f00",opacity:1,lineWidth:10},paleBlue:{key:"pb",color:"#003088",opacity:.4,lineWidth:15},paleGreen:{key:"pg",color:"#15781B",opacity:.4,lineWidth:15},paleRed:{key:"pr",color:"#882020",opacity:.4,lineWidth:15},paleGrey:{key:"pgr",color:"#4a4a4a",opacity:.35,lineWidth:15}},pieces:{baseUrl:"https://lichess1.org/assets/piece/cburnett/"},prevSvgHash:""},hold:util_1.timer()}}Object.defineProperty(exports,"__esModule",{value:!0});var fen=__webpack_require__(2),util_1=__webpack_require__(0);exports.defaults=defaults},function(module,exports,__webpack_require__){"use strict";function wrap(element,s,bounds){element.innerHTML="",element.classList.add("cg-board-wrap"),util_1.colors.forEach(function(c){element.classList.toggle("orientation-"+c,s.orientation===c)}),element.classList.toggle("manipulable",!s.viewOnly);var board=util_1.createEl("div","cg-board");element.appendChild(board);var svg;if(s.drawable.visible&&bounds&&(svg=svg_1.createElement("svg"),svg.appendChild(svg_1.createElement("defs")),element.appendChild(svg)),s.coordinates){var orientClass="black"===s.orientation?" black":"";element.appendChild(renderCoords(types_1.ranks,"ranks"+orientClass)),element.appendChild(renderCoords(types_1.files,"files"+orientClass))}var ghost;return bounds&&s.draggable.showGhost&&(ghost=util_1.createEl("piece","ghost"),util_1.setVisible(ghost,!1),element.appendChild(ghost)),{board:board,ghost:ghost,svg:svg}}function renderCoords(elems,className){var f,el=util_1.createEl("coords",className);for(var i in elems)f=util_1.createEl("coord"),f.textContent=elems[i],el.appendChild(f);return el}Object.defineProperty(exports,"__esModule",{value:!0});var util_1=__webpack_require__(0),types_1=__webpack_require__(3),svg_1=__webpack_require__(8);exports.default=wrap},function(module,__webpack_exports__,__webpack_require__){"use strict";function uniques(arr){return arr.filter(function(elem,index,self){return index===self.indexOf(elem)})}__webpack_exports__.a=uniques},function(module,__webpack_exports__,__webpack_require__){"use strict";function install(Vue){Vue.component("chessboard",__WEBPACK_IMPORTED_MODULE_0__components_chessboard_index_vue___default.a)}Object.defineProperty(__webpack_exports__,"__esModule",{value:!0}),__webpack_exports__.install=install;var __WEBPACK_IMPORTED_MODULE_0__components_chessboard_index_vue__=__webpack_require__(9),__WEBPACK_IMPORTED_MODULE_0__components_chessboard_index_vue___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__components_chessboard_index_vue__);__webpack_require__.d(__webpack_exports__,"chessboard",function(){return __WEBPACK_IMPORTED_MODULE_0__components_chessboard_index_vue___default.a});var plugin={version:"0.6.6",install:install};__webpack_exports__.default=plugin;var GlobalVue=null;"undefined"!=typeof window?GlobalVue=window.Vue:"undefined"!=typeof global&&(GlobalVue=global.Vue),GlobalVue&&GlobalVue.use(plugin)},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0_chess_js__=__webpack_require__(10),__WEBPACK_IMPORTED_MODULE_0_chess_js___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_chess_js__),__WEBPACK_IMPORTED_MODULE_1_chessground__=__webpack_require__(12),__WEBPACK_IMPORTED_MODULE_2__Util_js__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_chessground__),__webpack_require__(19));__webpack_exports__.default={name:"chessboard",props:{fen:{type:String,default:""},free:{type:Boolean,default:!1},showThreats:{type:Boolean,default:!1},onPromotion:{type:Function,default:function(){return"q"}},orientation:{type:String,default:"white"}},watch:{fen:function(newFen){this.fen=newFen,this.loadPosition()},orientation:function(_orientation){this.orientation=_orientation,this.loadPosition()},showThreats:function(st){this.showThreats=st,this.showThreats&&this.paintThreats()}},methods:{possibleMoves:function(){var _this=this,dests={};return this.game.SQUARES.forEach(function(s){var ms=_this.game.moves({square:s,verbose:!0});ms.length&&(dests[s]=ms.map(function(m){return m.to}))}),dests},opponentMoves:function(){var originalPGN=this.game.pgn(),tokens=this.game.fen().split(" ");if(tokens[1]="w"===tokens[1]?"b":"w",tokens=tokens.join(" "),this.game.load(tokens)){var moves=this.game.moves({verbose:!0});return this.game.load_pgn(originalPGN),moves}return[]},toColor:function(){return"w"===this.game.turn()?"white":"black"},paintThreats:function(){var moves=this.game.moves({verbose:!0}),threats=[];moves.forEach(function(move){threats.push({orig:move.to,brush:"yellow"}),move.captured&&threats.push({orig:move.from,dest:move.to,brush:"red"}),move.san.includes("+")&&threats.push({orig:move.from,dest:move.to,brush:"blue"})}),this.board.setShapes(threats)},calculatePromotions:function(){var moves=this.game.moves({verbose:!0});this.promotions=[];var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=moves[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var move=_step.value;move.promotion&&this.promotions.push(move)}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}},isPromotion:function(orig,dest){return this.promotions.filter(function(move){return move.from===orig&&move.to===dest}).length>0},changeTurn:function(){var _this2=this;return function(orig,dest,metadata){_this2.isPromotion(orig,dest)&&(_this2.promoteTo=_this2.onPromotion()),_this2.game.move({from:orig,to:dest,promotion:_this2.promoteTo}),_this2.board.set({fen:_this2.game.fen(),turnColor:_this2.toColor(),movable:{color:_this2.toColor(),dests:_this2.possibleMoves()}}),_this2.calculatePromotions(),_this2.afterMove()}},afterMove:function(){this.showThreats&&this.paintThreats();var threats=this.countThreats(this.toColor())||{};threats.history=this.game.history(),threats.fen=this.game.fen(),this.$emit("onMove",threats)},countThreats:function(color){var threats={},captures=0,checks=0,moves=this.game.moves({verbose:!0});return color!==this.toColor()&&(moves=this.opponentMoves()),0===moves.length?null:(moves.forEach(function(move){move.captured&&captures++,move.san.includes("+")&&checks++}),threats["legal_"+color]=__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__Util_js__.a)(moves.map(function(x){return x.from+x.to})).length,threats["checks_"+color]=checks,threats["threat_"+color]=captures,threats.turn=color,threats)},loadPosition:function(){this.game.load(this.fen),this.board=__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_chessground__.Chessground)(this.$refs.board,{fen:this.game.fen(),turnColor:this.toColor(),movable:{color:this.toColor(),free:this.free,dests:this.possibleMoves()},orientation:this.orientation}),this.board.set({movable:{events:{after:this.changeTurn()}}}),this.afterMove()}},mounted:function(){this.loadPosition()},created:function(){this.game=new __WEBPACK_IMPORTED_MODULE_0_chess_js___default.a,this.board=null,this.promotions=[],this.promoteTo="q"}}},function(module,exports){module.exports=function(rawScriptExports,compiledTemplate,scopeId,cssModules){var esModule,scriptExports=rawScriptExports=rawScriptExports||{},type=typeof rawScriptExports.default;"object"!==type&&"function"!==type||(esModule=rawScriptExports,scriptExports=rawScriptExports.default);var options="function"==typeof scriptExports?scriptExports.options:scriptExports;if(compiledTemplate&&(options.render=compiledTemplate.render,options.staticRenderFns=compiledTemplate.staticRenderFns),scopeId&&(options._scopeId=scopeId),cssModules){var computed=options.computed||(options.computed={});Object.keys(cssModules).forEach(function(key){var module=cssModules[key];computed[key]=function(){return module}})}return{esModule:esModule,exports:scriptExports,options:options}}},function(module,exports){module.exports={render:function(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _c("div",{staticClass:"blue merida"},[_c("div",{ref:"board",staticClass:"cg-board-wrap"}),_vm._v(" "),_c("br")])},staticRenderFns:[]}}]); -------------------------------------------------------------------------------- /dist/vue-chessboard.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Chessground base css properties. 3 | * 4 | * You need to include the css files in themes folder in order to have the 5 | * board and pieces displayed! 6 | */ 7 | .cg-board-wrap { 8 | width: 320px; 9 | height: 320px; 10 | position: relative; 11 | display: block; 12 | } 13 | .cg-board { 14 | position: absolute; 15 | top: 0; 16 | left: 0; 17 | width: 100%; 18 | height: 100%; 19 | -webkit-user-select: none; 20 | -moz-user-select: none; 21 | -ms-user-select: none; 22 | user-select: none; 23 | line-height: 0; 24 | background-size: cover; 25 | cursor: pointer; 26 | } 27 | .cg-board square { 28 | position: absolute; 29 | top: 0; 30 | left: 0; 31 | width: 12.5%; 32 | height: 12.5%; 33 | } 34 | .cg-board square.move-dest { 35 | background: radial-gradient(rgba(20, 85, 30, 0.5) 22%, #208530 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 36 | } 37 | .cg-board square.premove-dest { 38 | background: radial-gradient(rgba(20, 30, 85, 0.5) 22%, #203085 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 39 | } 40 | .cg-board square.oc.move-dest { 41 | background: radial-gradient(transparent 0%, transparent 80%, rgba(20, 85, 0, 0.3) 80%); 42 | } 43 | .cg-board square.oc.premove-dest { 44 | background: radial-gradient(transparent 0%, transparent 80%, rgba(20, 30, 85, 0.2) 80%); 45 | } 46 | .cg-board .cg-square.move-dest.drag-over, 47 | .cg-board .cg-square.premove-dest.drag-over { 48 | box-shadow: inset 0 0 10px 2px rgba(216, 85, 0, 0.9); 49 | } 50 | .cg-board square.last-move { 51 | will-change: transform; 52 | background-color: rgba(155, 199, 0, 0.41); 53 | } 54 | .cg-board square.selected { 55 | background-color: rgba(20, 85, 30, 0.5); 56 | } 57 | .cg-board square.check { 58 | background: radial-gradient(ellipse at center, rgba(255, 0, 0, 1) 0%, rgba(231, 0, 0, 1) 25%, rgba(169, 0, 0, 0) 89%, rgba(158, 0, 0, 0) 100%); 59 | } 60 | .cg-board square.current-premove { 61 | background-color: rgba(20, 30, 85, 0.5); 62 | } 63 | .cg-board piece { 64 | position: absolute; 65 | top: 0; 66 | left: 0; 67 | width: 12.5%; 68 | height: 12.5%; 69 | background-size: cover; 70 | z-index: 2; 71 | will-change: transform; 72 | } 73 | .cg-board piece.dragging { 74 | cursor: move; 75 | z-index: 9; 76 | } 77 | .cg-board piece.anim { 78 | z-index: 8; 79 | } 80 | .cg-board piece.fading { 81 | z-index: 1; 82 | opacity: 0.5; 83 | } 84 | .cg-board-wrap div.over { 85 | position: absolute; 86 | top: 0; 87 | left: 0; 88 | background-color: rgba(20, 85, 30, 0.3); 89 | } 90 | .cg-board-wrap piece.ghost { 91 | opacity: 0.3; 92 | } 93 | .cg-board-wrap svg { 94 | overflow: hidden; 95 | position: relative; 96 | top: 0px; 97 | left: 0px; 98 | width: 100%; 99 | height: 100%; 100 | pointer-events: none; 101 | z-index: 2; 102 | opacity: 0.6; 103 | } 104 | .cg-board-wrap svg image { 105 | opacity: 0.5; 106 | } 107 | .cg-board-wrap coords { 108 | position: absolute; 109 | display: flex; 110 | pointer-events: none; 111 | opacity: 0.8; 112 | font-size: 9px; 113 | } 114 | .cg-board-wrap coords.ranks { 115 | right: -15px; 116 | top: 0; 117 | flex-flow: column-reverse; 118 | height: 100%; 119 | width: 12px; 120 | } 121 | .cg-board-wrap coords.ranks.black { 122 | flex-flow: column; 123 | } 124 | .cg-board-wrap coords.files { 125 | bottom: -16px; 126 | left: 0; 127 | flex-flow: row; 128 | width: 100%; 129 | height: 16px; 130 | text-transform: uppercase; 131 | text-align: center; 132 | } 133 | .cg-board-wrap coords.files.black { 134 | flex-flow: row-reverse; 135 | } 136 | .cg-board-wrap coords coord { 137 | flex: 1 1 auto; 138 | } 139 | .cg-board-wrap coords.ranks coord { 140 | transform: translateY(39%); 141 | } 142 | 143 | 144 | /* THEME CUSTOMIZATION*/ 145 | /* 146 | * Board 147 | */ 148 | .blue .cg-board-wrap { 149 | background-image: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA4MDAgODAwIj4NCjxnIGlkPSJicm93bi1ib2FyZCI+DQo8ZyBpZD0iTGlnaHQiIGZpbGw9IiNkZWUzZTYiPg0KPHJlY3Qgd2lkdGg9IjgwMCIgaGVpZ2h0PSI4MDAiLz4NCjwvZz4NCjxnIGlkPSJGcmFtZSIgZmlsbD0ibm9uZSI+DQo8cmVjdCB3aWR0aD0iODAwIiBoZWlnaHQ9IjgwMCIvPg0KPC9nPg0KPGcgaWQ9IkRhcmsiIGZpbGw9IiM4Y2EyYWQiPg0KPGcgaWQ9InJheiI+DQo8ZyBpZD0iZHZhIj4NCjxnIGlkPSJ0cmkiPg0KPHJlY3QgeD0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPHJlY3QgeD0iMzAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPHJlY3QgeD0iNTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPHJlY3QgeD0iNzAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPC9nPg0KPHVzZSB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAwLDEwMCkiIHhsaW5rOmhyZWY9IiN0cmkiLz4NCjwvZz4NCjx1c2UgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyMDApIiB4bGluazpocmVmPSIjZHZhIi8+DQo8L2c+DQo8dXNlIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNDAwKSIgeGxpbms6aHJlZj0iI3JheiIvPg0KPC9nPg0KPC9nPg0KPC9zdmc+'); 150 | } 151 | .merida .cg-board piece.pawn.white { 152 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyMS4xMyIgeTE9IjM3LjM1IiB4Mj0iNzcuNzYiIHkyPSIzNy40NjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLjk3MzI0IDAgMS4yNDMpIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJtMjUgNDYuNDVoLTEzLjM5NGMtLjY2LTEuNjA3LS45OTEtMy4yODgtLjk5MS01LjA0IDAtMi45NzUuODY0LTUuNjQ0IDIuNTk5LTguMDIgMS43MzYtMi4zNjUgMy45NzEtNC4wNTQgNi42OTctNS4wNjgtMS4xNjgtLjUyNy0yLjEyNS0xLjMyNy0yLjg2Mi0yLjM5OC0uNzM3LTEuMDcxLTEuMTAxLTIuMjgzLTEuMTAxLTMuNjM0IDAtMS42ODkuNTc2LTMuMTU2IDEuNzM2LTQuMzkyIDEuMTUyLTEuMjQ0IDIuNTc0LTEuOTYxIDQuMjY3LTIuMTUxLTEuMzQ2LS45ODEtMi4wMi0yLjI4Mi0yLjAyLTMuODg5IDAtMS4zNTEuNDkxLTIuNTEzIDEuNDgyLTMuNDc3Ljk4Mi0uOTY0IDIuMTc2LTEuNDQyIDMuNTgxLTEuNDQyIDEuMzg5IDAgMi41ODIuNDc4IDMuNTczIDEuNDQyLjk5MS45NjQgMS40OSAyLjEyNiAxLjQ5IDMuNDc3IDAgMS42MDctLjY2OSAyLjkwOS0yLjAyIDMuODg5IDEuNjkzLjE5IDMuMTE2LjkwNiA0LjI2NyAyLjE1MSAxLjE2IDEuMjM2IDEuNzM2IDIuNzAzIDEuNzM2IDQuMzkyIDAgMS4zNTEtLjM3MyAyLjU2My0xLjEyNiAzLjYzNC0uNzUzIDEuMDcxLTEuNzEgMS44Ny0yLjg2MiAyLjM5OCAyLjcyNiAxLjAxNCA0Ljk2MSAyLjcwMyA2LjY5NyA1LjA2OCAxLjczNiAyLjM3MyAyLjU5OSA1LjA0IDIuNTk5IDguMDIgMCAxLjczOS0uMzIyIDMuNDItLjk2NSA1LjA0aC0xMy4zOTQiIGZpbGw9IiMxZjFhMTciLz48cGF0aCBkPSJtMjUgNDQuODA4aDEyLjE3NWMuMzQ3LTEuMTU0LjUyNS0yLjI5MS41MjUtMy40MDMgMC0yLjUxMy0uNzExLTQuNzg3LTIuMTQyLTYuODMxLTEuNDMxLTIuMDQ0LTMuMjc3LTMuNTUyLTUuNTItNC41MTYtMS41ODQtLjYyLTEuNjQzLS42NTktMS42NDMtMS43MzkgMC0uODQ5LjU1OS0xLjQ3NSAxLjY2OC0xLjg3OSAxLjUzMi0xLjA0NyAyLjMwMy0yLjQzMSAyLjMwMy00LjE1MyAwLTEuMjQ0LS40MzItMi4zMjQtMS4yODctMy4yNjMtLjg2NC0uOTMxLTEuOTA1LTEuNDY3LTMuMTI0LTEuNjE1LS45OTktLjA4Mi0xLjQ5LS42MjYtMS40OS0xLjY0IDAtLjQ1My4xNzgtLjg3My41NDItMS4yNjEuODk4LS42NzYgMS4zNDYtMS41NTcgMS4zNDYtMi42NTMgMC0uODk4LS4zMzktMS42NzMtLjk5OS0yLjMxNi0uNjYtLjY0My0xLjQ0OC0uOTY0LTIuMzU0LS45NjQtLjk0IDAtMS43NDQuMzIxLTIuMzk2Ljk2NC0uNjUyLjY0My0uOTc0IDEuNDE3LS45NzQgMi4zMTYgMCAxLjA3OS40NCAxLjk2MSAxLjMzOCAyLjY1My4zNjQuMzU0LjU0Mi43NzUuNTQyIDEuMjYxIDAgMS4wMTQtLjQ4MyAxLjU1Ny0xLjQ2NSAxLjY0LTEuMjM2LjE0OC0yLjI4Ni42ODQtMy4xMzMgMS42MTUtLjg1NS45MzktMS4yNzkgMi4wMi0xLjI3OSAzLjI2MyAwIDEuNzIyLjc3IDMuMTA2IDIuMzAzIDQuMTUzIDEuMTA5LjQxMiAxLjY2OCAxLjA0NiAxLjY2OCAxLjg3OSAwIDEuMDc5LS4wNjcgMS4xMTgtMS42NjggMS43MzktMi4yNDQuOTY0LTQuMDgxIDIuNDcyLTUuNTAzIDQuNTE2LTEuNDIyIDIuMDQ0LTIuMTM0IDQuMzE4LTIuMTM0IDYuODMxIDAgMS4xOTUuMTc4IDIuMzI0LjUyNSAzLjQwM2gxMi4xNzUiIGZpbGw9InVybCgjMCkiLz48L3N2Zz4='); 153 | } 154 | .merida .cg-board piece.bishop.white { 155 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjEzIiB5MT0iMzcuNTkyIiB4Mj0iNzcuNjQiIHkyPSIzNy40NjkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSIjMWYxYTE3IiBkPSJtMjUuNDQ3IDQyLjAxYy0uMjI5Ljk0LS41MTcgMS41OTItLjg0NyAxLjk1Ni0uMzMuMzY0LS43NjIuNzQ1LTEuMzEyIDEuMTQzLS41OTMuNDE1LTEuMjk1Ljc2Mi0yLjEwOCAxLjA1LS44MTMuMjg4LTEuNzEuMzY0LTIuNzAxLjIxMmwtNi45NjgtLjk2NWMtLjI4OC0uMDM0LS41MzMtLjAzNC0uNzYyIDAtLjIyLjAzNC0uNDMyLjA1MS0uNjM1LjA1MS0uMzQ3IDAtLjc4Ny4wNzYtMS4zMjEuMjM3LS41NDIuMTUyLS45NTcuMzgxLTEuMjUzLjY3N2wtMi40MDUtMy45NDZjLjI5Ni0uMzMuNTU5LS41NTkuNzg3LS42OTQuMjM3LS4xMjcuNTA4LS4yNzEuODIxLS40MTUuOTU3LS40NDkgMS45ODEtLjcyIDMuMDczLS44MjEuNDY2LS4wMzQuOTIzLS4wNDIgMS4zNjMtLjAyNS40NDkuMDE3LjkxNCAwIDEuMzk3LS4wNTEuODg5LjE1MiAxLjc4Ni4yODggMi42ODQuNDA2LjkwNi4xMjcgMS44MTIuMjU0IDIuNzE4LjM4OS45OTEgMCAxLjY2LS4xMDIgMi4wMS0uMjk2LjE4Ni0uMTAyLjQ3NC0uMjg4Ljg3Mi0uNTUuMzk4LS4yNjIuNzk2LS42NTIgMS4xOTQtMS4xNjgtLjg4MS0uMDkzLTEuNzctLjI2Mi0yLjY4NC0uNTA4LS45MDYtLjIzNy0xLjcxLS40OTEtMi40MDQtLjc1NGwyLjU4Mi02LjQwMWMtMS4yOTUtLjc0NS0yLjE5My0xLjMzOC0yLjcwOS0xLjc5NS0uNTA4LS40NTctLjkxNC0uOTgyLTEuMjExLTEuNTc1LS40MzItLjc2Mi0uNzExLTEuNDk5LS44My0yLjIxLS4xMjctLjcxMS0uMTc4LTEuMzQ2LS4xNjEtMS45MTMuMDE3LS45OTEuMjQ1LTIuMDgzLjcwMy0zLjI4NS40NTctMS4xOTQgMS4zMTItMi4yNjkgMi41NjUtMy4yMDkgMS4wNDEtLjc5NiAyLjA2Ni0xLjYxNyAzLjA1Ny0yLjQ1NS45OTEtLjg0NyAxLjk3My0xLjgyOSAyLjk0Ni0yLjk1NS0xLjIxOS0uNjI3LTEuODI5LTEuNjI2LTEuODI5LTIuOTk3IDAtLjkzMS4zMjItMS43MTkuOTc0LTIuMzg4LjY1Mi0uNjYgMS40NTYtLjk5MSAyLjM5Ni0uOTkxLjkyMyAwIDEuNzE5LjMzIDIuMzc5Ljk5MS42Ni42NjkuOTkxIDEuNDU2Ljk5MSAyLjM4OCAwIDEuMzU1LS42MSAyLjM1NC0xLjgyOSAyLjk5Ny45NTcgMS4xMjYgMS45MyAyLjEwOCAyLjkxMyAyLjk1NS45ODIuODM4IDIuMDIgMS42NiAzLjA5IDIuNDU1IDEuMjM2Ljk0IDIuMDgzIDIuMDIgMi41MjMgMy4yMDkuNDQ5IDEuMjAyLjY5NCAyLjI5NC43MiAzLjI4NSAwIC41NjctLjA1MSAxLjIwMi0uMTY5IDEuOTEzLS4xMTguNzExLS4zODEgMS40NDgtLjc5NiAyLjIxLS4zMy41OTMtLjc0NSAxLjExOC0xLjI1MyAxLjU3NS0uNS40NTctMS4zODkgMS4wNS0yLjY2NyAxLjc5NWwyLjU4MiA2LjQwMWMtLjcyOC4yNjMtMS41NDkuNTE3LTIuNDU1Ljc1NC0uOTE0LjI0Ni0xLjc4Ny40MTUtMi42MzMuNTA4LjM4MS41MTcuNzcuOTA2IDEuMTY4IDEuMTY4LjM5OC4yNjMuNjk0LjQ0OS44OTguNTUuMzQ3LjE5NSAxLjAxNi4yOTYgMi4wMS4yOTYuODg5LS4xMzYgMS43ODYtLjI2MyAyLjY5Mi0uMzg5Ljg5OC0uMTE4IDEuODAzLS4yNTQgMi43MTgtLjQwNi40NC4wNTEuODg5LjA2OCAxLjM0Ni4wNTEuNDU3LS4wMTcuOTIzLS4wMDggMS40MDUuMDI1IDEuMDU4LjEwMiAyLjA4My4zNzMgMy4wNzMuODIxLjI5Ni4xNDQuNTY3LjI4OC44MDQuNDE1LjI0NS4xMzUuNTA4LjM2NC44MDQuNjk0bC0yLjQzIDMuOTQ2Yy0uMjk2LS4yOTYtLjcxMS0uNTI1LTEuMjUzLS42NzctLjUzMy0uMTYxLS45NjUtLjIzNy0xLjI5NS0uMjM3LS4yMiAwLS40NC0uMDE3LS42Ni0uMDUxLS4yMi0uMDM0LS40NzQtLjAzNC0uNzU0IDBsLTYuOTUxLjk2NWMtLjk5MS4xNTItMS45MTMuMDg1LTIuNzYtLjE5NS0uODU1LS4yNzktMS41NTgtLjY1Mi0yLjEtMS4xMTgtLjU0Mi0uNDQ5LS45ODItLjgzLTEuMzA0LTEuMTUxLS4zMjItLjMyMi0uNTkzLS45NTctLjgwNC0xLjg5NyIvPjxwYXRoIGZpbGw9InVybCgjMCkiIGQ9Im0yNi4zMiAzOS4yYzAgMS4wOTIuMjQ1IDIuMDI0Ljc1MyAyLjc5NC41Ljc3IDEuMDQxIDEuMzcyIDEuNjI2IDEuNzk1LjkwNi42NjkgMi4yMzUuOTk5IDMuOTg4Ljk5OS40MzIgMCAxLjI3OS0uMDkzIDIuNTMyLS4yNzkgMS4wMjUtLjE2MSAxLjg1NC0uMjc5IDIuNDgxLS4zNTYuNjI3LS4wNzYgMS4wNS0uMTM1IDEuMjctLjE4Ni42MjctLjA4NSAxLjI4Ny0uMDY4IDEuOTgxLjA1MS4yNjIuMDY4LjU1OS4xMjcuODguMTg2LjMyMi4wNTkuNTkzLjE4Ni44MDQuMzgxbDEuMTk0LTEuOTNjLS42NzctLjM0Ny0xLjM5Ny0uNTkzLTIuMTU5LS43Mi0xLjI1My0uMjItMi4zNTQtLjI2My0zLjMwMi0uMTUyLS4yNzkuMDM0LS42NDMuMTE4LTEuMTAxLjI0NS0uNDU3LjEzNi0xLjA2Ny4yNjMtMS44NDYuMzczLTEuNjc2LjI3MS0yLjU1Ny4zOTgtMi42NTkuMzk4LS42NDQgMC0xLjIwMi0uMDc2LTEuNjg1LS4yNDYtLjQ4My0uMTY5LS45MDYtLjM0Ny0xLjI4Ny0uNTQyLS44ODEtLjM5OC0xLjc3LTEuMzM4LTIuNjg0LTIuODExaC0uNzg3bS0xLjc2MSAwaC0uNzk2Yy0uOTMxIDEuNDktMS44MTIgMi40My0yLjY1OSAyLjgxMS0uMzk4LjE5NS0uODMuMzczLTEuMzEyLjU0Mi0uNDgzLjE2OS0xLjAzMy4yNDYtMS42Ni4yNDYtLjExOSAwLS45OTktLjEyNy0yLjY1OS0uMzk4LS43ODctLjExLTEuNDIyLS4yMzctMS44OC0uMzczLS40NjYtLjEyNy0uODMtLjIxMi0xLjA5Mi0uMjQ1LS45NDgtLjExLTIuMDQtLjA2OC0zLjMwMi4xNTItLjc2Mi4xMjctMS40NzMuMzczLTIuMTM0LjcybDEuMTk0IDEuOTNjLjE5NS0uMTk1LjQ1Ny0uMzIyLjc3OS0uMzgxLjMyMi0uMDU5LjYxOC0uMTE4Ljg4LS4xODYuNjk0LS4xMTkgMS4zNTUtLjEzNiAxLjk4MS0uMDUxLjIyLjA1MS42NDMuMTEgMS4yNy4xODYuNjI3LjA3NiAxLjQ2NS4xOTUgMi41MDYuMzU2IDEuMjM2LjE4NiAyLjA4My4yNzkgMi41MzIuMjc5IDEuNzM2IDAgMy4wNjUtLjMzIDMuOTg4LS45OTkuNTY3LS40MjMgMS4xMDEtMS4wMjUgMS42LTEuNzk1LjUwOC0uNzcuNzYyLTEuNzAyLjc2Mi0yLjc5NG0uODg5LTkuMzQ3YzEuNiAwIDMuMTQxLjEyNyA0LjYxNC4zNzMgMS42MTctLjU3NiAyLjc5NC0xLjQ4MiAzLjUyMi0yLjcwMS42MjctMS4wNTguOTQtMi4yMjcuOTQtMy40OTcgMC0uNzYyLS4xODYtMS42LS41NjctMi41MjMtLjM4MS0uOTE0LS45OTktMS43NDQtMS44NjMtMi40ODktLjk3NC0uODEzLTIuMDQtMS43MDItMy4yLTIuNjY3LTEuMTUxLS45NjUtMi4zMDMtMi4xLTMuNDQ2LTMuMzg3LTEuMTYgMS4yODctMi4zMTEgMi40MjItMy40NzEgMy4zODctMS4xNi45NjUtMi4yMTggMS44NTQtMy4xNzUgMi42NjctLjg4MS43NDUtMS40OTkgMS41NzUtMS44NzEgMi40ODktLjM3Mi45MjMtLjU1OSAxLjc2MS0uNTU5IDIuNTIzIDAgMS4yNy4zMDUgMi40MzguOTE0IDMuNDk3LjcxMSAxLjIxOSAxLjg5NyAyLjEyNSAzLjU0OCAyLjcwMSAxLjQ1Ni0uMjQ2IDIuOTk3LS4zNzMgNC42MTQtLjM3M20wIDQuNTEzYzEuOTM5IDAgMy43OTMuMTk1IDUuNTc5LjU3NmwtMS4xODUtMy4wNTdjLTEuNDU2LS4yMjktMi45MjEtLjM0Ny00LjM5NC0uMzQ3LTEuNTA3IDAtMi45OC4xMTktNC40MTEuMzQ3bC0xLjE5NCAzLjA1N2MxLjc3LS4zODEgMy42NDEtLjU3NiA1LjYwNS0uNTc2bTAtMjMuNTM3YzEuMTI2IDAgMS42ODUtLjU1OSAxLjY4NS0xLjY4NSAwLTEuMTI2LS41NTktMS42OTMtMS42ODUtMS42OTMtMS4xMjYgMC0xLjY4NS41NjctMS42ODUgMS42OTMgMCAxLjEyNi41NTkgMS42ODUgMS42ODUgMS42ODVtMCAyNy4wMWMxLjEyNiAwIDIuMjE4LS4wOTMgMy4yODUtLjI3OSAxLjA2Ny0uMTk1IDIuMS0uNDIzIDMuMDktLjY4Ni0xLjkzOS0uNTA4LTQuMDY0LS43Ny02LjM3NS0uNzctMi4zNDUgMC00LjQ3LjI2My02LjM3NS43Ny45NTcuMjYzIDEuOTczLjQ5MSAzLjA0OC42ODYgMS4wNzUuMTg2IDIuMTg0LjI3OSAzLjMyNy4yNzltLS44ODktMTQuMzM0bC0yLjA2Ni0uMDI1Yy0uNTU5IDAtLjgzOC0uMjc5LS44MzgtLjg0NyAwLS41NTkuMjc5LS44MzguODM4LS44MzhoMi4wNjZ2LTIuMTM0YzAtLjU3Ni4yOTYtLjg3Mi44ODktLjg3Mi41NzYgMCAuODcyLjI5Ni44NzIuODcydjIuMTM0aDIuMTM0Yy41NDIgMCAuODEzLjI3OS44MTMuODM4IDAgLjU2Ny0uMjcxLjg0Ny0uODEzLjg0N2gtMi4xMzR2Mi4wMzJjMCAuNjAxLS4yOTYuODk4LS44NzIuODk4LS41OTMgMC0uODg5LS4yOTYtLjg4OS0uODk4di0yLjAxIi8+PC9zdmc+'); 156 | } 157 | .merida .cg-board piece.knight.white { 158 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjQwNSIgeDI9Ijc3LjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzFmMWExNyIgZD0ibTI2LjE4IDkuMzk1YzIuNTk5LjE2OSA1IC44MzggNy4yMjIgMi4wMiAyLjIxIDEuMTY4IDQuMDk4IDIuNjc1IDUuNjU2IDQuNTEzIDEuMDkyIDEuMjg3IDIuMTE3IDIuODQ1IDMuMDgyIDQuNjY1Ljk3NCAxLjgxMiAxLjc0NCAzLjc0MiAyLjMyIDUuNzc0LjY2IDIuMzcxIDEuMDg0IDQuODUxIDEuMjUzIDcuNDU5LjE3OCAyLjU5OS4yNjMgNS4wMS4yNjMgNy4yM3Y1LjQwMmMwIDAtMS4yODcgMC0zLjg2MSAwLTIuNTY1IDAtNS45MDEgMC0xMC4wMSAwaC0xNi42MzdjLS4xNTIgMC0uMjItLjQwNi0uMjEyLTEuMjExLjAwOC0uODEzLjA1OS0xLjQ2NS4xNjEtMS45NjQuMDU5LS4zOTguMjItLjk1Ny40NjYtMS42ODUuMjU0LS43MjguNjYtMS42MDkgMS4yNDUtMi42NS4yNjItLjUzMy44ODktMS4zMDQgMS44OC0yLjMyLjk5OS0xLjAxNiAyLjEzNC0yLjIwMSAzLjQyOS0zLjUzOS43NDUtLjc2MiAxLjMyMS0xLjcxOSAxLjc0NC0yLjg3OS40MjMtMS4xNTEuNjAxLTIuMjAxLjUzMy0zLjE1LS42MS41LTEuMjc5LjkwNi0yLjAxIDEuMjE5LTMuNTA1IDEuMjUzLTYuMDUgMy4wNzMtNy42MTEgNS40NTItLjExOS4xNTItLjQ5MS44MjEtMS4xMTggMi4wMi0uMzMuNjI3LS42MTggMS4wNTgtLjg0NyAxLjI4Ny0uMzEzLjMxMy0uNzcxLjQ5MS0xLjM2My41MjUtLjkyMy4wNDItMS42NDMtLjM5OC0yLjE1OS0xLjM0Ni0uNjk0LjIwMy0xLjMxMi4yODgtMS44NjMuMjU0LS45MjMtLjM0Ny0xLjU5Mi0uNzItMi4wMS0xLjExOC0uODQ3LS44NDctMS4zODktMS42ODUtMS42NTEtMi41MzItLjI1NC0uODQ3LS4zODEtMS43NTMtLjM4MS0yLjcyNiAwLTEuMzg5Ljg1NS0zLjIyNiAyLjU4Mi01LjUxMiAyLjAyLTIuNjI1IDMuMDktNC42MzEgMy4yMTctNiAwLS41OTMuMDU5LTEuMjYyLjE3OC0yLjAxLjEwMi0uNTE3LjMwNS0xLjAxLjYxOC0xLjQ5LjIyLS4zMy4zNjQtLjU1OS40MzItLjY3Ny4wNzYtLjEyNy4yMTItLjMxMy40MTUtLjU1OS4xNDQtLjIwMy4yNzEtLjM1Ni4zNzMtLjQ1Ny4wOTMtLjExLjIyLS4yNTQuMzczLS40NC4xNzgtLjIxMi40MDYtLjQ1Ny42OTQtLjc0NS0uODgtMi40MTMtMS4yMzYtNC45MDItMS4wNjctNy40NTkgMy4yODUgMS4xNjggNi4wNSAzLjAxIDguMjggNS41MjkuNTUtMS44NzEgMS42MjYtMy4zODcgMy4yMjYtNC41MzggMS4zMjEuOTIzIDIuMzcxIDIuMTUxIDMuMTUgMy42NjYiLz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtNDIuOTc2IDQ0LjY5M2MtLjAxNyAwIDAtLjQ0OS4wNDItMS4zNDYuMDUxLS45MDYuMDc2LTEuODguMDc2LTIuOTIxLjAxNy0yLjA2Ni4wMTctNC4yIDAtNi40MDktLjAxNy0yLjIxLS4zMTMtNC40MTEtLjg4OS02LjYxMy0uNTY3LTIuMTE3LTEuMTg1LTMuOTItMS44NjMtNS40MTktLjY3Ny0xLjQ5OS0xLjQxNC0yLjc4Ni0yLjIxLTMuODc4LTEuMTg1LTEuNzg2LTIuODExLTMuMzAyLTQuODYtNC41MzgtMi4wNDktMS4yNDUtNC4xOTEtMi4wNTctNi40MjYtMi40MzguMTUyLjgxMy4yMiAxLjYwOS4yMDMgMi4zODgtLjAzNC41OTMtLjMxMy44ODktLjg0Ny44ODktLjYxIDAtLjg4MS0uMjk2LS44MjEtLjg4OS4wNTEtMi4xODQtLjcyOC00LjA1Ni0yLjMyOC01LjYwNS0xLjI1MyAxLjMyMS0xLjkzOSAyLjg1My0yLjAzMiA0LjYwNi0uMDM0LjU4NC0uMzMuODM4LS44OTcuNzcxLS41MjUtLjAxNy0uNzg3LS4zMjItLjc4Ny0uOTE0IDAgMCAuMDE3LS4wNjguMDQyLS4yMDMtLjY3Ny4yMi0xLjM4OS41MjUtMi4xMzQuOTIzLS40NzQuMzMtLjg2NC4yNDUtMS4xNi0uMjQ2LS4yOTYtLjQ5OS0uMTY5LS44ODkuMzk4LTEuMTY4LjcxMS0uMzY0IDEuMjQ1LS42MzUgMS42MDktLjgyMS0xLjQyMi0xLjQ1Ni0zLjA0LTIuNjI1LTQuODYtMy41MjIuMTk1IDIuMzAzLjgzIDQuNDcgMS44ODggNi41MjguMjc5LjQyMy4yMTIuODA0LS4yMDMgMS4xMzUtLjQ2Ni4zNjQtLjg1NS4zMTMtMS4xNjgtLjE2OS0uMTEtLjE2OS0uMjc5LS40NjYtLjQ5MS0uODk3LS4zNDcuMzQ3LS41ODQuNjEtLjY5NC43Ny0uMTE4LjE1Mi0uMzIyLjQ4My0uNjEuOTkxLS4yODguNTE2LS40OTkuOTQtLjYzNSAxLjI3LS4xNDQuNDE1LS4yMTIuNzQ1LS4xODYgMS4wMS4wMjUuMjU0LjA1MS41MzMuMDY4Ljg1NS0uMTUyLjk3NC0uNDkxIDEuODg4LTEuMDEgMi43NTItLjUyNS44NTUtMS4xODUgMS45MDUtMS45OTggMy4xNS0uNzc5IDEuMTg1LTEuMzcyIDIuMDgzLTEuNzg2IDIuNjc1LS40MTUuNjAxLS43MjggMS4zNTUtLjk0IDIuMjg2LS4xNTIuNTU5LS4xNTIgMS4yNDUgMCAyLjA0MS4xNDQuODA0LjQ3NCAxLjQzMS45NjUgMS44OC43NjIuNzcgMS40OTkgMS4xMjYgMi4yMSAxLjA2Ny4yMjkgMCAuNTQyLS4wOTMuOTMxLS4yNzkuMzg5LS4xNzguNjg2LS41MjUuOTA2LTEuMDQxLjQyMy0uOTQuNzc5LTEuNDE0IDEuMDY3LTEuNDE0LjQwNiAwIC42MzUuMjM3LjY2OS42OTQgMCAuMTAyLS4xMzYuNTE3LS4zOTggMS4yNDUtLjE1Mi4zMy0uMzQ3LjY3Ny0uNTkzIDEuMDQxLS4zMjIuNDMyLS40NTcuNjEtLjQyMy41NDIuMjYyLjk0OC43MDMgMS4xMDkgMS4zMTIuNDk5LjE3OC0uMTc4LjM4OS0uNTI1LjYxOC0xLjAxNi4yMzctLjQ5OS42MDEtMS4xNjggMS4wOTItMi4wMS41ODQtLjk4MiAxLjIwMi0xLjc3IDEuODYzLTIuMzg4LjY2LS42MSAxLjI0NS0xLjEwOSAxLjc2MS0xLjQ4Mi4yOTYtLjIyLjY2LS40NjYgMS4wOTItLjc0NS40MzItLjI4OCAxLjAxLS41NzYgMS43MzYtLjg3Mi41NzYtLjIyOSAxLjIxOS0uNTE2IDEuOTIyLS44NTUuNzAzLS4zMzkgMS4zMjktLjc3IDEuODcxLTEuMzA0Ljc2Mi0uNzQ1IDEuMzQ2LTEuNjU5IDEuNzYxLTIuNzUyLjIyLS42MS4yOTYtMS4zNjMuMjQ1LTIuMjYxLS4xNDQtLjU1OS4xMzYtLjgzOC44NDctLjgzOC41MzMgMCAuODMuMjcxLjg5OC44MjEgMCAxLjg2My0uNTMzIDMuNTY0LTEuNTkyIDUuMTA1LjM0NyAxLjA1OC40NCAyLjIxOC4yNzEgMy40NzEtLjE0NCAxLjAxLS41IDIuMDkxLTEuMDUgMy4yNDMtLjU1OSAxLjE0My0xLjY3NiAyLjQyMi0zLjM2MSAzLjgyNy0zLjQyOSAyLjg0NS01LjA1IDUuNzc0LTQuODYgOC43OCAwIDAgMS40MDUgMCA0LjIyNSAwIDIuODE5IDAgNS40NyAwIDcuOTUgMGgxMy41NzJtLTMzLjYzOC0xNS4wOGMtLjQ4My4yOTYtLjc3LjY5NC0uODcyIDEuMTk0LjAxNy41NDItLjIzNy44MzgtLjc2Mi44ODktLjU4NC4wNjgtLjg4MS0uMTc4LS44OTgtLjc0NS4wNjgtMS4wOTIuNTUtMS45NTYgMS40NjUtMi41OTkuNDMyLS4zNDcuODMtLjMyMiAxLjE5NC4wOTMuMzY0LjQ0OS4zMjIuODM4LS4xMjcgMS4xNjhtNy4zNjYtMTEuODI4Yy4yMTIuMzMuMjk2LjY3Ny4yNDYgMS4wNDEtLjE2MSAxLjA1OC0uNzU0IDEuNDk5LTEuNzYxIDEuMzM4LS4yOTYtLjA1MS0uNTMzLS4xNTItLjcyLS4yOTYtLjA1OS4wNzYtLjE2MS4yNjItLjI5Ni41NDItLjE3OC41MzMtLjUyNS43MTEtMS4wNDEuNTUtLjUwOC0uMjAzLS43MTEtLjU3Ni0uNTkzLTEuMTE4Ljc0NS0xLjkwNSAyLjA5MS0zLjIwOSA0LjA0LTMuOTIuNTY3LS4xNjkuOTQgMCAxLjExOC40OTEuMjAzLjUzMy4wNTEuODk4LS40NDkgMS4wOTItLjA5My4wNTEtLjE4Ni4xMDItLjI3MS4xMzYtLjA4NS4wNDItLjE2OS4wOTMtLjI3MS4xNDQiLz48L3N2Zz4='); 159 | } 160 | .merida .cg-board piece.rook.white { 161 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjM3NiIgeDI9Ijc3LjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzFmMWExNyIgZD0ibTI4LjQwOCA5LjIyaDQuMjE2di0zLjM5NWg2Ljc5NnY5LjI5NWwtNS41IDQuMjQzdjExLjg1N2w0LjIyIDQuMjIxdjUuMDhoMy43ODl2NS45MjloLTMzLjg1OXYtNS45MjloMy43OTR2LTUuMDhsNC4yNDYtNC4yMjF2LTExLjg1N2wtNS41MDgtNC4yNDN2LTkuMjk1aDYuNzc0djMuMzk1aDQuMjQydi0zLjM5NWg2Ljc5eiIvPjxwYXRoIGZpbGw9InVybCgjMCkiIGQ9Im0zMy4wNyAxNy42NzhsMy4xNS0yLjU1N2gtMjIuNDJsMy4xNzUgMi41NTdoMTYuMW03LjE5NyAyNC41MjhoLTMwLjUxNHYyLjU1N2gzMC41MTR2LTIuNTU3bS0zLjg0NC01LjA1aC0yMi44MjZ2My4zN2gyMi44MjZ2LTMuMzdtLTQuMjE2LTE3Ljc4OGgtMTQuMzkzdjExLjg2MmgxNC4zOTN2LTExLjg2Mm01LjUwMy01LjkyN3YtNS45MjdoLTMuMzk1djMuMzk1aC03LjY0NXYtMy4zOTVoLTMuMzQ0djMuMzk1aC03LjYydi0zLjM5NWgtMy4zOTV2NS45MjdoMjUuNG0tMS45MTMgMjJsLTIuNTQ4LTIuNTMyaC0xNi40NTFsLTIuNTk5IDIuNTMyaDIxLjU5OCIvPjwvc3ZnPg=='); 162 | } 163 | .merida .cg-board piece.queen.white { 164 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjI1MyIgeTE9IjM3LjIyIiB4Mj0iNzcuNjQiIHkyPSIzNy4zNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIHN0cm9rZT0iIzFmMWExNyIgc3Ryb2tlLXdpZHRoPSIuMDc2Ij48cGF0aCBmaWxsPSIjMWYxYTE3IiBkPSJtNDQuNTQxIDE0LjcyM2MtLjk0IDAtMS43NDQtLjMzLTIuNDA1LS45ODItLjY2LS42NTItLjk5MS0xLjQ0OC0uOTkxLTIuMzk2IDAtLjkyMy4zMy0xLjcxOS45OTEtMi4zODguNjYtLjY3NyAxLjQ2NS0xLjAxIDIuNDA1LTEuMDEuOTMxIDAgMS43MjcuMzMgMi4zODggMS4wMS42Ni42NjkuOTkxIDEuNDY1Ljk5MSAyLjM4OCAwIC45NDgtLjMzIDEuNzQ0LS45OTEgMi4zOTYtLjY2LjY1Mi0xLjQ1Ni45ODItMi4zODguOTgyem0tNC4zMSAyOS4yMmMtLjgxMy43MTEtMi42MzMgMS4zMDQtNS40NjEgMS43ODYtMi44MjguNDc0LTYuMDg3LjcyLTkuNzcuNzItMy43NTEgMC03LjA1LS4yNTQtOS44OTgtLjc0NS0yLjg0NS0uNDk5LTQuNjQtMS4xMTgtNS4zODUtMS44NjNsMS41NjYtNS45NTItLjY5NC0zLjg5NS0yLjE4NC0zLjc5My0yLjEwOC0xNS40MjYgMS4yMTEtLjQ3NCA2Ljc5OSAxMS40NTUuMTUyLTEzLjY0IDEuNjg1LS4yOTYgNS4xODIgMTMuNzE2IDIuNzc3LTE0Ljc1N2gxLjcxOWwyLjc3NyAxNC43MDcgNS4xMzEtMTMuNjY1IDEuNzEuMjk2LjE1MiAxMy42NCA2LjgyNC0xMS40ODEgMS4xNi41NDItMi4wNTcgMTUuMzU5LTIuMjEgMy43OTMtLjY5NCAzLjk0NiAxLjYxNyA2LjAzem0tMjUuNjk2LTMxLjk1M2MtLjk0OCAwLTEuNzUzLS4zMjItMi40MTMtLjk3NC0uNjYtLjY1Mi0uOTkxLTEuNDU2LS45OTEtMi4zOTYgMC0uOTIzLjMzLTEuNzE5Ljk5MS0yLjM3OS42Ni0uNjYgMS40NjUtLjk5MSAyLjQxMy0uOTkxLjkyMyAwIDEuNzE5LjMzIDIuMzc5Ljk5MS42Ni42Ni45OTEgMS40NTYuOTkxIDIuMzc5IDAgLjk0LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42Ni42NTItMS40NTYuOTc0LTIuMzc5Ljk3NHptLTkuMTM2IDIuNzM1Yy0uOTQgMC0xLjczNi0uMzMtMi4zODgtLjk4Mi0uNjUyLS42NTItLjk4Mi0xLjQ0OC0uOTgyLTIuMzk2IDAtLjkyMy4zMy0xLjcxOS45ODItMi4zODguNjUyLS42NzcgMS40NDgtMS4wMSAyLjM4OC0xLjAxLjk0OCAwIDEuNzQ0LjMzIDIuNDEzIDEuMDEuNjYuNjY5Ljk5MSAxLjQ2NS45OTEgMi4zODggMCAuOTQ4LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42NjkuNjUyLTEuNDY1Ljk4Mi0yLjQxMy45ODJ6bTE5LjU1LTMuOTcxYy0uOTQgMC0xLjc0NC0uMzMtMi4zOTYtLjk5MS0uNjUyLS42Ni0uOTc0LTEuNDY1LS45NzQtMi40MDUgMC0uOTMxLjMyMi0xLjcyNy45NzQtMi4zODguNjUyLS42NiAxLjQ1Ni0uOTkxIDIuMzk2LS45OTEuOTIzIDAgMS43MjcuMzMgMi4zOTYuOTkxLjY2OS42Ni45OTkgMS40NTYuOTk5IDIuMzg4IDAgLjk0LS4zMyAxLjc0NC0uOTk5IDIuNDA1LS42NjkuNjYtMS40NzMuOTkxLTIuMzk2Ljk5MXptMTAuNDE0IDEuMjM2Yy0uOTQgMC0xLjczNi0uMzIyLTIuMzg4LS45NzQtLjY1Mi0uNjUyLS45ODItMS40NTYtLjk4Mi0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTgyLTIuMzc5LjY1Mi0uNjYgMS40NDgtLjk5MSAyLjM4OC0uOTkxLjk0OCAwIDEuNzUzLjMzIDIuNDEzLjk5MS42Ni42Ni45OTEgMS40NTYuOTkxIDIuMzc5IDAgLjk0LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42Ni42NTItMS40NjUuOTc0LTIuNDEzLjk3NHoiLz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMzguMjIgNDMuMDRjLTMuMDItMS4yNTMtNy40MTctMS44OC0xMy4xNjYtMS44OC01Ljg3NiAwLTEwLjMxMi42NDMtMTMuMzI3IDEuOTMgMi44OTYgMS4xNDMgNy4zMTUgMS43MSAxMy4yNSAxLjcxIDIuODQ1IDAgNS40NDQtLjE1MiA3Ljc5OC0uNDY2IDIuMzYyLS4zMTMgNC4xNzQtLjc0NSA1LjQ0NC0xLjI5NXptLTEzLjI2Ny0zNC4wM2MxLjEwOSAwIDEuNjYtLjU1OSAxLjY2LTEuNjU5IDAtMS4wOTItLjU1LTEuNjQzLTEuNjYtMS42NDMtMS4wOTIgMC0xLjYzNC41NS0xLjYzNCAxLjY0MyAwIDEuMTAxLjU0MiAxLjY1OSAxLjYzNCAxLjY1OXptMTIuNjI0IDI0Ljk3N2MtMy4xOTItLjgxMy03LjM2Ni0xLjIxMS0xMi41MjItMS4yMTEtNS4yOTIgMC05LjUxNy40MDYtMTIuNjc1IDEuMjM2bC4zNzMgMi4zNzljMy4yMTctLjc2MiA3LjMyNC0xLjE0MyAxMi4zMDItMS4xNDMgNC45NDQgMCA4Ljk3NS4zNzMgMTIuMSAxLjExOGwuNDIzLTIuMzc5em0uNjE4LTEuNDlsMS42MTctMi44NTNjLS43OTYuMzIyLTEuNjA5LjQ3NC0yLjQzLjQ3NC0yLjIxOCAwLTMuOTg4LS44OTctNS4zMDktMi43MDEtLjk5MS44MjEtMi4xIDEuMjM2LTMuMzI3IDEuMjM2LTEuNTgzIDAtMi44NTMtLjYxOC0zLjc5My0xLjg2My0xLjA1OCAxLjE2LTIuMzIgMS43NDQtMy43OTMgMS43NDQtMS4xOTQgMC0yLjI4Ni0uNDA2LTMuMjc3LTEuMjE5LTEuMzg5IDEuNzctMy4xODMgMi42NS01LjM4NSAyLjY1LS44MzggMC0xLjY3Ni0uMTUyLTIuNTA2LS40NjZsMS43MzYgMi45NzJjMy4yMDktLjkyMyA3LjYyLTEuMzg5IDEzLjIyNS0xLjM4OSA1LjcwNiAwIDEwLjExOC40NzQgMTMuMjQyIDEuNDE0em0tMTEuMTEtNS45MjdsLTIuMTA4LTEyLjEzMy0yLjEwOCAxMS45ODljLjA1MS0uMDM0LjE2MS0uMTE5LjM0Ny0uMjU0LjM4MS0uNzQ1Ljk1Ny0xLjExOCAxLjczNi0xLjExOC44NDcgMCAxLjM4OS4zNzIgMS42MzQgMS4xMTguMTAyLjEwMi4yNzEuMjM3LjUuMzk4em02Ljg2Ny40NzR2LTExLjQ4OWwtNC4wODkgMTEuMjYxYy4zMTMtLjExLjU3Ni0uMjYyLjc5Ni0uNDQuMzMtLjQxNS43NzktLjYyNyAxLjMzOC0uNjI3LjY2IDAgMS4xOTQuMjk2IDEuNTkyLjg3Mi4wNDIuMDY4LjEwMi4xMzYuMTY5LjIxMi4wNjguMDc2LjEzNi4xNDQuMTk1LjIxMnptLTEzLjkzNi0uMzQ3bC00LjA2NC0xMS4xNDJ2MTEuMzM3Yy4wNDItLjA2OC4xMTktLjE0NC4yMi0uMjQ1LjMzLS42OTQuODcyLTEuMDQxIDEuNjM0LTEuMDQxLjYyNyAwIDEuMTQzLjI2MiAxLjU0MS43OTYuNDQ5LjE5NS42NjkuMjk2LjY2OS4yOTZ6bS02LjI5OSAxLjM4OWwtNS4zMzQtOS4yMDMgMS4zNjMgOC4zODJjLjk0LjY2IDEuODYzLjk5MSAyLjc1Mi45OTEuMzQ3IDAgLjc1NC0uMDU5IDEuMjE5LS4xNjl6bTIyLjM5NC4xMTljLjM4MS4xMTkuODA0LjE3OCAxLjI3LjE3OCAxLjAxIDAgMS45NDctLjMxMyAyLjgyOC0uOTRsMS4zNjMtOC41ODUtNS40NjEgOS4zNDd6bTEuNDkgMTIuNTU2bC0uNzQ1LTIuODAyYy0zLjI0My0uNzExLTcuMjA1LTEuMDY3LTExLjkwNC0xLjA2Ny00LjY0OCAwLTguNjExLjM1Ni0xMS44NzkgMS4wNjdsLS43NzEgMi44MjhjMy4wNzMtLjkzMSA3LjI5OC0xLjM4OSAxMi42NzUtMS4zODkgNS4yNDEgMCA5LjQ0OS40NDkgMTIuNjI0IDEuMzYzem0tMjMuMDYtMzAuNTE0YzEuMDg0IDAgMS42MzQtLjU0MiAxLjYzNC0xLjYzNCAwLTEuMDkyLS41NS0xLjYzNC0xLjYzNC0xLjYzNC0xLjEwOSAwLTEuNjY4LjU0Mi0xLjY2OCAxLjYzNCAwIDEuMDkyLjU1OSAxLjYzNCAxLjY2OCAxLjYzNHptMjAuODI4IDBjMS4xMDkgMCAxLjY2OC0uNTQyIDEuNjY4LTEuNjM0IDAtMS4wOTItLjU1OS0xLjYzNC0xLjY2OC0xLjYzNC0xLjA4NCAwLTEuNjM0LjU0Mi0xLjYzNCAxLjYzNCAwIDEuMDkyLjU1IDEuNjM0IDEuNjM0IDEuNjM0em0tMjkuOTY0IDIuNzM1YzEuMTA5IDAgMS42NjgtLjU1IDEuNjY4LTEuNjQzIDAtMS4xMDktLjU1OS0xLjY1OS0xLjY2OC0xLjY1OS0xLjA4NCAwLTEuNjM0LjU1LTEuNjM0IDEuNjU5IDAgMS4wOTIuNTUgMS42NDMgMS42MzQgMS42NDN6bTM5LjE0IDBjMS4wOTIgMCAxLjY0Mi0uNTUgMS42NDItMS42NDMgMC0xLjEwOS0uNTUtMS42NTktMS42NDItMS42NTktMS4xMDEgMC0xLjY2LjU1LTEuNjYgMS42NTkgMCAxLjA5Mi41NTkgMS42NDMgMS42NiAxLjY0M3oiLz48L2c+PC9zdmc+'); 165 | } 166 | .merida .cg-board piece.king.white { 167 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjM3NiIgeDI9Ijc3LjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0iIzFmMWExNyI+PHBhdGggZD0ibTI1LjgyMSAxMi4wMmgtMS43NjF2LTMuMjUxaC0yLjA2NmMtLjU1OSAwLS44MzgtLjI3MS0uODM4LS44MjF2LS4wMjVjMC0uNTQyLjI3OS0uODEzLjgzOC0uODEzaDIuMDY2di0yLjEwOGMwLS41ODQuMjk2LS44NzIuODg5LS44NzIuNTc2IDAgLjg3Mi4yODguODcyLjg3MnYyLjEwOGgyLjEzNGMuNTQyIDAgLjgxMy4yNzEuODEzLjgxM3YuMDI1YzAgLjU1LS4yNzEuODIxLS44MTMuODIxbC0yLjExNy4wMjUtLjAxNyAzLjIyNiIvPjxwYXRoIGQ9Im0xMS4wMyAzNy43NDRsLS44MTMtNC42NGMtLjAxNyAwLS4wNDItLjAzNC0uMDc2LS4xMDItLjA4NS0uMTE4LS4zMjItLjI3MS0uNzExLS40NTctLjM4MS0uMTk1LS44MzgtLjUxNi0xLjM0Ni0uOTgyLS43MjgtLjYxLTEuMjk1LTEuMTA5LTEuNzAyLTEuNDktLjQwNi0uMzczLS43NzEtLjc4Ny0xLjEwMS0xLjIzNi0xLjAxLTEuMzg5LTEuNTc1LTMuMDY1LTEuNjg1LTUuMDQtLjE2OS0xLjg5Ny42MDEtMy43OTMgMi4zMDMtNS42ODEgMS43MTktMS44OCA0LjA0Ny0yLjc2OSA2Ljk2OC0yLjY1IDEuMDkyLjA2OCAyLjM3OS4zMyAzLjg0NC43OTYuNDgzLjE5NS45NzQuMzkgMS40ODIuNTc2LjUuMTk1Ljk5OS4zODkgMS40OTkuNTg0LjI2Mi4xMzUuNS4yNzEuNjk0LjM5OC0uMDg1LS4zNDctLjEyNy0uNjk0LS4xMjctMS4wNDEgMC0xLjI4Ny40NTctMi4zODggMS4zOC0zLjMwMi45MTQtLjkwNiAyLjAyNC0xLjM3MiAzLjMxMS0xLjM4OSAxLjI4NyAwIDIuMzg4LjQ2NiAzLjMwMiAxLjM4LjkwNi45MTQgMS4zNjMgMi4wMiAxLjM2MyAzLjI4NSAwIC4yNjItLjAzNC42MS0uMTAyIDEuMDQxLjIyOS0uMTQ0LjQ1Ny0uMjcxLjY2OS0uMzcyLjc2Mi0uMzMgMS43NjEtLjcyIDMuMDEtMS4xNiAxLjQyMi0uNDgzIDIuNzAxLS43NTQgMy44NDQtLjgyMSAyLjkyMS0uMTM2IDUuMjQxLjc1NCA2Ljk0MyAyLjY1IDEuNjY4IDEuODg4IDIuNDQ3IDMuNzg1IDIuMzI4IDUuNjgxLS4xMjcgMS45NzMtLjcwMyAzLjY0OS0xLjcxIDUuMDQtLjMzLjQ0OS0uNzAzLjg2NC0xLjExOCAxLjI1My0uNDA2LjM5LS45NjUuODgxLTEuNjYgMS40NzMtLjU0Mi40NjYtMS4wMS43OTYtMS4zODkuOTgyLS4zODEuMTg2LS42MDEuMzQ3LS42NjkuNDU3LS4wMTcuMDM0LS4wMzQuMDU5LS4wNTEuMDc2LS4wMTcuMDE3LS4wMjUuMDM0LS4wMjUuMDUxbC0uNzk2IDQuNjY1IDEuNjQzIDYuMTIxYy0uODMuNzQ1LTIuNjg0IDEuMzU1LTUuNTU0IDEuODM3LTIuODc5LjQ4My02LjIwNi43Mi05Ljk3NC43Mi0zLjgzNSAwLTcuMjE0LS4yNTQtMTAuMTE4LS43NTQtMi45MTItLjUwOC00Ljc0MS0xLjE0My01LjQ4Ni0xLjg5N2wxLjYzNC02LjA1Ii8+PC9nPjxwYXRoIGZpbGw9InVybCgjMCkiIGQ9Im0yNS43OTYgMjkuNTMyYzIuODQ1LjAzNCA1LjQ0NC4yMDMgNy44MDYuNTA4IDIuMzcxLjMwNSA0LjIyNS42OTQgNS41NjMgMS4xNTEuNjI3LS40OTEgMS4zMTItMS4wNDEgMi4wNTctMS42NTEuNzQ1LS42MDEgMS4zNjMtMS4yMTkgMS44NjMtMS44NDYuNzg3LTEuMDEgMS4xODUtMi4zMzcgMS4xODUtMy45OTYgMC0xLjQ4Mi0uMzU2LTIuNzI2LTEuMDY3LTMuNzE3LTEuMjctMS44NTQtMy4yMDktMi43NzctNS44LTIuNzc3LTEuNTU4IDAtMy4xNS4zMjItNC43OTIuOTY1LTEuNDM5LjU4NC0yLjUzMiAxLjIyOC0zLjI2OCAxLjkzOS0xLjM4OSAxLjM4OS0yLjQyMSAzLjE3NS0zLjA4MiA1LjM1MS0uMjI5Ljc3OS0uMzY0IDEuNDktLjQwNiAyLjEyNS0uMDQyLjYzNS0uMDU5IDEuMjg3LS4wNTkgMS45NDdtLTEzLjI1IDYuNjk3YzMuMTQxLS43OTYgNy4zMDctMS4xOTQgMTIuNTA1LTEuMTk0IDUuMDg5IDAgOS4yMDMuMzgxIDEyLjMyNyAxLjE0M2wuNjE4LTMuNjQ5Yy0zLjMyNy0uODcyLTcuNjcxLTEuMzEyLTEzLjA1LTEuMzEyLTUuNDEgMC05Ljc0NS40NDktMTMuMDIgMS4zMzhsLjYxOCAzLjY3NW0yNS4yOTggNC40MTFsLS43MzctMi44NDVjLTMuMjc3LS43MjgtNy4zMzItMS4wOTItMTIuMTU4LTEuMDkyLTQuODA5IDAtOC44NTYuMzY0LTEyLjEzMyAxLjA5MmwtLjc4NyAyLjg3YzMuMTU4LS45MjMgNy40NjgtMS4zODkgMTIuOTQ1LTEuMzg5IDUuNDQ0IDAgOS43MjguNDU3IDEyLjg2OSAxLjM2M20uNjUyIDIuMzM3Yy0zLjE5Mi0xLjI4Ny03LjY3OS0xLjkzOS0xMy40NDUtMS45MzktNS45ODYgMC0xMC41MTYuNjYtMTMuNTk4IDEuOTkgMi45MTMgMS4xNTEgNy40MTcgMS43MzYgMTMuNTIxIDEuNzM2IDIuOTEzIDAgNS41NjMtLjE2MSA3Ljk1OS0uNDgzIDIuNDA0LS4zMjIgNC4yNS0uNzYyIDUuNTYzLTEuMzA0bS0xNC40MTktMTMuNDQ1Yy0uMDA4LS42NDMtLjAzNC0xLjI4Ny0uMDY4LTEuOTIyLS4wMzQtLjYzNS0uMTYxLTEuMzQ2LS4zNzItMi4xMjUtLjY3Ny0yLjIxLTEuNzAyLTMuOTk2LTMuMDgyLTUuMzUxLS43MTEtLjY5NC0xLjc5NS0xLjM0Ni0zLjI2OC0xLjkzOS0xLjY4NS0uNjYtMy4yODUtLjk5MS00Ljc5Mi0uOTkxLTIuNjA4IDAtNC41NDcuOTMxLTUuOCAyLjgwMi0uNzExLjk5MS0xLjA2NyAyLjIzNS0xLjA2NyAzLjcxNyAwIDEuNjI2LjM5OCAyLjk1NSAxLjE4NSAzLjk5Ni40ODMuNjEgMS4wOTIgMS4yMjggMS44MzcgMS44MzcuNzQ1LjYxIDEuNDM5IDEuMTY4IDIuMDgzIDEuNjYgMi44OTYtMS4wNDEgNy4zNDEtMS42IDEzLjM0My0xLjY4NW0uODcyLTQuNjE0Yy4xMTktLjQ2Ni4yMTItLjc4Ny4yOTYtLjk2NS4xNjktLjY0My4zNTYtMS4xOTQuNTc2LTEuNjQzLjA5My0uMjc5LjIzNy0uNjAxLjQzMi0uOTc0LjE4Ni0uMzczLjM4OS0uODA0LjYxLTEuMjc5LjEyNy0uMjc5LjI3MS0uNjI3LjQxNS0xLjAzMy4xNTItLjQwNi4zMDUtLjgwNC40NDktMS4yMDIuMTM1LS4zMy4yMDMtLjY4Ni4yMDMtMS4wNjcgMC0uODEzLS4yOTYtMS40OTktLjg3Mi0yLjA2Ni0uNTc2LS41NzYtMS4yNzktLjg2NC0yLjEwOC0uODY0LTEuOTY0IDAtMi45NTUuOTkxLTIuOTU1IDIuOTU1IDAgLjM4MS4wNjguNzM3LjIwMyAxLjA2Ny4zNjQgMS4wNzUuNjQzIDEuODIuODM4IDIuMjM1LjIyLjQ3NC40MTUuOTA2LjYwMSAxLjI3OS4xNzguMzcyLjMzOS42OTQuNDY2Ljk3NC4yMi41NS4zOTggMS4wOTIuNTUgMS42NDMuMDM0LjA5My4xMjcuNDE1LjI5Ni45NCIvPjwvc3ZnPg=='); 168 | } 169 | .merida .cg-board piece.pawn.black { 170 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxwYXRoIGQ9Im0yNSA0Ni40NWgtMTMuMzk0Yy0uNjYtMS42NTEtLjk5MS0zLjM3OC0uOTkxLTUuMTgyIDAtMy4wNTYuODY0LTUuOCAyLjU5OS04LjIzOCAxLjczNi0yLjQzIDMuOTcxLTQuMTY2IDYuNjk3LTUuMjA3LTEuMTY4LS41NDItMi4xMjUtMS4zNjMtMi44NjItMi40NjQtLjczNy0xLjEwMS0xLjEwMS0yLjM0NS0xLjEwMS0zLjczNCAwLTEuNzM2LjU3Ni0zLjI0MyAxLjczNi00LjUxMyAxLjE1Mi0xLjI3OCAyLjU3NC0yLjAyIDQuMjY3LTIuMjEtMS4zNDYtMS4wMS0yLjAyLTIuMzQ1LTIuMDItMy45OTYgMC0xLjM4OS40OTEtMi41ODIgMS40ODItMy41NzMuOTgyLS45OTEgMi4xNzYtMS40ODIgMy41ODEtMS40ODIgMS4zODkgMCAyLjU4Mi40OTEgMy41NzMgMS40ODIuOTkxLjk5MSAxLjQ5IDIuMTg0IDEuNDkgMy41NzMgMCAxLjY1MS0uNjY5IDIuOTg5LTIuMDIgMy45OTYgMS42OTMuMTk1IDMuMTE2LjkzMSA0LjI2NyAyLjIxIDEuMTYgMS4yNyAxLjczNiAyLjc3NyAxLjczNiA0LjUxMyAwIDEuMzg5LS4zNzMgMi42MzMtMS4xMjYgMy43MzQtLjc1MyAxLjEwMS0xLjcxIDEuOTIyLTIuODYyIDIuNDY0IDIuNzI2IDEuMDQxIDQuOTYxIDIuNzc3IDYuNjk3IDUuMjA3IDEuNzM2IDIuNDM4IDIuNTk5IDUuMTgyIDIuNTk5IDguMjM4IDAgMS43ODYtLjMyMiAzLjUxNC0uOTY1IDUuMTgyaC0xMy4zOTQiIGZpbGw9IiMxZjFhMTciIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC45NzMyNCAwIDEuMjQzKSIvPjwvc3ZnPg=='); 171 | } 172 | .merida .cg-board piece.bishop.black { 173 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjA5IiB5MT0iMzcuMSIgeDI9Ijc3LjY3IiB5Mj0iMzcuNDY5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0ibTI1IDQyLjE2Yy0uMjI5Ljk0LS41MTcgMS41OTItLjg0NyAxLjk1Ni0uMzMuMzY0LS43NjIuNzQ1LTEuMzEyIDEuMTQzLS41OTMuNDE1LTEuMjk1Ljc2Mi0yLjEwOCAxLjA1LS44MTMuMjg4LTEuNzEuMzY0LTIuNzAxLjIxMmwtNi45NjgtLjk2NWMtLjI4OC0uMDM0LS41MzMtLjAzNC0uNzYyIDAtLjIyLjAzNC0uNDMyLjA1MS0uNjM1LjA1MS0uMzQ3IDAtLjc4Ny4wNzYtMS4zMjEuMjM3LS41NDIuMTUyLS45NTcuMzgxLTEuMjUzLjY3N2wtMi40MDQtMy45NDZjLjI5Ni0uMzMuNTU5LS41NTkuNzg3LS42OTQuMjM3LS4xMjcuNTA4LS4yNzEuODIxLS40MTUuOTU3LS40NDkgMS45ODEtLjcyIDMuMDczLS44MjEuNDY2LS4wMzQuOTIzLS4wNDIgMS4zNjMtLjAyNS40NDkuMDE3LjkxNCAwIDEuMzk3LS4wNTEuODg5LjE1MiAxLjc4Ni4yODggMi42ODQuNDA2LjkwNi4xMjcgMS44MTIuMjU0IDIuNzE4LjM5Ljk5MSAwIDEuNjYtLjEwMiAyLjAxLS4yOTYuMTg2LS4xMDIuNDc0LS4yODguODcyLS41NS4zOTgtLjI2Mi43OTYtLjY1MiAxLjE5NC0xLjE2OC0uODgxLS4wOTMtMS43Ny0uMjYyLTIuNjg0LS41MDgtLjkwNi0uMjM3LTEuNzEtLjQ5MS0yLjQwNC0uNzU0bDIuNTgyLTYuNDAxYy0xLjI5NS0uNzQ1LTIuMTkzLTEuMzM4LTIuNzA5LTEuNzk1LS41MDgtLjQ1Ny0uOTE0LS45ODItMS4yMTEtMS41NzUtLjQzMi0uNzYyLS43MTEtMS40OTktLjgzLTIuMjEtLjEyNy0uNzExLS4xNzgtMS4zNDYtLjE2MS0xLjkxMy4wMTctLjk5MS4yNDUtMi4wODMuNzAzLTMuMjg1LjQ1Ny0xLjE5NCAxLjMxMi0yLjI2OSAyLjU2NS0zLjIwOSAxLjA0MS0uNzk2IDIuMDY2LTEuNjE3IDMuMDU3LTIuNDU1Ljk5MS0uODQ3IDEuOTczLTEuODI5IDIuOTQ2LTIuOTU1LTEuMjE5LS42MjctMS44MjktMS42MjYtMS44MjktMi45OTcgMC0uOTMxLjMyMi0xLjcxOS45NzQtMi4zODguNjUyLS42NiAxLjQ1Ni0uOTkxIDIuMzk2LS45OTEuOTIzIDAgMS43MTkuMzMgMi4zNzkuOTkxLjY2LjY2OS45OTEgMS40NTYuOTkxIDIuMzg4IDAgMS4zNTUtLjYxIDIuMzU0LTEuODI5IDIuOTk3Ljk1NyAxLjEyNiAxLjkzIDIuMTA4IDIuOTEzIDIuOTU1Ljk4Mi44MzggMi4wMiAxLjY1OSAzLjA5IDIuNDU1IDEuMjM2Ljk0IDIuMDgzIDIuMDEgMi41MjMgMy4yMDkuNDQ5IDEuMjAyLjY5NCAyLjI5NS43MiAzLjI4NSAwIC41NjctLjA1MSAxLjIwMi0uMTY5IDEuOTEzLS4xMTguNzExLS4zODEgMS40NDgtLjc5NiAyLjIxLS4zMy41OTMtLjc0NSAxLjExOC0xLjI1MyAxLjU3NS0uNS40NTctMS4zODkgMS4wNS0yLjY2NyAxLjc5NWwyLjU4MiA2LjQwMWMtLjcyOC4yNjMtMS41NDkuNTE3LTIuNDU1Ljc1NC0uOTE0LjI0Ni0xLjc4Ny40MTUtMi42MzMuNTA4LjM4MS41MTcuNzcxLjkwNiAxLjE2OCAxLjE2OC4zOTguMjYzLjY5NC40NDkuODk3LjU1LjM0Ny4xOTUgMS4wMTYuMjk2IDIuMDEuMjk2Ljg4OS0uMTM2IDEuNzg3LS4yNjMgMi42OTItLjM5Ljg5OC0uMTE4IDEuODAzLS4yNTQgMi43MTgtLjQwNi40NC4wNTEuODg5LjA2OCAxLjM0Ni4wNTEuNDU3LS4wMTcuOTIzLS4wMDggMS40MDYuMDI1IDEuMDU4LjEwMiAyLjA4My4zNzMgMy4wNzMuODIxLjI5Ni4xNDQuNTY3LjI4OC44MDQuNDE1LjI0NS4xMzUuNTA4LjM2NC44MDQuNjk0bC0yLjQzIDMuOTQ2Yy0uMjk2LS4yOTYtLjcxMS0uNTI1LTEuMjUzLS42NzctLjUzMy0uMTYxLS45NjUtLjIzNy0xLjI5NS0uMjM3LS4yMiAwLS40NC0uMDE3LS42Ni0uMDUxLS4yMi0uMDM0LS40NzQtLjAzNC0uNzU0IDBsLTYuOTUxLjk2NWMtLjk5MS4xNTItMS45MTMuMDg1LTIuNzYtLjE5NS0uODU1LS4yNzktMS41NTgtLjY1Mi0yLjEtMS4xMTgtLjU0Mi0uNDQ5LS45ODItLjgzLTEuMzA0LTEuMTUxLS4zMjItLjMyMi0uNTkzLS45NTctLjgwNC0xLjg5NyIgZmlsbD0iIzFmMWExNyIvPjxwYXRoIGQ9Im0yNC4wOSAyMy43MDV2Mi4xMDhjMCAuNjEuMzA1LjkxNC45MTQuOTE0LjYxIDAgLjkxNC0uMzA1LjkxNC0uOTE0di0yLjEzNGgyLjIzNWMuNTc2IDAgLjg3Mi0uMjk2Ljg3Mi0uODk3IDAtLjU5My0uMjk2LS44ODktLjg3Mi0uODg5aC0yLjIzNXYtMi4yMzVjMC0uNjEtLjMwNS0uOTE0LS45MTQtLjkxNC0uNjEgMC0uOTE0LjMwNS0uOTE0LjkxNHYyLjIzNWgtMi4xODRjLS41ODQgMC0uODcyLjI5Ni0uODcyLjg4OSAwIC42MDEuMjg4Ljg5Ny44NzIuODk3bDIuMTg0LjAyNW03LjUxIDEzLjc0MWwtMS4wNDEtMi41MzFjLTEuNjg1LS4zNjQtMy41MzktLjU0Mi01LjU1NC0uNTQyLTEuOTk4IDAtMy44MzUuMTc4LTUuNTAzLjU0MmwtMS4wNDEgMi41MDZjMi4wNDktLjUxNiA0LjIzMy0uNzcgNi41NDUtLjc3IDIuMjg2IDAgNC40NzkuMjYyIDYuNTk2Ljc5Nm0tMi4wODMtNS4xMTRsLS43Mi0xLjczNnYtLjY2OWMtMS4yNTMtLjE3OC0yLjUyMy0uMjcxLTMuNzkzLS4yNzEtMS4yMzYgMC0yLjQ5OC4wOTMtMy43NjguMjcxbC0uMDI1LjY2OS0uNjY5IDEuNzM2YzEuNDA1LS4yNDYgMi44ODctLjM3MyA0LjQ2Mi0uMzczIDEuNTkyIDAgMy4wOS4xMjcgNC41MTMuMzczbS0uODY0IDkuMzgxYy0uNjYtLjQ5OS0xLjMyOS0xLjI4Ny0xLjk5LTIuMzYyaC0uNzg3YzAgLjgxMy4xODYgMS42LjU2NyAyLjM2MmgyLjIxbS01LjExNCAwYy4zODEtLjgxMy41NzYtMS42LjU3Ni0yLjM2MmgtLjc5NmMtLjY0MyAxLjA1OC0xLjMxMiAxLjg0Ni0yLjAyIDIuMzYyaDIuMjM1IiBmaWxsPSJ1cmwoIzApIi8+PC9zdmc+'); 174 | } 175 | .merida .cg-board piece.knight.black { 176 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjI1MyIgeTE9IjM3LjU5MiIgeDI9Ijc3LjY0IiB5Mj0iMzcuNDY5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzFmMWExNyIgZD0ibTI2LjE4IDkuMzk1YzIuNTk5LjE2OSA1IC44MzggNy4yMjIgMi4wMiAyLjIxIDEuMTY4IDQuMDk4IDIuNjc1IDUuNjU2IDQuNTEzIDEuMDkyIDEuMjg3IDIuMTE3IDIuODQ1IDMuMDgyIDQuNjY1Ljk3NCAxLjgxMiAxLjc0NCAzLjc0MiAyLjMyIDUuNzc0LjY2IDIuMzcxIDEuMDg0IDQuODUxIDEuMjUzIDcuNDU5LjE3OCAyLjU5OS4yNjMgNS4wMS4yNjMgNy4yM3Y1LjQwMmMwIDAtMS4yODcgMC0zLjg2MSAwLTIuNTY1IDAtNS45MDEgMC0xMC4wMSAwaC0xNi42MzdjLS4xNTIgMC0uMjItLjQwNi0uMjEyLTEuMjExLjAwOC0uODEzLjA1OS0xLjQ2NS4xNjEtMS45NjQuMDU5LS4zOTguMjItLjk1Ny40NjYtMS42ODUuMjU0LS43MjguNjYtMS42MDkgMS4yNDUtMi42NS4yNjItLjUzMy44ODktMS4zMDQgMS44OC0yLjMyLjk5OS0xLjAxNiAyLjEzNC0yLjIwMSAzLjQyOS0zLjUzOS43NDUtLjc2MiAxLjMyMS0xLjcxOSAxLjc0NC0yLjg3OS40MjMtMS4xNTEuNjAxLTIuMjAxLjUzMy0zLjE1LS42MS41LTEuMjc5LjkwNi0yLjAxIDEuMjE5LTMuNTA1IDEuMjUzLTYuMDUgMy4wNzMtNy42MTEgNS40NTItLjExOS4xNTItLjQ5MS44MjEtMS4xMTggMi4wMi0uMzMuNjI3LS42MTggMS4wNTgtLjg0NyAxLjI4Ny0uMzEzLjMxMy0uNzcxLjQ5MS0xLjM2My41MjUtLjkyMy4wNDItMS42NDMtLjM5OC0yLjE1OS0xLjM0Ni0uNjk0LjIwMy0xLjMxMi4yODgtMS44NjMuMjU0LS45MjMtLjM0Ny0xLjU5Mi0uNzItMi4wMS0xLjExOC0uODQ3LS44NDctMS4zODktMS42ODUtMS42NTEtMi41MzItLjI1NC0uODQ3LS4zODEtMS43NTMtLjM4MS0yLjcyNiAwLTEuMzg5Ljg1NS0zLjIyNiAyLjU4Mi01LjUxMiAyLjAyLTIuNjI1IDMuMDktNC42MzEgMy4yMTctNiAwLS41OTMuMDU5LTEuMjYyLjE3OC0yLjAxLjEwMi0uNTE3LjMwNS0xLjAxLjYxOC0xLjQ5LjIyLS4zMy4zNjQtLjU1OS40MzItLjY3Ny4wNzYtLjEyNy4yMTItLjMxMy40MTUtLjU1OS4xNDQtLjIwMy4yNzEtLjM1Ni4zNzMtLjQ1Ny4wOTMtLjExLjIyLS4yNTQuMzczLS40NC4xNzgtLjIxMi40MDYtLjQ1Ny42OTQtLjc0NS0uODgtMi40MTMtMS4yMzYtNC45MDItMS4wNjctNy40NTkgMy4yODUgMS4xNjggNi4wNSAzLjAxIDguMjggNS41MjkuNTUtMS44NzEgMS42MjYtMy4zODcgMy4yMjYtNC41MzggMS4zMjEuOTIzIDIuMzcxIDIuMTUxIDMuMTUgMy42NjYiLz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMTUuNjg4IDE3Ljc4NmMuMzY0LS4xODYuNTQyLS4yNzkuNTQyLS4yNzkuNDk5LS4xOTUuNjUyLS41NTkuNDc0LTEuMDkyLS4xOTUtLjQ5MS0uNTc2LS42Ni0xLjE0My0uNDkxLTEuOTQ3LjcxMS0zLjI5NCAyLjAyLTQuMDQgMy45Mi0uMTE4LjU0Mi4wNzYuOTE0LjU5MyAxLjExOC41MTYuMTYxLjg2NC0uMDE3IDEuMDQxLS41NS4xMzYtLjI3OS4yMjktLjQ2Ni4yOTYtLjU0Mi4xODYuMTQ0LjQyMy4yNDUuNzIuMjk2IDEuMDEuMTYxIDEuNi0uMjc5IDEuNzYxLTEuMzM4LjA1MS0uMzY0LS4wMzQtLjcxMS0uMjQ2LTEuMDQxbS00LjExNSAxNi43NjRjLjA1OS0uMTUyLjE2OS0uMzczLjMyMi0uNjY5LjI3OS0uNjk0LjQxNS0xLjEwOS40MTUtMS4yNDUtLjAyNS0uNDU3LS4yNzEtLjY5NC0uNzItLjY5NC0uMzMgMC0uNzExLjQ3NC0xLjE2IDEuNDE0LS4wNjguMTM2LS4xNjkuMjU0LS4yOTYuMzQ3LS40NDkuNDY2LS4zODEuODU1LjE5NSAxLjE2OC41MzMuMzEzLjk0LjIxMiAxLjI0NS0uMzIybTE0LjYzLTkuMjAzYzEuMTYtMS41MjQgMS43MjctMy4yMTcgMS43MS01LjA4LS4wNjgtLjU1LS4zODEtLjgyMS0uOTQtLjgyMS0uNzYyIDAtMS4wNTguMjc5LS44OTguODM4LjA1MS45MTQtLjAzNCAxLjY2OC0uMjcxIDIuMjYxLS4zODEuOTQtLjgwNCAxLjY0Mi0xLjI2MSAyLjEwOC0uMjU0LjUtLjEwMi44NjQuNDQ5IDEuMDkyLjUyNS4yNDUuOTMxLjExOSAxLjIxMS0uMzk4bS02LjQ3Ny0xMi4xMWMtLjA3Ni0uNTkzLS4wNTktMS4yMzYuMDUxLTEuOTMtLjk5MS4xOTUtMS45MjIuNjYtMi44MDIgMS4zODktLjUyNS4yNzktLjY1Mi42NjktLjM3MyAxLjE2OC4yNzkuNTA4LjY2OS41OTMgMS4xNjguMjQ2LjM0Ny0uMTg2LjY2OS0uMzU2Ljk1Ny0uNTA4LjI4OC0uMTYxLjYxOC0uMjc5Ljk5OS0uMzY0bTIzLjI1IDMxLjQ1NGMtLjAxNyAwIDAtLjQ0OS4wNDItMS4zNDYuMTMxLTMuMTA3LjA5NS02LjIyMS4wNzYtOS4zMy0uMDE3LTIuMjEtLjMxMy00LjQxMS0uODg5LTYuNjEzLS44NC0zLjMxLTIuMTI0LTYuNDg1LTQuMDcyLTkuMjk2LTIuNjM0LTMuODQ1LTYuODE0LTYuMDMtMTEuMjg2LTYuOTc2LjEyNi43NjYuMDMzIDEuNTQuMDc2IDIuMzExIDEuNi41NDIgMy4xMTYgMS4yMTkgNC41MzggMi4wMzIgNC4yNDEgMi41NTQgNi40MTQgNy4yNzUgNy4xOTcgMTEuOTMgMS4yNzIgNi4xNTQuNDUzIDExLjU1Ny44MTMgMTcuMjg5aDMuNTA1bS0zMy41MzctMTQuNTU0Yy40NzQtLjMzOS41MjUtLjcyOC4xNDQtMS4xOTQtLjM5OC0uMzgxLS44My0uNDE1LTEuMzEyLS4xMDItMS4wMS42Ni0xLjU0OSAxLjUzMi0xLjYxNyAyLjYwOC4wMTcuNTQyLjM0Ny44MDQuOTc0Ljc3MS41OTMtLjA1MS44ODEtLjM1Ni44NjQtLjkyMy4xMzUtLjUyNS40NDktLjkxNC45NDgtMS4xNiIvPjwvc3ZnPg=='); 177 | } 178 | .merida .cg-board piece.rook.black { 179 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjE5IiB5MT0iMzcuNTUyIiB4Mj0iNzcuNzQiIHkyPSIzNy40MjkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSIjMWYxYTE3IiBkPSJtMjguNDA4IDkuMjJoNC4yMTZ2LTMuMzk1aDYuNzk2djkuMjk1bC01LjUgNC4yNDN2MTEuODU3bDQuMjIgNC4yMjF2NS4wOGgzLjc4OXY1LjkyOWgtMzMuODU5di01LjkyOWgzLjc5NHYtNS4wOGw0LjI0Ni00LjIyMXYtMTEuODU3bC01LjUwOC00LjI0M3YtOS4yOTVoNi43NzR2My4zOTVoNC4yNDJ2LTMuMzk1aDYuNzl6Ii8+PHBhdGggZmlsbD0idXJsKCMwKSIgZD0ibTI1LjAxIDM1LjA0aC0xMC4yN2wtMS4xNDMgMS4wNjd2MS40MzloMjIuODI2di0xLjQzOWwtMS4xNDMtMS4wNjdoLTEwLjI3bS0xMS40MTMgNS4wOHYyLjUzMmgyMi44MjZ2LTIuNTMyaC0yMi44MjZtMTEuNDEzLTI3LjA4aC0xMi43djEuMTQzbDEuODEyIDEuMzYzaDIxLjgwMmwxLjc2MS0xLjM2M3YtMS4xNDNoLTEyLjY3NW0wIDQuMTkxaC04LjY3OGwxLjQ4MiAxLjE2OHYxLjQxNGgxNC4zOTN2LTEuNDE0bDEuNDgyLTEuMTY4aC04LjY3OG0wIDEzLjU0N2gtNy4xOTd2MS4xNDNsLTEuNDgyIDEuNDM5aDE3LjM1N2wtMS40ODItMS40Mzl2LTEuMTQzaC03LjE5NyIvPjwvc3ZnPg=='); 180 | } 181 | .merida .cg-board piece.queen.black { 182 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjI1MyIgeTE9IjM3LjIyIiB4Mj0iNzcuNzYiIHkyPSIzNy4zNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9IiMxZjFhMTciPjxwYXRoIGQ9Im0yNC45NDkgMTAuNzUyYy0uOTQgMC0xLjc0NC0uMzMtMi4zOTYtLjk5MS0uNjUyLS42Ni0uOTc0LTEuNDY1LS45NzQtMi40MDUgMC0uOTMxLjMyMi0xLjcyNy45NzQtMi4zODguNjUyLS42NiAxLjQ1Ni0uOTkxIDIuMzk2LS45OTEuOTIzIDAgMS43MjcuMzMgMi4zOTYuOTkxLjY2OS42Ni45OTkgMS40NTYuOTk5IDIuMzg4IDAgLjk0LS4zMyAxLjc0NC0uOTk5IDIuNDA1LS42NjkuNjYtMS40NzMuOTkxLTIuMzk2Ljk5MSIvPjxwYXRoIGQ9Im00MC4yMyA0My45NDJjLS44MTMuNzExLTIuNjMzIDEuMzA0LTUuNDYxIDEuNzg2LTIuODI4LjQ3NC02LjA4Ny43Mi05Ljc3LjcyLTMuNzUxIDAtNy4wNS0uMjU0LTkuODk4LS43NDUtMi44NDUtLjQ5OS00LjY0LTEuMTE4LTUuMzg1LTEuODYzbDEuNTY2LTUuOTUyLS42OTQtMy44OTUtMi4xODQtMy43OTMtMi4xMDgtMTUuNDI2IDEuMjExLS40NzQgNi43OTkgMTEuNDU1LjE1Mi0xMy42NCAxLjY4NS0uMjk2IDUuMTgyIDEzLjcxNiAyLjc3Ny0xNC43NTdoMS43MTlsMi43NzcgMTQuNzA3IDUuMTMxLTEzLjY2NSAxLjcxLjI5Ni4xNTIgMTMuNjQgNi44MjQtMTEuNDgxIDEuMTYuNTQyLTIuMDU3IDE1LjM1OS0yLjIxIDMuNzkzLS42OTQgMy45NDYgMS42MTcgNi4wMyIvPjxwYXRoIGQ9Im0xNC41MzUgMTEuOTg5Yy0uOTQ4IDAtMS43NTMtLjMyMi0yLjQxMy0uOTc0LS42Ni0uNjUyLS45OTEtMS40NTYtLjk5MS0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTkxLTIuMzc5LjY2LS42NiAxLjQ2NS0uOTkxIDIuNDEzLS45OTEuOTIzIDAgMS43MTkuMzMgMi4zNzkuOTkxLjY2LjY2Ljk5MSAxLjQ1Ni45OTEgMi4zNzkgMCAuOTQtLjMzIDEuNzQ0LS45OTEgMi4zOTYtLjY2LjY1Mi0xLjQ1Ni45NzQtMi4zNzkuOTc0Ii8+PHBhdGggZD0ibTM1LjM2IDExLjk4OWMtLjk0IDAtMS43MzYtLjMyMi0yLjM4OC0uOTc0LS42NTItLjY1Mi0uOTgyLTEuNDU2LS45ODItMi4zOTYgMC0uOTIzLjMzLTEuNzE5Ljk4Mi0yLjM3OS42NTItLjY2IDEuNDQ4LS45OTEgMi4zODgtLjk5MS45NDggMCAxLjc1My4zMyAyLjQxMy45OTEuNjYuNjYuOTkxIDEuNDU2Ljk5MSAyLjM3OSAwIC45NC0uMzMgMS43NDQtLjk5MSAyLjM5Ni0uNjYuNjUyLTEuNDY1Ljk3NC0yLjQxMy45NzQiLz48cGF0aCBkPSJtNS40IDE0LjcyM2MtLjk0IDAtMS43MzYtLjMzLTIuMzg4LS45ODItLjY1Mi0uNjUyLS45ODItMS40NDgtLjk4Mi0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTgyLTIuMzg4LjY1Mi0uNjc3IDEuNDQ4LTEuMDEgMi4zODgtMS4wMS45NDggMCAxLjc0NC4zMyAyLjQxMyAxLjAxLjY2LjY2OS45OTEgMS40NjUuOTkxIDIuMzg4IDAgLjk0OC0uMzMgMS43NDQtLjk5MSAyLjM5Ni0uNjY5LjY1Mi0xLjQ2NS45ODItMi40MTMuOTgyIi8+PHBhdGggZD0ibTQ0LjU0MSAxNC43MjNjLS45NCAwLTEuNzQ0LS4zMy0yLjQwNS0uOTgyLS42Ni0uNjUyLS45OTEtMS40NDgtLjk5MS0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTkxLTIuMzg4LjY2LS42NzcgMS40NjUtMS4wMSAyLjQwNS0xLjAxLjkzMSAwIDEuNzI3LjMzIDIuMzg4IDEuMDEuNjYuNjY5Ljk5MSAxLjQ2NS45OTEgMi4zODggMCAuOTQ4LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42Ni42NTItMS40NTYuOTgyLTIuMzg4Ljk4MiIvPjwvZz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMzcuMiAzNS43MjljLTMuMDQtLjgzOC03LjA5NS0xLjI2Mi0xMi4xNS0xLjI2Mi01LjA5NyAwLTkuMTk1LjQzMi0xMi4zMDIgMS4yODdsLjM3MyAyLjUwNmMzLjEyNC0uODEzIDcuMDk1LTEuMjE5IDExLjkzLTEuMjE5IDQuODA5IDAgOC43MjkuMzk4IDExLjc1MiAxLjE5NGwuMzk4LTIuNTA2bTEuNzM2LTQuNDM3Yy0xLjM3Mi0uNS0zLjMwMi0uOTA2LTUuNzkxLTEuMjI4LTIuNDg5LS4zMjItNS4yMzItLjQ4My04LjI0Ni0uNDgzLTIuOTQ2IDAtNS42MzkuMTUyLTguMDkuNDU3LTIuNDQ3LjMwNS00LjM3Ny43MDMtNS43ODMgMS4yMDJsMS4yNDUgMi4yNTJjMS4zODktLjQwNiAzLjE5Mi0uNzAzIDUuNDEtLjg4OSAyLjIxLS4xNzggNC42MzEtLjI3MSA3LjI2NC0uMjcxIDIuNjMzIDAgNS4wNjMuMDkzIDcuMjkuMjcxIDIuMjM1LjE4NiA0LjA0Ny40OTEgNS40MzYuOTE0bDEuMjYxLTIuMjI3bS0xLjA5MiAxMS44NTNsLS43MzctMi45MjljLTMuMjI2LS43MzctNy4yODEtMS4xMDktMTIuMTU4LTEuMTA5LTQuODI2IDAtOC44NjUuMzczLTEyLjExIDEuMTA5bC0uNzg3IDIuOTU1YzMuMTQxLS45NTcgNy40NDItMS40MzkgMTIuOTItMS40MzkgMi42MjUgMCA1LjA3Mi4xMzYgNy4zMTUuMzk4IDIuMjUyLjI2MiA0LjEwNi42MDEgNS41NTQgMS4wMTYiLz48L3N2Zz4='); 183 | } 184 | .merida .cg-board piece.king.black { 185 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjEzIiB5MT0iMzcuMjIiIHgyPSI3Ny43NiIgeTI9IjM3LjQ2OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9IiMxZjFhMTciPjxwYXRoIGQ9Im0yNS44MjEgMTIuMDJoLTEuNzYxdi0zLjI1MWgtMi4wNjZjLS41NTkgMC0uODM4LS4yNzEtLjgzOC0uODIxdi0uMDI1YzAtLjU0Mi4yNzktLjgxMy44MzgtLjgxM2gyLjA2NnYtMi4xMDhjMC0uNTg0LjI5Ni0uODcyLjg4OS0uODcyLjU3NiAwIC44NzIuMjg4Ljg3Mi44NzJ2Mi4xMDhoMi4xMzRjLjU0MiAwIC44MTMuMjcxLjgxMy44MTN2LjAyNWMwIC41NS0uMjcxLjgyMS0uODEzLjgyMWwtMi4xMTcuMDI1LS4wMTcgMy4yMjYiLz48cGF0aCBkPSJtMTEuMDMgMzcuNzQ0bC0uODEzLTQuNjRjLS4wMTcgMC0uMDQyLS4wMzQtLjA3Ni0uMTAyLS4wODUtLjExOC0uMzIyLS4yNzEtLjcxMS0uNDU3LS4zODEtLjE5NS0uODM4LS41MTYtMS4zNDYtLjk4Mi0uNzI4LS42MS0xLjI5NS0xLjEwOS0xLjcwMi0xLjQ5LS40MDYtLjM3My0uNzcxLS43ODctMS4xMDEtMS4yMzYtMS4wMS0xLjM4OS0xLjU3NS0zLjA2NS0xLjY4NS01LjA0LS4xNjktMS44OTcuNjAxLTMuNzkzIDIuMzAzLTUuNjgxIDEuNzE5LTEuODggNC4wNDctMi43NjkgNi45NjgtMi42NSAxLjA5Mi4wNjggMi4zNzkuMzMgMy44NDQuNzk2LjQ4My4xOTUuOTc0LjM5IDEuNDgyLjU3Ni41LjE5NS45OTkuMzg5IDEuNDk5LjU4NC4yNjIuMTM1LjUuMjcxLjY5NC4zOTgtLjA4NS0uMzQ3LS4xMjctLjY5NC0uMTI3LTEuMDQxIDAtMS4yODcuNDU3LTIuMzg4IDEuMzgtMy4zMDIuOTE0LS45MDYgMi4wMjQtMS4zNzIgMy4zMTEtMS4zODkgMS4yODcgMCAyLjM4OC40NjYgMy4zMDIgMS4zOC45MDYuOTE0IDEuMzYzIDIuMDIgMS4zNjMgMy4yODUgMCAuMjYyLS4wMzQuNjEtLjEwMiAxLjA0MS4yMjktLjE0NC40NTctLjI3MS42NjktLjM3Mi43NjItLjMzIDEuNzYxLS43MiAzLjAxLTEuMTYgMS40MjItLjQ4MyAyLjcwMS0uNzU0IDMuODQ0LS44MjEgMi45MjEtLjEzNiA1LjI0MS43NTQgNi45NDMgMi42NSAxLjY2OCAxLjg4OCAyLjQ0NyAzLjc4NSAyLjMyOCA1LjY4MS0uMTI3IDEuOTczLS43MDMgMy42NDktMS43MSA1LjA0LS4zMy40NDktLjcwMy44NjQtMS4xMTggMS4yNTMtLjQwNi4zOS0uOTY1Ljg4MS0xLjY2IDEuNDczLS41NDIuNDY2LTEuMDEuNzk2LTEuMzg5Ljk4Mi0uMzgxLjE4Ni0uNjAxLjM0Ny0uNjY5LjQ1Ny0uMDE3LjAzNC0uMDM0LjA1OS0uMDUxLjA3Ni0uMDE3LjAxNy0uMDI1LjAzNC0uMDI1LjA1MWwtLjc5NiA0LjY2NSAxLjY0MyA2LjEyMWMtLjgzLjc0NS0yLjY4NCAxLjM1NS01LjU1NCAxLjgzNy0yLjg3OS40ODMtNi4yMDYuNzItOS45NzQuNzItMy44MzUgMC03LjIxNC0uMjU0LTEwLjExOC0uNzU0LTIuOTEyLS41MDgtNC43NDEtMS4xNDMtNS40ODYtMS44OTdsMS42MzQtNi4wNSIvPjwvZz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMjQuOTQ5IDIwLjY3NWMtLjAzNC0uMTYxLS4wNzYtLjMwNS0uMTI3LS40MjMtLjA5My0uMzMtLjE3OC0uNTY3LS4yNDUtLjcyLS4wNTEtLjExLS4xMTktLjI1NC0uMTk1LS40MzItLjA4NS0uMTY5LS4xNjktLjM1Ni0uMjU0LS41NTktLjA1MS0uMTE5LS4xMS0uMjcxLS4xODYtLjQ1Ny0uMDY4LS4xOTUtLjEzNi0uMzczLS4xODYtLjUzMy0uMDQyLS4xNTItLjA2OC0uMzA1LS4wNjgtLjQ3NCAwLS44NzIuNDE1LTEuMzEyIDEuMjYyLTEuMzEyLjg4MSAwIDEuMzEyLjQzMiAxLjMxMiAxLjI4NyAwIC4yMi0uMDM0LjM3My0uMDkzLjQ3NC0uMjM3LjYyNy0uMzU2Ljk2NS0uMzcyIDEuMDE2LS4yNTQuNS0uNDA2LjgyMS0uNDc0Ljk2NS0uMTE5LjI3MS0uMTk1LjUwOC0uMjIuNzItLjA1MS4xMDItLjA4NS4xODYtLjEwMi4yNjItLjAxNy4wNzYtLjAzNC4xMzYtLjA1MS4xODZtLTIuNzc3IDguNTZjLTIuMDY2LjAzNC0zLjk1NC4xMzUtNS42NzMuMzIyLTEuNzEuMTc4LTMuMDMuNDQtMy45NzkuNzctLjQ5MS0uNjE4LTEuMDY3LTEuMjI4LTEuNzE5LTEuODU0LS42Ni0uNjE4LTEuMjI4LTEuMjAyLTEuNzI3LTEuNzQ0LS44My0uODQ3LTEuMjM2LTEuNzctMS4yMzYtMi43NzcgMC0xLjI0NS4yMDMtMi4xNTEuNjE4LTIuNzI2LjQ0LS42NjkgMS4xMzUtMS4xNiAyLjA1Ny0xLjQ4Mi45MjMtLjMyMiAxLjg2My0uNDgzIDIuODAzLS40ODMgMS4xOTQgMCAyLjMyOC4yNjIgMy40Mi43OTYgMS4wNzUuNTU5IDEuNzg3IDEuMDEgMi4xMzQgMS4zMzggMS4xMjYgMS4xNDMgMi4wMSAyLjM3OSAyLjYzMyAzLjcxNy4yMTIuNS4zNzIgMS4xOTQuNDgzIDIuMDc0LjExLjg4OS4xNjkgMS41NjYuMTg2IDIuMDQ5bTIuNzc3LTQuMzE4Yy4xMTktLjQ2Ni4yMTItLjc4Ny4yOTYtLjk2NS4xNjktLjY0My4zNTYtMS4xOTQuNTc2LTEuNjQzLjA5My0uMjc5LjIzNy0uNjAxLjQzMi0uOTc0LjE4Ni0uMzczLjM4OS0uODA0LjYxLTEuMjc5LjEyNy0uMjc5LjI3MS0uNjI3LjQxNS0xLjAzMy4xNTItLjQwNi4zMDUtLjgwNC40NDktMS4yMDIuMTM1LS4zMy4yMDMtLjY4Ni4yMDMtMS4wNjcgMC0uODEzLS4yOTYtMS40OTktLjg3Mi0yLjA2Ni0uNTc2LS41NzYtMS4yNzktLjg2NC0yLjEwOC0uODY0LTEuOTY0IDAtMi45NTUuOTkxLTIuOTU1IDIuOTU1IDAgLjM4MS4wNjguNzM3LjIwMyAxLjA2Ny4zNjQgMS4wNzUuNjQzIDEuODIuODM4IDIuMjM1LjIyLjQ3NC40MTUuOTA2LjYwMSAxLjI3OS4xNzguMzcyLjMzOS42OTQuNDY2Ljk3NC4yMi41NS4zOTggMS4wOTIuNTUgMS42NDMuMDM0LjA5My4xMjcuNDE1LjI5Ni45NG0tLjg4OSA2LjIyM2MwLS42Ni0uMDE3LTEuNTc1LS4wNTEtMi43MzUtLjAzNC0xLjE2OC0uMTYxLTIuMTQyLS4zNzItMi45MjEtLjY3Ny0yLjIxLTEuNzAyLTMuOTk2LTMuMDgyLTUuMzUxLS43MTEtLjY5NC0xLjc5NS0xLjM0Ni0zLjI2OC0xLjkzOS0xLjY4NS0uNjYtMy4yODUtLjk5MS00Ljc5Mi0uOTkxLTIuNjA4IDAtNC41NDcuOTMxLTUuOCAyLjgwMy0uNzExLjk5MS0xLjA2NyAyLjIzNS0xLjA2NyAzLjcxNyAwIDEuNjI2LjM5OCAyLjk1NSAxLjE4NSAzLjk5Ni40MTUuNTkzIDEuMjExIDEuMzI5IDIuMzg4IDIuMjEgMS4xNjguODcyIDIuMTY4IDEuNjg1IDIuOTcyIDIuNDMgMS40MzktLjMxMyAzLjA2NS0uNTg0IDQuODc3LS44MjEgMS44MTItLjIyOSA0LjE0OS0uMzY0IDcuMDEtLjM5OG0xMy43ODQgMTEuNzM1bC0uNzM3LTIuOTI5Yy0zLjIyNi0uNzM3LTcuMjgxLTEuMTA5LTEyLjE1OC0xLjEwOS00LjgyNiAwLTguODY1LjM3My0xMi4xMSAxLjEwOWwtLjc4NyAyLjk1NWMzLjE0MS0uOTU3IDcuNDQyLTEuNDM5IDEyLjkyLTEuNDM5IDIuNjI1IDAgNS4wNzIuMTM2IDcuMzE1LjM5OCAyLjI1Mi4yNjIgNC4xMDYuNjAxIDUuNTU0IDEuMDE2bS0uNjQzLTcuNDE3Yy0zLjA0LS44MzgtNy4wOTUtMS4yNjItMTIuMTUtMS4yNjItNS4wOTcgMC05LjE5NS40MzItMTIuMzAyIDEuMjg3bC4zNzMgMi41MDZjMy4xMjQtLjgxMyA3LjA5NS0xLjIxOSAxMS45My0xLjIxOSA0LjgwOSAwIDguNzI5LjM5OCAxMS43NTIgMS4xOTRsLjM5OC0yLjUwNm0tMTEuMzYyLTQuMjkzYzIuODQ1LjA1MSA1LjE4Mi4xOTUgNyAuNDIzIDEuODEyLjIyOSAzLjQ1NC41MDggNC45MTEuODIxLjkwNi0uODk4IDEuOTEzLTEuNzQ0IDMuMDItMi41NTcgMS4xMDktLjgxMyAxLjg4OC0xLjUwNyAyLjMzNy0yLjA4My43ODctMS4wNzUgMS4xODUtMi40MTMgMS4xODUtNC4wMiAwLTEuNDY1LS4zNTYtMi43MDEtMS4wNjctMy42OTItMS4yNy0xLjg3MS0zLjIxNy0yLjgwMy01LjgyNS0yLjgwMy0xLjUyNCAwLTMuMTA3LjMzLTQuNzY3Ljk5MS0xLjUwNy41OTMtMi41OTEgMS4yMzYtMy4yNzcgMS45My0xLjQwNSAxLjM2My0yLjQzIDMuMTUtMy4wNzMgNS4zNTktLjI0NS43NjItLjM4MSAxLjcyNy0uNDA2IDIuOTA0LS4wMjUgMS4xNzctLjA0MiAyLjA4My0uMDQyIDIuNzI2bTEuODEyLTEuOTNjMC0uNDgzLjA1OS0xLjE2LjE2MS0yLjA0OS4xMS0uODgxLjI3OS0xLjU3NS41MDgtMi4wNzQuNjE4LTEuMzM4IDEuNDktMi41NzQgMi42MzMtMy43MTcuMzMtLjMzIDEuMDQxLS43NzkgMi4xMzQtMS4zMzggMS4wNzUtLjUzMyAyLjIyNy0uNzk2IDMuNDQ2LS43OTYuOTMxIDAgMS44NDYuMTYxIDIuNzY5LjQ4My45MTQuMzIyIDEuNjA5LjgxMyAyLjA2NiAxLjQ4Mi40MTUuNTU5LjYyNyAxLjQ2NS42MjcgMi43MjYgMCAuOTkxLS40MDYgMS45MTMtMS4yMTkgMi43NzctLjUyNS41NDItMS4xMDEgMS4wOTItMS43MSAxLjY1MS0uNjEuNTUtMS4yMDIgMS4yMDItMS43NjEgMS45NDctLjk1Ny0uMzMtMi4yOTQtLjU5My00LS43Ny0xLjcxLS4xODYtMy41OS0uMjg4LTUuNjQ3LS4zMjIiLz48L3N2Zz4='); 186 | } 187 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | export { default } from './dist/vue-chessboard.common' 2 | export * from './dist/vue-chessboard.common' 3 | import './dist/vue-chessboard.css' 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-chessboard", 3 | "description": "Chessboard vue component to load positions, create positions and see threats", 4 | "version": "0.6.7", 5 | "author": { 6 | "name": "vitogit", 7 | "email": "vitogit@users.noreply.github.com" 8 | }, 9 | "keywords": [ 10 | "vue", 11 | "vuejs", 12 | "chessboard", 13 | "chess" 14 | ], 15 | "license": "GPL-3.0", 16 | "main": "dist/vue-chessboard.common.js", 17 | "unpkg": "dist/vue-chessboard.browser.js", 18 | "module": "index.js", 19 | "scripts": { 20 | "dev": "cross-env NODE_ENV=development webpack --config config/webpack.config.dev.js --progress --watch", 21 | "build": "npm run build:browser && npm run build:common", 22 | "build:browser": "cross-env NODE_ENV=production webpack --config config/webpack.config.browser.js --progress --hide-modules", 23 | "build:common": "cross-env NODE_ENV=production webpack --config config/webpack.config.common.js --progress --hide-modules", 24 | "prepublish": "npm run build", 25 | "pretest": "eslint . --ext .js --ext .vue" 26 | }, 27 | "repository": { 28 | "type": "git", 29 | "url": "git+https://github.com/vitogit/vue-chessboard.git" 30 | }, 31 | "bugs": { 32 | "url": "https://github.com/vitogit/vue-chessboard/issues" 33 | }, 34 | "homepage": "https://github.com/vitogit/vue-chessboard#readme", 35 | "devDependencies": { 36 | "babel-core": "^6.0.0", 37 | "babel-eslint": "^7.1.1", 38 | "babel-loader": "^6.0.0", 39 | "babel-preset-es2015": "^6.14.0", 40 | "babel-preset-stage-0": "^6.16.0", 41 | "cross-env": "^3.1.3", 42 | "css-loader": "^2.1.1", 43 | "eslint": "^3.12.1", 44 | "eslint-config-standard": "^6.2.1", 45 | "eslint-loader": "^1.6.1", 46 | "eslint-plugin-html": "^1.6.0", 47 | "eslint-plugin-promise": "^3.4.0", 48 | "eslint-plugin-standard": "^2.0.1", 49 | "extract-text-webpack-plugin": "^2.0.0-beta.4", 50 | "vue-loader": "^10.0.0", 51 | "vue-template-compiler": "^2.1.6", 52 | "webpack": "^2.1.0-beta.28", 53 | "webpack-merge": "^1.1.2" 54 | }, 55 | "dependencies": { 56 | "chess.js": "^0.10.2", 57 | "chessground": "^7.2.10" 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/components/chessboard/Util.js: -------------------------------------------------------------------------------- 1 | export function uniques (arr) { 2 | let uniqueArray = arr.filter(function (elem, index, self) { 3 | return index === self.indexOf(elem) 4 | }) 5 | return uniqueArray 6 | } 7 | -------------------------------------------------------------------------------- /src/components/chessboard/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 190 | -------------------------------------------------------------------------------- /src/components/chessboard/style/theme.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Chessground base css properties. 3 | * 4 | * You need to include the css files in themes folder in order to have the 5 | * board and pieces displayed! 6 | */ 7 | 8 | .cg-board-wrap { 9 | width: 320px; 10 | height: 320px; 11 | position: relative; 12 | display: block; 13 | } 14 | .cg-board { 15 | position: absolute; 16 | top: 0; 17 | left: 0; 18 | width: 100%; 19 | height: 100%; 20 | -webkit-user-select: none; 21 | -moz-user-select: none; 22 | -ms-user-select: none; 23 | user-select: none; 24 | line-height: 0; 25 | background-size: cover; 26 | cursor: pointer; 27 | } 28 | .cg-board square { 29 | position: absolute; 30 | top: 0; 31 | left: 0; 32 | width: 12.5%; 33 | height: 12.5%; 34 | } 35 | .cg-board square.move-dest { 36 | background: radial-gradient(rgba(20, 85, 30, 0.5) 22%, #208530 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 37 | } 38 | .cg-board square.premove-dest { 39 | background: radial-gradient(rgba(20, 30, 85, 0.5) 22%, #203085 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 40 | } 41 | .cg-board square.oc.move-dest { 42 | background: radial-gradient(transparent 0%, transparent 80%, rgba(20, 85, 0, 0.3) 80%); 43 | } 44 | .cg-board square.oc.premove-dest { 45 | background: radial-gradient(transparent 0%, transparent 80%, rgba(20, 30, 85, 0.2) 80%); 46 | } 47 | .cg-board .cg-square.move-dest.drag-over, 48 | .cg-board .cg-square.premove-dest.drag-over { 49 | box-shadow: inset 0 0 10px 2px rgba(216, 85, 0, 0.9); 50 | } 51 | .cg-board square.last-move { 52 | will-change: transform; 53 | background-color: rgba(155, 199, 0, 0.41); 54 | } 55 | .cg-board square.selected { 56 | background-color: rgba(20, 85, 30, 0.5); 57 | } 58 | .cg-board square.check { 59 | background: radial-gradient(ellipse at center, rgba(255, 0, 0, 1) 0%, rgba(231, 0, 0, 1) 25%, rgba(169, 0, 0, 0) 89%, rgba(158, 0, 0, 0) 100%); 60 | } 61 | .cg-board square.current-premove { 62 | background-color: rgba(20, 30, 85, 0.5); 63 | } 64 | .cg-board piece { 65 | position: absolute; 66 | top: 0; 67 | left: 0; 68 | width: 12.5%; 69 | height: 12.5%; 70 | background-size: cover; 71 | z-index: 2; 72 | will-change: transform; 73 | } 74 | .cg-board piece.dragging { 75 | cursor: move; 76 | z-index: 9; 77 | } 78 | .cg-board piece.anim { 79 | z-index: 8; 80 | } 81 | .cg-board piece.fading { 82 | z-index: 1; 83 | opacity: 0.5; 84 | } 85 | .cg-board-wrap div.over { 86 | position: absolute; 87 | top: 0; 88 | left: 0; 89 | background-color: rgba(20, 85, 30, 0.3); 90 | } 91 | .cg-board-wrap piece.ghost { 92 | opacity: 0.3; 93 | } 94 | .cg-board-wrap svg { 95 | overflow: hidden; 96 | position: relative; 97 | top: 0px; 98 | left: 0px; 99 | width: 100%; 100 | height: 100%; 101 | pointer-events: none; 102 | z-index: 2; 103 | opacity: 0.6; 104 | } 105 | .cg-board-wrap svg image { 106 | opacity: 0.5; 107 | } 108 | .cg-board-wrap coords { 109 | position: absolute; 110 | display: flex; 111 | pointer-events: none; 112 | opacity: 0.8; 113 | font-size: 9px; 114 | } 115 | .cg-board-wrap coords.ranks { 116 | right: -15px; 117 | top: 0; 118 | flex-flow: column-reverse; 119 | height: 100%; 120 | width: 12px; 121 | } 122 | .cg-board-wrap coords.ranks.black { 123 | flex-flow: column; 124 | } 125 | .cg-board-wrap coords.files { 126 | bottom: -16px; 127 | left: 0; 128 | flex-flow: row; 129 | width: 100%; 130 | height: 16px; 131 | text-transform: uppercase; 132 | text-align: center; 133 | } 134 | .cg-board-wrap coords.files.black { 135 | flex-flow: row-reverse; 136 | } 137 | .cg-board-wrap coords coord { 138 | flex: 1 1 auto; 139 | } 140 | .cg-board-wrap coords.ranks coord { 141 | transform: translateY(39%); 142 | } 143 | 144 | 145 | /* THEME CUSTOMIZATION*/ 146 | /* 147 | * Board 148 | */ 149 | .blue .cg-board-wrap { 150 | background-image: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA4MDAgODAwIj4NCjxnIGlkPSJicm93bi1ib2FyZCI+DQo8ZyBpZD0iTGlnaHQiIGZpbGw9IiNkZWUzZTYiPg0KPHJlY3Qgd2lkdGg9IjgwMCIgaGVpZ2h0PSI4MDAiLz4NCjwvZz4NCjxnIGlkPSJGcmFtZSIgZmlsbD0ibm9uZSI+DQo8cmVjdCB3aWR0aD0iODAwIiBoZWlnaHQ9IjgwMCIvPg0KPC9nPg0KPGcgaWQ9IkRhcmsiIGZpbGw9IiM4Y2EyYWQiPg0KPGcgaWQ9InJheiI+DQo8ZyBpZD0iZHZhIj4NCjxnIGlkPSJ0cmkiPg0KPHJlY3QgeD0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPHJlY3QgeD0iMzAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPHJlY3QgeD0iNTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPHJlY3QgeD0iNzAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPg0KPC9nPg0KPHVzZSB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAwLDEwMCkiIHhsaW5rOmhyZWY9IiN0cmkiLz4NCjwvZz4NCjx1c2UgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyMDApIiB4bGluazpocmVmPSIjZHZhIi8+DQo8L2c+DQo8dXNlIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNDAwKSIgeGxpbms6aHJlZj0iI3JheiIvPg0KPC9nPg0KPC9nPg0KPC9zdmc+'); 151 | } 152 | 153 | .merida .cg-board piece.pawn.white { 154 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyMS4xMyIgeTE9IjM3LjM1IiB4Mj0iNzcuNzYiIHkyPSIzNy40NjkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLjk3MzI0IDAgMS4yNDMpIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJtMjUgNDYuNDVoLTEzLjM5NGMtLjY2LTEuNjA3LS45OTEtMy4yODgtLjk5MS01LjA0IDAtMi45NzUuODY0LTUuNjQ0IDIuNTk5LTguMDIgMS43MzYtMi4zNjUgMy45NzEtNC4wNTQgNi42OTctNS4wNjgtMS4xNjgtLjUyNy0yLjEyNS0xLjMyNy0yLjg2Mi0yLjM5OC0uNzM3LTEuMDcxLTEuMTAxLTIuMjgzLTEuMTAxLTMuNjM0IDAtMS42ODkuNTc2LTMuMTU2IDEuNzM2LTQuMzkyIDEuMTUyLTEuMjQ0IDIuNTc0LTEuOTYxIDQuMjY3LTIuMTUxLTEuMzQ2LS45ODEtMi4wMi0yLjI4Mi0yLjAyLTMuODg5IDAtMS4zNTEuNDkxLTIuNTEzIDEuNDgyLTMuNDc3Ljk4Mi0uOTY0IDIuMTc2LTEuNDQyIDMuNTgxLTEuNDQyIDEuMzg5IDAgMi41ODIuNDc4IDMuNTczIDEuNDQyLjk5MS45NjQgMS40OSAyLjEyNiAxLjQ5IDMuNDc3IDAgMS42MDctLjY2OSAyLjkwOS0yLjAyIDMuODg5IDEuNjkzLjE5IDMuMTE2LjkwNiA0LjI2NyAyLjE1MSAxLjE2IDEuMjM2IDEuNzM2IDIuNzAzIDEuNzM2IDQuMzkyIDAgMS4zNTEtLjM3MyAyLjU2My0xLjEyNiAzLjYzNC0uNzUzIDEuMDcxLTEuNzEgMS44Ny0yLjg2MiAyLjM5OCAyLjcyNiAxLjAxNCA0Ljk2MSAyLjcwMyA2LjY5NyA1LjA2OCAxLjczNiAyLjM3MyAyLjU5OSA1LjA0IDIuNTk5IDguMDIgMCAxLjczOS0uMzIyIDMuNDItLjk2NSA1LjA0aC0xMy4zOTQiIGZpbGw9IiMxZjFhMTciLz48cGF0aCBkPSJtMjUgNDQuODA4aDEyLjE3NWMuMzQ3LTEuMTU0LjUyNS0yLjI5MS41MjUtMy40MDMgMC0yLjUxMy0uNzExLTQuNzg3LTIuMTQyLTYuODMxLTEuNDMxLTIuMDQ0LTMuMjc3LTMuNTUyLTUuNTItNC41MTYtMS41ODQtLjYyLTEuNjQzLS42NTktMS42NDMtMS43MzkgMC0uODQ5LjU1OS0xLjQ3NSAxLjY2OC0xLjg3OSAxLjUzMi0xLjA0NyAyLjMwMy0yLjQzMSAyLjMwMy00LjE1MyAwLTEuMjQ0LS40MzItMi4zMjQtMS4yODctMy4yNjMtLjg2NC0uOTMxLTEuOTA1LTEuNDY3LTMuMTI0LTEuNjE1LS45OTktLjA4Mi0xLjQ5LS42MjYtMS40OS0xLjY0IDAtLjQ1My4xNzgtLjg3My41NDItMS4yNjEuODk4LS42NzYgMS4zNDYtMS41NTcgMS4zNDYtMi42NTMgMC0uODk4LS4zMzktMS42NzMtLjk5OS0yLjMxNi0uNjYtLjY0My0xLjQ0OC0uOTY0LTIuMzU0LS45NjQtLjk0IDAtMS43NDQuMzIxLTIuMzk2Ljk2NC0uNjUyLjY0My0uOTc0IDEuNDE3LS45NzQgMi4zMTYgMCAxLjA3OS40NCAxLjk2MSAxLjMzOCAyLjY1My4zNjQuMzU0LjU0Mi43NzUuNTQyIDEuMjYxIDAgMS4wMTQtLjQ4MyAxLjU1Ny0xLjQ2NSAxLjY0LTEuMjM2LjE0OC0yLjI4Ni42ODQtMy4xMzMgMS42MTUtLjg1NS45MzktMS4yNzkgMi4wMi0xLjI3OSAzLjI2MyAwIDEuNzIyLjc3IDMuMTA2IDIuMzAzIDQuMTUzIDEuMTA5LjQxMiAxLjY2OCAxLjA0NiAxLjY2OCAxLjg3OSAwIDEuMDc5LS4wNjcgMS4xMTgtMS42NjggMS43MzktMi4yNDQuOTY0LTQuMDgxIDIuNDcyLTUuNTAzIDQuNTE2LTEuNDIyIDIuMDQ0LTIuMTM0IDQuMzE4LTIuMTM0IDYuODMxIDAgMS4xOTUuMTc4IDIuMzI0LjUyNSAzLjQwM2gxMi4xNzUiIGZpbGw9InVybCgjMCkiLz48L3N2Zz4='); 155 | } 156 | .merida .cg-board piece.bishop.white { 157 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjEzIiB5MT0iMzcuNTkyIiB4Mj0iNzcuNjQiIHkyPSIzNy40NjkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSIjMWYxYTE3IiBkPSJtMjUuNDQ3IDQyLjAxYy0uMjI5Ljk0LS41MTcgMS41OTItLjg0NyAxLjk1Ni0uMzMuMzY0LS43NjIuNzQ1LTEuMzEyIDEuMTQzLS41OTMuNDE1LTEuMjk1Ljc2Mi0yLjEwOCAxLjA1LS44MTMuMjg4LTEuNzEuMzY0LTIuNzAxLjIxMmwtNi45NjgtLjk2NWMtLjI4OC0uMDM0LS41MzMtLjAzNC0uNzYyIDAtLjIyLjAzNC0uNDMyLjA1MS0uNjM1LjA1MS0uMzQ3IDAtLjc4Ny4wNzYtMS4zMjEuMjM3LS41NDIuMTUyLS45NTcuMzgxLTEuMjUzLjY3N2wtMi40MDUtMy45NDZjLjI5Ni0uMzMuNTU5LS41NTkuNzg3LS42OTQuMjM3LS4xMjcuNTA4LS4yNzEuODIxLS40MTUuOTU3LS40NDkgMS45ODEtLjcyIDMuMDczLS44MjEuNDY2LS4wMzQuOTIzLS4wNDIgMS4zNjMtLjAyNS40NDkuMDE3LjkxNCAwIDEuMzk3LS4wNTEuODg5LjE1MiAxLjc4Ni4yODggMi42ODQuNDA2LjkwNi4xMjcgMS44MTIuMjU0IDIuNzE4LjM4OS45OTEgMCAxLjY2LS4xMDIgMi4wMS0uMjk2LjE4Ni0uMTAyLjQ3NC0uMjg4Ljg3Mi0uNTUuMzk4LS4yNjIuNzk2LS42NTIgMS4xOTQtMS4xNjgtLjg4MS0uMDkzLTEuNzctLjI2Mi0yLjY4NC0uNTA4LS45MDYtLjIzNy0xLjcxLS40OTEtMi40MDQtLjc1NGwyLjU4Mi02LjQwMWMtMS4yOTUtLjc0NS0yLjE5My0xLjMzOC0yLjcwOS0xLjc5NS0uNTA4LS40NTctLjkxNC0uOTgyLTEuMjExLTEuNTc1LS40MzItLjc2Mi0uNzExLTEuNDk5LS44My0yLjIxLS4xMjctLjcxMS0uMTc4LTEuMzQ2LS4xNjEtMS45MTMuMDE3LS45OTEuMjQ1LTIuMDgzLjcwMy0zLjI4NS40NTctMS4xOTQgMS4zMTItMi4yNjkgMi41NjUtMy4yMDkgMS4wNDEtLjc5NiAyLjA2Ni0xLjYxNyAzLjA1Ny0yLjQ1NS45OTEtLjg0NyAxLjk3My0xLjgyOSAyLjk0Ni0yLjk1NS0xLjIxOS0uNjI3LTEuODI5LTEuNjI2LTEuODI5LTIuOTk3IDAtLjkzMS4zMjItMS43MTkuOTc0LTIuMzg4LjY1Mi0uNjYgMS40NTYtLjk5MSAyLjM5Ni0uOTkxLjkyMyAwIDEuNzE5LjMzIDIuMzc5Ljk5MS42Ni42NjkuOTkxIDEuNDU2Ljk5MSAyLjM4OCAwIDEuMzU1LS42MSAyLjM1NC0xLjgyOSAyLjk5Ny45NTcgMS4xMjYgMS45MyAyLjEwOCAyLjkxMyAyLjk1NS45ODIuODM4IDIuMDIgMS42NiAzLjA5IDIuNDU1IDEuMjM2Ljk0IDIuMDgzIDIuMDIgMi41MjMgMy4yMDkuNDQ5IDEuMjAyLjY5NCAyLjI5NC43MiAzLjI4NSAwIC41NjctLjA1MSAxLjIwMi0uMTY5IDEuOTEzLS4xMTguNzExLS4zODEgMS40NDgtLjc5NiAyLjIxLS4zMy41OTMtLjc0NSAxLjExOC0xLjI1MyAxLjU3NS0uNS40NTctMS4zODkgMS4wNS0yLjY2NyAxLjc5NWwyLjU4MiA2LjQwMWMtLjcyOC4yNjMtMS41NDkuNTE3LTIuNDU1Ljc1NC0uOTE0LjI0Ni0xLjc4Ny40MTUtMi42MzMuNTA4LjM4MS41MTcuNzcuOTA2IDEuMTY4IDEuMTY4LjM5OC4yNjMuNjk0LjQ0OS44OTguNTUuMzQ3LjE5NSAxLjAxNi4yOTYgMi4wMS4yOTYuODg5LS4xMzYgMS43ODYtLjI2MyAyLjY5Mi0uMzg5Ljg5OC0uMTE4IDEuODAzLS4yNTQgMi43MTgtLjQwNi40NC4wNTEuODg5LjA2OCAxLjM0Ni4wNTEuNDU3LS4wMTcuOTIzLS4wMDggMS40MDUuMDI1IDEuMDU4LjEwMiAyLjA4My4zNzMgMy4wNzMuODIxLjI5Ni4xNDQuNTY3LjI4OC44MDQuNDE1LjI0NS4xMzUuNTA4LjM2NC44MDQuNjk0bC0yLjQzIDMuOTQ2Yy0uMjk2LS4yOTYtLjcxMS0uNTI1LTEuMjUzLS42NzctLjUzMy0uMTYxLS45NjUtLjIzNy0xLjI5NS0uMjM3LS4yMiAwLS40NC0uMDE3LS42Ni0uMDUxLS4yMi0uMDM0LS40NzQtLjAzNC0uNzU0IDBsLTYuOTUxLjk2NWMtLjk5MS4xNTItMS45MTMuMDg1LTIuNzYtLjE5NS0uODU1LS4yNzktMS41NTgtLjY1Mi0yLjEtMS4xMTgtLjU0Mi0uNDQ5LS45ODItLjgzLTEuMzA0LTEuMTUxLS4zMjItLjMyMi0uNTkzLS45NTctLjgwNC0xLjg5NyIvPjxwYXRoIGZpbGw9InVybCgjMCkiIGQ9Im0yNi4zMiAzOS4yYzAgMS4wOTIuMjQ1IDIuMDI0Ljc1MyAyLjc5NC41Ljc3IDEuMDQxIDEuMzcyIDEuNjI2IDEuNzk1LjkwNi42NjkgMi4yMzUuOTk5IDMuOTg4Ljk5OS40MzIgMCAxLjI3OS0uMDkzIDIuNTMyLS4yNzkgMS4wMjUtLjE2MSAxLjg1NC0uMjc5IDIuNDgxLS4zNTYuNjI3LS4wNzYgMS4wNS0uMTM1IDEuMjctLjE4Ni42MjctLjA4NSAxLjI4Ny0uMDY4IDEuOTgxLjA1MS4yNjIuMDY4LjU1OS4xMjcuODguMTg2LjMyMi4wNTkuNTkzLjE4Ni44MDQuMzgxbDEuMTk0LTEuOTNjLS42NzctLjM0Ny0xLjM5Ny0uNTkzLTIuMTU5LS43Mi0xLjI1My0uMjItMi4zNTQtLjI2My0zLjMwMi0uMTUyLS4yNzkuMDM0LS42NDMuMTE4LTEuMTAxLjI0NS0uNDU3LjEzNi0xLjA2Ny4yNjMtMS44NDYuMzczLTEuNjc2LjI3MS0yLjU1Ny4zOTgtMi42NTkuMzk4LS42NDQgMC0xLjIwMi0uMDc2LTEuNjg1LS4yNDYtLjQ4My0uMTY5LS45MDYtLjM0Ny0xLjI4Ny0uNTQyLS44ODEtLjM5OC0xLjc3LTEuMzM4LTIuNjg0LTIuODExaC0uNzg3bS0xLjc2MSAwaC0uNzk2Yy0uOTMxIDEuNDktMS44MTIgMi40My0yLjY1OSAyLjgxMS0uMzk4LjE5NS0uODMuMzczLTEuMzEyLjU0Mi0uNDgzLjE2OS0xLjAzMy4yNDYtMS42Ni4yNDYtLjExOSAwLS45OTktLjEyNy0yLjY1OS0uMzk4LS43ODctLjExLTEuNDIyLS4yMzctMS44OC0uMzczLS40NjYtLjEyNy0uODMtLjIxMi0xLjA5Mi0uMjQ1LS45NDgtLjExLTIuMDQtLjA2OC0zLjMwMi4xNTItLjc2Mi4xMjctMS40NzMuMzczLTIuMTM0LjcybDEuMTk0IDEuOTNjLjE5NS0uMTk1LjQ1Ny0uMzIyLjc3OS0uMzgxLjMyMi0uMDU5LjYxOC0uMTE4Ljg4LS4xODYuNjk0LS4xMTkgMS4zNTUtLjEzNiAxLjk4MS0uMDUxLjIyLjA1MS42NDMuMTEgMS4yNy4xODYuNjI3LjA3NiAxLjQ2NS4xOTUgMi41MDYuMzU2IDEuMjM2LjE4NiAyLjA4My4yNzkgMi41MzIuMjc5IDEuNzM2IDAgMy4wNjUtLjMzIDMuOTg4LS45OTkuNTY3LS40MjMgMS4xMDEtMS4wMjUgMS42LTEuNzk1LjUwOC0uNzcuNzYyLTEuNzAyLjc2Mi0yLjc5NG0uODg5LTkuMzQ3YzEuNiAwIDMuMTQxLjEyNyA0LjYxNC4zNzMgMS42MTctLjU3NiAyLjc5NC0xLjQ4MiAzLjUyMi0yLjcwMS42MjctMS4wNTguOTQtMi4yMjcuOTQtMy40OTcgMC0uNzYyLS4xODYtMS42LS41NjctMi41MjMtLjM4MS0uOTE0LS45OTktMS43NDQtMS44NjMtMi40ODktLjk3NC0uODEzLTIuMDQtMS43MDItMy4yLTIuNjY3LTEuMTUxLS45NjUtMi4zMDMtMi4xLTMuNDQ2LTMuMzg3LTEuMTYgMS4yODctMi4zMTEgMi40MjItMy40NzEgMy4zODctMS4xNi45NjUtMi4yMTggMS44NTQtMy4xNzUgMi42NjctLjg4MS43NDUtMS40OTkgMS41NzUtMS44NzEgMi40ODktLjM3Mi45MjMtLjU1OSAxLjc2MS0uNTU5IDIuNTIzIDAgMS4yNy4zMDUgMi40MzguOTE0IDMuNDk3LjcxMSAxLjIxOSAxLjg5NyAyLjEyNSAzLjU0OCAyLjcwMSAxLjQ1Ni0uMjQ2IDIuOTk3LS4zNzMgNC42MTQtLjM3M20wIDQuNTEzYzEuOTM5IDAgMy43OTMuMTk1IDUuNTc5LjU3NmwtMS4xODUtMy4wNTdjLTEuNDU2LS4yMjktMi45MjEtLjM0Ny00LjM5NC0uMzQ3LTEuNTA3IDAtMi45OC4xMTktNC40MTEuMzQ3bC0xLjE5NCAzLjA1N2MxLjc3LS4zODEgMy42NDEtLjU3NiA1LjYwNS0uNTc2bTAtMjMuNTM3YzEuMTI2IDAgMS42ODUtLjU1OSAxLjY4NS0xLjY4NSAwLTEuMTI2LS41NTktMS42OTMtMS42ODUtMS42OTMtMS4xMjYgMC0xLjY4NS41NjctMS42ODUgMS42OTMgMCAxLjEyNi41NTkgMS42ODUgMS42ODUgMS42ODVtMCAyNy4wMWMxLjEyNiAwIDIuMjE4LS4wOTMgMy4yODUtLjI3OSAxLjA2Ny0uMTk1IDIuMS0uNDIzIDMuMDktLjY4Ni0xLjkzOS0uNTA4LTQuMDY0LS43Ny02LjM3NS0uNzctMi4zNDUgMC00LjQ3LjI2My02LjM3NS43Ny45NTcuMjYzIDEuOTczLjQ5MSAzLjA0OC42ODYgMS4wNzUuMTg2IDIuMTg0LjI3OSAzLjMyNy4yNzltLS44ODktMTQuMzM0bC0yLjA2Ni0uMDI1Yy0uNTU5IDAtLjgzOC0uMjc5LS44MzgtLjg0NyAwLS41NTkuMjc5LS44MzguODM4LS44MzhoMi4wNjZ2LTIuMTM0YzAtLjU3Ni4yOTYtLjg3Mi44ODktLjg3Mi41NzYgMCAuODcyLjI5Ni44NzIuODcydjIuMTM0aDIuMTM0Yy41NDIgMCAuODEzLjI3OS44MTMuODM4IDAgLjU2Ny0uMjcxLjg0Ny0uODEzLjg0N2gtMi4xMzR2Mi4wMzJjMCAuNjAxLS4yOTYuODk4LS44NzIuODk4LS41OTMgMC0uODg5LS4yOTYtLjg4OS0uODk4di0yLjAxIi8+PC9zdmc+'); 158 | } 159 | .merida .cg-board piece.knight.white { 160 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjQwNSIgeDI9Ijc3LjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzFmMWExNyIgZD0ibTI2LjE4IDkuMzk1YzIuNTk5LjE2OSA1IC44MzggNy4yMjIgMi4wMiAyLjIxIDEuMTY4IDQuMDk4IDIuNjc1IDUuNjU2IDQuNTEzIDEuMDkyIDEuMjg3IDIuMTE3IDIuODQ1IDMuMDgyIDQuNjY1Ljk3NCAxLjgxMiAxLjc0NCAzLjc0MiAyLjMyIDUuNzc0LjY2IDIuMzcxIDEuMDg0IDQuODUxIDEuMjUzIDcuNDU5LjE3OCAyLjU5OS4yNjMgNS4wMS4yNjMgNy4yM3Y1LjQwMmMwIDAtMS4yODcgMC0zLjg2MSAwLTIuNTY1IDAtNS45MDEgMC0xMC4wMSAwaC0xNi42MzdjLS4xNTIgMC0uMjItLjQwNi0uMjEyLTEuMjExLjAwOC0uODEzLjA1OS0xLjQ2NS4xNjEtMS45NjQuMDU5LS4zOTguMjItLjk1Ny40NjYtMS42ODUuMjU0LS43MjguNjYtMS42MDkgMS4yNDUtMi42NS4yNjItLjUzMy44ODktMS4zMDQgMS44OC0yLjMyLjk5OS0xLjAxNiAyLjEzNC0yLjIwMSAzLjQyOS0zLjUzOS43NDUtLjc2MiAxLjMyMS0xLjcxOSAxLjc0NC0yLjg3OS40MjMtMS4xNTEuNjAxLTIuMjAxLjUzMy0zLjE1LS42MS41LTEuMjc5LjkwNi0yLjAxIDEuMjE5LTMuNTA1IDEuMjUzLTYuMDUgMy4wNzMtNy42MTEgNS40NTItLjExOS4xNTItLjQ5MS44MjEtMS4xMTggMi4wMi0uMzMuNjI3LS42MTggMS4wNTgtLjg0NyAxLjI4Ny0uMzEzLjMxMy0uNzcxLjQ5MS0xLjM2My41MjUtLjkyMy4wNDItMS42NDMtLjM5OC0yLjE1OS0xLjM0Ni0uNjk0LjIwMy0xLjMxMi4yODgtMS44NjMuMjU0LS45MjMtLjM0Ny0xLjU5Mi0uNzItMi4wMS0xLjExOC0uODQ3LS44NDctMS4zODktMS42ODUtMS42NTEtMi41MzItLjI1NC0uODQ3LS4zODEtMS43NTMtLjM4MS0yLjcyNiAwLTEuMzg5Ljg1NS0zLjIyNiAyLjU4Mi01LjUxMiAyLjAyLTIuNjI1IDMuMDktNC42MzEgMy4yMTctNiAwLS41OTMuMDU5LTEuMjYyLjE3OC0yLjAxLjEwMi0uNTE3LjMwNS0xLjAxLjYxOC0xLjQ5LjIyLS4zMy4zNjQtLjU1OS40MzItLjY3Ny4wNzYtLjEyNy4yMTItLjMxMy40MTUtLjU1OS4xNDQtLjIwMy4yNzEtLjM1Ni4zNzMtLjQ1Ny4wOTMtLjExLjIyLS4yNTQuMzczLS40NC4xNzgtLjIxMi40MDYtLjQ1Ny42OTQtLjc0NS0uODgtMi40MTMtMS4yMzYtNC45MDItMS4wNjctNy40NTkgMy4yODUgMS4xNjggNi4wNSAzLjAxIDguMjggNS41MjkuNTUtMS44NzEgMS42MjYtMy4zODcgMy4yMjYtNC41MzggMS4zMjEuOTIzIDIuMzcxIDIuMTUxIDMuMTUgMy42NjYiLz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtNDIuOTc2IDQ0LjY5M2MtLjAxNyAwIDAtLjQ0OS4wNDItMS4zNDYuMDUxLS45MDYuMDc2LTEuODguMDc2LTIuOTIxLjAxNy0yLjA2Ni4wMTctNC4yIDAtNi40MDktLjAxNy0yLjIxLS4zMTMtNC40MTEtLjg4OS02LjYxMy0uNTY3LTIuMTE3LTEuMTg1LTMuOTItMS44NjMtNS40MTktLjY3Ny0xLjQ5OS0xLjQxNC0yLjc4Ni0yLjIxLTMuODc4LTEuMTg1LTEuNzg2LTIuODExLTMuMzAyLTQuODYtNC41MzgtMi4wNDktMS4yNDUtNC4xOTEtMi4wNTctNi40MjYtMi40MzguMTUyLjgxMy4yMiAxLjYwOS4yMDMgMi4zODgtLjAzNC41OTMtLjMxMy44ODktLjg0Ny44ODktLjYxIDAtLjg4MS0uMjk2LS44MjEtLjg4OS4wNTEtMi4xODQtLjcyOC00LjA1Ni0yLjMyOC01LjYwNS0xLjI1MyAxLjMyMS0xLjkzOSAyLjg1My0yLjAzMiA0LjYwNi0uMDM0LjU4NC0uMzMuODM4LS44OTcuNzcxLS41MjUtLjAxNy0uNzg3LS4zMjItLjc4Ny0uOTE0IDAgMCAuMDE3LS4wNjguMDQyLS4yMDMtLjY3Ny4yMi0xLjM4OS41MjUtMi4xMzQuOTIzLS40NzQuMzMtLjg2NC4yNDUtMS4xNi0uMjQ2LS4yOTYtLjQ5OS0uMTY5LS44ODkuMzk4LTEuMTY4LjcxMS0uMzY0IDEuMjQ1LS42MzUgMS42MDktLjgyMS0xLjQyMi0xLjQ1Ni0zLjA0LTIuNjI1LTQuODYtMy41MjIuMTk1IDIuMzAzLjgzIDQuNDcgMS44ODggNi41MjguMjc5LjQyMy4yMTIuODA0LS4yMDMgMS4xMzUtLjQ2Ni4zNjQtLjg1NS4zMTMtMS4xNjgtLjE2OS0uMTEtLjE2OS0uMjc5LS40NjYtLjQ5MS0uODk3LS4zNDcuMzQ3LS41ODQuNjEtLjY5NC43Ny0uMTE4LjE1Mi0uMzIyLjQ4My0uNjEuOTkxLS4yODguNTE2LS40OTkuOTQtLjYzNSAxLjI3LS4xNDQuNDE1LS4yMTIuNzQ1LS4xODYgMS4wMS4wMjUuMjU0LjA1MS41MzMuMDY4Ljg1NS0uMTUyLjk3NC0uNDkxIDEuODg4LTEuMDEgMi43NTItLjUyNS44NTUtMS4xODUgMS45MDUtMS45OTggMy4xNS0uNzc5IDEuMTg1LTEuMzcyIDIuMDgzLTEuNzg2IDIuNjc1LS40MTUuNjAxLS43MjggMS4zNTUtLjk0IDIuMjg2LS4xNTIuNTU5LS4xNTIgMS4yNDUgMCAyLjA0MS4xNDQuODA0LjQ3NCAxLjQzMS45NjUgMS44OC43NjIuNzcgMS40OTkgMS4xMjYgMi4yMSAxLjA2Ny4yMjkgMCAuNTQyLS4wOTMuOTMxLS4yNzkuMzg5LS4xNzguNjg2LS41MjUuOTA2LTEuMDQxLjQyMy0uOTQuNzc5LTEuNDE0IDEuMDY3LTEuNDE0LjQwNiAwIC42MzUuMjM3LjY2OS42OTQgMCAuMTAyLS4xMzYuNTE3LS4zOTggMS4yNDUtLjE1Mi4zMy0uMzQ3LjY3Ny0uNTkzIDEuMDQxLS4zMjIuNDMyLS40NTcuNjEtLjQyMy41NDIuMjYyLjk0OC43MDMgMS4xMDkgMS4zMTIuNDk5LjE3OC0uMTc4LjM4OS0uNTI1LjYxOC0xLjAxNi4yMzctLjQ5OS42MDEtMS4xNjggMS4wOTItMi4wMS41ODQtLjk4MiAxLjIwMi0xLjc3IDEuODYzLTIuMzg4LjY2LS42MSAxLjI0NS0xLjEwOSAxLjc2MS0xLjQ4Mi4yOTYtLjIyLjY2LS40NjYgMS4wOTItLjc0NS40MzItLjI4OCAxLjAxLS41NzYgMS43MzYtLjg3Mi41NzYtLjIyOSAxLjIxOS0uNTE2IDEuOTIyLS44NTUuNzAzLS4zMzkgMS4zMjktLjc3IDEuODcxLTEuMzA0Ljc2Mi0uNzQ1IDEuMzQ2LTEuNjU5IDEuNzYxLTIuNzUyLjIyLS42MS4yOTYtMS4zNjMuMjQ1LTIuMjYxLS4xNDQtLjU1OS4xMzYtLjgzOC44NDctLjgzOC41MzMgMCAuODMuMjcxLjg5OC44MjEgMCAxLjg2My0uNTMzIDMuNTY0LTEuNTkyIDUuMTA1LjM0NyAxLjA1OC40NCAyLjIxOC4yNzEgMy40NzEtLjE0NCAxLjAxLS41IDIuMDkxLTEuMDUgMy4yNDMtLjU1OSAxLjE0My0xLjY3NiAyLjQyMi0zLjM2MSAzLjgyNy0zLjQyOSAyLjg0NS01LjA1IDUuNzc0LTQuODYgOC43OCAwIDAgMS40MDUgMCA0LjIyNSAwIDIuODE5IDAgNS40NyAwIDcuOTUgMGgxMy41NzJtLTMzLjYzOC0xNS4wOGMtLjQ4My4yOTYtLjc3LjY5NC0uODcyIDEuMTk0LjAxNy41NDItLjIzNy44MzgtLjc2Mi44ODktLjU4NC4wNjgtLjg4MS0uMTc4LS44OTgtLjc0NS4wNjgtMS4wOTIuNTUtMS45NTYgMS40NjUtMi41OTkuNDMyLS4zNDcuODMtLjMyMiAxLjE5NC4wOTMuMzY0LjQ0OS4zMjIuODM4LS4xMjcgMS4xNjhtNy4zNjYtMTEuODI4Yy4yMTIuMzMuMjk2LjY3Ny4yNDYgMS4wNDEtLjE2MSAxLjA1OC0uNzU0IDEuNDk5LTEuNzYxIDEuMzM4LS4yOTYtLjA1MS0uNTMzLS4xNTItLjcyLS4yOTYtLjA1OS4wNzYtLjE2MS4yNjItLjI5Ni41NDItLjE3OC41MzMtLjUyNS43MTEtMS4wNDEuNTUtLjUwOC0uMjAzLS43MTEtLjU3Ni0uNTkzLTEuMTE4Ljc0NS0xLjkwNSAyLjA5MS0zLjIwOSA0LjA0LTMuOTIuNTY3LS4xNjkuOTQgMCAxLjExOC40OTEuMjAzLjUzMy4wNTEuODk4LS40NDkgMS4wOTItLjA5My4wNTEtLjE4Ni4xMDItLjI3MS4xMzYtLjA4NS4wNDItLjE2OS4wOTMtLjI3MS4xNDQiLz48L3N2Zz4='); 161 | } 162 | .merida .cg-board piece.rook.white { 163 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjM3NiIgeDI9Ijc3LjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzFmMWExNyIgZD0ibTI4LjQwOCA5LjIyaDQuMjE2di0zLjM5NWg2Ljc5NnY5LjI5NWwtNS41IDQuMjQzdjExLjg1N2w0LjIyIDQuMjIxdjUuMDhoMy43ODl2NS45MjloLTMzLjg1OXYtNS45MjloMy43OTR2LTUuMDhsNC4yNDYtNC4yMjF2LTExLjg1N2wtNS41MDgtNC4yNDN2LTkuMjk1aDYuNzc0djMuMzk1aDQuMjQydi0zLjM5NWg2Ljc5eiIvPjxwYXRoIGZpbGw9InVybCgjMCkiIGQ9Im0zMy4wNyAxNy42NzhsMy4xNS0yLjU1N2gtMjIuNDJsMy4xNzUgMi41NTdoMTYuMW03LjE5NyAyNC41MjhoLTMwLjUxNHYyLjU1N2gzMC41MTR2LTIuNTU3bS0zLjg0NC01LjA1aC0yMi44MjZ2My4zN2gyMi44MjZ2LTMuMzdtLTQuMjE2LTE3Ljc4OGgtMTQuMzkzdjExLjg2MmgxNC4zOTN2LTExLjg2Mm01LjUwMy01LjkyN3YtNS45MjdoLTMuMzk1djMuMzk1aC03LjY0NXYtMy4zOTVoLTMuMzQ0djMuMzk1aC03LjYydi0zLjM5NWgtMy4zOTV2NS45MjdoMjUuNG0tMS45MTMgMjJsLTIuNTQ4LTIuNTMyaC0xNi40NTFsLTIuNTk5IDIuNTMyaDIxLjU5OCIvPjwvc3ZnPg=='); 164 | } 165 | .merida .cg-board piece.queen.white { 166 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjI1MyIgeTE9IjM3LjIyIiB4Mj0iNzcuNjQiIHkyPSIzNy4zNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIHN0cm9rZT0iIzFmMWExNyIgc3Ryb2tlLXdpZHRoPSIuMDc2Ij48cGF0aCBmaWxsPSIjMWYxYTE3IiBkPSJtNDQuNTQxIDE0LjcyM2MtLjk0IDAtMS43NDQtLjMzLTIuNDA1LS45ODItLjY2LS42NTItLjk5MS0xLjQ0OC0uOTkxLTIuMzk2IDAtLjkyMy4zMy0xLjcxOS45OTEtMi4zODguNjYtLjY3NyAxLjQ2NS0xLjAxIDIuNDA1LTEuMDEuOTMxIDAgMS43MjcuMzMgMi4zODggMS4wMS42Ni42NjkuOTkxIDEuNDY1Ljk5MSAyLjM4OCAwIC45NDgtLjMzIDEuNzQ0LS45OTEgMi4zOTYtLjY2LjY1Mi0xLjQ1Ni45ODItMi4zODguOTgyem0tNC4zMSAyOS4yMmMtLjgxMy43MTEtMi42MzMgMS4zMDQtNS40NjEgMS43ODYtMi44MjguNDc0LTYuMDg3LjcyLTkuNzcuNzItMy43NTEgMC03LjA1LS4yNTQtOS44OTgtLjc0NS0yLjg0NS0uNDk5LTQuNjQtMS4xMTgtNS4zODUtMS44NjNsMS41NjYtNS45NTItLjY5NC0zLjg5NS0yLjE4NC0zLjc5My0yLjEwOC0xNS40MjYgMS4yMTEtLjQ3NCA2Ljc5OSAxMS40NTUuMTUyLTEzLjY0IDEuNjg1LS4yOTYgNS4xODIgMTMuNzE2IDIuNzc3LTE0Ljc1N2gxLjcxOWwyLjc3NyAxNC43MDcgNS4xMzEtMTMuNjY1IDEuNzEuMjk2LjE1MiAxMy42NCA2LjgyNC0xMS40ODEgMS4xNi41NDItMi4wNTcgMTUuMzU5LTIuMjEgMy43OTMtLjY5NCAzLjk0NiAxLjYxNyA2LjAzem0tMjUuNjk2LTMxLjk1M2MtLjk0OCAwLTEuNzUzLS4zMjItMi40MTMtLjk3NC0uNjYtLjY1Mi0uOTkxLTEuNDU2LS45OTEtMi4zOTYgMC0uOTIzLjMzLTEuNzE5Ljk5MS0yLjM3OS42Ni0uNjYgMS40NjUtLjk5MSAyLjQxMy0uOTkxLjkyMyAwIDEuNzE5LjMzIDIuMzc5Ljk5MS42Ni42Ni45OTEgMS40NTYuOTkxIDIuMzc5IDAgLjk0LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42Ni42NTItMS40NTYuOTc0LTIuMzc5Ljk3NHptLTkuMTM2IDIuNzM1Yy0uOTQgMC0xLjczNi0uMzMtMi4zODgtLjk4Mi0uNjUyLS42NTItLjk4Mi0xLjQ0OC0uOTgyLTIuMzk2IDAtLjkyMy4zMy0xLjcxOS45ODItMi4zODguNjUyLS42NzcgMS40NDgtMS4wMSAyLjM4OC0xLjAxLjk0OCAwIDEuNzQ0LjMzIDIuNDEzIDEuMDEuNjYuNjY5Ljk5MSAxLjQ2NS45OTEgMi4zODggMCAuOTQ4LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42NjkuNjUyLTEuNDY1Ljk4Mi0yLjQxMy45ODJ6bTE5LjU1LTMuOTcxYy0uOTQgMC0xLjc0NC0uMzMtMi4zOTYtLjk5MS0uNjUyLS42Ni0uOTc0LTEuNDY1LS45NzQtMi40MDUgMC0uOTMxLjMyMi0xLjcyNy45NzQtMi4zODguNjUyLS42NiAxLjQ1Ni0uOTkxIDIuMzk2LS45OTEuOTIzIDAgMS43MjcuMzMgMi4zOTYuOTkxLjY2OS42Ni45OTkgMS40NTYuOTk5IDIuMzg4IDAgLjk0LS4zMyAxLjc0NC0uOTk5IDIuNDA1LS42NjkuNjYtMS40NzMuOTkxLTIuMzk2Ljk5MXptMTAuNDE0IDEuMjM2Yy0uOTQgMC0xLjczNi0uMzIyLTIuMzg4LS45NzQtLjY1Mi0uNjUyLS45ODItMS40NTYtLjk4Mi0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTgyLTIuMzc5LjY1Mi0uNjYgMS40NDgtLjk5MSAyLjM4OC0uOTkxLjk0OCAwIDEuNzUzLjMzIDIuNDEzLjk5MS42Ni42Ni45OTEgMS40NTYuOTkxIDIuMzc5IDAgLjk0LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42Ni42NTItMS40NjUuOTc0LTIuNDEzLjk3NHoiLz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMzguMjIgNDMuMDRjLTMuMDItMS4yNTMtNy40MTctMS44OC0xMy4xNjYtMS44OC01Ljg3NiAwLTEwLjMxMi42NDMtMTMuMzI3IDEuOTMgMi44OTYgMS4xNDMgNy4zMTUgMS43MSAxMy4yNSAxLjcxIDIuODQ1IDAgNS40NDQtLjE1MiA3Ljc5OC0uNDY2IDIuMzYyLS4zMTMgNC4xNzQtLjc0NSA1LjQ0NC0xLjI5NXptLTEzLjI2Ny0zNC4wM2MxLjEwOSAwIDEuNjYtLjU1OSAxLjY2LTEuNjU5IDAtMS4wOTItLjU1LTEuNjQzLTEuNjYtMS42NDMtMS4wOTIgMC0xLjYzNC41NS0xLjYzNCAxLjY0MyAwIDEuMTAxLjU0MiAxLjY1OSAxLjYzNCAxLjY1OXptMTIuNjI0IDI0Ljk3N2MtMy4xOTItLjgxMy03LjM2Ni0xLjIxMS0xMi41MjItMS4yMTEtNS4yOTIgMC05LjUxNy40MDYtMTIuNjc1IDEuMjM2bC4zNzMgMi4zNzljMy4yMTctLjc2MiA3LjMyNC0xLjE0MyAxMi4zMDItMS4xNDMgNC45NDQgMCA4Ljk3NS4zNzMgMTIuMSAxLjExOGwuNDIzLTIuMzc5em0uNjE4LTEuNDlsMS42MTctMi44NTNjLS43OTYuMzIyLTEuNjA5LjQ3NC0yLjQzLjQ3NC0yLjIxOCAwLTMuOTg4LS44OTctNS4zMDktMi43MDEtLjk5MS44MjEtMi4xIDEuMjM2LTMuMzI3IDEuMjM2LTEuNTgzIDAtMi44NTMtLjYxOC0zLjc5My0xLjg2My0xLjA1OCAxLjE2LTIuMzIgMS43NDQtMy43OTMgMS43NDQtMS4xOTQgMC0yLjI4Ni0uNDA2LTMuMjc3LTEuMjE5LTEuMzg5IDEuNzctMy4xODMgMi42NS01LjM4NSAyLjY1LS44MzggMC0xLjY3Ni0uMTUyLTIuNTA2LS40NjZsMS43MzYgMi45NzJjMy4yMDktLjkyMyA3LjYyLTEuMzg5IDEzLjIyNS0xLjM4OSA1LjcwNiAwIDEwLjExOC40NzQgMTMuMjQyIDEuNDE0em0tMTEuMTEtNS45MjdsLTIuMTA4LTEyLjEzMy0yLjEwOCAxMS45ODljLjA1MS0uMDM0LjE2MS0uMTE5LjM0Ny0uMjU0LjM4MS0uNzQ1Ljk1Ny0xLjExOCAxLjczNi0xLjExOC44NDcgMCAxLjM4OS4zNzIgMS42MzQgMS4xMTguMTAyLjEwMi4yNzEuMjM3LjUuMzk4em02Ljg2Ny40NzR2LTExLjQ4OWwtNC4wODkgMTEuMjYxYy4zMTMtLjExLjU3Ni0uMjYyLjc5Ni0uNDQuMzMtLjQxNS43NzktLjYyNyAxLjMzOC0uNjI3LjY2IDAgMS4xOTQuMjk2IDEuNTkyLjg3Mi4wNDIuMDY4LjEwMi4xMzYuMTY5LjIxMi4wNjguMDc2LjEzNi4xNDQuMTk1LjIxMnptLTEzLjkzNi0uMzQ3bC00LjA2NC0xMS4xNDJ2MTEuMzM3Yy4wNDItLjA2OC4xMTktLjE0NC4yMi0uMjQ1LjMzLS42OTQuODcyLTEuMDQxIDEuNjM0LTEuMDQxLjYyNyAwIDEuMTQzLjI2MiAxLjU0MS43OTYuNDQ5LjE5NS42NjkuMjk2LjY2OS4yOTZ6bS02LjI5OSAxLjM4OWwtNS4zMzQtOS4yMDMgMS4zNjMgOC4zODJjLjk0LjY2IDEuODYzLjk5MSAyLjc1Mi45OTEuMzQ3IDAgLjc1NC0uMDU5IDEuMjE5LS4xNjl6bTIyLjM5NC4xMTljLjM4MS4xMTkuODA0LjE3OCAxLjI3LjE3OCAxLjAxIDAgMS45NDctLjMxMyAyLjgyOC0uOTRsMS4zNjMtOC41ODUtNS40NjEgOS4zNDd6bTEuNDkgMTIuNTU2bC0uNzQ1LTIuODAyYy0zLjI0My0uNzExLTcuMjA1LTEuMDY3LTExLjkwNC0xLjA2Ny00LjY0OCAwLTguNjExLjM1Ni0xMS44NzkgMS4wNjdsLS43NzEgMi44MjhjMy4wNzMtLjkzMSA3LjI5OC0xLjM4OSAxMi42NzUtMS4zODkgNS4yNDEgMCA5LjQ0OS40NDkgMTIuNjI0IDEuMzYzem0tMjMuMDYtMzAuNTE0YzEuMDg0IDAgMS42MzQtLjU0MiAxLjYzNC0xLjYzNCAwLTEuMDkyLS41NS0xLjYzNC0xLjYzNC0xLjYzNC0xLjEwOSAwLTEuNjY4LjU0Mi0xLjY2OCAxLjYzNCAwIDEuMDkyLjU1OSAxLjYzNCAxLjY2OCAxLjYzNHptMjAuODI4IDBjMS4xMDkgMCAxLjY2OC0uNTQyIDEuNjY4LTEuNjM0IDAtMS4wOTItLjU1OS0xLjYzNC0xLjY2OC0xLjYzNC0xLjA4NCAwLTEuNjM0LjU0Mi0xLjYzNCAxLjYzNCAwIDEuMDkyLjU1IDEuNjM0IDEuNjM0IDEuNjM0em0tMjkuOTY0IDIuNzM1YzEuMTA5IDAgMS42NjgtLjU1IDEuNjY4LTEuNjQzIDAtMS4xMDktLjU1OS0xLjY1OS0xLjY2OC0xLjY1OS0xLjA4NCAwLTEuNjM0LjU1LTEuNjM0IDEuNjU5IDAgMS4wOTIuNTUgMS42NDMgMS42MzQgMS42NDN6bTM5LjE0IDBjMS4wOTIgMCAxLjY0Mi0uNTUgMS42NDItMS42NDMgMC0xLjEwOS0uNTUtMS42NTktMS42NDItMS42NTktMS4xMDEgMC0xLjY2LjU1LTEuNjYgMS42NTkgMCAxLjA5Mi41NTkgMS42NDMgMS42NiAxLjY0M3oiLz48L2c+PC9zdmc+'); 167 | } 168 | .merida .cg-board piece.king.white { 169 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjM3NiIgeDI9Ijc3LjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0iIzFmMWExNyI+PHBhdGggZD0ibTI1LjgyMSAxMi4wMmgtMS43NjF2LTMuMjUxaC0yLjA2NmMtLjU1OSAwLS44MzgtLjI3MS0uODM4LS44MjF2LS4wMjVjMC0uNTQyLjI3OS0uODEzLjgzOC0uODEzaDIuMDY2di0yLjEwOGMwLS41ODQuMjk2LS44NzIuODg5LS44NzIuNTc2IDAgLjg3Mi4yODguODcyLjg3MnYyLjEwOGgyLjEzNGMuNTQyIDAgLjgxMy4yNzEuODEzLjgxM3YuMDI1YzAgLjU1LS4yNzEuODIxLS44MTMuODIxbC0yLjExNy4wMjUtLjAxNyAzLjIyNiIvPjxwYXRoIGQ9Im0xMS4wMyAzNy43NDRsLS44MTMtNC42NGMtLjAxNyAwLS4wNDItLjAzNC0uMDc2LS4xMDItLjA4NS0uMTE4LS4zMjItLjI3MS0uNzExLS40NTctLjM4MS0uMTk1LS44MzgtLjUxNi0xLjM0Ni0uOTgyLS43MjgtLjYxLTEuMjk1LTEuMTA5LTEuNzAyLTEuNDktLjQwNi0uMzczLS43NzEtLjc4Ny0xLjEwMS0xLjIzNi0xLjAxLTEuMzg5LTEuNTc1LTMuMDY1LTEuNjg1LTUuMDQtLjE2OS0xLjg5Ny42MDEtMy43OTMgMi4zMDMtNS42ODEgMS43MTktMS44OCA0LjA0Ny0yLjc2OSA2Ljk2OC0yLjY1IDEuMDkyLjA2OCAyLjM3OS4zMyAzLjg0NC43OTYuNDgzLjE5NS45NzQuMzkgMS40ODIuNTc2LjUuMTk1Ljk5OS4zODkgMS40OTkuNTg0LjI2Mi4xMzUuNS4yNzEuNjk0LjM5OC0uMDg1LS4zNDctLjEyNy0uNjk0LS4xMjctMS4wNDEgMC0xLjI4Ny40NTctMi4zODggMS4zOC0zLjMwMi45MTQtLjkwNiAyLjAyNC0xLjM3MiAzLjMxMS0xLjM4OSAxLjI4NyAwIDIuMzg4LjQ2NiAzLjMwMiAxLjM4LjkwNi45MTQgMS4zNjMgMi4wMiAxLjM2MyAzLjI4NSAwIC4yNjItLjAzNC42MS0uMTAyIDEuMDQxLjIyOS0uMTQ0LjQ1Ny0uMjcxLjY2OS0uMzcyLjc2Mi0uMzMgMS43NjEtLjcyIDMuMDEtMS4xNiAxLjQyMi0uNDgzIDIuNzAxLS43NTQgMy44NDQtLjgyMSAyLjkyMS0uMTM2IDUuMjQxLjc1NCA2Ljk0MyAyLjY1IDEuNjY4IDEuODg4IDIuNDQ3IDMuNzg1IDIuMzI4IDUuNjgxLS4xMjcgMS45NzMtLjcwMyAzLjY0OS0xLjcxIDUuMDQtLjMzLjQ0OS0uNzAzLjg2NC0xLjExOCAxLjI1My0uNDA2LjM5LS45NjUuODgxLTEuNjYgMS40NzMtLjU0Mi40NjYtMS4wMS43OTYtMS4zODkuOTgyLS4zODEuMTg2LS42MDEuMzQ3LS42NjkuNDU3LS4wMTcuMDM0LS4wMzQuMDU5LS4wNTEuMDc2LS4wMTcuMDE3LS4wMjUuMDM0LS4wMjUuMDUxbC0uNzk2IDQuNjY1IDEuNjQzIDYuMTIxYy0uODMuNzQ1LTIuNjg0IDEuMzU1LTUuNTU0IDEuODM3LTIuODc5LjQ4My02LjIwNi43Mi05Ljk3NC43Mi0zLjgzNSAwLTcuMjE0LS4yNTQtMTAuMTE4LS43NTQtMi45MTItLjUwOC00Ljc0MS0xLjE0My01LjQ4Ni0xLjg5N2wxLjYzNC02LjA1Ii8+PC9nPjxwYXRoIGZpbGw9InVybCgjMCkiIGQ9Im0yNS43OTYgMjkuNTMyYzIuODQ1LjAzNCA1LjQ0NC4yMDMgNy44MDYuNTA4IDIuMzcxLjMwNSA0LjIyNS42OTQgNS41NjMgMS4xNTEuNjI3LS40OTEgMS4zMTItMS4wNDEgMi4wNTctMS42NTEuNzQ1LS42MDEgMS4zNjMtMS4yMTkgMS44NjMtMS44NDYuNzg3LTEuMDEgMS4xODUtMi4zMzcgMS4xODUtMy45OTYgMC0xLjQ4Mi0uMzU2LTIuNzI2LTEuMDY3LTMuNzE3LTEuMjctMS44NTQtMy4yMDktMi43NzctNS44LTIuNzc3LTEuNTU4IDAtMy4xNS4zMjItNC43OTIuOTY1LTEuNDM5LjU4NC0yLjUzMiAxLjIyOC0zLjI2OCAxLjkzOS0xLjM4OSAxLjM4OS0yLjQyMSAzLjE3NS0zLjA4MiA1LjM1MS0uMjI5Ljc3OS0uMzY0IDEuNDktLjQwNiAyLjEyNS0uMDQyLjYzNS0uMDU5IDEuMjg3LS4wNTkgMS45NDdtLTEzLjI1IDYuNjk3YzMuMTQxLS43OTYgNy4zMDctMS4xOTQgMTIuNTA1LTEuMTk0IDUuMDg5IDAgOS4yMDMuMzgxIDEyLjMyNyAxLjE0M2wuNjE4LTMuNjQ5Yy0zLjMyNy0uODcyLTcuNjcxLTEuMzEyLTEzLjA1LTEuMzEyLTUuNDEgMC05Ljc0NS40NDktMTMuMDIgMS4zMzhsLjYxOCAzLjY3NW0yNS4yOTggNC40MTFsLS43MzctMi44NDVjLTMuMjc3LS43MjgtNy4zMzItMS4wOTItMTIuMTU4LTEuMDkyLTQuODA5IDAtOC44NTYuMzY0LTEyLjEzMyAxLjA5MmwtLjc4NyAyLjg3YzMuMTU4LS45MjMgNy40NjgtMS4zODkgMTIuOTQ1LTEuMzg5IDUuNDQ0IDAgOS43MjguNDU3IDEyLjg2OSAxLjM2M20uNjUyIDIuMzM3Yy0zLjE5Mi0xLjI4Ny03LjY3OS0xLjkzOS0xMy40NDUtMS45MzktNS45ODYgMC0xMC41MTYuNjYtMTMuNTk4IDEuOTkgMi45MTMgMS4xNTEgNy40MTcgMS43MzYgMTMuNTIxIDEuNzM2IDIuOTEzIDAgNS41NjMtLjE2MSA3Ljk1OS0uNDgzIDIuNDA0LS4zMjIgNC4yNS0uNzYyIDUuNTYzLTEuMzA0bS0xNC40MTktMTMuNDQ1Yy0uMDA4LS42NDMtLjAzNC0xLjI4Ny0uMDY4LTEuOTIyLS4wMzQtLjYzNS0uMTYxLTEuMzQ2LS4zNzItMi4xMjUtLjY3Ny0yLjIxLTEuNzAyLTMuOTk2LTMuMDgyLTUuMzUxLS43MTEtLjY5NC0xLjc5NS0xLjM0Ni0zLjI2OC0xLjkzOS0xLjY4NS0uNjYtMy4yODUtLjk5MS00Ljc5Mi0uOTkxLTIuNjA4IDAtNC41NDcuOTMxLTUuOCAyLjgwMi0uNzExLjk5MS0xLjA2NyAyLjIzNS0xLjA2NyAzLjcxNyAwIDEuNjI2LjM5OCAyLjk1NSAxLjE4NSAzLjk5Ni40ODMuNjEgMS4wOTIgMS4yMjggMS44MzcgMS44MzcuNzQ1LjYxIDEuNDM5IDEuMTY4IDIuMDgzIDEuNjYgMi44OTYtMS4wNDEgNy4zNDEtMS42IDEzLjM0My0xLjY4NW0uODcyLTQuNjE0Yy4xMTktLjQ2Ni4yMTItLjc4Ny4yOTYtLjk2NS4xNjktLjY0My4zNTYtMS4xOTQuNTc2LTEuNjQzLjA5My0uMjc5LjIzNy0uNjAxLjQzMi0uOTc0LjE4Ni0uMzczLjM4OS0uODA0LjYxLTEuMjc5LjEyNy0uMjc5LjI3MS0uNjI3LjQxNS0xLjAzMy4xNTItLjQwNi4zMDUtLjgwNC40NDktMS4yMDIuMTM1LS4zMy4yMDMtLjY4Ni4yMDMtMS4wNjcgMC0uODEzLS4yOTYtMS40OTktLjg3Mi0yLjA2Ni0uNTc2LS41NzYtMS4yNzktLjg2NC0yLjEwOC0uODY0LTEuOTY0IDAtMi45NTUuOTkxLTIuOTU1IDIuOTU1IDAgLjM4MS4wNjguNzM3LjIwMyAxLjA2Ny4zNjQgMS4wNzUuNjQzIDEuODIuODM4IDIuMjM1LjIyLjQ3NC40MTUuOTA2LjYwMSAxLjI3OS4xNzguMzcyLjMzOS42OTQuNDY2Ljk3NC4yMi41NS4zOTggMS4wOTIuNTUgMS42NDMuMDM0LjA5My4xMjcuNDE1LjI5Ni45NCIvPjwvc3ZnPg=='); 170 | } 171 | 172 | .merida .cg-board piece.pawn.black { 173 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxwYXRoIGQ9Im0yNSA0Ni40NWgtMTMuMzk0Yy0uNjYtMS42NTEtLjk5MS0zLjM3OC0uOTkxLTUuMTgyIDAtMy4wNTYuODY0LTUuOCAyLjU5OS04LjIzOCAxLjczNi0yLjQzIDMuOTcxLTQuMTY2IDYuNjk3LTUuMjA3LTEuMTY4LS41NDItMi4xMjUtMS4zNjMtMi44NjItMi40NjQtLjczNy0xLjEwMS0xLjEwMS0yLjM0NS0xLjEwMS0zLjczNCAwLTEuNzM2LjU3Ni0zLjI0MyAxLjczNi00LjUxMyAxLjE1Mi0xLjI3OCAyLjU3NC0yLjAyIDQuMjY3LTIuMjEtMS4zNDYtMS4wMS0yLjAyLTIuMzQ1LTIuMDItMy45OTYgMC0xLjM4OS40OTEtMi41ODIgMS40ODItMy41NzMuOTgyLS45OTEgMi4xNzYtMS40ODIgMy41ODEtMS40ODIgMS4zODkgMCAyLjU4Mi40OTEgMy41NzMgMS40ODIuOTkxLjk5MSAxLjQ5IDIuMTg0IDEuNDkgMy41NzMgMCAxLjY1MS0uNjY5IDIuOTg5LTIuMDIgMy45OTYgMS42OTMuMTk1IDMuMTE2LjkzMSA0LjI2NyAyLjIxIDEuMTYgMS4yNyAxLjczNiAyLjc3NyAxLjczNiA0LjUxMyAwIDEuMzg5LS4zNzMgMi42MzMtMS4xMjYgMy43MzQtLjc1MyAxLjEwMS0xLjcxIDEuOTIyLTIuODYyIDIuNDY0IDIuNzI2IDEuMDQxIDQuOTYxIDIuNzc3IDYuNjk3IDUuMjA3IDEuNzM2IDIuNDM4IDIuNTk5IDUuMTgyIDIuNTk5IDguMjM4IDAgMS43ODYtLjMyMiAzLjUxNC0uOTY1IDUuMTgyaC0xMy4zOTQiIGZpbGw9IiMxZjFhMTciIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC45NzMyNCAwIDEuMjQzKSIvPjwvc3ZnPg=='); 174 | } 175 | 176 | .merida .cg-board piece.bishop.black { 177 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjA5IiB5MT0iMzcuMSIgeDI9Ijc3LjY3IiB5Mj0iMzcuNDY5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0ibTI1IDQyLjE2Yy0uMjI5Ljk0LS41MTcgMS41OTItLjg0NyAxLjk1Ni0uMzMuMzY0LS43NjIuNzQ1LTEuMzEyIDEuMTQzLS41OTMuNDE1LTEuMjk1Ljc2Mi0yLjEwOCAxLjA1LS44MTMuMjg4LTEuNzEuMzY0LTIuNzAxLjIxMmwtNi45NjgtLjk2NWMtLjI4OC0uMDM0LS41MzMtLjAzNC0uNzYyIDAtLjIyLjAzNC0uNDMyLjA1MS0uNjM1LjA1MS0uMzQ3IDAtLjc4Ny4wNzYtMS4zMjEuMjM3LS41NDIuMTUyLS45NTcuMzgxLTEuMjUzLjY3N2wtMi40MDQtMy45NDZjLjI5Ni0uMzMuNTU5LS41NTkuNzg3LS42OTQuMjM3LS4xMjcuNTA4LS4yNzEuODIxLS40MTUuOTU3LS40NDkgMS45ODEtLjcyIDMuMDczLS44MjEuNDY2LS4wMzQuOTIzLS4wNDIgMS4zNjMtLjAyNS40NDkuMDE3LjkxNCAwIDEuMzk3LS4wNTEuODg5LjE1MiAxLjc4Ni4yODggMi42ODQuNDA2LjkwNi4xMjcgMS44MTIuMjU0IDIuNzE4LjM5Ljk5MSAwIDEuNjYtLjEwMiAyLjAxLS4yOTYuMTg2LS4xMDIuNDc0LS4yODguODcyLS41NS4zOTgtLjI2Mi43OTYtLjY1MiAxLjE5NC0xLjE2OC0uODgxLS4wOTMtMS43Ny0uMjYyLTIuNjg0LS41MDgtLjkwNi0uMjM3LTEuNzEtLjQ5MS0yLjQwNC0uNzU0bDIuNTgyLTYuNDAxYy0xLjI5NS0uNzQ1LTIuMTkzLTEuMzM4LTIuNzA5LTEuNzk1LS41MDgtLjQ1Ny0uOTE0LS45ODItMS4yMTEtMS41NzUtLjQzMi0uNzYyLS43MTEtMS40OTktLjgzLTIuMjEtLjEyNy0uNzExLS4xNzgtMS4zNDYtLjE2MS0xLjkxMy4wMTctLjk5MS4yNDUtMi4wODMuNzAzLTMuMjg1LjQ1Ny0xLjE5NCAxLjMxMi0yLjI2OSAyLjU2NS0zLjIwOSAxLjA0MS0uNzk2IDIuMDY2LTEuNjE3IDMuMDU3LTIuNDU1Ljk5MS0uODQ3IDEuOTczLTEuODI5IDIuOTQ2LTIuOTU1LTEuMjE5LS42MjctMS44MjktMS42MjYtMS44MjktMi45OTcgMC0uOTMxLjMyMi0xLjcxOS45NzQtMi4zODguNjUyLS42NiAxLjQ1Ni0uOTkxIDIuMzk2LS45OTEuOTIzIDAgMS43MTkuMzMgMi4zNzkuOTkxLjY2LjY2OS45OTEgMS40NTYuOTkxIDIuMzg4IDAgMS4zNTUtLjYxIDIuMzU0LTEuODI5IDIuOTk3Ljk1NyAxLjEyNiAxLjkzIDIuMTA4IDIuOTEzIDIuOTU1Ljk4Mi44MzggMi4wMiAxLjY1OSAzLjA5IDIuNDU1IDEuMjM2Ljk0IDIuMDgzIDIuMDEgMi41MjMgMy4yMDkuNDQ5IDEuMjAyLjY5NCAyLjI5NS43MiAzLjI4NSAwIC41NjctLjA1MSAxLjIwMi0uMTY5IDEuOTEzLS4xMTguNzExLS4zODEgMS40NDgtLjc5NiAyLjIxLS4zMy41OTMtLjc0NSAxLjExOC0xLjI1MyAxLjU3NS0uNS40NTctMS4zODkgMS4wNS0yLjY2NyAxLjc5NWwyLjU4MiA2LjQwMWMtLjcyOC4yNjMtMS41NDkuNTE3LTIuNDU1Ljc1NC0uOTE0LjI0Ni0xLjc4Ny40MTUtMi42MzMuNTA4LjM4MS41MTcuNzcxLjkwNiAxLjE2OCAxLjE2OC4zOTguMjYzLjY5NC40NDkuODk3LjU1LjM0Ny4xOTUgMS4wMTYuMjk2IDIuMDEuMjk2Ljg4OS0uMTM2IDEuNzg3LS4yNjMgMi42OTItLjM5Ljg5OC0uMTE4IDEuODAzLS4yNTQgMi43MTgtLjQwNi40NC4wNTEuODg5LjA2OCAxLjM0Ni4wNTEuNDU3LS4wMTcuOTIzLS4wMDggMS40MDYuMDI1IDEuMDU4LjEwMiAyLjA4My4zNzMgMy4wNzMuODIxLjI5Ni4xNDQuNTY3LjI4OC44MDQuNDE1LjI0NS4xMzUuNTA4LjM2NC44MDQuNjk0bC0yLjQzIDMuOTQ2Yy0uMjk2LS4yOTYtLjcxMS0uNTI1LTEuMjUzLS42NzctLjUzMy0uMTYxLS45NjUtLjIzNy0xLjI5NS0uMjM3LS4yMiAwLS40NC0uMDE3LS42Ni0uMDUxLS4yMi0uMDM0LS40NzQtLjAzNC0uNzU0IDBsLTYuOTUxLjk2NWMtLjk5MS4xNTItMS45MTMuMDg1LTIuNzYtLjE5NS0uODU1LS4yNzktMS41NTgtLjY1Mi0yLjEtMS4xMTgtLjU0Mi0uNDQ5LS45ODItLjgzLTEuMzA0LTEuMTUxLS4zMjItLjMyMi0uNTkzLS45NTctLjgwNC0xLjg5NyIgZmlsbD0iIzFmMWExNyIvPjxwYXRoIGQ9Im0yNC4wOSAyMy43MDV2Mi4xMDhjMCAuNjEuMzA1LjkxNC45MTQuOTE0LjYxIDAgLjkxNC0uMzA1LjkxNC0uOTE0di0yLjEzNGgyLjIzNWMuNTc2IDAgLjg3Mi0uMjk2Ljg3Mi0uODk3IDAtLjU5My0uMjk2LS44ODktLjg3Mi0uODg5aC0yLjIzNXYtMi4yMzVjMC0uNjEtLjMwNS0uOTE0LS45MTQtLjkxNC0uNjEgMC0uOTE0LjMwNS0uOTE0LjkxNHYyLjIzNWgtMi4xODRjLS41ODQgMC0uODcyLjI5Ni0uODcyLjg4OSAwIC42MDEuMjg4Ljg5Ny44NzIuODk3bDIuMTg0LjAyNW03LjUxIDEzLjc0MWwtMS4wNDEtMi41MzFjLTEuNjg1LS4zNjQtMy41MzktLjU0Mi01LjU1NC0uNTQyLTEuOTk4IDAtMy44MzUuMTc4LTUuNTAzLjU0MmwtMS4wNDEgMi41MDZjMi4wNDktLjUxNiA0LjIzMy0uNzcgNi41NDUtLjc3IDIuMjg2IDAgNC40NzkuMjYyIDYuNTk2Ljc5Nm0tMi4wODMtNS4xMTRsLS43Mi0xLjczNnYtLjY2OWMtMS4yNTMtLjE3OC0yLjUyMy0uMjcxLTMuNzkzLS4yNzEtMS4yMzYgMC0yLjQ5OC4wOTMtMy43NjguMjcxbC0uMDI1LjY2OS0uNjY5IDEuNzM2YzEuNDA1LS4yNDYgMi44ODctLjM3MyA0LjQ2Mi0uMzczIDEuNTkyIDAgMy4wOS4xMjcgNC41MTMuMzczbS0uODY0IDkuMzgxYy0uNjYtLjQ5OS0xLjMyOS0xLjI4Ny0xLjk5LTIuMzYyaC0uNzg3YzAgLjgxMy4xODYgMS42LjU2NyAyLjM2MmgyLjIxbS01LjExNCAwYy4zODEtLjgxMy41NzYtMS42LjU3Ni0yLjM2MmgtLjc5NmMtLjY0MyAxLjA1OC0xLjMxMiAxLjg0Ni0yLjAyIDIuMzYyaDIuMjM1IiBmaWxsPSJ1cmwoIzApIi8+PC9zdmc+'); 178 | } 179 | .merida .cg-board piece.knight.black { 180 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjI1MyIgeTE9IjM3LjU5MiIgeDI9Ijc3LjY0IiB5Mj0iMzcuNDY5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzFmMWExNyIgZD0ibTI2LjE4IDkuMzk1YzIuNTk5LjE2OSA1IC44MzggNy4yMjIgMi4wMiAyLjIxIDEuMTY4IDQuMDk4IDIuNjc1IDUuNjU2IDQuNTEzIDEuMDkyIDEuMjg3IDIuMTE3IDIuODQ1IDMuMDgyIDQuNjY1Ljk3NCAxLjgxMiAxLjc0NCAzLjc0MiAyLjMyIDUuNzc0LjY2IDIuMzcxIDEuMDg0IDQuODUxIDEuMjUzIDcuNDU5LjE3OCAyLjU5OS4yNjMgNS4wMS4yNjMgNy4yM3Y1LjQwMmMwIDAtMS4yODcgMC0zLjg2MSAwLTIuNTY1IDAtNS45MDEgMC0xMC4wMSAwaC0xNi42MzdjLS4xNTIgMC0uMjItLjQwNi0uMjEyLTEuMjExLjAwOC0uODEzLjA1OS0xLjQ2NS4xNjEtMS45NjQuMDU5LS4zOTguMjItLjk1Ny40NjYtMS42ODUuMjU0LS43MjguNjYtMS42MDkgMS4yNDUtMi42NS4yNjItLjUzMy44ODktMS4zMDQgMS44OC0yLjMyLjk5OS0xLjAxNiAyLjEzNC0yLjIwMSAzLjQyOS0zLjUzOS43NDUtLjc2MiAxLjMyMS0xLjcxOSAxLjc0NC0yLjg3OS40MjMtMS4xNTEuNjAxLTIuMjAxLjUzMy0zLjE1LS42MS41LTEuMjc5LjkwNi0yLjAxIDEuMjE5LTMuNTA1IDEuMjUzLTYuMDUgMy4wNzMtNy42MTEgNS40NTItLjExOS4xNTItLjQ5MS44MjEtMS4xMTggMi4wMi0uMzMuNjI3LS42MTggMS4wNTgtLjg0NyAxLjI4Ny0uMzEzLjMxMy0uNzcxLjQ5MS0xLjM2My41MjUtLjkyMy4wNDItMS42NDMtLjM5OC0yLjE1OS0xLjM0Ni0uNjk0LjIwMy0xLjMxMi4yODgtMS44NjMuMjU0LS45MjMtLjM0Ny0xLjU5Mi0uNzItMi4wMS0xLjExOC0uODQ3LS44NDctMS4zODktMS42ODUtMS42NTEtMi41MzItLjI1NC0uODQ3LS4zODEtMS43NTMtLjM4MS0yLjcyNiAwLTEuMzg5Ljg1NS0zLjIyNiAyLjU4Mi01LjUxMiAyLjAyLTIuNjI1IDMuMDktNC42MzEgMy4yMTctNiAwLS41OTMuMDU5LTEuMjYyLjE3OC0yLjAxLjEwMi0uNTE3LjMwNS0xLjAxLjYxOC0xLjQ5LjIyLS4zMy4zNjQtLjU1OS40MzItLjY3Ny4wNzYtLjEyNy4yMTItLjMxMy40MTUtLjU1OS4xNDQtLjIwMy4yNzEtLjM1Ni4zNzMtLjQ1Ny4wOTMtLjExLjIyLS4yNTQuMzczLS40NC4xNzgtLjIxMi40MDYtLjQ1Ny42OTQtLjc0NS0uODgtMi40MTMtMS4yMzYtNC45MDItMS4wNjctNy40NTkgMy4yODUgMS4xNjggNi4wNSAzLjAxIDguMjggNS41MjkuNTUtMS44NzEgMS42MjYtMy4zODcgMy4yMjYtNC41MzggMS4zMjEuOTIzIDIuMzcxIDIuMTUxIDMuMTUgMy42NjYiLz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMTUuNjg4IDE3Ljc4NmMuMzY0LS4xODYuNTQyLS4yNzkuNTQyLS4yNzkuNDk5LS4xOTUuNjUyLS41NTkuNDc0LTEuMDkyLS4xOTUtLjQ5MS0uNTc2LS42Ni0xLjE0My0uNDkxLTEuOTQ3LjcxMS0zLjI5NCAyLjAyLTQuMDQgMy45Mi0uMTE4LjU0Mi4wNzYuOTE0LjU5MyAxLjExOC41MTYuMTYxLjg2NC0uMDE3IDEuMDQxLS41NS4xMzYtLjI3OS4yMjktLjQ2Ni4yOTYtLjU0Mi4xODYuMTQ0LjQyMy4yNDUuNzIuMjk2IDEuMDEuMTYxIDEuNi0uMjc5IDEuNzYxLTEuMzM4LjA1MS0uMzY0LS4wMzQtLjcxMS0uMjQ2LTEuMDQxbS00LjExNSAxNi43NjRjLjA1OS0uMTUyLjE2OS0uMzczLjMyMi0uNjY5LjI3OS0uNjk0LjQxNS0xLjEwOS40MTUtMS4yNDUtLjAyNS0uNDU3LS4yNzEtLjY5NC0uNzItLjY5NC0uMzMgMC0uNzExLjQ3NC0xLjE2IDEuNDE0LS4wNjguMTM2LS4xNjkuMjU0LS4yOTYuMzQ3LS40NDkuNDY2LS4zODEuODU1LjE5NSAxLjE2OC41MzMuMzEzLjk0LjIxMiAxLjI0NS0uMzIybTE0LjYzLTkuMjAzYzEuMTYtMS41MjQgMS43MjctMy4yMTcgMS43MS01LjA4LS4wNjgtLjU1LS4zODEtLjgyMS0uOTQtLjgyMS0uNzYyIDAtMS4wNTguMjc5LS44OTguODM4LjA1MS45MTQtLjAzNCAxLjY2OC0uMjcxIDIuMjYxLS4zODEuOTQtLjgwNCAxLjY0Mi0xLjI2MSAyLjEwOC0uMjU0LjUtLjEwMi44NjQuNDQ5IDEuMDkyLjUyNS4yNDUuOTMxLjExOSAxLjIxMS0uMzk4bS02LjQ3Ny0xMi4xMWMtLjA3Ni0uNTkzLS4wNTktMS4yMzYuMDUxLTEuOTMtLjk5MS4xOTUtMS45MjIuNjYtMi44MDIgMS4zODktLjUyNS4yNzktLjY1Mi42NjktLjM3MyAxLjE2OC4yNzkuNTA4LjY2OS41OTMgMS4xNjguMjQ2LjM0Ny0uMTg2LjY2OS0uMzU2Ljk1Ny0uNTA4LjI4OC0uMTYxLjYxOC0uMjc5Ljk5OS0uMzY0bTIzLjI1IDMxLjQ1NGMtLjAxNyAwIDAtLjQ0OS4wNDItMS4zNDYuMTMxLTMuMTA3LjA5NS02LjIyMS4wNzYtOS4zMy0uMDE3LTIuMjEtLjMxMy00LjQxMS0uODg5LTYuNjEzLS44NC0zLjMxLTIuMTI0LTYuNDg1LTQuMDcyLTkuMjk2LTIuNjM0LTMuODQ1LTYuODE0LTYuMDMtMTEuMjg2LTYuOTc2LjEyNi43NjYuMDMzIDEuNTQuMDc2IDIuMzExIDEuNi41NDIgMy4xMTYgMS4yMTkgNC41MzggMi4wMzIgNC4yNDEgMi41NTQgNi40MTQgNy4yNzUgNy4xOTcgMTEuOTMgMS4yNzIgNi4xNTQuNDUzIDExLjU1Ny44MTMgMTcuMjg5aDMuNTA1bS0zMy41MzctMTQuNTU0Yy40NzQtLjMzOS41MjUtLjcyOC4xNDQtMS4xOTQtLjM5OC0uMzgxLS44My0uNDE1LTEuMzEyLS4xMDItMS4wMS42Ni0xLjU0OSAxLjUzMi0xLjYxNyAyLjYwOC4wMTcuNTQyLjM0Ny44MDQuOTc0Ljc3MS41OTMtLjA1MS44ODEtLjM1Ni44NjQtLjkyMy4xMzUtLjUyNS40NDktLjkxNC45NDgtMS4xNiIvPjwvc3ZnPg=='); 181 | } 182 | .merida .cg-board piece.rook.black { 183 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjE5IiB5MT0iMzcuNTUyIiB4Mj0iNzcuNzQiIHkyPSIzNy40MjkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSIjMWYxYTE3IiBkPSJtMjguNDA4IDkuMjJoNC4yMTZ2LTMuMzk1aDYuNzk2djkuMjk1bC01LjUgNC4yNDN2MTEuODU3bDQuMjIgNC4yMjF2NS4wOGgzLjc4OXY1LjkyOWgtMzMuODU5di01LjkyOWgzLjc5NHYtNS4wOGw0LjI0Ni00LjIyMXYtMTEuODU3bC01LjUwOC00LjI0M3YtOS4yOTVoNi43NzR2My4zOTVoNC4yNDJ2LTMuMzk1aDYuNzl6Ii8+PHBhdGggZmlsbD0idXJsKCMwKSIgZD0ibTI1LjAxIDM1LjA0aC0xMC4yN2wtMS4xNDMgMS4wNjd2MS40MzloMjIuODI2di0xLjQzOWwtMS4xNDMtMS4wNjdoLTEwLjI3bS0xMS40MTMgNS4wOHYyLjUzMmgyMi44MjZ2LTIuNTMyaC0yMi44MjZtMTEuNDEzLTI3LjA4aC0xMi43djEuMTQzbDEuODEyIDEuMzYzaDIxLjgwMmwxLjc2MS0xLjM2M3YtMS4xNDNoLTEyLjY3NW0wIDQuMTkxaC04LjY3OGwxLjQ4MiAxLjE2OHYxLjQxNGgxNC4zOTN2LTEuNDE0bDEuNDgyLTEuMTY4aC04LjY3OG0wIDEzLjU0N2gtNy4xOTd2MS4xNDNsLTEuNDgyIDEuNDM5aDE3LjM1N2wtMS40ODItMS40Mzl2LTEuMTQzaC03LjE5NyIvPjwvc3ZnPg=='); 184 | } 185 | .merida .cg-board piece.queen.black { 186 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjI1MyIgeTE9IjM3LjIyIiB4Mj0iNzcuNzYiIHkyPSIzNy4zNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9IiMxZjFhMTciPjxwYXRoIGQ9Im0yNC45NDkgMTAuNzUyYy0uOTQgMC0xLjc0NC0uMzMtMi4zOTYtLjk5MS0uNjUyLS42Ni0uOTc0LTEuNDY1LS45NzQtMi40MDUgMC0uOTMxLjMyMi0xLjcyNy45NzQtMi4zODguNjUyLS42NiAxLjQ1Ni0uOTkxIDIuMzk2LS45OTEuOTIzIDAgMS43MjcuMzMgMi4zOTYuOTkxLjY2OS42Ni45OTkgMS40NTYuOTk5IDIuMzg4IDAgLjk0LS4zMyAxLjc0NC0uOTk5IDIuNDA1LS42NjkuNjYtMS40NzMuOTkxLTIuMzk2Ljk5MSIvPjxwYXRoIGQ9Im00MC4yMyA0My45NDJjLS44MTMuNzExLTIuNjMzIDEuMzA0LTUuNDYxIDEuNzg2LTIuODI4LjQ3NC02LjA4Ny43Mi05Ljc3LjcyLTMuNzUxIDAtNy4wNS0uMjU0LTkuODk4LS43NDUtMi44NDUtLjQ5OS00LjY0LTEuMTE4LTUuMzg1LTEuODYzbDEuNTY2LTUuOTUyLS42OTQtMy44OTUtMi4xODQtMy43OTMtMi4xMDgtMTUuNDI2IDEuMjExLS40NzQgNi43OTkgMTEuNDU1LjE1Mi0xMy42NCAxLjY4NS0uMjk2IDUuMTgyIDEzLjcxNiAyLjc3Ny0xNC43NTdoMS43MTlsMi43NzcgMTQuNzA3IDUuMTMxLTEzLjY2NSAxLjcxLjI5Ni4xNTIgMTMuNjQgNi44MjQtMTEuNDgxIDEuMTYuNTQyLTIuMDU3IDE1LjM1OS0yLjIxIDMuNzkzLS42OTQgMy45NDYgMS42MTcgNi4wMyIvPjxwYXRoIGQ9Im0xNC41MzUgMTEuOTg5Yy0uOTQ4IDAtMS43NTMtLjMyMi0yLjQxMy0uOTc0LS42Ni0uNjUyLS45OTEtMS40NTYtLjk5MS0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTkxLTIuMzc5LjY2LS42NiAxLjQ2NS0uOTkxIDIuNDEzLS45OTEuOTIzIDAgMS43MTkuMzMgMi4zNzkuOTkxLjY2LjY2Ljk5MSAxLjQ1Ni45OTEgMi4zNzkgMCAuOTQtLjMzIDEuNzQ0LS45OTEgMi4zOTYtLjY2LjY1Mi0xLjQ1Ni45NzQtMi4zNzkuOTc0Ii8+PHBhdGggZD0ibTM1LjM2IDExLjk4OWMtLjk0IDAtMS43MzYtLjMyMi0yLjM4OC0uOTc0LS42NTItLjY1Mi0uOTgyLTEuNDU2LS45ODItMi4zOTYgMC0uOTIzLjMzLTEuNzE5Ljk4Mi0yLjM3OS42NTItLjY2IDEuNDQ4LS45OTEgMi4zODgtLjk5MS45NDggMCAxLjc1My4zMyAyLjQxMy45OTEuNjYuNjYuOTkxIDEuNDU2Ljk5MSAyLjM3OSAwIC45NC0uMzMgMS43NDQtLjk5MSAyLjM5Ni0uNjYuNjUyLTEuNDY1Ljk3NC0yLjQxMy45NzQiLz48cGF0aCBkPSJtNS40IDE0LjcyM2MtLjk0IDAtMS43MzYtLjMzLTIuMzg4LS45ODItLjY1Mi0uNjUyLS45ODItMS40NDgtLjk4Mi0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTgyLTIuMzg4LjY1Mi0uNjc3IDEuNDQ4LTEuMDEgMi4zODgtMS4wMS45NDggMCAxLjc0NC4zMyAyLjQxMyAxLjAxLjY2LjY2OS45OTEgMS40NjUuOTkxIDIuMzg4IDAgLjk0OC0uMzMgMS43NDQtLjk5MSAyLjM5Ni0uNjY5LjY1Mi0xLjQ2NS45ODItMi40MTMuOTgyIi8+PHBhdGggZD0ibTQ0LjU0MSAxNC43MjNjLS45NCAwLTEuNzQ0LS4zMy0yLjQwNS0uOTgyLS42Ni0uNjUyLS45OTEtMS40NDgtLjk5MS0yLjM5NiAwLS45MjMuMzMtMS43MTkuOTkxLTIuMzg4LjY2LS42NzcgMS40NjUtMS4wMSAyLjQwNS0xLjAxLjkzMSAwIDEuNzI3LjMzIDIuMzg4IDEuMDEuNjYuNjY5Ljk5MSAxLjQ2NS45OTEgMi4zODggMCAuOTQ4LS4zMyAxLjc0NC0uOTkxIDIuMzk2LS42Ni42NTItMS40NTYuOTgyLTIuMzg4Ljk4MiIvPjwvZz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMzcuMiAzNS43MjljLTMuMDQtLjgzOC03LjA5NS0xLjI2Mi0xMi4xNS0xLjI2Mi01LjA5NyAwLTkuMTk1LjQzMi0xMi4zMDIgMS4yODdsLjM3MyAyLjUwNmMzLjEyNC0uODEzIDcuMDk1LTEuMjE5IDExLjkzLTEuMjE5IDQuODA5IDAgOC43MjkuMzk4IDExLjc1MiAxLjE5NGwuMzk4LTIuNTA2bTEuNzM2LTQuNDM3Yy0xLjM3Mi0uNS0zLjMwMi0uOTA2LTUuNzkxLTEuMjI4LTIuNDg5LS4zMjItNS4yMzItLjQ4My04LjI0Ni0uNDgzLTIuOTQ2IDAtNS42MzkuMTUyLTguMDkuNDU3LTIuNDQ3LjMwNS00LjM3Ny43MDMtNS43ODMgMS4yMDJsMS4yNDUgMi4yNTJjMS4zODktLjQwNiAzLjE5Mi0uNzAzIDUuNDEtLjg4OSAyLjIxLS4xNzggNC42MzEtLjI3MSA3LjI2NC0uMjcxIDIuNjMzIDAgNS4wNjMuMDkzIDcuMjkuMjcxIDIuMjM1LjE4NiA0LjA0Ny40OTEgNS40MzYuOTE0bDEuMjYxLTIuMjI3bS0xLjA5MiAxMS44NTNsLS43MzctMi45MjljLTMuMjI2LS43MzctNy4yODEtMS4xMDktMTIuMTU4LTEuMTA5LTQuODI2IDAtOC44NjUuMzczLTEyLjExIDEuMTA5bC0uNzg3IDIuOTU1YzMuMTQxLS45NTcgNy40NDItMS40MzkgMTIuOTItMS40MzkgMi42MjUgMCA1LjA3Mi4xMzYgNy4zMTUuMzk4IDIuMjUyLjI2MiA0LjEwNi42MDEgNS41NTQgMS4wMTYiLz48L3N2Zz4='); 187 | } 188 | .merida .cg-board piece.king.black { 189 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzcuMTciIGhlaWdodD0iMTc3LjE3IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSIwIDAgNTAgNTAiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iMCIgeDE9IjIxLjEzIiB5MT0iMzcuMjIiIHgyPSI3Ny43NiIgeTI9IjM3LjQ2OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9IiMxZjFhMTciPjxwYXRoIGQ9Im0yNS44MjEgMTIuMDJoLTEuNzYxdi0zLjI1MWgtMi4wNjZjLS41NTkgMC0uODM4LS4yNzEtLjgzOC0uODIxdi0uMDI1YzAtLjU0Mi4yNzktLjgxMy44MzgtLjgxM2gyLjA2NnYtMi4xMDhjMC0uNTg0LjI5Ni0uODcyLjg4OS0uODcyLjU3NiAwIC44NzIuMjg4Ljg3Mi44NzJ2Mi4xMDhoMi4xMzRjLjU0MiAwIC44MTMuMjcxLjgxMy44MTN2LjAyNWMwIC41NS0uMjcxLjgyMS0uODEzLjgyMWwtMi4xMTcuMDI1LS4wMTcgMy4yMjYiLz48cGF0aCBkPSJtMTEuMDMgMzcuNzQ0bC0uODEzLTQuNjRjLS4wMTcgMC0uMDQyLS4wMzQtLjA3Ni0uMTAyLS4wODUtLjExOC0uMzIyLS4yNzEtLjcxMS0uNDU3LS4zODEtLjE5NS0uODM4LS41MTYtMS4zNDYtLjk4Mi0uNzI4LS42MS0xLjI5NS0xLjEwOS0xLjcwMi0xLjQ5LS40MDYtLjM3My0uNzcxLS43ODctMS4xMDEtMS4yMzYtMS4wMS0xLjM4OS0xLjU3NS0zLjA2NS0xLjY4NS01LjA0LS4xNjktMS44OTcuNjAxLTMuNzkzIDIuMzAzLTUuNjgxIDEuNzE5LTEuODggNC4wNDctMi43NjkgNi45NjgtMi42NSAxLjA5Mi4wNjggMi4zNzkuMzMgMy44NDQuNzk2LjQ4My4xOTUuOTc0LjM5IDEuNDgyLjU3Ni41LjE5NS45OTkuMzg5IDEuNDk5LjU4NC4yNjIuMTM1LjUuMjcxLjY5NC4zOTgtLjA4NS0uMzQ3LS4xMjctLjY5NC0uMTI3LTEuMDQxIDAtMS4yODcuNDU3LTIuMzg4IDEuMzgtMy4zMDIuOTE0LS45MDYgMi4wMjQtMS4zNzIgMy4zMTEtMS4zODkgMS4yODcgMCAyLjM4OC40NjYgMy4zMDIgMS4zOC45MDYuOTE0IDEuMzYzIDIuMDIgMS4zNjMgMy4yODUgMCAuMjYyLS4wMzQuNjEtLjEwMiAxLjA0MS4yMjktLjE0NC40NTctLjI3MS42NjktLjM3Mi43NjItLjMzIDEuNzYxLS43MiAzLjAxLTEuMTYgMS40MjItLjQ4MyAyLjcwMS0uNzU0IDMuODQ0LS44MjEgMi45MjEtLjEzNiA1LjI0MS43NTQgNi45NDMgMi42NSAxLjY2OCAxLjg4OCAyLjQ0NyAzLjc4NSAyLjMyOCA1LjY4MS0uMTI3IDEuOTczLS43MDMgMy42NDktMS43MSA1LjA0LS4zMy40NDktLjcwMy44NjQtMS4xMTggMS4yNTMtLjQwNi4zOS0uOTY1Ljg4MS0xLjY2IDEuNDczLS41NDIuNDY2LTEuMDEuNzk2LTEuMzg5Ljk4Mi0uMzgxLjE4Ni0uNjAxLjM0Ny0uNjY5LjQ1Ny0uMDE3LjAzNC0uMDM0LjA1OS0uMDUxLjA3Ni0uMDE3LjAxNy0uMDI1LjAzNC0uMDI1LjA1MWwtLjc5NiA0LjY2NSAxLjY0MyA2LjEyMWMtLjgzLjc0NS0yLjY4NCAxLjM1NS01LjU1NCAxLjgzNy0yLjg3OS40ODMtNi4yMDYuNzItOS45NzQuNzItMy44MzUgMC03LjIxNC0uMjU0LTEwLjExOC0uNzU0LTIuOTEyLS41MDgtNC43NDEtMS4xNDMtNS40ODYtMS44OTdsMS42MzQtNi4wNSIvPjwvZz48cGF0aCBmaWxsPSJ1cmwoIzApIiBkPSJtMjQuOTQ5IDIwLjY3NWMtLjAzNC0uMTYxLS4wNzYtLjMwNS0uMTI3LS40MjMtLjA5My0uMzMtLjE3OC0uNTY3LS4yNDUtLjcyLS4wNTEtLjExLS4xMTktLjI1NC0uMTk1LS40MzItLjA4NS0uMTY5LS4xNjktLjM1Ni0uMjU0LS41NTktLjA1MS0uMTE5LS4xMS0uMjcxLS4xODYtLjQ1Ny0uMDY4LS4xOTUtLjEzNi0uMzczLS4xODYtLjUzMy0uMDQyLS4xNTItLjA2OC0uMzA1LS4wNjgtLjQ3NCAwLS44NzIuNDE1LTEuMzEyIDEuMjYyLTEuMzEyLjg4MSAwIDEuMzEyLjQzMiAxLjMxMiAxLjI4NyAwIC4yMi0uMDM0LjM3My0uMDkzLjQ3NC0uMjM3LjYyNy0uMzU2Ljk2NS0uMzcyIDEuMDE2LS4yNTQuNS0uNDA2LjgyMS0uNDc0Ljk2NS0uMTE5LjI3MS0uMTk1LjUwOC0uMjIuNzItLjA1MS4xMDItLjA4NS4xODYtLjEwMi4yNjItLjAxNy4wNzYtLjAzNC4xMzYtLjA1MS4xODZtLTIuNzc3IDguNTZjLTIuMDY2LjAzNC0zLjk1NC4xMzUtNS42NzMuMzIyLTEuNzEuMTc4LTMuMDMuNDQtMy45NzkuNzctLjQ5MS0uNjE4LTEuMDY3LTEuMjI4LTEuNzE5LTEuODU0LS42Ni0uNjE4LTEuMjI4LTEuMjAyLTEuNzI3LTEuNzQ0LS44My0uODQ3LTEuMjM2LTEuNzctMS4yMzYtMi43NzcgMC0xLjI0NS4yMDMtMi4xNTEuNjE4LTIuNzI2LjQ0LS42NjkgMS4xMzUtMS4xNiAyLjA1Ny0xLjQ4Mi45MjMtLjMyMiAxLjg2My0uNDgzIDIuODAzLS40ODMgMS4xOTQgMCAyLjMyOC4yNjIgMy40Mi43OTYgMS4wNzUuNTU5IDEuNzg3IDEuMDEgMi4xMzQgMS4zMzggMS4xMjYgMS4xNDMgMi4wMSAyLjM3OSAyLjYzMyAzLjcxNy4yMTIuNS4zNzIgMS4xOTQuNDgzIDIuMDc0LjExLjg4OS4xNjkgMS41NjYuMTg2IDIuMDQ5bTIuNzc3LTQuMzE4Yy4xMTktLjQ2Ni4yMTItLjc4Ny4yOTYtLjk2NS4xNjktLjY0My4zNTYtMS4xOTQuNTc2LTEuNjQzLjA5My0uMjc5LjIzNy0uNjAxLjQzMi0uOTc0LjE4Ni0uMzczLjM4OS0uODA0LjYxLTEuMjc5LjEyNy0uMjc5LjI3MS0uNjI3LjQxNS0xLjAzMy4xNTItLjQwNi4zMDUtLjgwNC40NDktMS4yMDIuMTM1LS4zMy4yMDMtLjY4Ni4yMDMtMS4wNjcgMC0uODEzLS4yOTYtMS40OTktLjg3Mi0yLjA2Ni0uNTc2LS41NzYtMS4yNzktLjg2NC0yLjEwOC0uODY0LTEuOTY0IDAtMi45NTUuOTkxLTIuOTU1IDIuOTU1IDAgLjM4MS4wNjguNzM3LjIwMyAxLjA2Ny4zNjQgMS4wNzUuNjQzIDEuODIuODM4IDIuMjM1LjIyLjQ3NC40MTUuOTA2LjYwMSAxLjI3OS4xNzguMzcyLjMzOS42OTQuNDY2Ljk3NC4yMi41NS4zOTggMS4wOTIuNTUgMS42NDMuMDM0LjA5My4xMjcuNDE1LjI5Ni45NG0tLjg4OSA2LjIyM2MwLS42Ni0uMDE3LTEuNTc1LS4wNTEtMi43MzUtLjAzNC0xLjE2OC0uMTYxLTIuMTQyLS4zNzItMi45MjEtLjY3Ny0yLjIxLTEuNzAyLTMuOTk2LTMuMDgyLTUuMzUxLS43MTEtLjY5NC0xLjc5NS0xLjM0Ni0zLjI2OC0xLjkzOS0xLjY4NS0uNjYtMy4yODUtLjk5MS00Ljc5Mi0uOTkxLTIuNjA4IDAtNC41NDcuOTMxLTUuOCAyLjgwMy0uNzExLjk5MS0xLjA2NyAyLjIzNS0xLjA2NyAzLjcxNyAwIDEuNjI2LjM5OCAyLjk1NSAxLjE4NSAzLjk5Ni40MTUuNTkzIDEuMjExIDEuMzI5IDIuMzg4IDIuMjEgMS4xNjguODcyIDIuMTY4IDEuNjg1IDIuOTcyIDIuNDMgMS40MzktLjMxMyAzLjA2NS0uNTg0IDQuODc3LS44MjEgMS44MTItLjIyOSA0LjE0OS0uMzY0IDcuMDEtLjM5OG0xMy43ODQgMTEuNzM1bC0uNzM3LTIuOTI5Yy0zLjIyNi0uNzM3LTcuMjgxLTEuMTA5LTEyLjE1OC0xLjEwOS00LjgyNiAwLTguODY1LjM3My0xMi4xMSAxLjEwOWwtLjc4NyAyLjk1NWMzLjE0MS0uOTU3IDcuNDQyLTEuNDM5IDEyLjkyLTEuNDM5IDIuNjI1IDAgNS4wNzIuMTM2IDcuMzE1LjM5OCAyLjI1Mi4yNjIgNC4xMDYuNjAxIDUuNTU0IDEuMDE2bS0uNjQzLTcuNDE3Yy0zLjA0LS44MzgtNy4wOTUtMS4yNjItMTIuMTUtMS4yNjItNS4wOTcgMC05LjE5NS40MzItMTIuMzAyIDEuMjg3bC4zNzMgMi41MDZjMy4xMjQtLjgxMyA3LjA5NS0xLjIxOSAxMS45My0xLjIxOSA0LjgwOSAwIDguNzI5LjM5OCAxMS43NTIgMS4xOTRsLjM5OC0yLjUwNm0tMTEuMzYyLTQuMjkzYzIuODQ1LjA1MSA1LjE4Mi4xOTUgNyAuNDIzIDEuODEyLjIyOSAzLjQ1NC41MDggNC45MTEuODIxLjkwNi0uODk4IDEuOTEzLTEuNzQ0IDMuMDItMi41NTcgMS4xMDktLjgxMyAxLjg4OC0xLjUwNyAyLjMzNy0yLjA4My43ODctMS4wNzUgMS4xODUtMi40MTMgMS4xODUtNC4wMiAwLTEuNDY1LS4zNTYtMi43MDEtMS4wNjctMy42OTItMS4yNy0xLjg3MS0zLjIxNy0yLjgwMy01LjgyNS0yLjgwMy0xLjUyNCAwLTMuMTA3LjMzLTQuNzY3Ljk5MS0xLjUwNy41OTMtMi41OTEgMS4yMzYtMy4yNzcgMS45My0xLjQwNSAxLjM2My0yLjQzIDMuMTUtMy4wNzMgNS4zNTktLjI0NS43NjItLjM4MSAxLjcyNy0uNDA2IDIuOTA0LS4wMjUgMS4xNzctLjA0MiAyLjA4My0uMDQyIDIuNzI2bTEuODEyLTEuOTNjMC0uNDgzLjA1OS0xLjE2LjE2MS0yLjA0OS4xMS0uODgxLjI3OS0xLjU3NS41MDgtMi4wNzQuNjE4LTEuMzM4IDEuNDktMi41NzQgMi42MzMtMy43MTcuMzMtLjMzIDEuMDQxLS43NzkgMi4xMzQtMS4zMzggMS4wNzUtLjUzMyAyLjIyNy0uNzk2IDMuNDQ2LS43OTYuOTMxIDAgMS44NDYuMTYxIDIuNzY5LjQ4My45MTQuMzIyIDEuNjA5LjgxMyAyLjA2NiAxLjQ4Mi40MTUuNTU5LjYyNyAxLjQ2NS42MjcgMi43MjYgMCAuOTkxLS40MDYgMS45MTMtMS4yMTkgMi43NzctLjUyNS41NDItMS4xMDEgMS4wOTItMS43MSAxLjY1MS0uNjEuNTUtMS4yMDIgMS4yMDItMS43NjEgMS45NDctLjk1Ny0uMzMtMi4yOTQtLjU5My00LS43Ny0xLjcxLS4xODYtMy41OS0uMjg4LTUuNjQ3LS4zMjIiLz48L3N2Zz4='); 190 | } 191 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import chessboard from './components/chessboard/index.vue' 2 | 3 | // Install the components 4 | export function install (Vue) { 5 | Vue.component('chessboard', chessboard) 6 | /* -- Add more components here -- */ 7 | } 8 | 9 | // Expose the components 10 | export { 11 | chessboard, 12 | /* -- Add more components here -- */ 13 | } 14 | 15 | /* -- Plugin definition & Auto-install -- */ 16 | /* You shouldn't have to modify the code below */ 17 | 18 | // Plugin 19 | const plugin = { 20 | /* eslint-disable no-undef */ 21 | version: VERSION, 22 | install, 23 | } 24 | 25 | export default plugin 26 | 27 | // Auto-install 28 | let GlobalVue = null 29 | if (typeof window !== 'undefined') { 30 | GlobalVue = window.Vue 31 | } else if (typeof global !== 'undefined') { 32 | GlobalVue = global.Vue 33 | } 34 | if (GlobalVue) { 35 | GlobalVue.use(plugin) 36 | } 37 | --------------------------------------------------------------------------------