UNPKG

4.28 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/color.ts"],"names":["rgb2arr","str","color","d3","arr","r","g","b","opacity","decodePickingColor","i1","i2","i3","index","encodePickingColor","featureIdx","generateColorRamp","colorRamp","canvas","document","createElement","ctx","getContext","width","height","gradient","createLinearGradient","data","min","positions","max","length","i","colors","value","addColorStop","fillStyle","fillRect","Uint8ClampedArray","getImageData","ImageData"],"mappings":"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","sourcesContent":["import * as d3 from 'd3-color';\nexport interface IColorRamp {\n positions: number[];\n colors: string[];\n}\nexport function rgb2arr(str: string) {\n const color = d3.color(str) as d3.RGBColor;\n const arr = [0, 0, 0, 0];\n if (color != null) {\n arr[0] = color.r / 255;\n arr[1] = color.g / 255;\n arr[2] = color.b / 255;\n arr[3] = color.opacity;\n }\n return arr;\n}\n\nexport function decodePickingColor(color: Uint8Array): number {\n const i1 = color && color[0];\n const i2 = color && color[1];\n const i3 = color && color[2];\n // 1 was added to seperate from no selection\n const index = i1 + i2 * 256 + i3 * 65536 - 1;\n return index;\n}\n\nexport function encodePickingColor(\n featureIdx: number,\n): [number, number, number] {\n return [\n (featureIdx + 1) & 255,\n ((featureIdx + 1) >> 8) & 255,\n (((featureIdx + 1) >> 8) >> 8) & 255,\n ];\n}\n\nexport function generateColorRamp(colorRamp: IColorRamp): ImageData {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n canvas.width = 256;\n canvas.height = 1;\n const gradient = ctx.createLinearGradient(0, 0, 256, 1);\n let data = null;\n const min = colorRamp.positions[0];\n const max = colorRamp.positions[colorRamp.positions.length - 1];\n for (let i = 0; i < colorRamp.colors.length; ++i) {\n const value = (colorRamp.positions[i] - min) / (max - min);\n gradient.addColorStop(value, colorRamp.colors[i]);\n }\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, 256, 1);\n data = new Uint8ClampedArray(ctx.getImageData(0, 0, 256, 1).data);\n\n return new ImageData(data, 256, 1);\n}\n"],"file":"color.js"}
\No newline at end of file