gobstones-board 1.8.13 → 1.8.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87ad4b896e7b2d1fe425c6103d8f2bba911711033be3843c4c1556d208240846
4
- data.tar.gz: 3384e487daf5b27887b473c319183495a5eda293836aee8a51891095b2c0abfc
3
+ metadata.gz: 1c4a7accbcd272fed46a031b45ddd6ec1abc449eb591408482bb1823ce2c083e
4
+ data.tar.gz: 0fac159e544372e539310ff741b4591bfebab82055e1daaa056709e3b0eb0ff3
5
5
  SHA512:
6
- metadata.gz: ed1d436a2f327168ff3770b8a99552a294536a45b337d5fc0538aa7c8fa89bd8c39d115370f8f13753ecd8f935851d2a771fd516e8e0e358a496bc87422eace2
7
- data.tar.gz: 704f27792cd8f0825815061e62f4131528cd15a9b3d91b2ef1d6ffd064bef08cc9930defb8b82be083588c4c4d4059cf97ee3cc2c5180503c50966803e1cde7e
6
+ metadata.gz: 93d7fc571797c4ded68b84ecdda566ec5e40d2220fc083e51b1e1264636e4bfb09b1279f13b561babac83af6965d2d0e6c71a9be4a2e8d2302935334b200b7ed
7
+ data.tar.gz: 5cb856b2c1a35df1adb33db9e4448b569aee0d32b5aa7e321b4fbeff51eda0ff4147494e89b26414e04f10ec644859447b5182d63cb709824488df8f435d9a12
@@ -92,9 +92,9 @@
92
92
 
93
93
  </style>
94
94
 
95
- <key-tracker id="keyTracker"></key-tracker>
95
+ <key-tracker id="keyTracker" aria-hidden="true"></key-tracker>
96
96
 
97
- <table class="gbs_board ui-widget-content">
97
+ <table class="gbs_board" aria-label$="{{gbb}}" aria-hidden="true">
98
98
  <tbody>
99
99
  <tr>
100
100
  <td class="gbs_lx gbs_top_left"></td>
@@ -280,6 +280,9 @@
280
280
  type: Boolean,
281
281
  value: false
282
282
  },
283
+ gbb: {
284
+ type: String
285
+ },
283
286
  attire: {
284
287
  type: Object
285
288
  },
@@ -391,7 +394,8 @@
391
394
  if ((gbb == null) || gbb.indexOf("GBB") < 0) {
392
395
  return;
393
396
  }
394
- _ref = gbbReader.fromString(gbb), this.table = _ref.table, this.header = _ref.head, width = _ref.width, height = _ref.height;
397
+ this.gbb = gbb;
398
+ _ref = gbbReader.fromString(this.gbb), this.table = _ref.table, this.header = _ref.head, width = _ref.width, height = _ref.height;
395
399
  this.size.x = width;
396
400
  this.size.y = height;
