@soonspacejs/plugin-cps-scheme 2.13.7 → 2.13.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/constants.d.ts +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.esm.js +1 -3388
- package/dist/types.d.ts +29 -0
- package/env.d.ts +2 -2
- package/package.json +4 -4
- package/dist/index.esm.js.map +0 -1
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import CpsSoonmanagerPlugin from '@soonspacejs/plugin-cps-soonmanager';
|
|
2
|
+
export type TInitOptions = {
|
|
3
|
+
el: string;
|
|
4
|
+
schemeId: string;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
dependencyPlugins: {
|
|
7
|
+
cpsSoonmanagerPlugin: CpsSoonmanagerPlugin;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 执行回调(节点点击)
|
|
11
|
+
*/
|
|
12
|
+
execCallback?: (content: string, originData: ISchemeNode) => void;
|
|
13
|
+
};
|
|
14
|
+
export interface ISchemeNode {
|
|
15
|
+
id: string;
|
|
16
|
+
btnId: string;
|
|
17
|
+
enable: boolean;
|
|
18
|
+
name?: string;
|
|
19
|
+
content?: string;
|
|
20
|
+
contentPath?: string;
|
|
21
|
+
flow?: {
|
|
22
|
+
flowId: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface ISchemeData {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
nodes: Record<string, ISchemeNode>;
|
|
29
|
+
}
|
package/env.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare module '@mkkellogg/gaussian-splats-3d' {
|
|
2
|
-
export const DropInViewer: any
|
|
1
|
+
declare module '@mkkellogg/gaussian-splats-3d' {
|
|
2
|
+
export const DropInViewer: any
|
|
3
3
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soonspacejs/plugin-cps-scheme",
|
|
3
3
|
"pluginName": "CpsSchemePlugin",
|
|
4
|
-
"version": "2.13.
|
|
4
|
+
"version": "2.13.8",
|
|
5
5
|
"description": "cps scheme plugin for SoonSpace.js",
|
|
6
6
|
"main": "dist/index.esm.js",
|
|
7
7
|
"module": "dist/index.esm.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
],
|
|
14
14
|
"author": "xunwei",
|
|
15
15
|
"license": "UNLICENSED",
|
|
16
|
-
"gitHead": "
|
|
16
|
+
"gitHead": "d6b6f55e087ba0621e8bb404fc63c99fd4389660",
|
|
17
17
|
"dependencyPlugins": [
|
|
18
18
|
"plugin-cps-soonmanager"
|
|
19
19
|
],
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"color": "4.2.3"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"@soonspacejs/plugin-cps-soonmanager": "2.13.
|
|
25
|
-
"soonspacejs": "2.13.
|
|
24
|
+
"@soonspacejs/plugin-cps-soonmanager": "2.13.8",
|
|
25
|
+
"soonspacejs": "2.13.8"
|
|
26
26
|
}
|
|
27
27
|
}
|
package/dist/index.esm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/constants.ts","../../../../node_modules/color-name/index.js","../../../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../../../../node_modules/simple-swizzle/index.js","../../../../node_modules/color-string/index.js","../../../../node_modules/color-convert/conversions.js","../../../../node_modules/color-convert/route.js","../../../../node_modules/color-convert/index.js","../../../../node_modules/color/index.js","../src/controller/color.js","../src/controller/base.js","../src/controller/phase.js","../src/controller/button.js","../src/controller/st-button.js","../src/controller/anchor.js","../src/controller/ot-button.js","../src/controller/platter.js","../src/index.ts"],"sourcesContent":["export const SCHEME_DATA_FILE_PATH = '/db/prediction_scheme.json'","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","import Color from 'color'\r\n\r\nexport const colors = {\r\n red: Color( 'red' ),\r\n}\r\n\r\nexport const inActive = {\r\n fill: Color( '#999999' ),\r\n stroke: Color( '#999999' ),\r\n text: Color( 'black' ),\r\n notReady: Color( '#333333' ),\r\n}\r\n\r\nexport const active = {\r\n text: Color( 'black' ),\r\n whiteText: Color( 'white' ),\r\n notReady: Color( '#980A0A' ),\r\n notReadyLight: Color( 'red' ),\r\n}\r\n\r\nexport const mainColor = [\r\n Color( '#999999' ),\r\n Color( '#FDA667' ),\r\n Color( '#EFC14C' ),\r\n Color( '#50BCEA' ),\r\n Color( '#977FFC' )\r\n]\r\n","import { active, inActive, mainColor, } from './color'\r\nimport Color from 'color'\r\n\r\nexport const ActiveState = Object.freeze( {\r\n ACTIVE: 1,\r\n PREPARE: 0.5,\r\n INACTIVE: 0,\r\n UNDEFINED: -1,\r\n} )\r\n\r\nexport const ReadyState = Object.freeze( {\r\n READY: 1,\r\n NOT_READY: 0,\r\n UNDEFINED: -1,\r\n} )\r\n\r\nexport class BaseButton {\r\n\r\n platter\r\n svgNode\r\n _tspanNode\r\n _textNode\r\n _pathNode\r\n behavior\r\n\r\n activeState = ActiveState.UNDEFINED\r\n readyState = ReadyState.UNDEFINED\r\n\r\n _color = {}\r\n _hover = false\r\n freezeHover = false\r\n /**\r\n * 配置模式\r\n */\r\n _configMode = false\r\n\r\n TXT_LENGTH = 10\r\n\r\n get id () {\r\n\r\n return this.svgNode.id\r\n \r\n }\r\n\r\n get text () {\r\n\r\n return this._tspanNode.innerHTML\r\n \r\n }\r\n\r\n get isReady () {\r\n\r\n return this.readyState === ReadyState.READY\r\n \r\n }\r\n\r\n constructor ( platter, svgNode, behavior ) {\r\n\r\n this.platter = platter\r\n this.svgNode = svgNode\r\n this._textNode = this._getTextNode( svgNode )\r\n const el = svgNode.getElementsByTagName( 'tspan' )\r\n\r\n if ( el.length ) {\r\n\r\n this._tspanNode = el[ 0 ]\r\n \r\n }\r\n this._bindEvent( svgNode )\r\n\r\n const split = this.id.split( '_' )\r\n\r\n if ( split.length >= 2 ) {\r\n\r\n const p = parseInt( split[ 1 ].substring( 1 ) )\r\n\r\n this._color.main = mainColor[ p ]\r\n \r\n }\r\n\r\n this._initColor()\r\n this.refresh( behavior )\r\n \r\n }\r\n\r\n _bindEvent ( svgNode ) {\r\n\r\n svgNode.onclick = ( e ) => {\r\n\r\n const event = this._createEvent( e )\r\n\r\n this.platter._triggerEvent( event )\r\n \r\n }\r\n svgNode.onmouseover = ( e ) => {\r\n\r\n this.setHover( true )\r\n const event = this._createEvent( e )\r\n\r\n this.platter._triggerEvent( event )\r\n \r\n }\r\n svgNode.onmouseout = ( e ) => {\r\n\r\n this.setHover( false )\r\n const event = this._createEvent( e )\r\n\r\n this.platter._triggerEvent( event )\r\n \r\n }\r\n \r\n }\r\n\r\n _createEvent ( e ) {\r\n\r\n return {\r\n id: this.id,\r\n text: this.text,\r\n label: this.behavior && this.behavior.label,\r\n state: {\r\n active: this.activeState,\r\n ready: this.readyState,\r\n },\r\n type: e.type,\r\n srcElement: this,\r\n userData: this.behavior && this.behavior.userData,\r\n mouseEvent: e,\r\n }\r\n \r\n }\r\n\r\n setVisible ( b ) {\r\n\r\n if ( b ) {\r\n\r\n this.svgNode.style.display = ''\r\n \r\n } else {\r\n\r\n this.svgNode.style.display = 'none'\r\n \r\n }\r\n \r\n }\r\n\r\n setText ( text, align = false ) {\r\n\r\n if ( this._tspanNode ) {\r\n\r\n if ( !align ) {\r\n\r\n this._tspanNode.innerHTML = text\r\n return\r\n \r\n }\r\n\r\n let count = 0\r\n let txt2 = ''\r\n\r\n for ( const e of text ) {\r\n\r\n if ( /[\\u4e00-\\u9fa5]/g.test( e ) || /[\\uff00-\\uffff]/g.test( e ) ) {\r\n\r\n if ( count + 2 > this.TXT_LENGTH ) {\r\n\r\n break\r\n \r\n }\r\n count += 2\r\n txt2 += e\r\n \r\n } else {\r\n\r\n count += 1\r\n txt2 += e\r\n \r\n }\r\n if ( count >= this.TXT_LENGTH ) {\r\n\r\n break\r\n \r\n }\r\n \r\n }\r\n if ( count < this.TXT_LENGTH ) {\r\n\r\n const n = this.TXT_LENGTH - count\r\n\r\n for ( let i = 0; i < n / 2; i++ ) {\r\n\r\n txt2 = ' ' + txt2 + ' '\r\n \r\n }\r\n \r\n }\r\n /*let txt = text ? text.substring(0, TXT_LENGTH) : ''\r\n if (txt.length < TXT_LENGTH) {\r\n const n = TXT_LENGTH - txt.length\r\n for (let i = 0; i < n; i++) {\r\n txt = ' ' + txt + ' '\r\n }\r\n }*/\r\n this._tspanNode.innerHTML = txt2\r\n \r\n }\r\n \r\n }\r\n\r\n _setActive ( activeState ) {\r\n\r\n this.activeState = activeState\r\n this._changeColor()\r\n \r\n }\r\n\r\n setActive ( active ) {\r\n\r\n // TODO\r\n this.activeState = active ? ActiveState.ACTIVE : ActiveState.INACTIVE\r\n this._changeColor()\r\n \r\n }\r\n\r\n _setReady ( readyState ) {\r\n\r\n this.readyState = readyState\r\n switch ( readyState ) {\r\n\r\n case ReadyState.READY:\r\n this.setReady( true )\r\n break\r\n case ReadyState.NOT_READY:\r\n this.setReady( false )\r\n break\r\n default:\r\n this.resetReady()\r\n \r\n }\r\n \r\n }\r\n\r\n setReady ( ready ) {\r\n\r\n this.readyState = ready ? ReadyState.READY : ReadyState.NOT_READY\r\n this._changeColor()\r\n \r\n }\r\n\r\n resetReady () {\r\n\r\n this.readyState = ReadyState.UNDEFINED\r\n this._changeColor()\r\n \r\n }\r\n\r\n setHover ( hover ) {\r\n\r\n if ( this.freezeHover ) return\r\n this._hover = hover\r\n this._changeColor()\r\n \r\n }\r\n\r\n toggleReady () {\r\n\r\n this.setReady( this.readyState !== ReadyState.READY )\r\n \r\n }\r\n\r\n refresh ( behavior ) {\r\n\r\n this.behavior = behavior\r\n if ( this._configMode ) {\r\n\r\n /**\r\n * 配置模式\r\n */\r\n if ( this.behavior.label ) {\r\n\r\n this.setText( this.behavior.label, true )\r\n \r\n } else {\r\n\r\n this.setText( '点击以配置' )\r\n \r\n }\r\n this.setVisible( true )\r\n \r\n } else {\r\n\r\n /**\r\n * 业务场景\r\n */\r\n this.setText( behavior.label || '', true )\r\n // this.setVisible(Boolean(behavior.visible))\r\n this.setVisible( false )\r\n this._setReady( behavior.readyState )\r\n \r\n }\r\n setTimeout( () => {\r\n\r\n this._changeColor()\r\n \r\n } )\r\n \r\n }\r\n\r\n _initColor () {\r\n\r\n if ( this._pathNode ) {\r\n\r\n this._color.fill = Color( this._pathNode.getAttribute( 'fill' ) )\r\n this._color.fillOpacity = this._pathNode.getAttribute( 'fill-opacity' )\r\n this._color.stroke = Color( this._pathNode.getAttribute( 'stroke' ) )\r\n \r\n }\r\n if ( this._textNode ) {\r\n\r\n this._color.text = Color( this._textNode.getAttribute( 'fill' ) )\r\n \r\n }\r\n \r\n }\r\n\r\n _changeColor () {\r\n\r\n // eslint-disable-next-line prefer-const\r\n let { text, fill, fillOpacity, stroke, main, } = this._color\r\n\r\n switch ( this.activeState ) {\r\n\r\n case ActiveState.INACTIVE:\r\n text = inActive.fill\r\n stroke = inActive.stroke\r\n /*if (this._hover) {\r\n fillOpacity = 0.2\r\n }*/\r\n if ( this.readyState === ReadyState.READY ) {\r\n\r\n fill = inActive.fill\r\n text = inActive.text\r\n stroke = undefined\r\n fillOpacity = 1\r\n \r\n } /* else if (this.readyState === ReadyState.NOT_READY) { // 取消未就绪颜色\r\n fill = inActive.notReady\r\n }*/\r\n break\r\n case ActiveState.PREPARE:\r\n case ActiveState.ACTIVE:\r\n if ( this.readyState === ReadyState.READY ) {\r\n\r\n fill = this._color.main\r\n stroke = undefined\r\n fillOpacity = 1\r\n text = active.text\r\n \r\n } /* else if (this.readyState === ReadyState.NOT_READY) { // 取消未就绪颜色\r\n fill = active.notReady\r\n fillOpacity = 1\r\n stroke = undefined\r\n }*/\r\n break\r\n \r\n }\r\n if ( this._hover ) {\r\n\r\n if ( fill ) {\r\n\r\n if ( fillOpacity < 0.3 ) {\r\n\r\n fillOpacity = 0.5\r\n \r\n } else {\r\n\r\n fill = fill.lighten( 0.2 )\r\n \r\n }\r\n \r\n } else {\r\n\r\n text = main\r\n \r\n }\r\n \r\n }\r\n this._setColor( text, fill, fillOpacity, stroke )\r\n \r\n }\r\n\r\n _setColor ( text, fill, fillOpacity, stroke ) {\r\n\r\n if ( this._textNode ) {\r\n\r\n this._textNode.setAttribute( 'fill', text )\r\n \r\n }\r\n if ( this._pathNode ) {\r\n\r\n this._pathNode.setAttribute( 'fill', fill )\r\n this._pathNode.setAttribute( 'fill-opacity', fillOpacity )\r\n this._pathNode.setAttribute( 'stroke', stroke )\r\n \r\n }\r\n \r\n }\r\n\r\n _getTextNode ( svg ) {\r\n\r\n for ( const node of svg.childNodes ) {\r\n\r\n if ( node.tagName === 'text' ) {\r\n\r\n return node\r\n \r\n }\r\n \r\n }\r\n return undefined\r\n \r\n }\r\n\r\n startConfig () {\r\n\r\n this._configMode = true\r\n this.refresh( this.behavior )\r\n \r\n }\r\n\r\n stopConfig () {\r\n\r\n this._configMode = false\r\n this.refresh( this.behavior )\r\n \r\n }\r\n\r\n}\r\n","import { ActiveState, } from './base'\r\nimport Color from 'color'\r\nimport { inActive, } from './color'\r\n\r\nexport class Phase {\r\n\r\n _color = {}\r\n circleNode\r\n buttons = new Set()\r\n anchors = new Set()\r\n\r\n activeState = ActiveState.UNDEFINED\r\n\r\n constructor ( circleNode ) {\r\n\r\n this.circleNode = circleNode\r\n if ( circleNode ) {\r\n\r\n this._color.fill = Color( circleNode.getAttribute( 'fill' ) )\r\n this._color.fillOpacity = parseFloat( circleNode.getAttribute( 'fill-opacity' ) )\r\n this._color.stroke = Color( circleNode.getAttribute( 'stroke' ) )\r\n \r\n }\r\n \r\n }\r\n\r\n addButton ( bn ) {\r\n\r\n this.buttons.add( bn )\r\n \r\n }\r\n\r\n addAnchor ( ac ) {\r\n\r\n this.anchors.add( ac )\r\n \r\n }\r\n\r\n _setActive ( activeState ) {\r\n\r\n this.activeState = activeState\r\n let { fill, fillOpacity, stroke, } = this._color\r\n\r\n switch ( activeState ) {\r\n\r\n case ActiveState.INACTIVE:\r\n fill = inActive.fill\r\n fillOpacity = 0\r\n stroke = inActive.stroke\r\n break\r\n case ActiveState.PREPARE:\r\n fill = 'white'\r\n fillOpacity = 0.1\r\n break\r\n case ActiveState.ACTIVE:\r\n fillOpacity = 0.4\r\n break\r\n \r\n }\r\n this._setColor( fill, fillOpacity, stroke )\r\n for ( const button of this.buttons ) {\r\n\r\n button._setActive( activeState )\r\n \r\n }\r\n for ( const anchor of this.anchors ) {\r\n\r\n anchor._setActive( activeState )\r\n \r\n }\r\n \r\n }\r\n\r\n setActive ( active ) {\r\n\r\n const activeState = this.activeState = active ? ActiveState.ACTIVE : ActiveState.INACTIVE\r\n\r\n this._setActive( activeState )\r\n \r\n }\r\n\r\n isActive () {\r\n\r\n return this.activeState === ActiveState.ACTIVE\r\n \r\n }\r\n\r\n _setColor ( fill, fillOpacity, stroke ) {\r\n\r\n const circleNode = this.circleNode\r\n\r\n if ( circleNode ) {\r\n\r\n circleNode.setAttribute( 'fill', fill )\r\n circleNode.setAttribute( 'fill-opacity', fillOpacity )\r\n circleNode.setAttribute( 'stroke', stroke )\r\n \r\n }\r\n \r\n }\r\n\r\n}\r\n","import { BaseButton, } from './base'\r\n\r\nexport class Button extends BaseButton {\r\n\r\n constructor ( controller, svgNode, behavior ) {\r\n\r\n super( controller, svgNode, behavior )\r\n this._pathNode = this._getPath( svgNode )\r\n this._initColor()\r\n \r\n }\r\n\r\n _getPath ( svgNode ) {\r\n\r\n let g\r\n let path\r\n\r\n for ( const node of svgNode.childNodes ) {\r\n\r\n if ( node.tagName === 'g' ) {\r\n\r\n g = node\r\n \r\n }\r\n \r\n }\r\n if ( g ) {\r\n\r\n for ( const node of g.childNodes ) {\r\n\r\n if ( node.tagName === 'path' ) {\r\n\r\n path = node\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n return path\r\n \r\n }\r\n\r\n}\r\n","import { ActiveState, BaseButton, } from './base'\r\nimport { inActive, } from './color'\r\n\r\nexport class StButton extends BaseButton {\r\n\r\n _circleNode\r\n\r\n constructor ( controller, svgNode, behavior ) {\r\n\r\n super( controller, svgNode, behavior )\r\n this._initNodes( svgNode )\r\n this._initColor()\r\n \r\n }\r\n\r\n setActive ( active ) {\r\n\r\n super.setActive( active )\r\n // this.active = true\r\n \r\n }\r\n\r\n setText ( text ) {\r\n\r\n if ( this._tspanNode ) {\r\n\r\n this._tspanNode.innerHTML = text\r\n \r\n }\r\n \r\n }\r\n\r\n _initNodes ( svgNode ) {\r\n\r\n for ( const node of svgNode.childNodes ) {\r\n\r\n if ( node.tagName === 'rect' ) {\r\n\r\n this._pathNode = node\r\n \r\n } else if ( node.tagName === 'circle' ) {\r\n\r\n this._circleNode = node\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n\r\n _changeColor () {\r\n\r\n let { text, fill, fillOpacity, stroke, } = this._color\r\n\r\n switch ( this.activeState ) {\r\n\r\n case ActiveState.INACTIVE:\r\n text = inActive.fill\r\n fill = inActive.fill\r\n fillOpacity = 0.3\r\n stroke = inActive.stroke\r\n if ( this._hover ) {\r\n\r\n fillOpacity = 0.5\r\n \r\n }\r\n break\r\n case ActiveState.PREPARE:\r\n case ActiveState.ACTIVE:\r\n stroke = undefined\r\n if ( this._hover ) {\r\n\r\n fill = fill.lighten( 0.1 )\r\n \r\n }\r\n break\r\n \r\n }\r\n this._setColor( text, fill, fillOpacity, stroke )\r\n \r\n }\r\n\r\n _setColor ( text, fill, fillOpacity, stroke ) {\r\n\r\n if ( this._textNode ) {\r\n\r\n this._textNode.setAttribute( 'fill', text )\r\n \r\n }\r\n if ( this._circleNode ) {\r\n\r\n this._circleNode.setAttribute( 'fill', fill )\r\n \r\n }\r\n if ( this._pathNode ) {\r\n\r\n this._pathNode.setAttribute( 'fill', fill )\r\n this._pathNode.setAttribute( 'fill-opacity', fillOpacity )\r\n this._pathNode.setAttribute( 'stroke', stroke )\r\n \r\n }\r\n \r\n }\r\n\r\n}\r\n","import { ActiveState, BaseButton, ReadyState, } from './base'\r\nimport { active, inActive, } from './color'\r\n\r\nexport class Anchor extends BaseButton {\r\n\r\n _circleNode\r\n\r\n constructor ( controller, svgNode, behavior ) {\r\n\r\n super( controller, svgNode, behavior )\r\n this._initNodes( svgNode )\r\n this._initColor()\r\n \r\n }\r\n\r\n _initNodes ( svgNode ) {\r\n\r\n for ( const node of svgNode.childNodes ) {\r\n\r\n if ( node.tagName === 'circle' ) {\r\n\r\n this._circleNode = node\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n\r\n _changeColor () {\r\n\r\n // eslint-disable-next-line prefer-const\r\n let { text, fill, fillOpacity, stroke, main, } = this._color\r\n\r\n switch ( this.activeState ) {\r\n\r\n case ActiveState.INACTIVE: {\r\n\r\n stroke = text = inActive.fill\r\n switch ( this.readyState ) {\r\n\r\n case ReadyState.NOT_READY:\r\n stroke = text = inActive.fill\r\n break\r\n case ReadyState.READY:\r\n stroke = text = this._color.main.darken( 0.1 )\r\n break\r\n \r\n }\r\n break\r\n \r\n }\r\n case ActiveState.PREPARE:\r\n case ActiveState.ACTIVE: {\r\n\r\n stroke = text = active.whiteText\r\n switch ( this.readyState ) {\r\n\r\n /*case ReadyState.NOT_READY: // 取消未就绪颜色\r\n stroke = text = active.notReadyLight\r\n break*/\r\n case ReadyState.READY:\r\n stroke = text = this._color.main\r\n break\r\n \r\n }\r\n break\r\n \r\n }\r\n \r\n }\r\n if ( this._hover ) {\r\n\r\n stroke = text = text.lighten( 0.2 )\r\n \r\n }\r\n this._setColor( text, fill, fillOpacity, stroke )\r\n \r\n }\r\n\r\n _setColor ( text, fill, fillOpacity, stroke ) {\r\n\r\n if ( this._textNode ) {\r\n\r\n this._textNode.setAttribute( 'fill', text )\r\n \r\n }\r\n if ( this._circleNode ) {\r\n\r\n this._circleNode.setAttribute( 'stroke', stroke )\r\n \r\n }\r\n \r\n }\r\n\r\n}\r\n","import { BaseButton, } from './base'\r\n\r\nexport class OtButton extends BaseButton {\r\n\r\n constructor ( controller, svgNode, behavior ) {\r\n\r\n super( controller, svgNode, behavior )\r\n \r\n }\r\n\r\n}\r\n","import { Phase, } from './phase'\r\nimport { Button, } from './button'\r\nimport { ActiveState, } from './base'\r\nimport { StButton, } from './st-button'\r\nimport { Anchor, } from './anchor'\r\nimport { OtButton, } from './ot-button'\r\n\r\nexport const ST_PERFIX = 'st' // 中间按钮\r\nexport const BN_PERFIX = 'bn' // 按钮\r\nexport const AC_PERFIX = 'ac' // 原点按钮\r\nexport const OT_PREFIX = 'ot' // 外部文字按钮\r\n\r\n/**\r\n * @behavior\r\n * label: string\r\n * [event type]: () => {}\r\n * readyState: ReadyState\r\n * userData: Object\r\n */\r\nexport const DEFAULT_BEHAVIORS = {\r\n st_p1: {\r\n label: '前期报警',\r\n click: ( c ) => {\r\n\r\n c.setPhase( 1 )\r\n \r\n },\r\n },\r\n st_p2: {\r\n label: '火灾确认',\r\n click: ( c ) => {\r\n\r\n c.setPhase( 2 )\r\n \r\n },\r\n },\r\n st_p3: {\r\n label: '消防联动及疏散',\r\n click: ( c ) => {\r\n\r\n c.setPhase( 3 )\r\n \r\n },\r\n },\r\n st_p4: {\r\n label: '火灾救援及处置',\r\n click: ( c ) => {\r\n\r\n c.setPhase( 4 )\r\n \r\n },\r\n },\r\n // 外部文字\r\n ot_1: { label: '系统', },\r\n ot_2: { label: '物资', },\r\n ot_3: { label: '其他', },\r\n ot_4: { label: '人力', },\r\n ot_5: { label: '乘客', },\r\n}\r\n\r\nconst platterEvent = 'platterEvent'\r\n\r\nexport class Platter {\r\n\r\n rootNode\r\n customBehaviors\r\n\r\n phase = new Map()\r\n buttons = new Map()\r\n anchors = new Map()\r\n\r\n _signal = new EventTarget()\r\n _preventDefault = false\r\n\r\n options = {\r\n placeholder: '你好,世界',\r\n }\r\n\r\n /**\r\n * \r\n * @param {SVGElement} root \r\n * @param {*} behaviors \r\n */\r\n constructor ( root, behaviors, options ) {\r\n\r\n this.rootNode = root\r\n this.customBehaviors = behaviors || {}\r\n this.options = options || {}\r\n this._init()\r\n \r\n }\r\n\r\n _init () {\r\n\r\n const root = this.rootNode\r\n\r\n for ( let i = 1; i <= 4; i++ ) {\r\n\r\n const id = `p${i}`\r\n const circleNode = root.getElementById( `c_p${i}` )\r\n const phase = new Phase( circleNode )\r\n\r\n this.phase.set( id, phase )\r\n \r\n }\r\n const elements = root.getElementsByTagName( 'g' )\r\n\r\n for ( const element of elements ) {\r\n\r\n const id = element.id\r\n\r\n if ( !id ) {\r\n\r\n continue\r\n \r\n }\r\n const split = id.split( '_' )\r\n\r\n if ( split.length < 2 ) {\r\n\r\n continue\r\n \r\n }\r\n const phase = this.phase.get( split[ 1 ] )\r\n const behavior = this._getBehavior( id )\r\n\r\n switch ( split[ 0 ] ) {\r\n\r\n case ST_PERFIX: {\r\n\r\n const button = new StButton( this, element, behavior )\r\n\r\n this.buttons.set( id, button )\r\n if ( phase ) {\r\n\r\n phase.addButton( button )\r\n \r\n }\r\n break\r\n \r\n }\r\n case BN_PERFIX: {\r\n\r\n const button = new Button( this, element, behavior )\r\n\r\n this.buttons.set( id, button )\r\n if ( phase ) {\r\n\r\n phase.addButton( button )\r\n \r\n }\r\n break\r\n \r\n }\r\n case AC_PERFIX: {\r\n\r\n const anchor = new Anchor( this, element, behavior )\r\n\r\n this.anchors.set( id, anchor )\r\n if ( phase ) {\r\n\r\n phase.addAnchor( anchor )\r\n \r\n }\r\n break\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n // 外部环绕文字\r\n const outButton = root.querySelectorAll( `text[id^=${OT_PREFIX}_]` )\r\n\r\n for ( const textNode of outButton ) {\r\n\r\n const id = textNode.id\r\n const behavior = this._getBehavior( id )\r\n const anchor = new OtButton( this, textNode, behavior )\r\n\r\n this.buttons.set( id, anchor )\r\n \r\n }\r\n\r\n // 激活所有圆环\r\n // this._activeAll(ActiveState.PREPARE)\r\n \r\n }\r\n\r\n getItem ( id ) {\r\n\r\n return this.buttons.get( id ) || this.anchors.get( id )\r\n \r\n }\r\n\r\n _getBehavior ( id ) {\r\n\r\n const defaultBehavior = !this._preventDefault && DEFAULT_BEHAVIORS[ id ]\r\n const customBehavior = this.customBehaviors && this.customBehaviors[ id ]\r\n\r\n // if ( defaultBehavior || customBehavior ) {\r\n\r\n return { label: this.options.placeholder, ...defaultBehavior, ...customBehavior, }\r\n \r\n // } else {\r\n\r\n // return { label: this.options.placeholder, }\r\n \r\n // }\r\n \r\n }\r\n\r\n _triggerEvent ( event ) {\r\n\r\n const { id, type, } = event\r\n const behavior = this._getBehavior( id )\r\n\r\n if ( behavior && behavior[ type ] ) {\r\n\r\n behavior[ type ]( this )\r\n \r\n }\r\n event.target = this\r\n const customEvent = new CustomEvent( platterEvent, { detail: event, } )\r\n\r\n this._signal.dispatchEvent( customEvent )\r\n \r\n }\r\n\r\n refresh ( behaviors ) {\r\n\r\n if ( !behaviors ) {\r\n\r\n return\r\n \r\n }\r\n this.customBehaviors = behaviors\r\n for ( const [ id, behavior ] of Object.entries( behaviors ) ) {\r\n\r\n const item = this.getItem( id )\r\n\r\n if ( item ) {\r\n\r\n const behavior = this._getBehavior( id )\r\n\r\n item.refresh( behavior )\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n\r\n setPhase ( phase ) {\r\n\r\n if ( typeof phase !== 'number' ) {\r\n\r\n return\r\n \r\n }\r\n for ( let i = 1; i <= 4; i++ ) {\r\n\r\n let state = ActiveState.INACTIVE\r\n\r\n if ( i <= phase ) {\r\n\r\n state = ActiveState.ACTIVE\r\n \r\n } else if ( i === phase + 1 ) {\r\n\r\n state = ActiveState.PREPARE\r\n \r\n }\r\n const id = `p${i}`\r\n const p = this.phase.get( id )\r\n\r\n if ( p ) {\r\n\r\n p._setActive( state )\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n\r\n activePhase ( phase, active = true ) {\r\n\r\n const id = `p${phase}`\r\n const p = this.phase.get( id )\r\n\r\n if ( p ) {\r\n\r\n p.setActive( !!active )\r\n \r\n }\r\n \r\n }\r\n\r\n _activePhases ( phases, activeState ) {\r\n\r\n [ ...phases ].forEach( ( phase ) => {\r\n\r\n const id = `p${phase}`\r\n const p = this.phase.get( id )\r\n\r\n if ( p ) {\r\n\r\n p._setActive( activeState )\r\n \r\n }\r\n \r\n } )\r\n \r\n }\r\n\r\n _activeReset () {\r\n\r\n for ( const p of this.phase.values() ) {\r\n\r\n p._setActive( ActiveState.UNDEFINED )\r\n \r\n }\r\n \r\n }\r\n\r\n activeAll ( activeState ) {\r\n\r\n for ( const p of this.phase.values() ) {\r\n\r\n p._setActive( activeState )\r\n \r\n }\r\n \r\n }\r\n\r\n togglePhase ( phase ) {\r\n\r\n const id = `p${phase}`\r\n const p = this.phase.get( id )\r\n\r\n if ( p ) {\r\n\r\n p.setActive( !p.isActive() )\r\n \r\n }\r\n \r\n }\r\n\r\n setHover ( id, isHover = true ) {\r\n\r\n [ this.buttons.get( id ), this.anchors.get( id ) ]\r\n .filter( Boolean )\r\n .forEach( ( it ) => it.setHover( isHover ) )\r\n \r\n }\r\n\r\n setActive ( id, isActive = true ) {\r\n\r\n [ this.buttons.get( id ), this.anchors.get( id ) ]\r\n .filter( Boolean )\r\n .forEach( ( it ) => it.setActive( isActive ) )\r\n \r\n }\r\n\r\n clearActive () {\r\n\r\n [ ...this.buttons.values(), ...this.anchors.values() ].forEach( ( it ) =>\r\n it.setActive( false )\r\n )\r\n \r\n }\r\n\r\n setReady ( id, isReady = true ) {\r\n\r\n [ this.buttons.get( id ), this.anchors.get( id ) ]\r\n .filter( Boolean )\r\n .forEach( ( it ) => it.setReady( isReady ) )\r\n \r\n }\r\n\r\n clearReady () {\r\n\r\n [ ...this.buttons.values(), ...this.anchors.values() ].forEach( ( it ) =>\r\n it.setReady( false )\r\n )\r\n \r\n }\r\n\r\n addListener ( listener ) {\r\n\r\n this._signal.addEventListener( platterEvent, listener )\r\n \r\n }\r\n\r\n removeListener ( listener ) {\r\n\r\n this._signal.removeEventListener( platterEvent, listener )\r\n \r\n }\r\n\r\n setPreventDefault ( bool = true ) {\r\n\r\n this._preventDefault = bool\r\n \r\n }\r\n\r\n startConfig () {\r\n\r\n this.setPreventDefault()\r\n for ( const item of [ ...this.buttons.values(), ...this.anchors.values() ] ) {\r\n\r\n item.startConfig()\r\n \r\n }\r\n \r\n }\r\n\r\n stopConfig () {\r\n\r\n this.setPreventDefault( false )\r\n for ( const item of [ ...this.buttons.values(), ...this.anchors.values() ] ) {\r\n\r\n item.stopConfig()\r\n \r\n }\r\n \r\n }\r\n\r\n}\r\n","import SoonSpace from 'soonspacejs'\r\nimport CpsSoonmanagerPlugin from '@soonspacejs/plugin-cps-soonmanager'\r\n\r\nimport { SCHEME_DATA_FILE_PATH, } from './constants'\r\n// @ts-ignore\r\nimport controlSvg from './controller/control.svg'\r\nimport { AC_PERFIX, BN_PERFIX, Platter, } from './controller/platter'\r\nimport { ActiveState, } from './controller/base'\r\nimport { ISchemeData, TInitOptions, } from './types'\r\n\r\nclass CpsSchemePlugin {\r\n\r\n cpsSoonmanagerPlugin!: CpsSoonmanagerPlugin\r\n\r\n platter: Platter | null = null\r\n\r\n schemeData: ISchemeData[] | null = null\r\n\r\n platterDomElement: SVGElement | null = null\r\n\r\n /**\r\n * 自动运行流程\r\n */\r\n public autoRunFlow = true\r\n\r\n private _platterListener: ( ( event: CustomEvent ) => void ) | null = null\r\n\r\n private _platterState: 'initialized' | 'disposed' | null = null\r\n\r\n constructor ( readonly ssp: SoonSpace ) {}\r\n\r\n /**\r\n * 初始化预案八卦盘\r\n * @param options\r\n * @returns\r\n */\r\n async init ( options: TInitOptions ) {\r\n\r\n if ( this._platterState === 'initialized' ) {\r\n\r\n SoonSpace.utils.error(\r\n 'CpsSchemePlugin.init 不能重复调用,请先调用 CpsSchemePlugin.dispose'\r\n )\r\n\r\n return\r\n \r\n }\r\n\r\n this._platterState = 'initialized'\r\n\r\n const {\r\n el,\r\n schemeId,\r\n placeholder = '你好,世界',\r\n dependencyPlugins,\r\n execCallback,\r\n } = options\r\n\r\n const domElement = document.querySelector( el )\r\n\r\n if ( !domElement ) {\r\n\r\n SoonSpace.utils.error( 'CpsSchemePlugin.init method \"el\" param not found' )\r\n\r\n return\r\n \r\n }\r\n\r\n if ( !dependencyPlugins ) {\r\n\r\n SoonSpace.utils.error(\r\n 'CpsSchemePlugin.init method \"dependencyPlugins\" param not found'\r\n )\r\n\r\n return\r\n \r\n }\r\n\r\n const { cpsSoonmanagerPlugin, } = dependencyPlugins\r\n\r\n if ( !cpsSoonmanagerPlugin ) {\r\n\r\n SoonSpace.utils.error(\r\n 'CpsSchemePlugin.init method \"dependencyPlugins.cpsSoonmanagerPlugin\" param not found'\r\n )\r\n\r\n return\r\n \r\n }\r\n\r\n this.cpsSoonmanagerPlugin = cpsSoonmanagerPlugin\r\n\r\n /**\r\n * init data\r\n */\r\n const schemeData = await this.fetchSchemeData()\r\n\r\n const currentScheme = schemeData.find( ( scheme ) => scheme.id === schemeId )\r\n\r\n if ( !currentScheme ) {\r\n\r\n SoonSpace.utils.error(\r\n `CpsSchemePlugin.init() scheme data not found by schemeId(${ schemeId })`\r\n )\r\n\r\n return\r\n \r\n }\r\n\r\n const platterDomElement: SVGElement = controlSvg()\r\n\r\n /**\r\n * init styles\r\n */\r\n platterDomElement.style.width = '100%'\r\n platterDomElement.style.height = '100%'\r\n platterDomElement.style.verticalAlign = 'middle'\r\n platterDomElement.style.userSelect = 'none'\r\n platterDomElement\r\n .querySelectorAll<SVGGElement>( 'g[id^=st_]' )\r\n .forEach( ( g ) => ( g.style.cursor = 'pointer' ) )\r\n platterDomElement\r\n .querySelectorAll<SVGGElement>( 'g[id^=bn_]' )\r\n .forEach( ( g ) => ( g.style.cursor = 'pointer' ) )\r\n platterDomElement\r\n .querySelectorAll<SVGGElement>( 'g[id^=ac_]' )\r\n .forEach( ( g ) => ( g.style.cursor = 'pointer' ) )\r\n platterDomElement\r\n .querySelectorAll<SVGTextElement>( 'g[id^=st_] text' )\r\n .forEach( ( text ) => ( text.style.pointerEvents = 'none' ) )\r\n platterDomElement\r\n .querySelectorAll<SVGTextElement>( 'g[id^=bn_] text' )\r\n .forEach( ( text ) => ( text.style.pointerEvents = 'none' ) )\r\n\r\n domElement.appendChild( platterDomElement )\r\n\r\n this.platterDomElement = platterDomElement\r\n\r\n /**\r\n * init platter controller\r\n */\r\n this.platter = new Platter( platterDomElement, {}, { placeholder, } )\r\n // inactive all\r\n this.platter.activeAll( ActiveState.INACTIVE )\r\n\r\n Object.entries( currentScheme.nodes ).forEach( ( [ id, { name, enable, } ] ) => {\r\n\r\n const item = this.platter?.getItem( id )\r\n\r\n if ( item ) {\r\n\r\n if ( name ) item.refresh( { label: name, } )\r\n // 未启用的节点隐藏\r\n item.setVisible( enable )\r\n \r\n }\r\n \r\n } )\r\n\r\n if ( this._platterListener ) this.platter.removeListener( this._platterListener )\r\n\r\n /**\r\n * 八卦盘事件监听\r\n * @param event\r\n */\r\n const platterListener = async ( event: CustomEvent ) => {\r\n\r\n const detail = event.detail\r\n\r\n if (\r\n detail.type === 'click' &&\r\n [ BN_PERFIX, AC_PERFIX ].some( ( prefix ) => detail.id.startsWith( prefix ) ) && // 按钮过滤\r\n execCallback\r\n ) {\r\n\r\n const { id, } = detail\r\n\r\n const schemeNode = currentScheme.nodes[ id ]\r\n\r\n if ( schemeNode ) {\r\n\r\n /**\r\n * 先判断 content,没有则去请求 contentPath\r\n */\r\n\r\n let _content = ''\r\n\r\n if ( schemeNode.content !== undefined ) {\r\n\r\n _content = schemeNode.content\r\n \r\n } else if ( schemeNode.contentPath !== undefined ) {\r\n\r\n _content = await this.fetchContent( schemeNode.contentPath )\r\n \r\n }\r\n\r\n /**\r\n * 弹窗回调\r\n */\r\n execCallback( _content, schemeNode )\r\n\r\n if ( this.autoRunFlow && schemeNode.flow?.flowId ) {\r\n\r\n this.cpsSoonmanagerPlugin.runFlowById( schemeNode.flow.flowId )\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n\r\n this._platterListener = platterListener\r\n\r\n this.platter.addListener( platterListener )\r\n\r\n }\r\n\r\n /**\r\n * 设置按钮状态 ready\r\n */\r\n setBtnReady ( btnId: string, ready = true ) {\r\n\r\n const item = this.platter?.getItem( btnId )\r\n\r\n if ( item ) {\r\n\r\n item.setReady( ready )\r\n \r\n }\r\n \r\n }\r\n\r\n /**\r\n * 设置按钮状态 hover\r\n */\r\n setBtnHover ( btnId: string, hover = true ) { \r\n\r\n const item = this.platter?.getItem( btnId )\r\n\r\n if ( item ) {\r\n\r\n item.setHover( hover )\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 清除预案八卦盘\r\n * @returns\r\n */\r\n dispose () {\r\n\r\n if ( this._platterState !== 'initialized' ) return\r\n\r\n this._platterState = 'disposed'\r\n if ( this._platterListener ) this.platter?.removeListener( this._platterListener )\r\n this.platter = null\r\n this.schemeData = null\r\n this.platterDomElement?.remove()\r\n this.platterDomElement = null\r\n \r\n }\r\n\r\n\r\n private _resolvePath ( path: string ) {\r\n\r\n return `${this.cpsSoonmanagerPlugin.path}${path}`\r\n \r\n }\r\n\r\n async fetchContent ( path: string ): Promise<string> {\r\n\r\n const { fetchFile, } = SoonSpace.utils\r\n\r\n return fetchFile( this._resolvePath( path ), 'text' )\r\n \r\n }\r\n\r\n async fetchSchemeData (): Promise<ISchemeData[]> {\r\n\r\n const { fetchFile, } = SoonSpace.utils\r\n\r\n return fetchFile( this._resolvePath( SCHEME_DATA_FILE_PATH ), 'json' ).then(\r\n ( data ) => {\r\n\r\n this.schemeData = data\r\n\r\n return data\r\n \r\n }\r\n )\r\n \r\n }\r\n\r\n}\r\n\r\nexport default CpsSchemePlugin\r\n"],"names":["isArrayish","require$$0","swizzle","simpleSwizzleModule","require$$1","colorStringModule","convert","conversions","route","Color"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8]}
|