MCPcopy Create free account
hub / github.com/adobe/leonardo / addScaleKeyColorInput

Function addScaleKeyColorInput

docs/ui/src/js/scaleKeyColors.js:22–122  ·  view source on GitHub ↗
(c, thisId = this.id, scaleType, index, scalePosition)

Source from the content-addressed store, hash-verified

20import {extendChroma} from './chroma-plus';
21
22function 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') {

Callers 5

bulkScaleItemColorInputFunction · 0.90
colorScaleDivergingFunction · 0.90
colorScaleSequentialFunction · 0.90
addScaleKeyColorFunction · 0.85

Calls 9

randomIdFunction · 0.90
throttleFunction · 0.90
updateRampsFunction · 0.90
updateColorDotsFunction · 0.90
createSamplesFunction · 0.90
createPanelReportTableFunction · 0.90
createDemosFunction · 0.90
create3dModelFunction · 0.90

Tested by

no test coverage detected