cm-chessboard 7.3.7 → 7.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,15 +22,15 @@
22
22
  .cm-chessboard-content .list-inline-item:not(:last-child) {
23
23
  margin-right: 1rem; }
24
24
 
25
- .cm-visually-hidden {
26
- width: 1px !important;
27
- height: 1px !important;
28
- padding: 0 !important;
29
- margin: -1px !important;
30
- overflow: hidden !important;
31
- clip: rect(0, 0, 0, 0) !important;
32
- white-space: nowrap !important;
33
- border: 0 !important; }
25
+ .cm-chessboard-accessibility.visually-hidden {
26
+ width: 1px;
27
+ height: 1px;
28
+ padding: 0;
29
+ margin: -1px;
30
+ overflow: hidden;
31
+ clip: rect(0, 0, 0, 0);
32
+ white-space: nowrap;
33
+ border: 0; }
34
34
 
35
35
  .cm-chessboard.default .board .square.white {
36
36
  fill: #ecdab9; }
@@ -6,5 +6,5 @@
6
6
  "_chessboard-theme.scss"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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"
9
+ "mappings": "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"
10
10
  }
@@ -47,15 +47,15 @@
47
47
  }
48
48
  }
49
49
 
50
- .cm-visually-hidden {
51
- width: 1px !important;
52
- height: 1px !important;
53
- padding: 0 !important;
54
- margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
55
- overflow: hidden !important;
56
- clip: rect(0, 0, 0, 0) !important;
57
- white-space: nowrap !important;
58
- border: 0 !important;
50
+ .cm-chessboard-accessibility.visually-hidden {
51
+ width: 1px;
52
+ height: 1px;
53
+ padding: 0;
54
+ margin: -1px;
55
+ overflow: hidden;
56
+ clip: rect(0, 0, 0, 0);
57
+ white-space: nowrap;
58
+ border: 0;
59
59
  }
60
60
 
61
61
  // define themes
@@ -62,12 +62,7 @@
62
62
  chessboard.setOrientation(chessboard.getOrientation() === 'w' ? 'b' : 'w')
63
63
  }
64
64
 
65
- chessboard.enableMoveInput(inputHandler)
66
-
67
- function inputHandler(event) {
68
- console.log(event)
69
- return true
70
- }
65
+ chessboard.enableMoveInput(() => true)
71
66
 
72
67
  </script>
73
68
  </body>
@@ -48,11 +48,6 @@
48
48
  }
49
49
  return true
50
50
  })
51
- /*
52
- chessboard.showPromotionDialog("c8", COLOR.white, (event) => {
53
- chessboard.setPiece(event.square, event.piece, true)
54
- })
55
- */
56
51
  window.switchOrientation = function () {
57
52
  chessboard.setOrientation(chessboard.getOrientation() === 'w' ? 'b' : 'w')
58
53
  }
@@ -14,9 +14,7 @@
14
14
  <h2>Example: Input enabled, move validation with chess.js</h2>
15
15
  <p>Input enabled for white. <a href="https://github.com/jhlywa/chess.js">chess.js</a> does the validation and answers
16
16
  with random moves.</p>
17
- <h2 class="cm-visually-hidden">The chessboard widget</h2>
18
17
  <div class="board board-large" id="board"></div>
19
- <h2 class="cm-visually-hidden">The Sourcecode of the example</h2>
20
18
  <div id="output"></div>
21
19
  <!--suppress JSUnresolvedFunction -->
22
20
  <script type="module">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cm-chessboard",
3
- "version": "7.3.7",
3
+ "version": "7.3.9",
4
4
  "description": "A JavaScript chessboard which is lightweight, ES6 module based, responsive, SVG rendered and without dependencies.",
