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

Function replaceScaleKeyInputsFromClass

docs/ui/src/js/scaleKeyColors.js:124–218  ·  view source on GitHub ↗
(id, scaleType, index, scalePosition)

Source from the content-addressed store, hash-verified

122}
123
124function 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 });

Callers 1

addScaleKeyColorInputFunction · 0.85

Calls 3

removeElementsByClassFunction · 0.90
updateRampsFunction · 0.90
addScaleKeyColorInputFunction · 0.85

Tested by

no test coverage detected