(c, thisId = this.id, scaleType, index, scalePosition)
| 20 | import {extendChroma} from './chroma-plus'; |
| 21 | |
| 22 | function addScaleKeyColorInput(c, thisId = this.id, scaleType, index, scalePosition) { |
| 23 | let sampleNumber = document.getElementById(`${scaleType}Samples`); |
| 24 | let chartsModeSelect = document.getElementById(`${scaleType}_chartsMode`); |
| 25 | let currentColor; |
| 26 | if (scaleType === 'sequential') currentColor = _sequentialScale; |
| 27 | if (scaleType === 'diverging') currentColor = _divergingScale; |
| 28 | let currentKeys = scaleType === 'sequential' ? currentColor.colorKeys : scalePosition === 'start' ? currentColor.startKeys : scalePosition === 'end' ? currentColor.endKeys : currentColor.middleKey; |
| 29 | let parent = thisId.replace('_addKeyColor', '').replace('_addStartKeyColor', '').replace('_addEndKeyColor', ''); |
| 30 | |
| 31 | let concatString = scaleType === 'theme' || scaleType === 'sequential' ? '_keyColors' : `_${scalePosition}KeyColors`; |
| 32 | |
| 33 | let destId = parent.concat(concatString); |
| 34 | |
| 35 | let dest = document.getElementById(destId); |
| 36 | let div = document.createElement('div'); |
| 37 | |
| 38 | let randId = randomId(); |
| 39 | if (scalePosition === 'middle') { |
| 40 | div.className = `keyColor keyColor-${scaleType} keyColor-${scaleType}-${scalePosition}`; |
| 41 | } else { |
| 42 | div.className = `keyColor keyColor-${scaleType}`; |
| 43 | } |
| 44 | div.id = randId + '-item'; |
| 45 | let sw = document.createElement('input'); |
| 46 | sw.type = 'color'; |
| 47 | sw.value = c; |
| 48 | |
| 49 | sw.addEventListener( |
| 50 | 'input', |
| 51 | throttle((e) => { |
| 52 | // Replace current indexed value from color keys with new value from color input field |
| 53 | c = e.target.value; |
| 54 | |
| 55 | if (scaleType === 'sequential') { |
| 56 | // let currentKeys = currentColor.colorKeys; |
| 57 | currentKeys.splice(index, 1, c); |
| 58 | currentColor.colorKeys = currentKeys; |
| 59 | } |
| 60 | if (scaleType === 'diverging') { |
| 61 | if (scalePosition === 'start') { |
| 62 | // let currentKeys = currentColor.startKeys; |
| 63 | currentKeys.splice(index, 1, c); |
| 64 | currentColor.startKeys = currentKeys; |
| 65 | } |
| 66 | if (scalePosition === 'end') { |
| 67 | // let currentKeys = currentColor.endKeys; |
| 68 | currentKeys.splice(index, 1, c); |
| 69 | currentColor.endKeys = currentKeys; |
| 70 | } |
| 71 | if (scalePosition === 'middle') { |
| 72 | currentColor.middleKey = c; |
| 73 | } |
| 74 | } |
| 75 | |
| 76 | updateRamps(currentColor, parent, scaleType); |
| 77 | updateColorDots(chartsModeSelect.value, scaleType); |
| 78 | createSamples(sampleNumber.value, scaleType); |
| 79 | if (scaleType === 'sequential' || scaleType === 'diverging') { |
no test coverage detected