1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | import { injectable } from 'inversify';
|
18 | import { DisposableCollection, Disposable } from '../common/disposable';
|
19 | import { Emitter } from '../common/event';
|
20 | import { ColorDefinition, ColorCssVariable } from '../common/color';
|
21 |
|
22 | @injectable()
|
23 | export class ColorRegistry {
|
24 |
|
25 | protected readonly onDidChangeEmitter = new Emitter<void>();
|
26 | readonly onDidChange = this.onDidChangeEmitter.event;
|
27 | protected fireDidChange(): void {
|
28 | this.onDidChangeEmitter.fire(undefined);
|
29 | }
|
30 |
|
31 | *getColors(): IterableIterator<string> { }
|
32 |
|
33 | getCurrentCssVariable(id: string): ColorCssVariable | undefined {
|
34 | const value = this.getCurrentColor(id);
|
35 | if (!value) {
|
36 | return undefined;
|
37 | }
|
38 | const name = this.toCssVariableName(id);
|
39 | return { name, value };
|
40 | }
|
41 |
|
42 | toCssVariableName(id: string, prefix = 'theia'): string {
|
43 | return `--${prefix}-${id.replace(/\./g, '-')}`;
|
44 | }
|
45 |
|
46 | getCurrentColor(id: string): string | undefined {
|
47 | return undefined;
|
48 | }
|
49 |
|
50 | register(...definitions: ColorDefinition[]): Disposable {
|
51 | const result = new DisposableCollection(...definitions.map(definition => this.doRegister(definition)));
|
52 | this.fireDidChange();
|
53 | return result;
|
54 | }
|
55 |
|
56 | protected doRegister(definition: ColorDefinition): Disposable {
|
57 | return Disposable.NULL;
|
58 | }
|
59 |
|
60 | }
|