(id, scaleType, index, scalePosition)
| 122 | } |
| 123 | |
| 124 | function replaceScaleKeyInputsFromClass(id, scaleType, index, scalePosition) { |
| 125 | let smoothWrapper = document.getElementById(`${scaleType}_smoothWrapper`); |
| 126 | let smooth = document.getElementById(`${scaleType}_smooth`); |
| 127 | |
| 128 | let parentId = id.replace('_addKeyColor', ''); |
| 129 | |
| 130 | let currentColor, colorKeys; |
| 131 | if (scaleType === 'sequential') { |
| 132 | currentColor = _sequentialScale; |
| 133 | colorKeys = currentColor.colorKeys; |
| 134 | } |
| 135 | if (scaleType === 'diverging') { |
| 136 | currentColor = _divergingScale; |
| 137 | colorKeys = scalePosition === 'start' ? currentColor.startKeys : currentColor.endKeys; |
| 138 | } |
| 139 | |
| 140 | colorKeys.splice(index, 1); |
| 141 | // reassign new array to color class |
| 142 | if (scaleType === 'sequential') { |
| 143 | currentColor.colorKeys = colorKeys; |
| 144 | } |
| 145 | if (scaleType === 'diverging') { |
| 146 | if (scalePosition === 'start') currentColor.startKeys = colorKeys; |
| 147 | if (scalePosition === 'end') currentColor.endKeys = colorKeys; |
| 148 | } |
| 149 | |
| 150 | if (scaleType === 'sequential') { |
| 151 | removeElementsByClass(`keyColor-${scaleType}`); |
| 152 | } else { |
| 153 | if (scalePosition === 'start') { |
| 154 | // only remove respective inputs |
| 155 | let parentDest = document.getElementById('diverging_startKeyColors'); |
| 156 | removeElementsByClass(`keyColor-${scaleType}`, parentDest); |
| 157 | } else { |
| 158 | // only remove respective inputs |
| 159 | let parentDest = document.getElementById('diverging_endKeyColors'); |
| 160 | removeElementsByClass(`keyColor-${scaleType}`, parentDest); |
| 161 | } |
| 162 | } |
| 163 | |
| 164 | // If new color keys length is less than three, force |
| 165 | // smoothing to false, and update UI toggle, as smooth |
| 166 | // option should be removed when only two key colors are |
| 167 | // present... colorscale becomes all black. |
| 168 | if (colorKeys.length < 3) { |
| 169 | smooth.checked = false; |
| 170 | currentColor.smooth = false; |
| 171 | } |
| 172 | |
| 173 | if (scaleType === 'sequential') { |
| 174 | currentColor.colorKeys.forEach((key, i) => { |
| 175 | addScaleKeyColorInput(key, id, scaleType, i, scalePosition); |
| 176 | }); |
| 177 | } else { |
| 178 | if (scalePosition === 'start') { |
| 179 | currentColor.startKeys.forEach((key, i) => { |
| 180 | addScaleKeyColorInput(key, id, scaleType, i, scalePosition); |
| 181 | }); |
no test coverage detected