{"version":3,"sources":["browser/monaco-color-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAEnD,qBACa,mBAAoB,SAAQ,aAAa;IAElD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,0CAA+D;IACpG,SAAS,CAAC,QAAQ,CAAC,mBAAmB,8BAAmC;IAEvE,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAMvC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK/C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,UAAU;IAY7D,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;CAenF","file":"../../src/browser/monaco-color-registry.d.ts","sourcesContent":["import {injectable} from 'inversify';\r\nimport {Color, ColorRegistry} from '@tartjs/core/lib/browser/color-registry';\r\nimport {ColorDefinition} from '@tartjs/core/lib/common/color';\r\nimport {Disposable} from '@tartjs/core/lib/common';\r\n\r\n@injectable()\r\nexport class MonacoColorRegistry extends ColorRegistry {\r\n\r\n    protected readonly monacoThemeService = monaco.services.StaticServices.standaloneThemeService.get();\r\n    protected readonly monacoColorRegistry = monaco.color.getColorRegistry();\r\n\r\n    * getColors(): IterableIterator<string> {\r\n        for (const {id} of this.monacoColorRegistry.getColors()) {\r\n            yield id;\r\n        }\r\n    }\r\n\r\n    getCurrentColor(id: string): string | undefined {\r\n        const color = this.monacoThemeService.getColorTheme().getColor(id);\r\n        return color && color.toString();\r\n    }\r\n\r\n    protected doRegister(definition: ColorDefinition): Disposable {\r\n        let defaults: monaco.color.ColorDefaults | undefined;\r\n        if (definition.defaults) {\r\n            defaults = {};\r\n            defaults.dark = this.toColor(definition.defaults.dark);\r\n            defaults.light = this.toColor(definition.defaults.light);\r\n            defaults.hc = this.toColor(definition.defaults.hc);\r\n        }\r\n        const identifier = this.monacoColorRegistry.registerColor(definition.id, defaults, definition.description);\r\n        return Disposable.create(() => this.monacoColorRegistry.deregisterColor(identifier));\r\n    }\r\n\r\n    protected toColor(value: Color | undefined): monaco.color.ColorValue | undefined {\r\n        if (!value || typeof value === 'string') {\r\n            // @ts-ignore\r\n            return value;\r\n        }\r\n        if ('kind' in value) {\r\n            return monaco.color[value.kind](value.v, value.f);\r\n        } else if ('r' in value) {\r\n            const {r, g, b, a} = value;\r\n            return new monaco.color.Color(new monaco.color.RGBA(r, g, b, a));\r\n        } else {\r\n            const {h, s, l, a} = value;\r\n            return new monaco.color.Color(new monaco.color.HSLA(h, s, l, a));\r\n        }\r\n    }\r\n}\r\n"]}