@@ -184,15 +184,15 @@ function setBomCheckboxState(checkbox, element, references) {
184
184
element . indeterminate = ( state == "indeterminate" ) ;
185
185
}
186
186
187
- function createCheckboxChangeHandler ( checkbox , references , row ) {
188
- return function ( ) {
187
+ function createCheckboxHandlers ( input , checkbox , references , row ) {
188
+ var clickHandler = ( ) => {
189
189
refsSet = getStoredCheckboxRefs ( checkbox ) ;
190
190
var markWhenChecked = settings . markWhenChecked == checkbox ;
191
191
eventArgs = {
192
192
checkbox : checkbox ,
193
193
refs : references ,
194
194
}
195
- if ( this . checked ) {
195
+ if ( input . checked ) {
196
196
// checkbox ticked
197
197
for ( var ref of references ) {
198
198
refsSet . add ( ref [ 1 ] ) ;
@@ -224,6 +224,22 @@ function createCheckboxChangeHandler(checkbox, references, row) {
224
224
updateCheckboxStats ( checkbox ) ;
225
225
EventHandler . emitEvent ( IBOM_EVENT_TYPES . CHECKBOX_CHANGE_EVENT , eventArgs ) ;
226
226
}
227
+
228
+ return [
229
+ ( e ) => {
230
+ clickHandler ( ) ;
231
+ } ,
232
+ ( e ) => {
233
+ e . preventDefault ( ) ;
234
+ if ( row . onmousemove ) row . onmousemove ( ) ;
235
+ } ,
236
+ ( e ) => {
237
+ e . preventDefault ( ) ;
238
+ input . checked = ! input . checked ;
239
+ input . indeterminate = false ;
240
+ clickHandler ( ) ;
241
+ }
242
+ ] ;
227
243
}
228
244
229
245
function clearHighlightedFootprints ( ) {
@@ -679,7 +695,7 @@ function populateBomBody(placeholderColumn = null, placeHolderElements = null) {
679
695
td = document . createElement ( "TD" ) ;
680
696
var input = document . createElement ( "input" ) ;
681
697
input . type = "checkbox" ;
682
- input . onchange = createCheckboxChangeHandler ( checkbox , references , tr ) ;
698
+ [ input . onchange , td . ontouchstart , td . ontouchend ] = createCheckboxHandlers ( input , checkbox , references , tr ) ;
683
699
setBomCheckboxState ( checkbox , input , references ) ;
684
700
if ( input . checked && settings . markWhenChecked == checkbox ) {
685
701
tr . classList . add ( "checked" ) ;
@@ -1035,7 +1051,8 @@ function toggleBomCheckbox(bomrowid, checkboxnum) {
1035
1051
return ;
1036
1052
}
1037
1053
var bomrow = document . getElementById ( bomrowid ) ;
1038
- var checkbox = bomrow . childNodes [ checkboxnum ] . childNodes [ 0 ] ;
1054
+ var childNum = checkboxnum + settings . columnOrder . indexOf ( "checkboxes" ) ;
1055
+ var checkbox = bomrow . childNodes [ childNum ] . childNodes [ 0 ] ;
1039
1056
checkbox . checked = ! checkbox . checked ;
1040
1057
checkbox . indeterminate = false ;
1041
1058
checkbox . onchange ( ) ;
@@ -1051,7 +1068,8 @@ function checkBomCheckbox(bomrowid, checkboxname) {
1051
1068
return ;
1052
1069
}
1053
1070
var bomrow = document . getElementById ( bomrowid ) ;
1054
- var checkbox = bomrow . childNodes [ checkboxnum + 1 ] . childNodes [ 0 ] ;
1071
+ var childNum = checkboxnum + 1 + settings . columnOrder . indexOf ( "checkboxes" ) ;
1072
+ var checkbox = bomrow . childNodes [ childNum ] . childNodes [ 0 ] ;
1055
1073
checkbox . checked = true ;
1056
1074
checkbox . indeterminate = false ;
1057
1075
checkbox . onchange ( ) ;
0 commit comments