update at 2026-01-22 21:12:46
This commit is contained in:
@@ -54,6 +54,11 @@ export class ColorResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const color = this.resolveColor(layer.colorRef);
|
const color = this.resolveColor(layer.colorRef);
|
||||||
|
if (typeof layer.num === 'number' && layer.num > 0) {
|
||||||
|
const interval = layer.interval ?? 0;
|
||||||
|
return applyPatternColoring(layer.divisions, color, layer.num, interval);
|
||||||
|
}
|
||||||
|
|
||||||
for (let i = 0; i < layer.divisions; i++) {
|
for (let i = 0; i < layer.divisions; i++) {
|
||||||
colorMap.set(i, color);
|
colorMap.set(i, color);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,20 +27,37 @@ describe('colorResolver', () => {
|
|||||||
expect(map.has(5)).toBe(false);
|
expect(map.has(5)).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('resolveLayerColors 在提供 colorRef 时覆盖全部扇区', () => {
|
it('resolveLayerColors 在提供 colorRef 且无 num 时覆盖全部扇区', () => {
|
||||||
const resolver = new ColorResolver(theme, '#000000');
|
const resolver = new ColorResolver(theme, '#000000');
|
||||||
const layer: SectorLayerConfig = {
|
const layer: SectorLayerConfig = {
|
||||||
divisions: 4,
|
divisions: 4,
|
||||||
rInner: 0,
|
rInner: 0,
|
||||||
rOuter: 10,
|
rOuter: 10,
|
||||||
colorRef: '火',
|
colorRef: '火',
|
||||||
|
};
|
||||||
|
const map = resolver.resolveLayerColors(layer);
|
||||||
|
expect(map.size).toBe(4);
|
||||||
|
expect(map.get(0)).toBe('#E53935');
|
||||||
|
expect(map.get(3)).toBe('#E53935');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('resolveLayerColors 在提供 num 时使用规律填色', () => {
|
||||||
|
const resolver = new ColorResolver(theme, '#000000');
|
||||||
|
const layer: SectorLayerConfig = {
|
||||||
|
divisions: 6,
|
||||||
|
rInner: 0,
|
||||||
|
rOuter: 10,
|
||||||
|
colorRef: '火',
|
||||||
num: 2,
|
num: 2,
|
||||||
interval: 1,
|
interval: 1,
|
||||||
};
|
};
|
||||||
const map = resolver.resolveLayerColors(layer);
|
const map = resolver.resolveLayerColors(layer);
|
||||||
expect(map.size).toBe(4);
|
expect(map.has(0)).toBe(true);
|
||||||
expect(map.get(0)).toBe('#E53935');
|
expect(map.has(1)).toBe(true);
|
||||||
expect(map.get(3)).toBe('#E53935');
|
expect(map.has(2)).toBe(false);
|
||||||
|
expect(map.has(3)).toBe(true);
|
||||||
|
expect(map.has(4)).toBe(true);
|
||||||
|
expect(map.has(5)).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('resolveSectorColor 应遵循 sector > layer > background 优先级', () => {
|
it('resolveSectorColor 应遵循 sector > layer > background 优先级', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user