5
5
  "keywords": [
6
6
  "chess",
@@ -6,8 +6,9 @@
6
6
  import {Extension, EXTENSION_POINT} from "../../model/Extension.js"
7
7
  import {COLOR, INPUT_EVENT_TYPE} from "../../Chessboard.js"
8
8
  import {piecesTranslations, renderPieceTitle} from "../../lib/I18n.js"
9
+ import {Utils} from "../../lib/Utils.js"
9
10
 
10
- const hlTranslations = {
11
+ const translations = {
11
12
  de: {
12
13
  chessboard: "Schachbrett",
13
14
  pieces_lists: "Figurenlisten",
@@ -37,119 +38,57 @@ const hlTranslations = {
37
38
  }
38
39
 
39
40
  export class Accessibility extends Extension {
40
-
41
41
  constructor(chessboard, props) {
42
42
  super(chessboard, props)
43
43
  this.props = {
44
44
  brailleNotationInAlt: true, // show the braille notation of the position in the alt attribute of the SVG image
45
- boardAsTable: true, // display the board additionally as HTML table
46
45
  movePieceForm: true, // display a form to move a piece (from, to, move)
46
+ boardAsTable: true, // display the board additionally as HTML table
47
47
  piecesAsList: true, // display the pieces additionally as List
48
48
  visuallyHidden: true // hide all those extra outputs visually but keep them accessible for screen readers and braille displays
49
49
  }
50
50
  Object.assign(this.props, props)
51
51
  this.lang = chessboard.props.language
52
- this.translations = piecesTranslations
53
- this.t = this.translations[this.lang]
54
- this.th = hlTranslations[this.lang]
55
- if (this.props.movePieceForm) {
56
- this.movePieceFormContainer = this.createElement(`<div><h3 id="hl_form_${this.chessboard.id}">${this.th.move_piece}</h3><form aria-labelledby="hl_form_${this.chessboard.id}">
57
- <label for="move_piece_input_from_${chessboard.id}">${this.th.from}</label><input class="input-from" type="text" size="2" id="move_piece_input_from_${chessboard.id}"/>
58
- <label for="move_piece_input_to_${chessboard.id}">${this.th.to}</label><input class="input-to" type="text" size="2" id="move_piece_input_to_${chessboard.id}"/>
59
- <button type="submit" class="button-move">${this.th.move}</button>
60
- </form><div class="input-status" aria-live="polite"></div></div>`)
61
- this.form = this.movePieceFormContainer.querySelector("form")
62
- this.inputFrom = this.form.querySelector(".input-from")
63
- this.inputTo = this.form.querySelector(".input-to")
64
- this.moveButton = this.form.querySelector(".button-move")
65
- if (this.props.visuallyHidden) {
66
- this.movePieceFormContainer.classList.add("cm-visually-hidden")
52
+ this.tPieces = piecesTranslations[this.lang]
53
+ this.t = translations[this.lang]
54
+ this.components = []
55
+ if(this.props.movePieceForm || this.props.boardAsTable || this.props.piecesAsList) {
56
+ const container = document.createElement("div")
57
+ container.classList.add("cm-chessboard-accessibility")
58
+ this.chessboard.context.appendChild(container)
59
+ if(this.props.visuallyHidden) {
60
+ container.classList.add("visually-hidden")
67
61
  }
68
- this.form.addEventListener("submit", (evt) => {
69
- evt.preventDefault()
70
- if (this.chessboard.view.moveInputCallback({
71
- chessboard: this.chessboard,
72
- type: INPUT_EVENT_TYPE.validateMoveInput,
73
- squareFrom: this.inputFrom.value,
74
- squareTo: this.inputTo.value
75
- })) {
76
- this.chessboard.movePiece(this.inputFrom.value, this.inputTo.value,
77
- true).then(() => {
78
- this.inputFrom.value = ""
79
- this.inputTo.value = ""
80
- })
81
- }
82
- })
83
- this.chessboard.context.appendChild(this.movePieceFormContainer)
84
- }
85
- if (this.props.boardAsTable) {
86
- this.boardAsTableContainer = this.createElement(`<div><h3 id="hl_table_${this.chessboard.id}">${this.th.board_as_table}</h3><div class="table"></div></div>`)
87
- this.boardAsTable = this.boardAsTableContainer.querySelector(".table")
88
- this.chessboard.context.appendChild(this.boardAsTableContainer)
89
- if (this.props.visuallyHidden) {
90
- this.boardAsTableContainer.classList.add("cm-visually-hidden")
91
- }
92
- }
93
- if (this.props.piecesAsList) {
94
- this.piecesListContainer = this.createElement(`<div><h3 id="hl_lists_${this.chessboard.id}">${this.th.pieces_lists}</h3><div class="list"></div></div>`)
95
- this.piecesList = this.piecesListContainer.querySelector(".list")
96
- this.chessboard.context.appendChild(this.piecesListContainer)
97
- if (this.props.visuallyHidden) {
98
- this.piecesListContainer.classList.add("cm-visually-hidden")
99
- }
100
- }
101
- this.registerExtensionPoint(EXTENSION_POINT.moveInput, () => {
102
- this.updateFormInputs()
103
- })
104
- this.registerExtensionPoint(EXTENSION_POINT.moveInputToggled, () => {
105
- this.updateFormInputs()
106
- })
107
- this.registerExtensionPoint(EXTENSION_POINT.positionChanged, () => {
108
- if(this.chessboard.state) { // not destroyed
109
- this.redrawPositionInAltAttribute()
110
- if (this.props.boardAsTable) {
111
- this.redrawBoardAsTable()
112
- }
113
- if (this.props.piecesAsList) {
114
- this.redrawPiecesLists()
115
- }
62
+ if (this.props.movePieceForm) {
63
+ this.components.push(new MovePieceForm(container, this))
116
64
  }
117
- })
118
- this.registerExtensionPoint(EXTENSION_POINT.boardChanged, () => {
119
- console.log("EXTENSION_POINT.boardChanged")
120
65
  if (this.props.boardAsTable) {
121
- this.redrawBoardAsTable()
66
+ this.components.push(new BoardAsTable(container, this))
67
+ }
68
+ if (this.props.piecesAsList) {
69
+ this.components.push(new PiecesAsList(container, this))
122
70
  }
123
- })
124
- this.redrawPositionInAltAttribute()
125
- if (this.props.boardAsTable) {
126
- this.redrawBoardAsTable()
127
71
  }
128
- if (this.props.piecesAsList) {
129
- this.redrawPiecesLists()
72
+ if (this.props.brailleNotationInAlt) {
73
+ this.components.push(new BrailleNotationInAlt(this))
130
74
  }
131
75
  }
76
+ }
132
77
 
133
- updateFormInputs() {
134
- if (this.inputFrom) {
135
- if (this.chessboard.state.inputWhiteEnabled || this.chessboard.state.inputBlackEnabled) {
136
- this.inputFrom.disabled = false
137
- this.inputTo.disabled = false
138
- this.moveButton.disabled = false
139
- } else {
140
- this.inputFrom.disabled = true
141
- this.inputTo.disabled = true
142
- this.moveButton.disabled = true
143
- }
144
- }
78
+ class BrailleNotationInAlt {
79
+ constructor(extension) {
80
+ this.extension = extension
81
+ extension.registerExtensionPoint(EXTENSION_POINT.positionChanged, () => {
82
+ this.redraw()
83
+ })
145
84
  }
146
85
 
147
- redrawPositionInAltAttribute() {
148
- const pieces = this.chessboard.state.position.getPieces()
149
- let listW = piecesTranslations[this.lang].colors.w.toUpperCase() + ":"
150
- let listB = piecesTranslations[this.lang].colors.b.toUpperCase() + ":"
86
+ redraw() {
87
+ const pieces = this.extension.chessboard.state.position.getPieces()
88
+ let listW = piecesTranslations[this.extension.lang].colors.w.toUpperCase() + ":"
89
+ let listB = piecesTranslations[this.extension.lang].colors.b.toUpperCase() + ":"
151
90
  for (const piece of pieces) {
152
- const pieceName = piece.name === "p" ? "" : piecesTranslations[this.lang].pieces[piece.name].toUpperCase()
91
+ const pieceName = piece.name === "p" ? "" : piecesTranslations[this.extension.lang].pieces[piece.name].toUpperCase()
153
92
  if (piece.color === "w") {
154
93
  listW += " " + pieceName + piece.position
155
94
  } else {
@@ -158,28 +97,80 @@ export class Accessibility extends Extension {
158
97
  }
159
98
  const altText = `${listW}
160
99
  ${listB}`
161
- this.chessboard.view.svg.setAttribute("alt", altText)
100
+ this.extension.chessboard.view.svg.setAttribute("alt", altText)
162
101
  }
102
+ }
163
103
 
164
- redrawPiecesLists() {
165
- const pieces = this.chessboard.state.position.getPieces()
166
- let listW = ""
167
- let listB = ""
168
- for (const piece of pieces) {
169
- if (piece.color === "w") {
170
- listW += `<li class="list-inline-item">${renderPieceTitle(this.lang, piece.name)} ${piece.position}</li>`
104
+ class MovePieceForm {
105
+ constructor(container, extension) {
106
+ this.chessboard = extension.chessboard
107
+ this.movePieceFormContainer = Utils.createDomElement(`
108
+ <div>
109
+ <h3 id="hl_form_${this.chessboard.id}">${extension.t.move_piece}</h3>
110
+ <form aria-labelledby="hl_form_${this.chessboard.id}">
111
+ <label for="move_piece_input_from_${this.chessboard.id}">${extension.t.from}</label>
112
+ <input class="input-from" type="text" size="2" id="move_piece_input_from_${this.chessboard.id}"/>
113
+ <label for="move_piece_input_to_${this.chessboard.id}">${extension.t.to}</label>
114
+ <input class="input-to" type="text" size="2" id="move_piece_input_to_${this.chessboard.id}"/>
115
+ <button type="submit" class="button-move">${extension.t.move}</button>
116
+ </form>
117
+ </div>`)
118
+ this.form = this.movePieceFormContainer.querySelector("form")
119
+ this.inputFrom = this.form.querySelector(".input-from")
120
+ this.inputTo = this.form.querySelector(".input-to")
121
+ this.moveButton = this.form.querySelector(".button-move")
122
+ this.form.addEventListener("submit", (evt) => {
123
+ evt.preventDefault()
124
+ if (this.chessboard.view.moveInputCallback({
125
+ chessboard: this.chessboard,
126
+ type: INPUT_EVENT_TYPE.validateMoveInput,
127
+ squareFrom: this.inputFrom.value,
128
+ squareTo: this.inputTo.value
129
+ })) {
130
+ this.chessboard.movePiece(this.inputFrom.value, this.inputTo.value,
131
+ true).then(() => {
132
+ this.inputFrom.value = ""
133
+ this.inputTo.value = ""
134
+ })
135
+ }
136
+ })
137
+ container.appendChild(this.movePieceFormContainer)
138
+ extension.registerExtensionPoint(EXTENSION_POINT.moveInputToggled, () => {
139
+ this.redraw()
140
+ })
141
+ }
142
+
143
+ redraw() {
144
+ if (this.inputFrom) {
145
+ if (this.chessboard.state.inputWhiteEnabled || this.chessboard.state.inputBlackEnabled) {
146
+ this.inputFrom.disabled = false
147
+ this.inputTo.disabled = false
148
+ this.moveButton.disabled = false
171
149
  } else {
172
- listB += `<li class="list-inline-item">${renderPieceTitle(this.lang, piece.name)} ${piece.position}</li>`
150
+ this.inputFrom.disabled = true
151
+ this.inputTo.disabled = true
152
+ this.moveButton.disabled = true
173
153
  }
174
154
  }
175
- this.piecesList.innerHTML = `
176
- <h4 id="white_${this.chessboard.id}">${this.th.pieces} ${this.t.colors_long.w}</h4>
177
- <ul aria-labelledby="white_${this.chessboard.id}" class="list-inline">${listW}</ul>
178
- <h4 id="black_${this.chessboard.id}">${this.th.pieces} ${this.t.colors_long.b}</h4>
179
- <ul aria-labelledby="black_${this.chessboard.id}" class="list-inline">${listB}</ul>`
180
155
  }
156
+ }
181
157
 
182
- redrawBoardAsTable() {
158
+ class BoardAsTable {
159
+ constructor(container, extension) {
160
+ this.extension = extension
161
+ this.chessboard = extension.chessboard
162
+ this.boardAsTableContainer = Utils.createDomElement(`<div><h3 id="hl_table_${this.chessboard.id}">${extension.t.board_as_table}</h3><div class="table"></div></div>`)
163
+ this.boardAsTable = this.boardAsTableContainer.querySelector(".table")
164
+ container.appendChild(this.boardAsTableContainer)
165
+ extension.registerExtensionPoint(EXTENSION_POINT.positionChanged, () => {
166
+ this.redraw()
167
+ })
168
+ extension.registerExtensionPoint(EXTENSION_POINT.boardChanged, () => {
169
+ this.redraw()
170
+ })
171
+ }
172
+
173
+ redraw() {
183
174
  const squares = this.chessboard.state.position.squares.slice()
184
175
  const ranks = ["a", "b", "c", "d", "e", "f", "g", "h"]
185
176
  const files = ["8", "7", "6", "5", "4", "3", "2", "1"]
@@ -201,7 +192,7 @@ ${listB}`
201
192
  if (pieceCode) {
202
193
  color = pieceCode.charAt(0)
203
194
  name = pieceCode.charAt(1)
204
- html += `<td>${renderPieceTitle(this.lang, name, color)}</td>`
195
+ html += `<td>${renderPieceTitle(this.extension.lang, name, color)}</td>`
205
196
  } else {
206
197
  html += `<td></td>`
207
198
  }
@@ -211,11 +202,35 @@ ${listB}`
211
202
  html += "</table>"
212
203
  this.boardAsTable.innerHTML = html
213
204
  }
205
+ }
214
206
 
215
- createElement(html) {
216
- const template = document.createElement('template')
217
- template.innerHTML = html.trim()
218
- return template.content.firstChild
207
+ class PiecesAsList {
208
+ constructor(container, extension) {
209
+ this.extension = extension
210
+ this.chessboard = extension.chessboard
211
+ this.piecesListContainer = Utils.createDomElement(`<div><h3 id="hl_lists_${this.chessboard.id}">${extension.t.pieces_lists}</h3><div class="list"></div></div>`)
212
+ this.piecesList = this.piecesListContainer.querySelector(".list")
213
+ container.appendChild(this.piecesListContainer)
214
+ extension.registerExtensionPoint(EXTENSION_POINT.positionChanged, () => {
215
+ this.redraw()
216
+ })
219
217
  }
220
218
 
219
+ redraw() {
220
+ const pieces = this.chessboard.state.position.getPieces()
221
+ let listW = ""
222
+ let listB = ""
223
+ for (const piece of pieces) {
224
+ if (piece.color === "w") {
225
+ listW += `<li class="list-inline-item">${renderPieceTitle(this.extension.lang, piece.name)} ${piece.position}</li>`
226
+ } else {
227
+ listB += `<li class="list-inline-item">${renderPieceTitle(this.extension.lang, piece.name)} ${piece.position}</li>`
228
+ }
229
+ }
230
+ this.piecesList.innerHTML = `
231
+ <h4 id="white_${this.chessboard.id}">${this.extension.t.pieces} ${this.extension.tPieces.colors_long.w}</h4>
232
+ <ul aria-labelledby="white_${this.chessboard.id}" class="list-inline">${listW}</ul>
233
+ <h4 id="black_${this.chessboard.id}">${this.extension.t.pieces} ${this.extension.tPieces.colors_long.b}</h4>
234
+ <ul aria-labelledby="black_${this.chessboard.id}" class="list-inline">${listB}</ul>`
235
+ }
221
236
  }
@@ -38,6 +38,12 @@ export class Utils {
38
38
  return target
39
39
  }
40
40
 
41
+ static createDomElement(html) {
42
+ const template = document.createElement('template')
43
+ template.innerHTML = html.trim()
44
+ return template.content.firstChild
45
+ }
46
+
41
47
  static createTask() {
42
48
  let resolve, reject
43
49
  const promise = new Promise(function (_resolve, _reject) {