397
401
  if (this.attireSrc) {
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"></head><body><div hidden="" by-vulcanize=""><dom-module id="gs-stone" assetpath="dist/components/"><template><style>.gbs_pointer{cursor:pointer;}.gbs_unselectable,.gbs_stone{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.gbs_color-blue,::content div.gbs_blue,.gbs_ghost-blue:hover{background-image:url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20id%3D%22svg2%22%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%20%3Cmetadata%20id%3D%22metadata4%22%3E%0A%20%20%3Crdf%3ARDF%3E%0A%20%20%20%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%20%20%20%20%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%20%20%20%20%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%20%20%20%20%3Cdc%3Atitle/%3E%0A%20%20%20%3C/cc%3AWork%3E%0A%20%20%3C/rdf%3ARDF%3E%0A%20%3C/metadata%3E%0A%20%3Cellipse%20id%3D%22ellipse8%22%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%2288.64%22%20cx%3D%2288.641%22%20fill%3D%22%232a7fff%22/%3E%0A%20%3Cpath%20id%3D%22path10%22%20d%3D%22m171.5%2059.51c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22%20fill%3D%22%230055d4%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse12%22%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%2240.65%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse14%22%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%2231.7%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cpath%20id%3D%22path16%22%20d%3D%22m170.51%2094.27c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22%20fill%3D%22%2304a%22/%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}.gbs_color-black,::content div.gbs_black,.gbs_ghost-black:hover{background-image:url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20id%3D%22svg2%22%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%20%3Cmetadata%20id%3D%22metadata4%22%3E%0A%20%20%3Crdf%3ARDF%3E%0A%20%20%20%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%20%20%20%20%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%20%20%20%20%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%20%20%20%20%3Cdc%3Atitle/%3E%0A%20%20%20%3C/cc%3AWork%3E%0A%20%20%3C/rdf%3ARDF%3E%0A%20%3C/metadata%3E%0A%20%3Cellipse%20id%3D%22ellipse8%22%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%2288.64%22%20cx%3D%2288.641%22%20fill%3D%22%23292929%22/%3E%0A%20%3Cpath%20id%3D%22path10%22%20d%3D%22m171.5%2059.51c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22%20fill%3D%22%23202020%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse12%22%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%2240.65%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse14%22%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%2231.7%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cpath%20id%3D%22path16%22%20d%3D%22m170.51%2094.27c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22%20fill%3D%22%23131313%22/%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}.gbs_color-red,::content div.gbs_red,.gbs_ghost-red:hover{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%3Cmetadata%3E%0A%3Crdf%3ARDF%3E%0A%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%3Cdc%3Atitle/%3E%0A%3C/cc%3AWork%3E%0A%3C/rdf%3ARDF%3E%0A%3C/metadata%3E%0A%3Cg%20transform%3D%22translate%280%20-875.2%29%22%3E%0A%3Cellipse%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%22963.84%22%20cx%3D%2288.641%22%20fill%3D%22%23d40000%22/%3E%0A%3Cpath%20fill%3D%22%23b10000%22%20d%3D%22m171.5%20934.71c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22/%3E%0A%3Cellipse%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%22915.85%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%3Cellipse%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%22906.9%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%3Cpath%20fill%3D%22%23800%22%20d%3D%22m170.51%20969.47c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22/%3E%0A%3C/g%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}.gbs_color-green,::content div.gbs_green,.gbs_ghost-green:hover{background-image:url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20id%3D%22svg2%22%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%20%3Cmetadata%20id%3D%22metadata4%22%3E%0A%20%20%3Crdf%3ARDF%3E%0A%20%20%20%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%20%20%20%20%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%20%20%20%20%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%20%20%20%20%3Cdc%3Atitle/%3E%0A%20%20%20%3C/cc%3AWork%3E%0A%20%20%3C/rdf%3ARDF%3E%0A%20%3C/metadata%3E%0A%20%3Cellipse%20id%3D%22ellipse8%22%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%2288.64%22%20cx%3D%2288.641%22%20fill%3D%22%2337c837%22/%3E%0A%20%3Cpath%20id%3D%22path10%22%20d%3D%22m171.5%2059.51c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22%20fill%3D%22%232ca02c%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse12%22%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%2240.65%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse14%22%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%2231.7%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cpath%20id%3D%22path16%22%20d%3D%22m170.51%2094.27c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22%20fill%3D%22%23217821%22/%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}::content div.gbs_O{background:white;opacity:0;}.gbs_hidden{visibility:hidden;}.gbs_stone{font-weight:bold;font-size:8pt;width:20px;height:20px;}.gbs_stone_amount{vertical-align:sub;}.gbs_ghost-color,.gbs_ghost-blue:hover,.gbs_ghost-black:hover,.gbs_ghost-red:hover,.gbs_ghost-green:hover{cursor:pointer;opacity:0.5 !important;}.gbs_tooltip{position:relative;}.gbs_tooltip .gbs_tooltiptext{visibility:hidden;width:50px;background-color:#555;color:#fff;text-align:center;padding:5px 0;border-radius:6px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-25px;opacity:0;}.gbs_tooltip .gbs_tooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent;}.gbs_tooltip:hover .gbs_tooltiptext{visibility:visible;opacity:1;}</style><template is="dom-if" if="{{amount}}"><div class$="gbs_stone gbs_tooltip gbs_{{color}} {{cssClass(color, amount)}}"><span class="gbs_stone_amount">{{amountText(amount)}}</span><template is="dom-if" if="{{hasBigAmount(amount)}}"><span class="gbs_tooltiptext">{{amount}}</span></template></div></template><template is="dom-if" if="{{!amount}}"><div class$="gbs_stone gbs_O {{cssClass(color, amount)}}"></div></template></template><script>Polymer({is:"gs-stone",properties:{color:String,amount:{type:Number,value:0,notify:!0,observer:"_sanitizeAmount"},options:Object},listeners:{click:"_leftClick",contextmenu:"_rightClick"},ready:function(){if(this._sanitizeAmount(),null==this.options)throw new Error("The options are required")},amountText:function(e){return this.hasBigAmount(e)?"*":e},cssClass:function(e,t){return this.options.editable?t>0?"gbs_pointer":"gbs_ghost-"+e:""},hasBigAmount:function(e){return function(e){return e>99}}(),_sanitizeAmount:function(){if(!("number"==typeof this.amount&&this.amount>=0))return this.amount=0},_leftClick:function(e){var t,i;if(i=this.domHost,t=i.domHost,this.options.editable&&!t.isCtrlPressed())return this.amount+=this._clickAmount(),t.setStonesNumber(i,this.color,this.amount),e.stopPropagation()},_rightClick:function(e){var t,i;if(i=this.domHost,t=i.domHost,this.options.editable)return this.amount-=this._clickAmount(),t.setStonesNumber(i,this.color,this.amount),e.preventDefault()},_clickAmount:function(){return this.domHost.domHost.isShiftPressed()?10:1}});</script></dom-module><dom-module id="cell-dresser" assetpath="dist/components/"><template><style></style></template><script>Polymer({is:"cell-dresser",getRule:function(e,t,n){if(null!=n&&n.enabled)return null!=n?n.rules.filter(function(n){return function(i){return n._doesSatisfyRule(e,t,i)}}(this))[0]:void 0},_doesSatisfyRule:function(e,t,n){var i;return i=function(i){return function(r){return i._doesSatisfyQuantity(e[r],n.when[r])&&i._doesSatisfyHeader(t,n.when.head)}}(this),["red","blue","green","black"].reduce(function(e){return function(e,t){return e&&i(t)}}(),!0)},_doesSatisfyQuantity:function(e,t){switch(null==e&&(e=0),t){case"*":return!0;case"+":return e>0;default:return e===t}},_doesSatisfyHeader:function(e,t){return null==t||t===e}});</script></dom-module><dom-module id="gs-cell" assetpath="dist/components/"><template><style>.gbs_pointer{cursor:pointer;}.gbs_unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.gbs_gh{background:rgba(221,221,136,0.7);outline:3px solid #cc0000;outline-style:var(--outline-style);}div.gbs_gc{background-image:var(--background-url);background-repeat:no-repeat;background-position:center;background-size:cover;}table.gbs_gc{border-style:none;border:solid black 0px;}.gbs_gc tr{border-style:none;border:0px;}.gbs_gc td{visibility:var(--stones-visibility);border-style:none;border:solid black 0px;width:15px;height:15px;text-align:center;color:#F3F3E9;}.gbs_gc td div{line-height:2;}</style><cell-dresser id="dresser"></cell-dresser><template is="dom-if" if="true"><div class$="gbs_gc {{cssClass(header)}}"><table><tbody><tr><td><gs-stone color="blue" amount="{{blue}}" options="{{options}}"></gs-stone></td><td><gs-stone color="black" amount="{{black}}" options="{{options}}"></gs-stone></td></tr><tr><td><gs-stone color="red" amount="{{red}}" options="{{options}}"></gs-stone></td><td><gs-stone color="green" amount="{{green}}" options="{{options}}"></gs-stone></td></tr></tbody></table></div></template></template><script>Polymer({is:"gs-cell",properties:{black:{type:Number,value:0},blue:{type:Number,value:0},green:{type:Number,value:0},red:{type:Number,value:0},cellIndex:Number,rowIndex:Number,attire:Object,options:Object,header:{type:Object,notify:!0}},listeners:{click:"_leftClick"},ready:function(){return this._validateData()},cssClass:function(e){var t;return null==e?"":(t=this.x()===e.x&&this.y()===e.y,t?"gbs_gh":"")},x:function(){return this.cellIndex},y:function(){return this.domHost.getRowNumber(this.domHost.table,this.rowIndex)},updateCellStyles:function(e,t,i){var n,r,o,s,a,l;if(null!=(n=null!=(a=e[this.rowIndex])?a[this.cellIndex]:void 0)&&null!=t)return r=this.x()===t.x&&this.y()===t.y,o=this.$.dresser.getRule(n,r,i),s=null!=o?o.image:void 0,this.customStyle["--stones-visibility"]=null!=s?"hidden":"visible",this.customStyle["--outline-style"]=null!=s&&null!=(null!=o&&null!=(l=o.when)?l.head:void 0)?"none":"solid",null!=s?this.customStyle["--background-url"]="url("+s+")":delete this.customStyle["--background-url"],this.updateStyles()},_leftClick:function(e){if(this.options.editable)return this.domHost.isCtrlPressed()?(this.header={x:this.x(),y:this.y()},this.fire("board-changed")):void 0},_validateData:function(){if(null==this.cellIndex||null==this.rowIndex)throw new Error("The coordinates are required");if(null==this.header)throw new Error("The header is required");if(null==this.options)throw new Error("The options are required")}});</script></dom-module><dom-module id="key-tracker" assetpath="dist/components/"><template><style></style></template><script>Polymer({is:"key-tracker",ready:function(){return this._pressedKeys=[],this._listenTo("keydown",function(e){return function(t){var i;if(i=t.key||t.keyIdentifier,!e.isPressed(i))return e._pressedKeys.push(i)}}(this)),this._listenTo("keyup",function(e){return function(t){var i;if(i=t.key||t.keyIdentifier,e.isPressed(i))return e._pressedKeys.splice(e._indexOf(i),1)}}(this)),window.addEventListener("blur",function(e){return function(){return e._pressedKeys=[]}}(this))},isPressed:function(e){return-1!==this._indexOf(e)},_indexOf:function(e){return this._pressedKeys.indexOf(e)},_listenTo:function(e,t){return window.addEventListener(e,t)}});</script></dom-module><dom-module id="gs-board" assetpath="dist/components/"><template><style>.gbs_pointer{cursor:pointer;}.gbs_unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}table.gbs_board{border-style:none;border:solid black 0px;border-spacing:0;border-collapse:collapse;font-family:Arial,Helvetica,sans-serif;font-size:9pt;display:inline-block;vertical-align:top;}.gbs_board td{margin:0;padding:var(--cell-padding);border:var(--cell-border);width:30px;height:30px;}.gbs_board td.gbs_lv{text-align:center;vertical-align:middle;border-style:none;border:solid black 0px;background:#ddd;width:15px;}.gbs_board td.gbs_lh{text-align:center;vertical-align:middle;border-style:none;border:solid black 0px;background:#ddd;height:15px;}.gbs_board td.gbs_lx{border-style:none;border:solid black 0px;background:#ddd;width:15px;height:15px;}.gbs_board td.gbs_top_left{-webkit-border-top-left-radius:10px;-moz-border-top-left-radius:10px;border-top-left-radius:10px;}.gbs_board td.gbs_top_right{-webkit-border-top-right-radius:10px;-moz-border-top-right-radius:10px;border-top-right-radius:10px;}.gbs_board td.gbs_bottom_left{-webkit-border-bottom-left-radius:10px;-moz-border-bottom-left-radius:10px;border-bottom-left-radius:10px;}.gbs_board td.gbs_bottom_right{-webkit-border-bottom-right-radius:10px;-moz-border-bottom-right-radius:10px;border-bottom-right-radius:10px;}</style><key-tracker id="keyTracker"></key-tracker><table class="gbs_board ui-widget-content"><tbody><tr><td class="gbs_lx gbs_top_left"></td><template is="dom-repeat" items="{{columnIndexes}}" as="columnIndex"><td class="gbs_lh">{{columnIndex}}</td></template><td class="gbs_lx gbs_top_right"></td></tr><template is="dom-repeat" items="{{table}}" as="row" index-as="rowIndex"><tr><td class="gbs_lv">{{getRowNumber(table, rowIndex)}}</td><template is="dom-repeat" items="{{row}}" as="cell" index-as="cellIndex"><td><gs-cell black="{{cell.black}}" blue="{{cell.blue}}" green="{{cell.green}}" red="{{cell.red}}" cell-index="{{cellIndex}}" row-index="{{rowIndex}}" header="{{header}}" options="{{options}}" attire="{{attire}}"></gs-cell></td></template><td class="gbs_lv">{{getRowNumber(table, rowIndex)}}</td></tr></template><tr><td class="gbs_lx gbs_bottom_left"></td><template is="dom-repeat" items="{{columnIndexes}}" as="columnIndex"><td class="gbs_lh">{{columnIndex}}</td></template><td class="gbs_lx gbs_bottom_right"></td></tr></tbody></table></template><script>var stringUtils={splitByLines:function(e){return e.split(/\r\n|\r|\n/)},scan:function(e,t){if(!t.global)throw new Error('The regExp must be global (with "g" flag)');var i=[],n=i;for(i=t.exec(e);i;)i.shift(),n.push(i),i=t.exec(e);return n}},gbbReader={};gbbReader.fromString=function(e){var t=this._try(e),i=stringUtils.splitByLines(t).map(function(e){return e.trim()}),n=i.filter(function(e){return!/GBB\/(\d\.)+\d$/.test(e)&&""!==e});return this._buildBoard(n)},gbbReader._buildBoard=function(e){var t=this._getDimensions(e),i=this._getHeader(e);try{for(var n={width:t[0],height:t[1],head:{x:i[0],y:i[1]},table:[]},r=n.height-1;r>=0;r--){n.table[r]=[];for(var o=0;o<n.width;o++)n.table[r][o]={}}return this._putCells(e,n),n}catch(e){var s=new Error("Error building the board");throw s.inner=e,s}},gbbReader._getDimensions=function(e){var t=this._try(e[0].match(/^size (\d+) (\d+)$/),"dimensions");return this._getPositionOf(t)},gbbReader._getHeader=function(e){var t=this._try(e[e.length-1].match(/^head (\d+) (\d+)$/),"header");return this._getPositionOf(t)},gbbReader._putCells=function(e,t){var i=/^cell (\d+) (\d+)/;e.filter(function(e){return i.test(e)}).forEach(function(e){var n=e.match(i),r=this._getPositionOf(n,e),o=r[0],s=r[1];this._putBalls(o,s,e,t)}.bind(this))},gbbReader._putBalls=function(e,t,i,n){var r=stringUtils.scan(i,/(Azul|Negro|Rojo|Verde) (\d+)/g),o=function(e){var t=r.filter(function(t){return t[0]===e});return parseInt((t[0]||{})[1]||0,0)};const s=n.table[n.height-1-t][e];s.blue=o("Azul"),s.black=o("Negro"),s.red=o("Rojo"),s.green=o("Verde")},gbbReader._getPositionOf=function(e,t){return e=e||{},[this._try(e[1],t),this._try(e[2],t)].map(function(e){return parseInt(e,0)})},gbbReader._try=function(e,t){if(!e)throw new Error("Error parsing "+(t||"GBB file"));return e},Polymer({is:"gs-board",properties:{table:Array,size:{type:Object,value:{x:2,y:2},observer:"_updateSize"},header:{type:Object,value:{x:0,y:0}},options:Object,boom:{type:Boolean,value:!1},attire:{type:Object},attireSrc:{type:String}},observers:["_updateStyles(table.*, header.*, attire.*)"],ready:function(){return this._setBorderOn(),this._readGbb(),this._initializeTable(),this._initializeOptions()},getRowNumber:function(e,t){return e.length-1-t},isCtrlPressed:function(){return this.$.keyTracker.isPressed("Control")},isShiftPressed:function(){return this.$.keyTracker.isPressed("Shift")},setStonesNumber:function(e,t,i){return this.table[e.rowIndex][e.cellIndex][t]=i,this.fire("board-changed")},boomCssClass:function(e){return e?"gbs_boom":""},fillTable:function(){var e,t,i,n,r,o,s,a,l;if(null!=this.table){for(i=function(e,t){return e.slice(0,t)},n=this.table.slice().reverse(),e=o=0,a=this.size.y;0<=a?o<a:o>a;e=0<=a?++o:--o)for(t=s=0,l=this.size.x;0<=l?s<l:s>l;t=0<=l?++s:--s)null==n[e]&&(n[e]=[]),n[e]=i(n[e],this.size.x),null==(r=n[e])[t]&&(r[t]={});return n=i(n,this.size.y),this.table=n.reverse(),this._forceHeaderSet()}},update:function(e,t){return this.table=e,this.header=t,this._setSizeFromTable(),this.fillTable()},_initializeTable:function(){return null!=this.table?this._setSizeFromTable():(this.table=[],this.fillTable())},_setSizeFromTable:function(){var e;return this.size={x:(null!=(e=this.table[0])?e.length:void 0)||0,y:this.table.length||0}},_initializeOptions:function(){var e;return null==this.options&&(this.options={}),null!=(e=this.options).editable?e.editable:e.editable=!1},_updateSize:function(){var e;return this.columnIndexes=function(){e=[];for(var t=0,i=this.size.x;0<=i?t<i:t>i;0<=i?t++:t--)e.push(t);return e}.apply(this),this.fire("board-changed")},_forceHeaderSet:function(){var e,t;return e=Math.min(this.header.x,this.size.x-1),t=Math.min(this.header.y,this.size.y-1),this.header=null,this.header={x:e,y:t}},_readGbb:function(){var e,t,i,n;if(!(null==(e=Polymer.dom(this).textContent)||e.indexOf("GBB")<0))return n=gbbReader.fromString(e),this.table=n.table,this.header=n.head,i=n.width,t=n.height,this.size.x=i,this.size.y=t,this.attireSrc?this.attire=GobstonesBoard.getAttire(this.attireSrc):void 0},_updateStyles:function(e,t,i){var n,r,o;if(o=null!=e?e.base:void 0,r=null!=t?t.base:void 0,n=null!=i?i.base:void 0,null!=o&&null!=r)return null!=n&&n.enabled?this._setBorderOff():this._setBorderOn(),this.updateStyles(),setTimeout(function(e){return function(){return e.querySelectorAll("gs-cell").forEach(function(e){return e.updateCellStyles(o,r,n)})}}(this),1)},_setBorderOn:function(){return this.customStyle["--cell-padding"]="2px",this.customStyle["--cell-border"]="solid #888 1px"},_setBorderOff:function(){return this.customStyle["--cell-padding"]="0 0",this.customStyle["--cell-border"]="none"}}),window.GobstonesBoard={attireProvider:null,getAttire:function(e){if(null==this.attireProvider)throw new Error("You need to provide an attire provider with GobstonesBoard.setAttireProvider");return this.attireProvider.get(e)},setAttireProvider:function(e){if(!(null!=e?e.get:void 0))throw new Error("Attire providers must have a `get` method");return this.attireProvider=e}};</script></dom-module></div></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"></head><body><div hidden="" by-vulcanize=""><dom-module id="gs-stone" assetpath="dist/components/"><template><style>.gbs_pointer{cursor:pointer;}.gbs_unselectable,.gbs_stone{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.gbs_color-blue,::content div.gbs_blue,.gbs_ghost-blue:hover{background-image:url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20id%3D%22svg2%22%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%20%3Cmetadata%20id%3D%22metadata4%22%3E%0A%20%20%3Crdf%3ARDF%3E%0A%20%20%20%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%20%20%20%20%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%20%20%20%20%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%20%20%20%20%3Cdc%3Atitle/%3E%0A%20%20%20%3C/cc%3AWork%3E%0A%20%20%3C/rdf%3ARDF%3E%0A%20%3C/metadata%3E%0A%20%3Cellipse%20id%3D%22ellipse8%22%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%2288.64%22%20cx%3D%2288.641%22%20fill%3D%22%232a7fff%22/%3E%0A%20%3Cpath%20id%3D%22path10%22%20d%3D%22m171.5%2059.51c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22%20fill%3D%22%230055d4%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse12%22%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%2240.65%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse14%22%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%2231.7%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cpath%20id%3D%22path16%22%20d%3D%22m170.51%2094.27c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22%20fill%3D%22%2304a%22/%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}.gbs_color-black,::content div.gbs_black,.gbs_ghost-black:hover{background-image:url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20id%3D%22svg2%22%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%20%3Cmetadata%20id%3D%22metadata4%22%3E%0A%20%20%3Crdf%3ARDF%3E%0A%20%20%20%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%20%20%20%20%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%20%20%20%20%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%20%20%20%20%3Cdc%3Atitle/%3E%0A%20%20%20%3C/cc%3AWork%3E%0A%20%20%3C/rdf%3ARDF%3E%0A%20%3C/metadata%3E%0A%20%3Cellipse%20id%3D%22ellipse8%22%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%2288.64%22%20cx%3D%2288.641%22%20fill%3D%22%23292929%22/%3E%0A%20%3Cpath%20id%3D%22path10%22%20d%3D%22m171.5%2059.51c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22%20fill%3D%22%23202020%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse12%22%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%2240.65%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse14%22%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%2231.7%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cpath%20id%3D%22path16%22%20d%3D%22m170.51%2094.27c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22%20fill%3D%22%23131313%22/%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}.gbs_color-red,::content div.gbs_red,.gbs_ghost-red:hover{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%3Cmetadata%3E%0A%3Crdf%3ARDF%3E%0A%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%3Cdc%3Atitle/%3E%0A%3C/cc%3AWork%3E%0A%3C/rdf%3ARDF%3E%0A%3C/metadata%3E%0A%3Cg%20transform%3D%22translate%280%20-875.2%29%22%3E%0A%3Cellipse%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%22963.84%22%20cx%3D%2288.641%22%20fill%3D%22%23d40000%22/%3E%0A%3Cpath%20fill%3D%22%23b10000%22%20d%3D%22m171.5%20934.71c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22/%3E%0A%3Cellipse%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%22915.85%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%3Cellipse%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%22906.9%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%3Cpath%20fill%3D%22%23800%22%20d%3D%22m170.51%20969.47c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22/%3E%0A%3C/g%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}.gbs_color-green,::content div.gbs_green,.gbs_ghost-green:hover{background-image:url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20id%3D%22svg2%22%20xmlns%3Ardf%3D%22http%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20height%3D%2250mm%22%20width%3D%2250mm%22%20version%3D%221.1%22%20xmlns%3Acc%3D%22http%3A//creativecommons.org/ns%23%22%20xmlns%3Adc%3D%22http%3A//purl.org/dc/elements/1.1/%22%20viewBox%3D%220%200%20177.16535%20177.16535%22%3E%0A%20%3Cmetadata%20id%3D%22metadata4%22%3E%0A%20%20%3Crdf%3ARDF%3E%0A%20%20%20%3Ccc%3AWork%20rdf%3Aabout%3D%22%22%3E%0A%20%20%20%20%3Cdc%3Aformat%3Eimage/svg+xml%3C/dc%3Aformat%3E%0A%20%20%20%20%3Cdc%3Atype%20rdf%3Aresource%3D%22http%3A//purl.org/dc/dcmitype/StillImage%22/%3E%0A%20%20%20%20%3Cdc%3Atitle/%3E%0A%20%20%20%3C/cc%3AWork%3E%0A%20%20%3C/rdf%3ARDF%3E%0A%20%3C/metadata%3E%0A%20%3Cellipse%20id%3D%22ellipse8%22%20rx%3D%2288.184%22%20ry%3D%2288.715%22%20cy%3D%2288.64%22%20cx%3D%2288.641%22%20fill%3D%22%2337c837%22/%3E%0A%20%3Cpath%20id%3D%22path10%22%20d%3D%22m171.5%2059.51c3.8341%209.671%205.9385%2020.183%205.9385%2031.178%200%2047.861-39.767%2086.675-88.804%2086.675-49.035%200-88.802-38.814-88.802-86.675%200-11.546%202.321-22.563%206.5203-32.638%200.65931%201.4104%201.2522%202.2175%202.3526%203.2916%200.35416%201.0386%200.78421%201.6358%201.3755%202.1681-7.3662%2020.277-6.1393%2043.028%203.4436%2062.435%2054.759-46.096%2078.905%2015.358%20153.35-15.895%205.0041-18.979%207.0041-31.152-1.2712-50.54h5.8942z%22%20fill%3D%22%232ca02c%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse12%22%20rx%3D%227.2374%22%20ry%3D%227.2809%22%20cy%3D%2240.65%22%20cx%3D%2255.881%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cellipse%20id%3D%22ellipse14%22%20rx%3D%224.0266%22%20ry%3D%224.0508%22%20cy%3D%2231.7%22%20cx%3D%2260.102%22%20fill%3D%22%23fff%22/%3E%0A%20%3Cpath%20id%3D%22path16%22%20d%3D%22m170.51%2094.27c-0.7628%204.8812-1.991%209.9925-3.5039%2015.73-22.254%209.3418-40.012%2010.398-55.438%208.5215a61.964%2057.5%200%200%200%20-11.02%2032.707%2061.964%2057.5%200%200%200%205.9121%2024.359c38.986-7.6985%2068.715-40.328%2070.965-80.098a61.964%2057.5%200%200%200%20-6.916%20-1.2207z%22%20fill%3D%22%23217821%22/%3E%0A%3C/svg%3E%0A");background-size:20px 20px;}::content div.gbs_O{background:white;opacity:0;}.gbs_hidden{visibility:hidden;}.gbs_stone{font-weight:bold;font-size:8pt;width:20px;height:20px;}.gbs_stone_amount{vertical-align:sub;}.gbs_ghost-color,.gbs_ghost-blue:hover,.gbs_ghost-black:hover,.gbs_ghost-red:hover,.gbs_ghost-green:hover{cursor:pointer;opacity:0.5 !important;}.gbs_tooltip{position:relative;}.gbs_tooltip .gbs_tooltiptext{visibility:hidden;width:50px;background-color:#555;color:#fff;text-align:center;padding:5px 0;border-radius:6px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-25px;opacity:0;}.gbs_tooltip .gbs_tooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent;}.gbs_tooltip:hover .gbs_tooltiptext{visibility:visible;opacity:1;}</style><template is="dom-if" if="{{amount}}"><div class$="gbs_stone gbs_tooltip gbs_{{color}} {{cssClass(color, amount)}}"><span class="gbs_stone_amount">{{amountText(amount)}}</span><template is="dom-if" if="{{hasBigAmount(amount)}}"><span class="gbs_tooltiptext">{{amount}}</span></template></div></template><template is="dom-if" if="{{!amount}}"><div class$="gbs_stone gbs_O {{cssClass(color, amount)}}"></div></template></template><script>Polymer({is:"gs-stone",properties:{color:String,amount:{type:Number,value:0,notify:!0,observer:"_sanitizeAmount"},options:Object},listeners:{click:"_leftClick",contextmenu:"_rightClick"},ready:function(){if(this._sanitizeAmount(),null==this.options)throw new Error("The options are required")},amountText:function(e){return this.hasBigAmount(e)?"*":e},cssClass:function(e,t){return this.options.editable?t>0?"gbs_pointer":"gbs_ghost-"+e:""},hasBigAmount:function(e){return function(e){return e>99}}(),_sanitizeAmount:function(){if(!("number"==typeof this.amount&&this.amount>=0))return this.amount=0},_leftClick:function(e){var t,i;if(i=this.domHost,t=i.domHost,this.options.editable&&!t.isCtrlPressed())return this.amount+=this._clickAmount(),t.setStonesNumber(i,this.color,this.amount),e.stopPropagation()},_rightClick:function(e){var t,i;if(i=this.domHost,t=i.domHost,this.options.editable)return this.amount-=this._clickAmount(),t.setStonesNumber(i,this.color,this.amount),e.preventDefault()},_clickAmount:function(){return this.domHost.domHost.isShiftPressed()?10:1}});</script></dom-module><dom-module id="cell-dresser" assetpath="dist/components/"><template><style></style></template><script>Polymer({is:"cell-dresser",getRule:function(e,t,n){if(null!=n&&n.enabled)return null!=n?n.rules.filter(function(n){return function(i){return n._doesSatisfyRule(e,t,i)}}(this))[0]:void 0},_doesSatisfyRule:function(e,t,n){var i;return i=function(i){return function(r){return i._doesSatisfyQuantity(e[r],n.when[r])&&i._doesSatisfyHeader(t,n.when.head)}}(this),["red","blue","green","black"].reduce(function(e){return function(e,t){return e&&i(t)}}(),!0)},_doesSatisfyQuantity:function(e,t){switch(null==e&&(e=0),t){case"*":return!0;case"+":return e>0;default:return e===t}},_doesSatisfyHeader:function(e,t){return null==t||t===e}});</script></dom-module><dom-module id="gs-cell" assetpath="dist/components/"><template><style>.gbs_pointer{cursor:pointer;}.gbs_unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.gbs_gh{background:rgba(221,221,136,0.7);outline:3px solid #cc0000;outline-style:var(--outline-style);}div.gbs_gc{background-image:var(--background-url);background-repeat:no-repeat;background-position:center;background-size:cover;}table.gbs_gc{border-style:none;border:solid black 0px;}.gbs_gc tr{border-style:none;border:0px;}.gbs_gc td{visibility:var(--stones-visibility);border-style:none;border:solid black 0px;width:15px;height:15px;text-align:center;color:#F3F3E9;}.gbs_gc td div{line-height:2;}</style><cell-dresser id="dresser"></cell-dresser><template is="dom-if" if="true"><div class$="gbs_gc {{cssClass(header)}}"><table><tbody><tr><td><gs-stone color="blue" amount="{{blue}}" options="{{options}}"></gs-stone></td><td><gs-stone color="black" amount="{{black}}" options="{{options}}"></gs-stone></td></tr><tr><td><gs-stone color="red" amount="{{red}}" options="{{options}}"></gs-stone></td><td><gs-stone color="green" amount="{{green}}" options="{{options}}"></gs-stone></td></tr></tbody></table></div></template></template><script>Polymer({is:"gs-cell",properties:{black:{type:Number,value:0},blue:{type:Number,value:0},green:{type:Number,value:0},red:{type:Number,value:0},cellIndex:Number,rowIndex:Number,attire:Object,options:Object,header:{type:Object,notify:!0}},listeners:{click:"_leftClick"},ready:function(){return this._validateData()},cssClass:function(e){var t;return null==e?"":(t=this.x()===e.x&&this.y()===e.y,t?"gbs_gh":"")},x:function(){return this.cellIndex},y:function(){return this.domHost.getRowNumber(this.domHost.table,this.rowIndex)},updateCellStyles:function(e,t,i){var n,r,o,s,a,l;if(null!=(n=null!=(a=e[this.rowIndex])?a[this.cellIndex]:void 0)&&null!=t)return r=this.x()===t.x&&this.y()===t.y,o=this.$.dresser.getRule(n,r,i),s=null!=o?o.image:void 0,this.customStyle["--stones-visibility"]=null!=s?"hidden":"visible",this.customStyle["--outline-style"]=null!=s&&null!=(null!=o&&null!=(l=o.when)?l.head:void 0)?"none":"solid",null!=s?this.customStyle["--background-url"]="url("+s+")":delete this.customStyle["--background-url"],this.updateStyles()},_leftClick:function(e){if(this.options.editable)return this.domHost.isCtrlPressed()?(this.header={x:this.x(),y:this.y()},this.fire("board-changed")):void 0},_validateData:function(){if(null==this.cellIndex||null==this.rowIndex)throw new Error("The coordinates are required");if(null==this.header)throw new Error("The header is required");if(null==this.options)throw new Error("The options are required")}});</script></dom-module><dom-module id="key-tracker" assetpath="dist/components/"><template><style></style></template><script>Polymer({is:"key-tracker",ready:function(){return this._pressedKeys=[],this._listenTo("keydown",function(e){return function(t){var i;if(i=t.key||t.keyIdentifier,!e.isPressed(i))return e._pressedKeys.push(i)}}(this)),this._listenTo("keyup",function(e){return function(t){var i;if(i=t.key||t.keyIdentifier,e.isPressed(i))return e._pressedKeys.splice(e._indexOf(i),1)}}(this)),window.addEventListener("blur",function(e){return function(){return e._pressedKeys=[]}}(this))},isPressed:function(e){return-1!==this._indexOf(e)},_indexOf:function(e){return this._pressedKeys.indexOf(e)},_listenTo:function(e,t){return window.addEventListener(e,t)}});</script></dom-module><dom-module id="gs-board" assetpath="dist/components/"><template><style>.gbs_pointer{cursor:pointer;}.gbs_unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}table.gbs_board{border-style:none;border:solid black 0px;border-spacing:0;border-collapse:collapse;font-family:Arial,Helvetica,sans-serif;font-size:9pt;display:inline-block;vertical-align:top;}.gbs_board td{margin:0;padding:var(--cell-padding);border:var(--cell-border);width:30px;height:30px;}.gbs_board td.gbs_lv{text-align:center;vertical-align:middle;border-style:none;border:solid black 0px;background:#ddd;width:15px;}.gbs_board td.gbs_lh{text-align:center;vertical-align:middle;border-style:none;border:solid black 0px;background:#ddd;height:15px;}.gbs_board td.gbs_lx{border-style:none;border:solid black 0px;background:#ddd;width:15px;height:15px;}.gbs_board td.gbs_top_left{-webkit-border-top-left-radius:10px;-moz-border-top-left-radius:10px;border-top-left-radius:10px;}.gbs_board td.gbs_top_right{-webkit-border-top-right-radius:10px;-moz-border-top-right-radius:10px;border-top-right-radius:10px;}.gbs_board td.gbs_bottom_left{-webkit-border-bottom-left-radius:10px;-moz-border-bottom-left-radius:10px;border-bottom-left-radius:10px;}.gbs_board td.gbs_bottom_right{-webkit-border-bottom-right-radius:10px;-moz-border-bottom-right-radius:10px;border-bottom-right-radius:10px;}</style><key-tracker id="keyTracker" aria-hidden="true"></key-tracker><table class="gbs_board" aria-label$="{{gbb}}" aria-hidden="true"><tbody><tr><td class="gbs_lx gbs_top_left"></td><template is="dom-repeat" items="{{columnIndexes}}" as="columnIndex"><td class="gbs_lh">{{columnIndex}}</td></template><td class="gbs_lx gbs_top_right"></td></tr><template is="dom-repeat" items="{{table}}" as="row" index-as="rowIndex"><tr><td class="gbs_lv">{{getRowNumber(table, rowIndex)}}</td><template is="dom-repeat" items="{{row}}" as="cell" index-as="cellIndex"><td><gs-cell black="{{cell.black}}" blue="{{cell.blue}}" green="{{cell.green}}" red="{{cell.red}}" cell-index="{{cellIndex}}" row-index="{{rowIndex}}" header="{{header}}" options="{{options}}" attire="{{attire}}"></gs-cell></td></template><td class="gbs_lv">{{getRowNumber(table, rowIndex)}}</td></tr></template><tr><td class="gbs_lx gbs_bottom_left"></td><template is="dom-repeat" items="{{columnIndexes}}" as="columnIndex"><td class="gbs_lh">{{columnIndex}}</td></template><td class="gbs_lx gbs_bottom_right"></td></tr></tbody></table></template><script>var stringUtils={splitByLines:function(e){return e.split(/\r\n|\r|\n/)},scan:function(e,t){if(!t.global)throw new Error('The regExp must be global (with "g" flag)');var i=[],n=i;for(i=t.exec(e);i;)i.shift(),n.push(i),i=t.exec(e);return n}},gbbReader={};gbbReader.fromString=function(e){var t=this._try(e),i=stringUtils.splitByLines(t).map(function(e){return e.trim()}),n=i.filter(function(e){return!/GBB\/(\d\.)+\d$/.test(e)&&""!==e});return this._buildBoard(n)},gbbReader._buildBoard=function(e){var t=this._getDimensions(e),i=this._getHeader(e);try{for(var n={width:t[0],height:t[1],head:{x:i[0],y:i[1]},table:[]},r=n.height-1;r>=0;r--){n.table[r]=[];for(var o=0;o<n.width;o++)n.table[r][o]={}}return this._putCells(e,n),n}catch(e){var s=new Error("Error building the board");throw s.inner=e,s}},gbbReader._getDimensions=function(e){var t=this._try(e[0].match(/^size (\d+) (\d+)$/),"dimensions");return this._getPositionOf(t)},gbbReader._getHeader=function(e){var t=this._try(e[e.length-1].match(/^head (\d+) (\d+)$/),"header");return this._getPositionOf(t)},gbbReader._putCells=function(e,t){var i=/^cell (\d+) (\d+)/;e.filter(function(e){return i.test(e)}).forEach(function(e){var n=e.match(i),r=this._getPositionOf(n,e),o=r[0],s=r[1];this._putBalls(o,s,e,t)}.bind(this))},gbbReader._putBalls=function(e,t,i,n){var r=stringUtils.scan(i,/(Azul|Negro|Rojo|Verde) (\d+)/g),o=function(e){var t=r.filter(function(t){return t[0]===e});return parseInt((t[0]||{})[1]||0,0)};const s=n.table[n.height-1-t][e];s.blue=o("Azul"),s.black=o("Negro"),s.red=o("Rojo"),s.green=o("Verde")},gbbReader._getPositionOf=function(e,t){return e=e||{},[this._try(e[1],t),this._try(e[2],t)].map(function(e){return parseInt(e,0)})},gbbReader._try=function(e,t){if(!e)throw new Error("Error parsing "+(t||"GBB file"));return e},Polymer({is:"gs-board",properties:{table:Array,size:{type:Object,value:{x:2,y:2},observer:"_updateSize"},header:{type:Object,value:{x:0,y:0}},options:Object,boom:{type:Boolean,value:!1},gbb:{type:String},attire:{type:Object},attireSrc:{type:String}},observers:["_updateStyles(table.*, header.*, attire.*)"],ready:function(){return this._setBorderOn(),this._readGbb(),this._initializeTable(),this._initializeOptions()},getRowNumber:function(e,t){return e.length-1-t},isCtrlPressed:function(){return this.$.keyTracker.isPressed("Control")},isShiftPressed:function(){return this.$.keyTracker.isPressed("Shift")},setStonesNumber:function(e,t,i){return this.table[e.rowIndex][e.cellIndex][t]=i,this.fire("board-changed")},boomCssClass:function(e){return e?"gbs_boom":""},fillTable:function(){var e,t,i,n,r,o,s,a,l;if(null!=this.table){for(i=function(e,t){return e.slice(0,t)},n=this.table.slice().reverse(),e=o=0,a=this.size.y;0<=a?o<a:o>a;e=0<=a?++o:--o)for(t=s=0,l=this.size.x;0<=l?s<l:s>l;t=0<=l?++s:--s)null==n[e]&&(n[e]=[]),n[e]=i(n[e],this.size.x),null==(r=n[e])[t]&&(r[t]={});return n=i(n,this.size.y),this.table=n.reverse(),this._forceHeaderSet()}},update:function(e,t){return this.table=e,this.header=t,this._setSizeFromTable(),this.fillTable()},_initializeTable:function(){return null!=this.table?this._setSizeFromTable():(this.table=[],this.fillTable())},_setSizeFromTable:function(){var e;return this.size={x:(null!=(e=this.table[0])?e.length:void 0)||0,y:this.table.length||0}},_initializeOptions:function(){var e;return null==this.options&&(this.options={}),null!=(e=this.options).editable?e.editable:e.editable=!1},_updateSize:function(){var e;return this.columnIndexes=function(){e=[];for(var t=0,i=this.size.x;0<=i?t<i:t>i;0<=i?t++:t--)e.push(t);return e}.apply(this),this.fire("board-changed")},_forceHeaderSet:function(){var e,t;return e=Math.min(this.header.x,this.size.x-1),t=Math.min(this.header.y,this.size.y-1),this.header=null,this.header={x:e,y:t}},_readGbb:function(){var e,t,i,n;if(!(null==(e=Polymer.dom(this).textContent)||e.indexOf("GBB")<0))return this.gbb=e,n=gbbReader.fromString(this.gbb),this.table=n.table,this.header=n.head,i=n.width,t=n.height,this.size.x=i,this.size.y=t,this.attireSrc?this.attire=GobstonesBoard.getAttire(this.attireSrc):void 0},_updateStyles:function(e,t,i){var n,r,o;if(o=null!=e?e.base:void 0,r=null!=t?t.base:void 0,n=null!=i?i.base:void 0,null!=o&&null!=r)return null!=n&&n.enabled?this._setBorderOff():this._setBorderOn(),this.updateStyles(),setTimeout(function(e){return function(){return e.querySelectorAll("gs-cell").forEach(function(e){return e.updateCellStyles(o,r,n)})}}(this),1)},_setBorderOn:function(){return this.customStyle["--cell-padding"]="2px",this.customStyle["--cell-border"]="solid #888 1px"},_setBorderOff:function(){return this.customStyle["--cell-padding"]="0 0",this.customStyle["--cell-border"]="none"}}),window.GobstonesBoard={attireProvider:null,getAttire:function(e){if(null==this.attireProvider)throw new Error("You need to provide an attire provider with GobstonesBoard.setAttireProvider");return this.attireProvider.get(e)},setAttireProvider:function(e){if(!(null!=e?e.get:void 0))throw new Error("Attire providers must have a `get` method");return this.attireProvider=e}};</script></dom-module></div></body></html>
@@ -1,5 +1,5 @@
1
1
  module Gobstones
2
2
  module Board
3
- VERSION = "1.8.13"
3
+ VERSION = "1.8.14"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gobstones-board
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.13
4
+ version: 1.8.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Alfonso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-21 00:00:00.000000000 Z
11
+ date: 2018-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler