diff --git a/components/tabs/package.json b/components/tabs/package.json index 19f2ad3b2..c3bd79218 100644 --- a/components/tabs/package.json +++ b/components/tabs/package.json @@ -1,12 +1,13 @@ { "name": "@omiu/tabs", - "version": "0.0.3", + "version": "0.0.5", "description": "Omi UI Components.", "main": "src/index.js", + "module": "src/index.esm.js", "types": "src/index.d.ts", "scripts": { "start": "node ./scripts/webpack.build.js -- demo", - "build": "node ./scripts/webpack.build.js -- build" + "build": "node ./scripts/webpack.build.js -- build && rollup -c scripts/rollup.config.js && node ./scripts/rollup.end.js" }, "typings": "./dist/index.d.ts", "repository": { @@ -37,6 +38,7 @@ }, "homepage": "http://omijs.org", "devDependencies": { + "@rollup/plugin-commonjs": "^11.1.0", "css": "^2.2.4", "css-loader": "^1.0.1", "file": "^0.2.2", @@ -49,7 +51,12 @@ "omi": "latest", "omio": "latest", "optimize-css-assets-webpack-plugin": "^5.0.1", + "progress-bar-webpack-plugin": "^2.1.0", "resolve-url-loader": "^3.1.0", + "rollup": "^2.7.1", + "rollup-plugin-license": "^2.0.0", + "rollup-plugin-scss": "^2.4.0", + "rollup-plugin-typescript": "^1.0.1", "sass-loader": "^7.1.0", "style-loader": "^0.23.1", "to-string-loader": "^1.1.5", diff --git a/components/tabs/scripts/rollup.config.js b/components/tabs/scripts/rollup.config.js new file mode 100644 index 000000000..e3a7fdeaa --- /dev/null +++ b/components/tabs/scripts/rollup.config.js @@ -0,0 +1,38 @@ +//import nodeResolve from "rollup-plugin-node-resolve"; + +import typescript from 'rollup-plugin-typescript'; +import scss from 'rollup-plugin-scss' +import commonjs from '@rollup/plugin-commonjs'; +const fs = require('fs') +const license = require("rollup-plugin-license"); +const pkg = require("../package.json"); +const licensePlugin = license({ + banner: `${pkg.name} v${pkg.version} http://omijs.org\r\nFront End Cross-Frameworks Framework.\r\nBy dntzhang https://github.com/dntzhang \r\n Github: https://github.com/Tencent/omi\r\n MIT Licensed.` +}); + +export default { + input: "src/index.tsx", + output: { + format: "es", + file: "./src/index.esm.js", + name: pkg.name, + sourcemap: true, + strict: true + }, + plugins: [ + // nodeResolve({ + // main: true + // }), + scss({ + //output: false, + output: function (styles, styleNodes) { + fs.writeFileSync('./src/index.css', styles) + }, + }), + typescript(), + commonjs(), + + licensePlugin + ], + external: ['omi'] +}; diff --git a/components/tabs/scripts/rollup.end.js b/components/tabs/scripts/rollup.end.js new file mode 100644 index 000000000..14327af1a --- /dev/null +++ b/components/tabs/scripts/rollup.end.js @@ -0,0 +1,16 @@ +const fs = require('fs') + +const css = fs.readFileSync('./src/index.css') + +const js = fs.readFileSync('./src/index.esm.js', 'utf-8') + + +fs.writeFileSync('./src/index.esm.js', +js.replace(`var css = /*#__PURE__*/Object.freeze({ + __proto__: null +});`, ` +var css = \`${css}\` +`) +) + + diff --git a/components/tabs/src/index.css b/components/tabs/src/index.css new file mode 100644 index 000000000..9ef7b081b --- /dev/null +++ b/components/tabs/src/index.css @@ -0,0 +1,663 @@ +:host { + display: block; } + +.o-tabs__header { + padding: 0; + position: relative; + margin: 0 0 15px; } + +.o-tabs__active-bar { + position: absolute; + bottom: 0; + left: 0; + height: 2px; + background-color: #07c160; + z-index: 1; + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + list-style: none; } + +.o-tabs__new-tab { + float: right; + border: 1px solid #d3dce6; + height: 18px; + width: 18px; + line-height: 18px; + margin: 12px 0 9px 10px; + border-radius: 3px; + text-align: center; + font-size: 12px; + color: #d3dce6; + cursor: pointer; + -webkit-transition: all .15s; + transition: all .15s; } + +.o-tabs__new-tab .o-icon-plus { + -webkit-transform: scale(0.8, 0.8); + transform: scale(0.8, 0.8); } + +.o-tabs__new-tab:hover { + color: #07c160; } + +.o-tabs__nav-wrap { + overflow: hidden; + margin-bottom: -1px; + position: relative; } + +.o-tabs__nav-wrap::after { + content: ""; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 2px; + background-color: #E4E7ED; + z-index: 1; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__nav-wrap::after, +.o-tabs--card > .o-tabs__header .o-tabs__nav-wrap::after { + content: none; } + +.o-tabs__nav-wrap.is-scrollable { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.o-tabs__nav-scroll { + overflow: hidden; } + +.o-tabs__nav-next, +.o-tabs__nav-prev { + position: absolute; + cursor: pointer; + line-height: 44px; + font-size: 12px; + color: #909399; } + +.o-tabs__nav-next { + right: 0; } + +.o-tabs__nav-prev { + left: 0; } + +.o-tabs__nav { + white-space: nowrap; + position: relative; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + float: left; + z-index: 2; } + +.o-tabs__nav.is-stretch { + min-width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +.o-tabs__nav.is-stretch > * { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: center; } + +.o-tabs__item { + padding: 0 20px; + height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + line-height: 40px; + display: inline-block; + list-style: none; + font-size: 14px; + font-weight: 500; + color: #303133; + position: relative; } + +.o-tabs__item:focus, +.o-tabs__item:focus:active { + outline: 0; } + +.o-tabs__item:focus.is-active.is-focus:not(:active) { + -webkit-box-shadow: 0 0 2px 2px #07c160 inset; + box-shadow: 0 0 2px 2px #07c160 inset; + border-radius: 3px; } + +.o-tabs__item:hover .o-icon-close { + visibility: visible; } + +.o-tabs__item .o-icon-close { + visibility: hidden; + border-radius: 50%; + text-align: center; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + margin-left: 5px; } + +.o-tabs__item .o-icon-close:before { + -webkit-transform: scale(0.9); + transform: scale(0.9); + display: inline-block; } + +.o-tabs__item .o-icon-close:hover { + background-color: #C0C4CC; + color: #FFF; } + +.o-tabs__item.is-active { + color: #07c160; } + +.o-tabs__item:hover { + color: #07c160; + cursor: pointer; } + +.o-tabs__item.is-disabled { + color: #C0C4CC; + cursor: default; } + +.o-tabs__content { + overflow: hidden; + position: relative; } + +.o-tabs--card > .o-tabs__header { + border-bottom: 1px solid #E4E7ED; } + +.o-tabs--card > .o-tabs__header .o-tabs__nav { + border: 1px solid #E4E7ED; + border-bottom: none; + border-radius: 4px 4px 0 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.o-tabs--card > .o-tabs__header .o-tabs__active-bar { + display: none; } + +.o-tabs--card > .o-tabs__header .o-tabs__item .o-icon-close { + position: relative; + font-size: 12px; + width: 0; + height: 14px; + vertical-align: middle; + line-height: 15px; + overflow: hidden; + top: -1px; + right: -2px; + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable .o-icon-close, +.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover .o-icon-close { + width: 14px; } + +.o-tabs--card > .o-tabs__header .o-tabs__item { + border-bottom: 1px solid transparent; + border-left: 1px solid #E4E7ED; + -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); } + +.o-tabs--card > .o-tabs__header .o-tabs__item:first-child { + border-left: none; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover { + padding-left: 13px; + padding-right: 13px; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-active { + border-bottom-color: #FFF; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable { + padding-left: 20px; + padding-right: 20px; } + +.o-tabs--border-card { + background: #FFF; + border: 1px solid #DCDFE6; + border-bottom: none; } + +.o-tabs--border-card.o-tabs--bottom { + border: 1px solid #DCDFE6; } + +.o-tabs--border-card > .o-tabs__content { + padding: 15px; } + +.o-tabs--border-card > .o-tabs__header { + background-color: #F5F7FA; + border-bottom: 1px solid #E4E7ED; + margin: 0; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item { + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + border: 1px solid transparent; + margin-top: -1px; + color: #909399; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item + .o-tabs__item, +.o-tabs--border-card > .o-tabs__header .o-tabs__item:first-child { + margin-left: -1px; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-active { + color: #07c160; + background-color: #FFF; + border-right-color: #DCDFE6; + border-left-color: #DCDFE6; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item:not(.is-disabled):hover { + color: #07c160; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-disabled { + color: #C0C4CC; } + +.o-tabs--border-card > .o-tabs__header .is-scrollable .o-tabs__item:first-child { + margin-left: 0; } + +.o-tabs--bottom .o-tabs__item.is-bottom:nth-child(2), +.o-tabs--bottom .o-tabs__item.is-top:nth-child(2), +.o-tabs--top .o-tabs__item.is-bottom:nth-child(2), +.o-tabs--top .o-tabs__item.is-top:nth-child(2) { + padding-left: 0; } + +.o-tabs--bottom .o-tabs__item.is-bottom:last-child, +.o-tabs--bottom .o-tabs__item.is-top:last-child, +.o-tabs--top .o-tabs__item.is-bottom:last-child, +.o-tabs--top .o-tabs__item.is-top:last-child { + padding-right: 0; } + +.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2) { + padding-left: 20px; } + +.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:last-child { + padding-right: 20px; } + +.o-tabs--bottom.o-tabs--border-card { + border-top: none; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__header.is-bottom { + border-bottom: 0; + border-top: 1px solid #DCDFE6; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__nav-wrap.is-bottom { + margin-top: -1px; + margin-bottom: 0; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom:not(.is-active) { + border: 1px solid transparent; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom { + margin: 0 -1px -1px; } + +.o-tabs--left, +.o-tabs--right { + overflow: hidden; } + +.o-tabs--left .o-tabs__header.is-left, +.o-tabs--left .o-tabs__header.is-right, +.o-tabs--left .o-tabs__nav-scroll, +.o-tabs--left .o-tabs__nav-wrap.is-left, +.o-tabs--left .o-tabs__nav-wrap.is-right, +.o-tabs--right .o-tabs__header.is-left, +.o-tabs--right .o-tabs__header.is-right, +.o-tabs--right .o-tabs__nav-scroll, +.o-tabs--right .o-tabs__nav-wrap.is-left, +.o-tabs--right .o-tabs__nav-wrap.is-right { + height: 100%; } + +.o-tabs--left .o-tabs__active-bar.is-left, +.o-tabs--left .o-tabs__active-bar.is-right, +.o-tabs--right .o-tabs__active-bar.is-left, +.o-tabs--right .o-tabs__active-bar.is-right { + top: 0; + bottom: auto; + width: 2px; + height: auto; } + +.o-tabs--left .o-tabs__nav-wrap.is-left, +.o-tabs--left .o-tabs__nav-wrap.is-right, +.o-tabs--right .o-tabs__nav-wrap.is-left, +.o-tabs--right .o-tabs__nav-wrap.is-right { + margin-bottom: 0; } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev { + height: 30px; + line-height: 30px; + width: 100%; + text-align: center; + cursor: pointer; } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i, +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i { + -webkit-transform: rotateZ(90deg); + transform: rotateZ(90deg); } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev { + left: auto; + top: 0; } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next { + right: auto; + bottom: 0; } + +.o-tabs--left .o-tabs__active-bar.is-left, +.o-tabs--left .o-tabs__nav-wrap.is-left::after { + right: 0; + left: auto; } + +.o-tabs--left .o-tabs__nav-wrap.is-left.is-scrollable, +.o-tabs--left .o-tabs__nav-wrap.is-right.is-scrollable, +.o-tabs--right .o-tabs__nav-wrap.is-left.is-scrollable, +.o-tabs--right .o-tabs__nav-wrap.is-right.is-scrollable { + padding: 30px 0; } + +.o-tabs--left .o-tabs__nav-wrap.is-left::after, +.o-tabs--left .o-tabs__nav-wrap.is-right::after, +.o-tabs--right .o-tabs__nav-wrap.is-left::after, +.o-tabs--right .o-tabs__nav-wrap.is-right::after { + height: 100%; + width: 2px; + bottom: auto; + top: 0; } + +.o-tabs--left .o-tabs__nav.is-left, +.o-tabs--left .o-tabs__nav.is-right, +.o-tabs--right .o-tabs__nav.is-left, +.o-tabs--right .o-tabs__nav.is-right { + float: none; } + +.o-tabs--left .o-tabs__item.is-left, +.o-tabs--left .o-tabs__item.is-right, +.o-tabs--right .o-tabs__item.is-left, +.o-tabs--right .o-tabs__item.is-right { + display: block; } + +.o-tabs--left.o-tabs--card .o-tabs__active-bar.is-left, +.o-tabs--right.o-tabs--card .o-tabs__active-bar.is-right { + display: none; } + +.o-tabs--left .o-tabs__header.is-left { + float: left; + margin-bottom: 0; + margin-right: 10px; } + +.o-tabs--left .o-tabs__nav-wrap.is-left { + margin-right: -1px; } + +.o-tabs--left .o-tabs__item.is-left { + text-align: right; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left { + border-left: none; + border-right: 1px solid #E4E7ED; + border-bottom: none; + border-top: 1px solid #E4E7ED; + text-align: left; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left:first-child { + border-right: 1px solid #E4E7ED; + border-top: none; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active { + border: 1px solid #E4E7ED; + border-right-color: #fff; + border-left: none; + border-bottom: none; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:first-child { + border-top: none; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:last-child { + border-bottom: none; } + +.o-tabs--left.o-tabs--card .o-tabs__nav { + border-radius: 4px 0 0 4px; + border-bottom: 1px solid #E4E7ED; + border-right: none; } + +.o-tabs--left.o-tabs--card .o-tabs__new-tab { + float: none; } + +.o-tabs--left.o-tabs--border-card .o-tabs__header.is-left { + border-right: 1px solid #dfe4ed; } + +.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left { + border: 1px solid transparent; + margin: -1px 0 -1px -1px; } + +.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left.is-active { + border-color: #d1dbe5 transparent; } + +.o-tabs--right .o-tabs__header.is-right { + float: right; + margin-bottom: 0; + margin-left: 10px; } + +.o-tabs--right .o-tabs__nav-wrap.is-right { + margin-left: -1px; } + +.o-tabs--right .o-tabs__nav-wrap.is-right::after { + left: 0; + right: auto; } + +.o-tabs--right .o-tabs__active-bar.is-right { + left: 0; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right { + border-bottom: none; + border-top: 1px solid #E4E7ED; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right:first-child { + border-left: 1px solid #E4E7ED; + border-top: none; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active { + border: 1px solid #E4E7ED; + border-left-color: #fff; + border-right: none; + border-bottom: none; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:first-child { + border-top: none; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:last-child { + border-bottom: none; } + +.o-tabs--right.o-tabs--card .o-tabs__nav { + border-radius: 0 4px 4px 0; + border-bottom: 1px solid #E4E7ED; + border-left: none; } + +.o-tabs--right.o-tabs--border-card .o-tabs__header.is-right { + border-left: 1px solid #dfe4ed; } + +.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right { + border: 1px solid transparent; + margin: -1px -1px -1px 0; } + +.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right.is-active { + border-color: #d1dbe5 transparent; } + +.slideInLeft-transition, +.slideInRight-transition { + display: inline-block; } + +.slideInRight-enter { + -webkit-animation: slideInRight-enter .3s; + animation: slideInRight-enter .3s; } + +.slideInRight-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInRight-leave .3s; + animation: slideInRight-leave .3s; } + +.slideInLeft-enter { + -webkit-animation: slideInLeft-enter .3s; + animation: slideInLeft-enter .3s; } + +.slideInLeft-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInLeft-leave .3s; + animation: slideInLeft-leave .3s; } + +@-webkit-keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; } } + +@keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; } } + +@-webkit-keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; } } + +@keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; } } + +.o-icon-close { + display: inline-block; + vertical-align: -0.125em; } + +.o-icon-add { + position: absolute; + top: 50%; + margin-top: -0.5em; + margin-left: 0.5em; + cursor: pointer; } + +.o-icon-add:hover { + color: #07c160; } diff --git a/components/tabs/src/index.d.ts b/components/tabs/src/index.d.ts index ef1c74843..7d1f581a6 100644 --- a/components/tabs/src/index.d.ts +++ b/components/tabs/src/index.d.ts @@ -1,5 +1,5 @@ import { WeElement } from 'omi'; -import '@omiu/common/theme.ts'; +import '@omiu/common'; interface Props { list?: any[]; activeIndex: number; diff --git a/components/tabs/src/index.esm.js b/components/tabs/src/index.esm.js new file mode 100644 index 000000000..9bb1cea7e --- /dev/null +++ b/components/tabs/src/index.esm.js @@ -0,0 +1,2724 @@ +/** + * @omiu/tabs v0.0.4 http://omijs.org + * Front End Cross-Frameworks Framework. + * By dntzhang https://github.com/dntzhang + * Github: https://github.com/Tencent/omi + * MIT Licensed. + */ + +import { h, extractClass, classNames, tag, WeElement } from 'omi'; +import colorName from 'color-name'; + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + + +var css = `:host { + display: block; } + +.o-tabs__header { + padding: 0; + position: relative; + margin: 0 0 15px; } + +.o-tabs__active-bar { + position: absolute; + bottom: 0; + left: 0; + height: 2px; + background-color: #07c160; + z-index: 1; + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + list-style: none; } + +.o-tabs__new-tab { + float: right; + border: 1px solid #d3dce6; + height: 18px; + width: 18px; + line-height: 18px; + margin: 12px 0 9px 10px; + border-radius: 3px; + text-align: center; + font-size: 12px; + color: #d3dce6; + cursor: pointer; + -webkit-transition: all .15s; + transition: all .15s; } + +.o-tabs__new-tab .o-icon-plus { + -webkit-transform: scale(0.8, 0.8); + transform: scale(0.8, 0.8); } + +.o-tabs__new-tab:hover { + color: #07c160; } + +.o-tabs__nav-wrap { + overflow: hidden; + margin-bottom: -1px; + position: relative; } + +.o-tabs__nav-wrap::after { + content: ""; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 2px; + background-color: #E4E7ED; + z-index: 1; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__nav-wrap::after, +.o-tabs--card > .o-tabs__header .o-tabs__nav-wrap::after { + content: none; } + +.o-tabs__nav-wrap.is-scrollable { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.o-tabs__nav-scroll { + overflow: hidden; } + +.o-tabs__nav-next, +.o-tabs__nav-prev { + position: absolute; + cursor: pointer; + line-height: 44px; + font-size: 12px; + color: #909399; } + +.o-tabs__nav-next { + right: 0; } + +.o-tabs__nav-prev { + left: 0; } + +.o-tabs__nav { + white-space: nowrap; + position: relative; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + float: left; + z-index: 2; } + +.o-tabs__nav.is-stretch { + min-width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +.o-tabs__nav.is-stretch > * { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: center; } + +.o-tabs__item { + padding: 0 20px; + height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + line-height: 40px; + display: inline-block; + list-style: none; + font-size: 14px; + font-weight: 500; + color: #303133; + position: relative; } + +.o-tabs__item:focus, +.o-tabs__item:focus:active { + outline: 0; } + +.o-tabs__item:focus.is-active.is-focus:not(:active) { + -webkit-box-shadow: 0 0 2px 2px #07c160 inset; + box-shadow: 0 0 2px 2px #07c160 inset; + border-radius: 3px; } + +.o-tabs__item:hover .o-icon-close { + visibility: visible; } + +.o-tabs__item .o-icon-close { + visibility: hidden; + border-radius: 50%; + text-align: center; + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + margin-left: 5px; } + +.o-tabs__item .o-icon-close:before { + -webkit-transform: scale(0.9); + transform: scale(0.9); + display: inline-block; } + +.o-tabs__item .o-icon-close:hover { + background-color: #C0C4CC; + color: #FFF; } + +.o-tabs__item.is-active { + color: #07c160; } + +.o-tabs__item:hover { + color: #07c160; + cursor: pointer; } + +.o-tabs__item.is-disabled { + color: #C0C4CC; + cursor: default; } + +.o-tabs__content { + overflow: hidden; + position: relative; } + +.o-tabs--card > .o-tabs__header { + border-bottom: 1px solid #E4E7ED; } + +.o-tabs--card > .o-tabs__header .o-tabs__nav { + border: 1px solid #E4E7ED; + border-bottom: none; + border-radius: 4px 4px 0 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.o-tabs--card > .o-tabs__header .o-tabs__active-bar { + display: none; } + +.o-tabs--card > .o-tabs__header .o-tabs__item .o-icon-close { + position: relative; + font-size: 12px; + width: 0; + height: 14px; + vertical-align: middle; + line-height: 15px; + overflow: hidden; + top: -1px; + right: -2px; + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable .o-icon-close, +.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover .o-icon-close { + width: 14px; } + +.o-tabs--card > .o-tabs__header .o-tabs__item { + border-bottom: 1px solid transparent; + border-left: 1px solid #E4E7ED; + -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); } + +.o-tabs--card > .o-tabs__header .o-tabs__item:first-child { + border-left: none; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover { + padding-left: 13px; + padding-right: 13px; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-active { + border-bottom-color: #FFF; } + +.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable { + padding-left: 20px; + padding-right: 20px; } + +.o-tabs--border-card { + background: #FFF; + border: 1px solid #DCDFE6; + border-bottom: none; } + +.o-tabs--border-card.o-tabs--bottom { + border: 1px solid #DCDFE6; } + +.o-tabs--border-card > .o-tabs__content { + padding: 15px; } + +.o-tabs--border-card > .o-tabs__header { + background-color: #F5F7FA; + border-bottom: 1px solid #E4E7ED; + margin: 0; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item { + -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + border: 1px solid transparent; + margin-top: -1px; + color: #909399; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item + .o-tabs__item, +.o-tabs--border-card > .o-tabs__header .o-tabs__item:first-child { + margin-left: -1px; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-active { + color: #07c160; + background-color: #FFF; + border-right-color: #DCDFE6; + border-left-color: #DCDFE6; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item:not(.is-disabled):hover { + color: #07c160; } + +.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-disabled { + color: #C0C4CC; } + +.o-tabs--border-card > .o-tabs__header .is-scrollable .o-tabs__item:first-child { + margin-left: 0; } + +.o-tabs--bottom .o-tabs__item.is-bottom:nth-child(2), +.o-tabs--bottom .o-tabs__item.is-top:nth-child(2), +.o-tabs--top .o-tabs__item.is-bottom:nth-child(2), +.o-tabs--top .o-tabs__item.is-top:nth-child(2) { + padding-left: 0; } + +.o-tabs--bottom .o-tabs__item.is-bottom:last-child, +.o-tabs--bottom .o-tabs__item.is-top:last-child, +.o-tabs--top .o-tabs__item.is-bottom:last-child, +.o-tabs--top .o-tabs__item.is-top:last-child { + padding-right: 0; } + +.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2), +.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2) { + padding-left: 20px; } + +.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child, +.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:last-child { + padding-right: 20px; } + +.o-tabs--bottom.o-tabs--border-card { + border-top: none; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__header.is-bottom { + border-bottom: 0; + border-top: 1px solid #DCDFE6; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__nav-wrap.is-bottom { + margin-top: -1px; + margin-bottom: 0; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom:not(.is-active) { + border: 1px solid transparent; } + +.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom { + margin: 0 -1px -1px; } + +.o-tabs--left, +.o-tabs--right { + overflow: hidden; } + +.o-tabs--left .o-tabs__header.is-left, +.o-tabs--left .o-tabs__header.is-right, +.o-tabs--left .o-tabs__nav-scroll, +.o-tabs--left .o-tabs__nav-wrap.is-left, +.o-tabs--left .o-tabs__nav-wrap.is-right, +.o-tabs--right .o-tabs__header.is-left, +.o-tabs--right .o-tabs__header.is-right, +.o-tabs--right .o-tabs__nav-scroll, +.o-tabs--right .o-tabs__nav-wrap.is-left, +.o-tabs--right .o-tabs__nav-wrap.is-right { + height: 100%; } + +.o-tabs--left .o-tabs__active-bar.is-left, +.o-tabs--left .o-tabs__active-bar.is-right, +.o-tabs--right .o-tabs__active-bar.is-left, +.o-tabs--right .o-tabs__active-bar.is-right { + top: 0; + bottom: auto; + width: 2px; + height: auto; } + +.o-tabs--left .o-tabs__nav-wrap.is-left, +.o-tabs--left .o-tabs__nav-wrap.is-right, +.o-tabs--right .o-tabs__nav-wrap.is-left, +.o-tabs--right .o-tabs__nav-wrap.is-right { + margin-bottom: 0; } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev { + height: 30px; + line-height: 30px; + width: 100%; + text-align: center; + cursor: pointer; } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i, +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i { + -webkit-transform: rotateZ(90deg); + transform: rotateZ(90deg); } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev { + left: auto; + top: 0; } + +.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next, +.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next { + right: auto; + bottom: 0; } + +.o-tabs--left .o-tabs__active-bar.is-left, +.o-tabs--left .o-tabs__nav-wrap.is-left::after { + right: 0; + left: auto; } + +.o-tabs--left .o-tabs__nav-wrap.is-left.is-scrollable, +.o-tabs--left .o-tabs__nav-wrap.is-right.is-scrollable, +.o-tabs--right .o-tabs__nav-wrap.is-left.is-scrollable, +.o-tabs--right .o-tabs__nav-wrap.is-right.is-scrollable { + padding: 30px 0; } + +.o-tabs--left .o-tabs__nav-wrap.is-left::after, +.o-tabs--left .o-tabs__nav-wrap.is-right::after, +.o-tabs--right .o-tabs__nav-wrap.is-left::after, +.o-tabs--right .o-tabs__nav-wrap.is-right::after { + height: 100%; + width: 2px; + bottom: auto; + top: 0; } + +.o-tabs--left .o-tabs__nav.is-left, +.o-tabs--left .o-tabs__nav.is-right, +.o-tabs--right .o-tabs__nav.is-left, +.o-tabs--right .o-tabs__nav.is-right { + float: none; } + +.o-tabs--left .o-tabs__item.is-left, +.o-tabs--left .o-tabs__item.is-right, +.o-tabs--right .o-tabs__item.is-left, +.o-tabs--right .o-tabs__item.is-right { + display: block; } + +.o-tabs--left.o-tabs--card .o-tabs__active-bar.is-left, +.o-tabs--right.o-tabs--card .o-tabs__active-bar.is-right { + display: none; } + +.o-tabs--left .o-tabs__header.is-left { + float: left; + margin-bottom: 0; + margin-right: 10px; } + +.o-tabs--left .o-tabs__nav-wrap.is-left { + margin-right: -1px; } + +.o-tabs--left .o-tabs__item.is-left { + text-align: right; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left { + border-left: none; + border-right: 1px solid #E4E7ED; + border-bottom: none; + border-top: 1px solid #E4E7ED; + text-align: left; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left:first-child { + border-right: 1px solid #E4E7ED; + border-top: none; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active { + border: 1px solid #E4E7ED; + border-right-color: #fff; + border-left: none; + border-bottom: none; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:first-child { + border-top: none; } + +.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:last-child { + border-bottom: none; } + +.o-tabs--left.o-tabs--card .o-tabs__nav { + border-radius: 4px 0 0 4px; + border-bottom: 1px solid #E4E7ED; + border-right: none; } + +.o-tabs--left.o-tabs--card .o-tabs__new-tab { + float: none; } + +.o-tabs--left.o-tabs--border-card .o-tabs__header.is-left { + border-right: 1px solid #dfe4ed; } + +.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left { + border: 1px solid transparent; + margin: -1px 0 -1px -1px; } + +.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left.is-active { + border-color: #d1dbe5 transparent; } + +.o-tabs--right .o-tabs__header.is-right { + float: right; + margin-bottom: 0; + margin-left: 10px; } + +.o-tabs--right .o-tabs__nav-wrap.is-right { + margin-left: -1px; } + +.o-tabs--right .o-tabs__nav-wrap.is-right::after { + left: 0; + right: auto; } + +.o-tabs--right .o-tabs__active-bar.is-right { + left: 0; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right { + border-bottom: none; + border-top: 1px solid #E4E7ED; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right:first-child { + border-left: 1px solid #E4E7ED; + border-top: none; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active { + border: 1px solid #E4E7ED; + border-left-color: #fff; + border-right: none; + border-bottom: none; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:first-child { + border-top: none; } + +.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:last-child { + border-bottom: none; } + +.o-tabs--right.o-tabs--card .o-tabs__nav { + border-radius: 0 4px 4px 0; + border-bottom: 1px solid #E4E7ED; + border-left: none; } + +.o-tabs--right.o-tabs--border-card .o-tabs__header.is-right { + border-left: 1px solid #dfe4ed; } + +.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right { + border: 1px solid transparent; + margin: -1px -1px -1px 0; } + +.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right.is-active { + border-color: #d1dbe5 transparent; } + +.slideInLeft-transition, +.slideInRight-transition { + display: inline-block; } + +.slideInRight-enter { + -webkit-animation: slideInRight-enter .3s; + animation: slideInRight-enter .3s; } + +.slideInRight-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInRight-leave .3s; + animation: slideInRight-leave .3s; } + +.slideInLeft-enter { + -webkit-animation: slideInLeft-enter .3s; + animation: slideInLeft-enter .3s; } + +.slideInLeft-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInLeft-leave .3s; + animation: slideInLeft-leave .3s; } + +@-webkit-keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; } } + +@keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0; } } + +@-webkit-keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; } } + +@keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1; } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0; } } + +.o-icon-close { + display: inline-block; + vertical-align: -0.125em; } + +.o-icon-add { + position: absolute; + top: 50%; + margin-top: -0.5em; + margin-left: 0.5em; + cursor: pointer; } + +.o-icon-add:hover { + color: #07c160; } +` + + +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} + +var isArrayish = function isArrayish(obj) { + if (!obj || typeof obj === 'string') { + return false; + } + + return obj instanceof Array || Array.isArray(obj) || + (obj.length >= 0 && (obj.splice instanceof Function || + (Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String'))); +}; + +var simpleSwizzle = createCommonjsModule(function (module) { + + + +var concat = Array.prototype.concat; +var slice = Array.prototype.slice; + +var swizzle = module.exports = function swizzle(args) { + var results = []; + + for (var i = 0, len = args.length; i < len; i++) { + var arg = args[i]; + + if (isArrayish(arg)) { + // http://jsperf.com/javascript-array-concat-vs-push/98 + results = concat.call(results, slice.call(arg)); + } else { + results.push(arg); + } + } + + return results; +}; + +swizzle.wrap = function (fn) { + return function () { + return fn(swizzle(arguments)); + }; +}; +}); + +var colorString = createCommonjsModule(function (module) { +/* MIT license */ + + + +var reverseNames = {}; + +// create a list of reverse color names +for (var name in colorName) { + if (colorName.hasOwnProperty(name)) { + reverseNames[colorName[name]] = name; + } +} + +var cs = module.exports = { + to: {}, + get: {} +}; + +cs.get = function (string) { + var prefix = string.substring(0, 3).toLowerCase(); + var val; + var model; + switch (prefix) { + case 'hsl': + val = cs.get.hsl(string); + model = 'hsl'; + break; + case 'hwb': + val = cs.get.hwb(string); + model = 'hwb'; + break; + default: + val = cs.get.rgb(string); + model = 'rgb'; + break; + } + + if (!val) { + return null; + } + + return {model: model, value: val}; +}; + +cs.get.rgb = function (string) { + if (!string) { + return null; + } + + var abbr = /^#([a-f0-9]{3,4})$/i; + var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; + var rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var keyword = /(\D+)/; + + var rgb = [0, 0, 0, 1]; + var match; + var i; + var hexAlpha; + + if (match = string.match(hex)) { + hexAlpha = match[2]; + match = match[1]; + + for (i = 0; i < 3; i++) { + // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19 + var i2 = i * 2; + rgb[i] = parseInt(match.slice(i2, i2 + 2), 16); + } + + if (hexAlpha) { + rgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100; + } + } else if (match = string.match(abbr)) { + match = match[1]; + hexAlpha = match[3]; + + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i] + match[i], 16); + } + + if (hexAlpha) { + rgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100; + } + } else if (match = string.match(rgba)) { + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i + 1], 0); + } + + if (match[4]) { + rgb[3] = parseFloat(match[4]); + } + } else if (match = string.match(per)) { + for (i = 0; i < 3; i++) { + rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); + } + + if (match[4]) { + rgb[3] = parseFloat(match[4]); + } + } else if (match = string.match(keyword)) { + if (match[1] === 'transparent') { + return [0, 0, 0, 0]; + } + + rgb = colorName[match[1]]; + + if (!rgb) { + return null; + } + + rgb[3] = 1; + + return rgb; + } else { + return null; + } + + for (i = 0; i < 3; i++) { + rgb[i] = clamp(rgb[i], 0, 255); + } + rgb[3] = clamp(rgb[3], 0, 1); + + return rgb; +}; + +cs.get.hsl = function (string) { + if (!string) { + return null; + } + + var hsl = /^hsla?\(\s*([+-]?(?:\d*\.)?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var match = string.match(hsl); + + if (match) { + var alpha = parseFloat(match[4]); + var h = (parseFloat(match[1]) + 360) % 360; + var s = clamp(parseFloat(match[2]), 0, 100); + var l = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + + return [h, s, l, a]; + } + + return null; +}; + +cs.get.hwb = function (string) { + if (!string) { + return null; + } + + var hwb = /^hwb\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var match = string.match(hwb); + + if (match) { + var alpha = parseFloat(match[4]); + var h = ((parseFloat(match[1]) % 360) + 360) % 360; + var w = clamp(parseFloat(match[2]), 0, 100); + var b = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } + + return null; +}; + +cs.to.hex = function () { + var rgba = simpleSwizzle(arguments); + + return ( + '#' + + hexDouble(rgba[0]) + + hexDouble(rgba[1]) + + hexDouble(rgba[2]) + + (rgba[3] < 1 + ? (hexDouble(Math.round(rgba[3] * 255))) + : '') + ); +}; + +cs.to.rgb = function () { + var rgba = simpleSwizzle(arguments); + + return rgba.length < 4 || rgba[3] === 1 + ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' + : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')'; +}; + +cs.to.rgb.percent = function () { + var rgba = simpleSwizzle(arguments); + + var r = Math.round(rgba[0] / 255 * 100); + var g = Math.round(rgba[1] / 255 * 100); + var b = Math.round(rgba[2] / 255 * 100); + + return rgba.length < 4 || rgba[3] === 1 + ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' + : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')'; +}; + +cs.to.hsl = function () { + var hsla = simpleSwizzle(arguments); + return hsla.length < 4 || hsla[3] === 1 + ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' + : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')'; +}; + +// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax +// (hwb have alpha optional & 1 is default value) +cs.to.hwb = function () { + var hwba = simpleSwizzle(arguments); + + var a = ''; + if (hwba.length >= 4 && hwba[3] !== 1) { + a = ', ' + hwba[3]; + } + + return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')'; +}; + +cs.to.keyword = function (rgb) { + return reverseNames[rgb.slice(0, 3)]; +}; + +// helpers +function clamp(num, min, max) { + return Math.min(Math.max(min, num), max); +} + +function hexDouble(num) { + var str = num.toString(16).toUpperCase(); + return (str.length < 2) ? '0' + str : str; +} +}); +var colorString_1 = colorString.to; +var colorString_2 = colorString.get; + +var conversions = createCommonjsModule(function (module) { +/* MIT license */ + + +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) + +var reverseKeywords = {}; +for (var key in colorName) { + if (colorName.hasOwnProperty(key)) { + reverseKeywords[colorName[key]] = key; + } +} + +var convert = module.exports = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} +}; + +// hide .channels and .labels properties +for (var model in convert) { + if (convert.hasOwnProperty(model)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } + + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); + } + + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } + + var channels = convert[model].channels; + var labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', {value: channels}); + Object.defineProperty(convert[model], 'labels', {value: labels}); + } +} + +convert.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; + + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + l = (min + max) / 2; + + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; +}; + +convert.rgb.hsv = function (rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + var diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = (1 / 3) + rdif - bdif; + } else if (b === v) { + h = (2 / 3) + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + + return [ + h * 360, + s * 100, + v * 100 + ]; +}; + +convert.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); + + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + + return [h, w * 100, b * 100]; +}; + +convert.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; + + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + + return [c * 100, m * 100, y * 100, k * 100]; +}; + +/** + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ +function comparativeDistance(x, y) { + return ( + Math.pow(x[0] - y[0], 2) + + Math.pow(x[1] - y[1], 2) + + Math.pow(x[2] - y[2], 2) + ); +} + +convert.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + + var currentClosestDistance = Infinity; + var currentClosestKeyword; + + for (var keyword in colorName) { + if (colorName.hasOwnProperty(keyword)) { + var value = colorName[keyword]; + + // Compute comparative distance + var distance = comparativeDistance(rgb, value); + + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } + + return currentClosestKeyword; +}; + +convert.keyword.rgb = function (keyword) { + return colorName[keyword]; +}; + +convert.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + + // assume sRGB + r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); + g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); + b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); + + var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + + return [x * 100, y * 100, z * 100]; +}; + +convert.rgb.lab = function (rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + + t1 = 2 * l - t2; + + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; +}; + +convert.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; + + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); + + return [h, sv * 100, v * 100]; +}; + +convert.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; + + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - (s * f)); + var t = 255 * v * (1 - (s * (1 - f))); + v *= 255; + + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; + +convert.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; + + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + + return [h, sl * 100, l * 100]; +}; + +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; + + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; + } + + n = wh + f * (v - wh); // linear interpolation + + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } + + return [r * 255, g * 255, b * 255]; +}; + +convert.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; + + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; + + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); + + // assume sRGB + r = r > 0.0031308 + ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) + : r * 12.92; + + g = g > 0.0031308 + ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) + : g * 12.92; + + b = b > 0.0031308 + ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) + : b * 12.92; + + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; + + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + + x *= 95.047; + y *= 100; + z *= 108.883; + + return [x, y, z]; +}; + +convert.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; + + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + + if (h < 0) { + h += 360; + } + + c = Math.sqrt(a * a + b * b); + + return [l, c, h]; +}; + +convert.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + + return [l, a, b]; +}; + +convert.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization + + value = Math.round(value / 50); + + if (value === 0) { + return 30; + } + + var ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); + + if (value === 2) { + ansi += 60; + } + + return ansi; +}; + +convert.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; + +convert.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + + // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } + + if (r > 248) { + return 231; + } + + return Math.round(((r - 8) / 247) * 24) + 232; + } + + var ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); + + return ansi; +}; + +convert.ansi16.rgb = function (args) { + var color = args % 10; + + // handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + + color = color / 10.5 * 255; + + return [color, color, color]; + } + + var mult = (~~(args > 50) + 1) * 0.5; + var r = ((color & 1) * mult) * 255; + var g = (((color >> 1) & 1) * mult) * 255; + var b = (((color >> 2) & 1) * mult) * 255; + + return [r, g, b]; +}; + +convert.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } + + args -= 16; + + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = (rem % 6) / 5 * 255; + + return [r, g, b]; +}; + +convert.rgb.hex = function (args) { + var integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); + + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + + var colorString = match[0]; + + if (match[0].length === 3) { + colorString = colorString.split('').map(function (char) { + return char + char; + }).join(''); + } + + var integer = parseInt(colorString, 16); + var r = (integer >> 16) & 0xFF; + var g = (integer >> 8) & 0xFF; + var b = integer & 0xFF; + + return [r, g, b]; +}; + +convert.rgb.hcg = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = (max - min); + var grayscale; + var hue; + + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } + + hue /= 6; + hue %= 1; + + return [hue * 360, chroma * 100, grayscale * 100]; +}; + +convert.hsl.hcg = function (hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; + + if (l < 0.5) { + c = 2.0 * s * l; + } else { + c = 2.0 * s * (1.0 - l); + } + + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } + + return [hsl[0], c * 100, f * 100]; +}; + +convert.hsv.hcg = function (hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; + + var c = s * v; + var f = 0; + + if (c < 1.0) { + f = (v - c) / (1 - c); + } + + return [hsv[0], c * 100, f * 100]; +}; + +convert.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } + + var pure = [0, 0, 0]; + var hi = (h % 1) * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; + + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } + + mg = (1.0 - c) * g; + + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; + +convert.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + var v = c + g * (1.0 - c); + var f = 0; + + if (v > 0.0) { + f = c / v; + } + + return [hcg[0], f * 100, v * 100]; +}; + +convert.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; + + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } + + return [hcg[0], s * 100, l * 100]; +}; + +convert.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; + +convert.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; + + if (c < 1) { + g = (v - c) / (1 - c); + } + + return [hwb[0], c * 100, g * 100]; +}; + +convert.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; + +convert.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +}; + +convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; + +convert.gray.hsl = convert.gray.hsv = function (args) { + return [0, 0, args[0]]; +}; + +convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; + +convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; + +convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; + +convert.gray.hex = function (gray) { + var val = Math.round(gray[0] / 100 * 255) & 0xFF; + var integer = (val << 16) + (val << 8) + val; + + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; +}); +var conversions_1 = conversions.rgb; +var conversions_2 = conversions.hsl; +var conversions_3 = conversions.hsv; +var conversions_4 = conversions.hwb; +var conversions_5 = conversions.cmyk; +var conversions_6 = conversions.xyz; +var conversions_7 = conversions.lab; +var conversions_8 = conversions.lch; +var conversions_9 = conversions.hex; +var conversions_10 = conversions.keyword; +var conversions_11 = conversions.ansi16; +var conversions_12 = conversions.ansi256; +var conversions_13 = conversions.hcg; +var conversions_14 = conversions.apple; +var conversions_15 = conversions.gray; + +/* + this function routes a model to all other models. + + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). + + conversions that are not possible simply are not included. +*/ + +function buildGraph() { + var graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + var models = Object.keys(conversions); + + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + + return graph; +} + +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; // unshift -> queue -> pop + + graph[fromModel].distance = 0; + + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); + + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; + + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + + return graph; +} + +function link(from, to) { + return function (args) { + return to(from(args)); + }; +} + +function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; + + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + + fn.conversion = path; + return fn; +} + +var route = function (fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; + + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; + + if (node.parent === null) { + // no possible conversion, or this node is the source model. + continue; + } + + conversion[toModel] = wrapConversion(toModel, graph); + } + + return conversion; +}; + +var convert = {}; + +var models = Object.keys(conversions); + +function wrapRaw(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + + return fn(args); + }; + + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +function wrapRounded(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + + var result = fn(args); + + // we're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + + return result; + }; + + // preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +models.forEach(function (fromModel) { + convert[fromModel] = {}; + + Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); + + var routes = route(fromModel); + var routeModels = Object.keys(routes); + + routeModels.forEach(function (toModel) { + var fn = routes[toModel]; + + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); + +var colorConvert = convert; + +var _slice = [].slice; + +var skippedModels = [ + // to be honest, I don't really feel like keyword belongs in color convert, but eh. + 'keyword', + + // gray conflicts with some method names, and has its own method defined. + 'gray', + + // shouldn't really be in color-convert either... + 'hex' +]; + +var hashedModelKeys = {}; +Object.keys(colorConvert).forEach(function (model) { + hashedModelKeys[_slice.call(colorConvert[model].labels).sort().join('')] = model; +}); + +var limiters = {}; + +function Color(obj, model) { + if (!(this instanceof Color)) { + return new Color(obj, model); + } + + if (model && model in skippedModels) { + model = null; + } + + if (model && !(model in colorConvert)) { + throw new Error('Unknown model: ' + model); + } + + var i; + var channels; + + if (obj == null) { // eslint-disable-line no-eq-null,eqeqeq + this.model = 'rgb'; + this.color = [0, 0, 0]; + this.valpha = 1; + } else if (obj instanceof Color) { + this.model = obj.model; + this.color = obj.color.slice(); + this.valpha = obj.valpha; + } else if (typeof obj === 'string') { + var result = colorString.get(obj); + if (result === null) { + throw new Error('Unable to parse color from string: ' + obj); + } + + this.model = result.model; + channels = colorConvert[this.model].channels; + this.color = result.value.slice(0, channels); + this.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1; + } else if (obj.length) { + this.model = model || 'rgb'; + channels = colorConvert[this.model].channels; + var newArr = _slice.call(obj, 0, channels); + this.color = zeroArray(newArr, channels); + this.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1; + } else if (typeof obj === 'number') { + // this is always RGB - can be converted later on. + obj &= 0xFFFFFF; + this.model = 'rgb'; + this.color = [ + (obj >> 16) & 0xFF, + (obj >> 8) & 0xFF, + obj & 0xFF + ]; + this.valpha = 1; + } else { + this.valpha = 1; + + var keys = Object.keys(obj); + if ('alpha' in obj) { + keys.splice(keys.indexOf('alpha'), 1); + this.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0; + } + + var hashedKeys = keys.sort().join(''); + if (!(hashedKeys in hashedModelKeys)) { + throw new Error('Unable to parse color from object: ' + JSON.stringify(obj)); + } + + this.model = hashedModelKeys[hashedKeys]; + + var labels = colorConvert[this.model].labels; + var color = []; + for (i = 0; i < labels.length; i++) { + color.push(obj[labels[i]]); + } + + this.color = zeroArray(color); + } + + // perform limitations (clamping, etc.) + if (limiters[this.model]) { + channels = colorConvert[this.model].channels; + for (i = 0; i < channels; i++) { + var limit = limiters[this.model][i]; + if (limit) { + this.color[i] = limit(this.color[i]); + } + } + } + + this.valpha = Math.max(0, Math.min(1, this.valpha)); + + if (Object.freeze) { + Object.freeze(this); + } +} + +Color.prototype = { + toString: function () { + return this.string(); + }, + + toJSON: function () { + return this[this.model](); + }, + + string: function (places) { + var self = this.model in colorString.to ? this : this.rgb(); + self = self.round(typeof places === 'number' ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to[self.model](args); + }, + + percentString: function (places) { + var self = this.rgb().round(typeof places === 'number' ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to.rgb.percent(args); + }, + + array: function () { + return this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha); + }, + + object: function () { + var result = {}; + var channels = colorConvert[this.model].channels; + var labels = colorConvert[this.model].labels; + + for (var i = 0; i < channels; i++) { + result[labels[i]] = this.color[i]; + } + + if (this.valpha !== 1) { + result.alpha = this.valpha; + } + + return result; + }, + + unitArray: function () { + var rgb = this.rgb().color; + rgb[0] /= 255; + rgb[1] /= 255; + rgb[2] /= 255; + + if (this.valpha !== 1) { + rgb.push(this.valpha); + } + + return rgb; + }, + + unitObject: function () { + var rgb = this.rgb().object(); + rgb.r /= 255; + rgb.g /= 255; + rgb.b /= 255; + + if (this.valpha !== 1) { + rgb.alpha = this.valpha; + } + + return rgb; + }, + + round: function (places) { + places = Math.max(places || 0, 0); + return new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model); + }, + + alpha: function (val) { + if (arguments.length) { + return new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model); + } + + return this.valpha; + }, + + // rgb + red: getset('rgb', 0, maxfn(255)), + green: getset('rgb', 1, maxfn(255)), + blue: getset('rgb', 2, maxfn(255)), + + hue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style + + saturationl: getset('hsl', 1, maxfn(100)), + lightness: getset('hsl', 2, maxfn(100)), + + saturationv: getset('hsv', 1, maxfn(100)), + value: getset('hsv', 2, maxfn(100)), + + chroma: getset('hcg', 1, maxfn(100)), + gray: getset('hcg', 2, maxfn(100)), + + white: getset('hwb', 1, maxfn(100)), + wblack: getset('hwb', 2, maxfn(100)), + + cyan: getset('cmyk', 0, maxfn(100)), + magenta: getset('cmyk', 1, maxfn(100)), + yellow: getset('cmyk', 2, maxfn(100)), + black: getset('cmyk', 3, maxfn(100)), + + x: getset('xyz', 0, maxfn(100)), + y: getset('xyz', 1, maxfn(100)), + z: getset('xyz', 2, maxfn(100)), + + l: getset('lab', 0, maxfn(100)), + a: getset('lab', 1), + b: getset('lab', 2), + + keyword: function (val) { + if (arguments.length) { + return new Color(val); + } + + return colorConvert[this.model].keyword(this.color); + }, + + hex: function (val) { + if (arguments.length) { + return new Color(val); + } + + return colorString.to.hex(this.rgb().round().color); + }, + + rgbNumber: function () { + var rgb = this.rgb().color; + return ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF); + }, + + luminosity: function () { + // http://www.w3.org/TR/WCAG20/#relativeluminancedef + var rgb = this.rgb().color; + + var lum = []; + for (var i = 0; i < rgb.length; i++) { + var chan = rgb[i] / 255; + lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4); + } + + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + + contrast: function (color2) { + // http://www.w3.org/TR/WCAG20/#contrast-ratiodef + var lum1 = this.luminosity(); + var lum2 = color2.luminosity(); + + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + + return (lum2 + 0.05) / (lum1 + 0.05); + }, + + level: function (color2) { + var contrastRatio = this.contrast(color2); + if (contrastRatio >= 7.1) { + return 'AAA'; + } + + return (contrastRatio >= 4.5) ? 'AA' : ''; + }, + + isDark: function () { + // YIQ equation from http://24ways.org/2010/calculating-color-contrast + var rgb = this.rgb().color; + var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; + return yiq < 128; + }, + + isLight: function () { + return !this.isDark(); + }, + + negate: function () { + var rgb = this.rgb(); + for (var i = 0; i < 3; i++) { + rgb.color[i] = 255 - rgb.color[i]; + } + return rgb; + }, + + lighten: function (ratio) { + var hsl = this.hsl(); + //hsl.color[2] += hsl.color[2] * ratio; + hsl.color[2] += ratio * 100; + return hsl; + }, + + darken: function (ratio) { + var hsl = this.hsl(); + //hsl.color[2] -= hsl.color[2] * ratio; + hsl.color[2] -= ratio * 100; + return hsl; + }, + + saturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] += hsl.color[1] * ratio; + return hsl; + }, + + desaturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] -= hsl.color[1] * ratio; + return hsl; + }, + + whiten: function (ratio) { + var hwb = this.hwb(); + hwb.color[1] += hwb.color[1] * ratio; + return hwb; + }, + + blacken: function (ratio) { + var hwb = this.hwb(); + hwb.color[2] += hwb.color[2] * ratio; + return hwb; + }, + + grayscale: function () { + // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale + var rgb = this.rgb().color; + var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + return Color.rgb(val, val, val); + }, + + fade: function (ratio) { + return this.alpha(this.valpha - (this.valpha * ratio)); + }, + + opaquer: function (ratio) { + return this.alpha(this.valpha + (this.valpha * ratio)); + }, + + rotate: function (degrees) { + var hsl = this.hsl(); + var hue = hsl.color[0]; + hue = (hue + degrees) % 360; + hue = hue < 0 ? 360 + hue : hue; + hsl.color[0] = hue; + return hsl; + }, + + mix: function (mixinColor, weight) { + // ported from sass implementation in C + // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 + if (!mixinColor || !mixinColor.rgb) { + throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); + } + var color1 = mixinColor.rgb(); + var color2 = this.rgb(); + var p = weight === undefined ? 0.5 : weight; + + var w = 2 * p - 1; + var a = color1.alpha() - color2.alpha(); + + var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0; + var w2 = 1 - w1; + + return Color.rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue(), + color1.alpha() * p + color2.alpha() * (1 - p)); + } +}; + +// model conversion methods and static constructors +Object.keys(colorConvert).forEach(function (model) { + if (skippedModels.indexOf(model) !== -1) { + return; + } + + var channels = colorConvert[model].channels; + + // conversion methods + Color.prototype[model] = function () { + if (this.model === model) { + return new Color(this); + } + + if (arguments.length) { + return new Color(arguments, model); + } + + var newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha; + return new Color(assertArray(colorConvert[this.model][model].raw(this.color)).concat(newAlpha), model); + }; + + // 'static' construction methods + Color[model] = function (color) { + if (typeof color === 'number') { + color = zeroArray(_slice.call(arguments), channels); + } + return new Color(color, model); + }; +}); + +function roundTo(num, places) { + return Number(num.toFixed(places)); +} + +function roundToPlace(places) { + return function (num) { + return roundTo(num, places); + }; +} + +function getset(model, channel, modifier) { + model = Array.isArray(model) ? model : [model]; + + model.forEach(function (m) { + (limiters[m] || (limiters[m] = []))[channel] = modifier; + }); + + model = model[0]; + + return function (val) { + var result; + + if (arguments.length) { + if (modifier) { + val = modifier(val); + } + + result = this[model](); + result.color[channel] = val; + return result; + } + + result = this[model]().color[channel]; + if (modifier) { + result = modifier(result); + } + + return result; + }; +} + +function maxfn(max) { + return function (v) { + return Math.max(0, Math.min(max, v)); + }; +} + +function assertArray(val) { + return Array.isArray(val) ? val : [val]; +} + +function zeroArray(arr, length) { + for (var i = 0; i < length; i++) { + if (typeof arr[i] !== 'number') { + arr[i] = 0; + } + } + + return arr; +} + +theme(); + +document.addEventListener('DOMContentLoaded', () => { + theme(); +}); + +function theme() { + if (document.body && !document.body.style.getPropertyValue('--o-primary')) { + setTheme('primary', '#07c160'); + setTheme('danger', '#f5222d'); + setTheme('surface', '#ffffff'); + setTheme('on-primary', '#ffffff'); + setTheme('on-danger', '#ffffff'); + setTheme('on-surface', '#000000'); + setTheme('background', '#ffffff'); + setTheme('small-radius', '4px'); + setTheme('medium-radius', '4px'); + setTheme('large-radius', '0px'); + setTheme('font-family', '-apple-system-font,"Helvetica Neue",sans-serif'); + } +} + +function setTheme(key, value) { + const style = document.body.style; + + style.setProperty('--o-' + key, value); + switch (key) { + case 'primary': + style.setProperty('--o-primary-fade-little', Color(value).fade(0.382)); + style.setProperty('--o-primary-fade-some', Color(value).fade(0.618)); + style.setProperty('--o-primary-fade-more', Color(value).fade(0.759)); + style.setProperty('--o-primary-fade-lot', Color(value).fade(0.9)); + style.setProperty('--o-primary-active', Color(value).darken(0.1)); + + style.setProperty('--o-primary-hover-border', Color(value).fade(0.618)); + style.setProperty('--o-primary-hover-bg', Color(value).fade(0.9)); + + break + case 'danger': + style.setProperty('--o-danger-fade-little', Color(value).fade(0.382)); + style.setProperty('--o-danger-fade-some', Color(value).fade(0.618)); + style.setProperty('--o-danger-fade-more', Color(value).fade(0.759)); + style.setProperty('--o-danger-fade-lot', Color(value).fade(0.9)); + style.setProperty('--o-danger-active', Color(value).darken(0.1)); + break + + } +} + + +if (typeof window !== undefined) { + //@ts-ignore + window.Omiu = { + setTheme: setTheme, + setThemePrimary: function (color) { + setTheme('primary', color); + }, + setThemeError: function (color) { + setTheme('error', color); + } + }; +} + +var Tabs = /** @class */ (function (_super) { + __extends(Tabs, _super); + function Tabs() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.onTabClick = function (evt, index) { + _this.setActiveBar(evt.currentTarget, index); + _this.fire('change', { + tab: _this.props.list[index], + index: index + }); + }; + return _this; + } + Tabs.prototype.setActiveBar = function (ele, index) { + var rect = ele.getBoundingClientRect(); + this._x = rect.left - this.baseRect.left; + this._width = rect.width; + if (index === 0) { + this._x = 0; + this._width -= 20; + } + else if (index === this.props.list.length - 1) { + this._x += 20; + this._width -= 20; + } + else { + this._x += 20; + this._width -= 40; + } + this.updateProps({ + activeIndex: index + }); + }; + Tabs.prototype.installed = function () { + this.baseRect = this.rootNode.getBoundingClientRect(); + this.setActiveBar(this['$tab' + this.props.activeIndex], this.props.activeIndex); + }; + Tabs.prototype.removeTab = function (index) { + var tab = this.props.list.splice(index, 1)[0]; + this.forceUpdate(); + this.fire('remove', { + tab: tab, + index: index + }); + }; + Tabs.prototype.addTab = function (tab) { + this.props.list.push(tab); + this.forceUpdate(); + }; + Tabs.prototype.onAddIconClick = function () { + this.fire('addIconClick'); + }; + Tabs.prototype.render = function (props) { + var _a, _b, _c, _d, _e; + var _this = this; + var activeBarStyle = (props.position === 'left' || props.position === 'right') ? { + height: "40px", + transform: "translateY(" + props.activeIndex * 40 + "px)" + } : { + width: this._width + "px", + transform: "translateX(" + this._x + "px)" + }; + return (h("div", __assign({}, extractClass(props, 'o-tabs', (_a = {}, + _a["o-tabs--" + props.position] = props.position, + _a["o-tabs--" + props.type] = props.type, + _a))), + h("div", { class: classNames('o-tabs__header', (_b = {}, + _b["is-" + props.position] = props.position, + _b)) }, + h("div", { class: classNames('o-tabs__nav-wrap', (_c = {}, + _c["is-" + props.position] = props.position, + _c)) }, + h("div", { class: "o-tabs__nav-scroll" }, + h("div", { role: "tablist", class: classNames('o-tabs__nav', (_d = {}, + _d["is-" + props.position] = props.position, + _d)) }, + !props.type && h("div", { class: classNames('o-tabs__active-bar', (_e = {}, + _e["is-" + props.position] = props.position, + _e)), style: activeBarStyle }), + props.list.map(function (tab, index) { + var _a; + _this._tempTagName = 'o-icon-' + tab.icon; + return h("div", __assign({ ref: function (e) { _this['$tab' + index] = e; }, role: "tab", onClick: function (evt) { return props.activeIndex !== index && _this.onTabClick(evt, index); }, tabindex: props.active === index ? '0' : -1 }, extractClass(props, 'o-tabs__item', (_a = {}, + _a["is-" + props.position] = props.position, + _a['is-active'] = props.activeIndex === index, + _a['is-closable'] = props.closable, + _a))), + tab.icon && h(_this._tempTagName, null), + tab.label, + props.closable && h("svg", { onClick: function (_) { _this.removeTab(index); }, class: "o-icon-close", style: props.activeIndex === index && "visibility: visible;", fill: "currentColor", width: "1em", height: "1em", focusable: "false", viewBox: "0 0 24 24", "aria-hidden": "true" }, + h("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }))); + })), + props.addable && h("svg", { class: "o-icon-add", fill: "currentColor", width: "1em", height: "1em", focusable: "false", viewBox: "0 0 24 24", "aria-hidden": "true", onClick: this.onAddIconClick }, + h("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" }))))))); + }; + Tabs.css = css; + Tabs.defaultProps = { + position: 'top', + closable: false, + addable: false + }; + Tabs.propTypes = { + list: Array, + activeIndex: Number, + type: String, + position: String, + closable: Boolean, + addable: Boolean + }; + Tabs = __decorate([ + tag('o-tabs') + ], Tabs); + return Tabs; +}(WeElement)); + +export default Tabs; +//# sourceMappingURL=index.esm.js.map diff --git a/components/tabs/src/index.esm.js.map b/components/tabs/src/index.esm.js.map new file mode 100644 index 000000000..43d272a4f --- /dev/null +++ b/components/tabs/src/index.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.esm.js","sources":["../node_modules/color-string/node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/color-string/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/@omiu/common/color.js","../node_modules/@omiu/common/theme.js","index.tsx"],"sourcesContent":["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');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(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*([+-]?\\d+)\\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 = /(\\D+)/;\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] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\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] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\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\trgb[3] = parseFloat(match[4]);\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\trgb[3] = parseFloat(match[4]);\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\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\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*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\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;\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*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\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 = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","/* MIT license */\nvar 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\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\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\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\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\tl = (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\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 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\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\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar 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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar 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\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar 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\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var 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\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\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = 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\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar 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\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (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\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\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\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 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\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar 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 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(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\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(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\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar 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\tvar r = args[0];\n\tvar g = args[1];\n\tvar 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\tvar 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\tvar 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\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar 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\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar 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\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar 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\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar 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 + 4;\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\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\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\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar 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\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\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\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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar 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 = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\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\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var 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\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var 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\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar 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\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar 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\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar 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","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\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\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar 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 (var 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(function (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\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar 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","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar 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\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nexport function Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, 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\tvar i;\n\tvar channels;\n\n\tif (obj == 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 (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\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 (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[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\tvar 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: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var 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: function () {\n\t\tvar 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: function () {\n\t\tvar 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: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), 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, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\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(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((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: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar 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: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n //hsl.color[2] += hsl.color[2] * ratio;\n hsl.color[2] += ratio * 100;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n //hsl.color[2] -= hsl.color[2] * ratio;\n hsl.color[2] -= ratio * 100;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar 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: function (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\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\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(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n","import { Color } from './color'\n\ntheme()\n\ndocument.addEventListener('DOMContentLoaded', () => {\n theme()\n})\n\nfunction theme() {\n if (document.body && !document.body.style.getPropertyValue('--o-primary')) {\n setTheme('primary', '#07c160')\n setTheme('danger', '#f5222d')\n setTheme('surface', '#ffffff')\n setTheme('on-primary', '#ffffff')\n setTheme('on-danger', '#ffffff')\n setTheme('on-surface', '#000000')\n setTheme('background', '#ffffff')\n setTheme('small-radius', '4px')\n setTheme('medium-radius', '4px')\n setTheme('large-radius', '0px')\n setTheme('font-family', '-apple-system-font,\"Helvetica Neue\",sans-serif')\n }\n}\n\nfunction setTheme(key, value) {\n const style = document.body.style\n\n style.setProperty('--o-' + key, value)\n switch (key) {\n case 'primary':\n style.setProperty('--o-primary-fade-little', Color(value).fade(0.382))\n style.setProperty('--o-primary-fade-some', Color(value).fade(0.618))\n style.setProperty('--o-primary-fade-more', Color(value).fade(0.759))\n style.setProperty('--o-primary-fade-lot', Color(value).fade(0.9))\n style.setProperty('--o-primary-active', Color(value).darken(0.1))\n\n style.setProperty('--o-primary-hover-border', Color(value).fade(0.618))\n style.setProperty('--o-primary-hover-bg', Color(value).fade(0.9))\n\n break\n case 'danger':\n style.setProperty('--o-danger-fade-little', Color(value).fade(0.382))\n style.setProperty('--o-danger-fade-some', Color(value).fade(0.618))\n style.setProperty('--o-danger-fade-more', Color(value).fade(0.759))\n style.setProperty('--o-danger-fade-lot', Color(value).fade(0.9))\n style.setProperty('--o-danger-active', Color(value).darken(0.1))\n break\n\n }\n}\n\n\nif (typeof window !== undefined) {\n //@ts-ignore\n window.Omiu = {\n setTheme: setTheme,\n setThemePrimary: function (color) {\n setTheme('primary', color)\n },\n setThemeError: function (color) {\n setTheme('error', color)\n }\n }\n}\n","import { tag, WeElement, h, extractClass, classNames } from 'omi'\nimport * as css from './index.scss'\nimport '@omiu/common'\n\ninterface Props {\n\tlist?: any[]\n\tactiveIndex: number\n\ttype?: 'card' | 'border-card'\n\tposition?: 'left' | 'right' | 'top' | 'bottom'\n\tclosable?: boolean\n\taddable?: boolean\n}\n\n\n\n@tag('o-tabs')\nexport default class Tabs extends WeElement{\n\tstatic css = css\n\n\tstatic defaultProps = {\n\t\tposition: 'top',\n\t\tclosable: false,\n\t\taddable: false\n\t}\n\n\tstatic propTypes = {\n\t\tlist: Array,\n\t\tactiveIndex: Number,\n\t\ttype: String,\n\t\tposition: String,\n\t\tclosable: Boolean,\n\t\taddable: Boolean\n\t}\n\n\t_x\n\t_width\n\tbaseRect\n\tonTabClick = (evt, index) => {\n\t\tthis.setActiveBar(evt.currentTarget, index)\n\t\tthis.fire('change', {\n\t\t\ttab: this.props.list[index],\n\t\t\tindex: index\n\t\t})\n\t}\n\n\tsetActiveBar(ele, index) {\n\t\tconst rect = ele.getBoundingClientRect()\n\t\tthis._x = rect.left - this.baseRect.left\n\t\tthis._width = rect.width\n\t\tif (index === 0) {\n\t\t\tthis._x = 0\n\t\t\tthis._width -= 20\n\t\t} else if (index === this.props.list.length - 1) {\n\t\t\tthis._x += 20\n\t\t\tthis._width -= 20\n\t\t} else {\n\t\t\tthis._x += 20\n\t\t\tthis._width -= 40\n\t\t}\n\t\tthis.updateProps({\n\t\t\tactiveIndex: index\n\t\t})\n\t}\n\n\tinstalled() {\n\t\tthis.baseRect = this.rootNode.getBoundingClientRect()\n\t\tthis.setActiveBar(this['$tab' + this.props.activeIndex], this.props.activeIndex)\n\t}\n\n\tremoveTab(index) {\n\t\tconst tab = this.props.list.splice(index, 1)[0]\n\t\tthis.forceUpdate()\n\t\tthis.fire('remove', {\n\t\t\ttab: tab,\n\t\t\tindex: index\n\t\t})\n\t}\n\n\taddTab(tab) {\n\t\tthis.props.list.push(tab)\n\t\tthis.forceUpdate()\n\t}\n\n\tonAddIconClick() {\n\t\tthis.fire('addIconClick')\n\t}\n\n\t_tempTagName: string\n\n\trender(props) {\n\n\t\tconst activeBarStyle = (props.position === 'left' || props.position === 'right') ? {\n\t\t\theight: `40px`,\n\t\t\ttransform: `translateY(${props.activeIndex * 40}px)`\n\t\t} : {\n\t\t\t\twidth: `${this._width}px`,\n\t\t\t\ttransform: `translateX(${this._x}px)`\n\t\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{!props.type &&
}\n\n\t\t\t\t\t\t\t\t{props.list.map((tab, index) => {\n\t\t\t\t\t\t\t\t\tthis._tempTagName = 'o-icon-' + tab.icon\n\t\t\t\t\t\t\t\t\treturn
{ this['$tab' + index] = e }} role=\"tab\" onClick={evt => props.activeIndex !== index && this.onTabClick(evt, index)} tabindex={props.active === index ? '0' : -1}\n\t\t\t\t\t\t\t\t\t\t{...extractClass(props, 'o-tabs__item', {\n\t\t\t\t\t\t\t\t\t\t\t[`is-${props.position}`]: props.position,\n\t\t\t\t\t\t\t\t\t\t\t'is-active': props.activeIndex === index,\n\t\t\t\t\t\t\t\t\t\t\t'is-closable': props.closable\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t>{tab.icon && }{tab.label}{props.closable && { this.removeTab(index) }} class=\"o-icon-close\" style={props.activeIndex === index && `visibility: visible;`} fill=\"currentColor\" width=\"1em\" height=\"1em\" focusable=\"false\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">}
\n\t\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{props.addable && }\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t)\n\t}\n}\n"],"names":["colorNames","swizzle","cssKeywords","convert"],"mappings":"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"} \ No newline at end of file diff --git a/components/tabs/src/index.js b/components/tabs/src/index.js index 3de31694d..e2ce39789 100644 --- a/components/tabs/src/index.js +++ b/components/tabs/src/index.js @@ -96,14 +96,16 @@ return /******/ (function(modules) { // webpackBootstrap /************************************************************************/ /******/ ({ -/***/ "./node_modules/_@omiu_common@0.0.1@@omiu/common/color.js": +/***/ "./node_modules/_@omiu_common@0.0.2@@omiu/common/color.js": /*!****************************************************************!*\ - !*** ./node_modules/_@omiu_common@0.0.1@@omiu/common/color.js ***! + !*** ./node_modules/_@omiu_common@0.0.2@@omiu/common/color.js ***! \****************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/*! exports provided: Color */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return Color; }); var colorString = __webpack_require__(/*! color-string */ "./node_modules/_color-string@1.5.3@color-string/index.js"); @@ -587,22 +589,34 @@ function zeroArray(arr, length) { return arr; } -module.exports = Color; - /***/ }), -/***/ "./node_modules/_@omiu_common@0.0.1@@omiu/common/theme.ts": +/***/ "./node_modules/_@omiu_common@0.0.2@@omiu/common/index.js": /*!****************************************************************!*\ - !*** ./node_modules/_@omiu_common@0.0.1@@omiu/common/theme.ts ***! + !*** ./node_modules/_@omiu_common@0.0.2@@omiu/common/index.js ***! \****************************************************************/ /*! no exports provided */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color */ "./node_modules/_@omiu_common@0.0.1@@omiu/common/color.js"); -/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_color__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./theme.js */ "./node_modules/_@omiu_common@0.0.2@@omiu/common/theme.js"); + + + +/***/ }), + +/***/ "./node_modules/_@omiu_common@0.0.2@@omiu/common/theme.js": +/*!****************************************************************!*\ + !*** ./node_modules/_@omiu_common@0.0.2@@omiu/common/theme.js ***! + \****************************************************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color */ "./node_modules/_@omiu_common@0.0.2@@omiu/common/color.js"); theme() @@ -633,22 +647,22 @@ function setTheme(key, value) { style.setProperty('--o-' + key, value) switch (key) { case 'primary': - style.setProperty('--o-primary-fade-little', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.382)) - style.setProperty('--o-primary-fade-some', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.618)) - style.setProperty('--o-primary-fade-more', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.759)) - style.setProperty('--o-primary-fade-lot', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.9)) - style.setProperty('--o-primary-active', _color__WEBPACK_IMPORTED_MODULE_0__(value).darken(0.1)) + style.setProperty('--o-primary-fade-little', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.382)) + style.setProperty('--o-primary-fade-some', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.618)) + style.setProperty('--o-primary-fade-more', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.759)) + style.setProperty('--o-primary-fade-lot', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.9)) + style.setProperty('--o-primary-active', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).darken(0.1)) - style.setProperty('--o-primary-hover-border', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.618)) - style.setProperty('--o-primary-hover-bg', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.9)) + style.setProperty('--o-primary-hover-border', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.618)) + style.setProperty('--o-primary-hover-bg', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.9)) break case 'danger': - style.setProperty('--o-danger-fade-little', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.382)) - style.setProperty('--o-danger-fade-some', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.618)) - style.setProperty('--o-danger-fade-more', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.759)) - style.setProperty('--o-danger-fade-lot', _color__WEBPACK_IMPORTED_MODULE_0__(value).fade(0.9)) - style.setProperty('--o-danger-active', _color__WEBPACK_IMPORTED_MODULE_0__(value).darken(0.1)) + style.setProperty('--o-danger-fade-little', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.382)) + style.setProperty('--o-danger-fade-some', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.618)) + style.setProperty('--o-danger-fade-more', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.759)) + style.setProperty('--o-danger-fade-lot', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).fade(0.9)) + style.setProperty('--o-danger-active', Object(_color__WEBPACK_IMPORTED_MODULE_0__["Color"])(value).darken(0.1)) break } @@ -2548,7 +2562,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, Object.defineProperty(exports, "__esModule", { value: true }); var omi_1 = __webpack_require__(/*! omi */ "omi"); var css = __webpack_require__(/*! ./index.scss */ "./src/index.scss"); -__webpack_require__(/*! @omiu/common/theme.ts */ "./node_modules/_@omiu_common@0.0.1@@omiu/common/theme.ts"); +__webpack_require__(/*! @omiu/common */ "./node_modules/_@omiu_common@0.0.2@@omiu/common/index.js"); var Tabs = /** @class */ (function (_super) { __extends(Tabs, _super); function Tabs() { @@ -2587,10 +2601,10 @@ var Tabs = /** @class */ (function (_super) { this.setActiveBar(this['$tab' + this.props.activeIndex], this.props.activeIndex); }; Tabs.prototype.removeTab = function (index) { - var removedTab = this.props.list.splice(index, 1)[0]; + var tab = this.props.list.splice(index, 1)[0]; this.forceUpdate(); - this.fire('removed', { - removedTab: removedTab, + this.fire('remove', { + tab: tab, index: index }); }; diff --git a/components/tabs/src/index.js.map b/components/tabs/src/index.js.map index 9a9218ae7..c615e98f3 100644 --- a/components/tabs/src/index.js.map +++ b/components/tabs/src/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://OTabs/webpack/universalModuleDefinition","webpack://OTabs/webpack/bootstrap","webpack://OTabs/./node_modules/_@omiu_common@0.0.1@@omiu/common/color.js","webpack://OTabs/./node_modules/_@omiu_common@0.0.1@@omiu/common/theme.ts","webpack://OTabs/./node_modules/_color-convert@1.9.3@color-convert/conversions.js","webpack://OTabs/./node_modules/_color-convert@1.9.3@color-convert/index.js","webpack://OTabs/./node_modules/_color-convert@1.9.3@color-convert/route.js","webpack://OTabs/./node_modules/_color-name@1.1.3@color-name/index.js","webpack://OTabs/./node_modules/_color-name@1.1.4@color-name/index.js","webpack://OTabs/./node_modules/_color-string@1.5.3@color-string/index.js","webpack://OTabs/./src/index.scss","webpack://OTabs/./node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js","webpack://OTabs/./node_modules/_is-arrayish@0.3.2@is-arrayish/index.js","webpack://OTabs/./node_modules/_simple-swizzle@0.2.2@simple-swizzle/index.js","webpack://OTabs/./src/index.scss?56db","webpack://OTabs/./src/index.tsx","webpack://OTabs/external {\"commonjs\":\"omi\",\"commonjs2\":\"omi\",\"amd\":\"omi\",\"root\":\"Omi\"}"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;;AAEb,kBAAkB,mBAAO,CAAC,8EAAc;AACxC,cAAc,mBAAO,CAAC,iFAAe;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,qEAAqE,kCAAkC,EAAE;;AAEzG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;ACneA;AAAA;AAAA;AAAgC;;AAEhC;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,mCAAK;AACxD,iDAAiD,mCAAK;AACtD,iDAAiD,mCAAK;AACtD,gDAAgD,mCAAK;AACrD,8CAA8C,mCAAK;;AAEnD,oDAAoD,mCAAK;AACzD,gDAAgD,mCAAK;;AAErD;AACA;AACA,kDAAkD,mCAAK;AACvD,gDAAgD,mCAAK;AACrD,gDAAgD,mCAAK;AACrD,+CAA+C,mCAAK;AACpD,6CAA6C,mCAAK;AAClD;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/DA;AACA,kBAAkB,mBAAO,CAAC,wEAAY;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,QAAQ,4BAA4B;AACpC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,6BAA6B;AACpC,WAAW,iCAAiC;AAC5C,UAAU,gCAAgC;AAC1C,WAAW,iCAAiC;AAC5C,OAAO,qCAAqC;AAC5C,SAAS,2CAA2C;AACpD,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,QAAQ;AAC/B,gBAAgB,OAAO,QAAQ;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;;AAEtE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,EAAE,UAAU,EAAE;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACn2BA,kBAAkB,mBAAO,CAAC,uFAAe;AACzC,YAAY,mBAAO,CAAC,2EAAS;;AAE7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wDAAwD,uCAAuC;AAC/F,sDAAsD,qCAAqC;;AAE3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF,CAAC;;AAED;;;;;;;;;;;;AC7EA,kBAAkB,mBAAO,CAAC,uFAAe;;AAEzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,SAAS;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;AC/FY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvJY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvJA;AACA,iBAAiB,mBAAO,CAAC,wEAAY;AACrC,cAAc,mBAAO,CAAC,oFAAgB;;AAEtC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,IAAI;AAC7B,wBAAwB,EAAE,WAAW,EAAE;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;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CA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACRa;;AAEb,iBAAiB,mBAAO,CAAC,2EAAa;;AAEtC;AACA;;AAEA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,2YAAiN;;AAE9O;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D,YAAY,mBAAO,CAAC,gBAAK;AACzB,UAAU,mBAAO,CAAC,sCAAc;AAChC,mBAAO,CAAC,uFAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0CAA0C,8CAA8C;AACxF;AACA;AACA;AACA,4BAA4B,mDAAmD;AAC/E;AACA,0BAA0B;AAC1B,gCAAgC,qDAAqD;AACrF;AACA,8BAA8B;AAC9B,oCAAoC,8BAA8B;AAClE,wCAAwC,iEAAiE;AACzG;AACA,sCAAsC;AACtC,2DAA2D,uDAAuD;AAClH;AACA,iEAAiE;AACjE;AACA;AACA;AACA,gEAAgE,oBAAoB,2BAA2B,EAAE,wCAAwC,oEAAoE,EAAE,+CAA+C,oDAAoD;AAClU;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wBAAwB,wBAAwB,EAAE,oFAAoF,uHAAuH;AACnU,yDAAyD,6GAA6G;AACtK,6BAA6B;AAC7B,yDAAyD,wKAAwK;AACjO,6CAA6C,2CAA2C;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;ACrJA,iD","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"omi\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"omi\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OTabs\"] = factory(require(\"omi\"));\n\telse\n\t\troot[\"OTabs\"] = factory(root[\"Omi\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_omi__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.tsx\");\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar 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\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, 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\tvar i;\n\tvar channels;\n\n\tif (obj == 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 (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\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 (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[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\tvar 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: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var 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: function () {\n\t\tvar 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: function () {\n\t\tvar 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: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), 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, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\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(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((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: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar 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: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n //hsl.color[2] += hsl.color[2] * ratio;\n hsl.color[2] += ratio * 100;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n //hsl.color[2] -= hsl.color[2] * ratio;\n hsl.color[2] -= ratio * 100;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar 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: function (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\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\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(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","import * as Color from './color'\n\ntheme()\n\ndocument.addEventListener('DOMContentLoaded', () => {\n theme()\n})\n\nfunction theme() {\n if (document.body && !document.body.style.getPropertyValue('--o-primary')) {\n setTheme('primary', '#07c160')\n setTheme('danger', '#f5222d')\n setTheme('surface', '#ffffff')\n setTheme('on-primary', '#ffffff')\n setTheme('on-danger', '#ffffff')\n setTheme('on-surface', '#000000')\n setTheme('background', '#ffffff')\n setTheme('small-radius', '4px')\n setTheme('medium-radius', '4px')\n setTheme('large-radius', '0px')\n setTheme('font-family', '-apple-system-font,\"Helvetica Neue\",sans-serif')\n }\n}\n\nfunction setTheme(key, value) {\n const style = document.body.style\n\n style.setProperty('--o-' + key, value)\n switch (key) {\n case 'primary':\n style.setProperty('--o-primary-fade-little', Color(value).fade(0.382))\n style.setProperty('--o-primary-fade-some', Color(value).fade(0.618))\n style.setProperty('--o-primary-fade-more', Color(value).fade(0.759))\n style.setProperty('--o-primary-fade-lot', Color(value).fade(0.9))\n style.setProperty('--o-primary-active', Color(value).darken(0.1))\n\n style.setProperty('--o-primary-hover-border', Color(value).fade(0.618))\n style.setProperty('--o-primary-hover-bg', Color(value).fade(0.9))\n\n break\n case 'danger':\n style.setProperty('--o-danger-fade-little', Color(value).fade(0.382))\n style.setProperty('--o-danger-fade-some', Color(value).fade(0.618))\n style.setProperty('--o-danger-fade-more', Color(value).fade(0.759))\n style.setProperty('--o-danger-fade-lot', Color(value).fade(0.9))\n style.setProperty('--o-danger-active', Color(value).darken(0.1))\n break\n\n }\n}\n\n\nif (typeof window !== undefined) {\n //@ts-ignore\n window.Omiu = {\n setTheme: setTheme,\n setThemePrimary: function (color) {\n setTheme('primary', color)\n },\n setThemeError: function (color) {\n setTheme('error', color)\n }\n }\n}\n","/* MIT license */\nvar 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\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\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\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\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\tl = (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\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 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\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\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar 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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar 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\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar 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\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var 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\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\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = 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\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar 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\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (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\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\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\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 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\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar 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 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(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\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(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\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar 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\tvar r = args[0];\n\tvar g = args[1];\n\tvar 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\tvar 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\tvar 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\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar 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\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar 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\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar 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\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar 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 + 4;\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\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\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\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar 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\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\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\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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar 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 = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\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\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\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\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar 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 (var 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(function (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\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar 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","var 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\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var 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\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar 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\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar 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\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar 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","'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","'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","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(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*([+-]?\\d+)\\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 = /(\\D+)/;\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] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\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] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\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\trgb[3] = parseFloat(match[4]);\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\trgb[3] = parseFloat(match[4]);\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\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\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*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\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;\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*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\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 = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","exports = module.exports = require(\"../node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n display: block; }\\n\\n.o-tabs__header {\\n padding: 0;\\n position: relative;\\n margin: 0 0 15px; }\\n\\n.o-tabs__active-bar {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n height: 2px;\\n background-color: #07c160;\\n z-index: 1;\\n -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n list-style: none; }\\n\\n.o-tabs__new-tab {\\n float: right;\\n border: 1px solid #d3dce6;\\n height: 18px;\\n width: 18px;\\n line-height: 18px;\\n margin: 12px 0 9px 10px;\\n border-radius: 3px;\\n text-align: center;\\n font-size: 12px;\\n color: #d3dce6;\\n cursor: pointer;\\n -webkit-transition: all .15s;\\n transition: all .15s; }\\n\\n.o-tabs__new-tab .o-icon-plus {\\n -webkit-transform: scale(0.8, 0.8);\\n transform: scale(0.8, 0.8); }\\n\\n.o-tabs__new-tab:hover {\\n color: #07c160; }\\n\\n.o-tabs__nav-wrap {\\n overflow: hidden;\\n margin-bottom: -1px;\\n position: relative; }\\n\\n.o-tabs__nav-wrap::after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n height: 2px;\\n background-color: #E4E7ED;\\n z-index: 1; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__nav-wrap::after,\\n.o-tabs--card > .o-tabs__header .o-tabs__nav-wrap::after {\\n content: none; }\\n\\n.o-tabs__nav-wrap.is-scrollable {\\n padding: 0 20px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box; }\\n\\n.o-tabs__nav-scroll {\\n overflow: hidden; }\\n\\n.o-tabs__nav-next,\\n.o-tabs__nav-prev {\\n position: absolute;\\n cursor: pointer;\\n line-height: 44px;\\n font-size: 12px;\\n color: #909399; }\\n\\n.o-tabs__nav-next {\\n right: 0; }\\n\\n.o-tabs__nav-prev {\\n left: 0; }\\n\\n.o-tabs__nav {\\n white-space: nowrap;\\n position: relative;\\n -webkit-transition: -webkit-transform .3s;\\n transition: -webkit-transform .3s;\\n transition: transform .3s;\\n transition: transform .3s, -webkit-transform .3s;\\n float: left;\\n z-index: 2; }\\n\\n.o-tabs__nav.is-stretch {\\n min-width: 100%;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex; }\\n\\n.o-tabs__nav.is-stretch > * {\\n -webkit-box-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n text-align: center; }\\n\\n.o-tabs__item {\\n padding: 0 20px;\\n height: 40px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n line-height: 40px;\\n display: inline-block;\\n list-style: none;\\n font-size: 14px;\\n font-weight: 500;\\n color: #303133;\\n position: relative; }\\n\\n.o-tabs__item:focus,\\n.o-tabs__item:focus:active {\\n outline: 0; }\\n\\n.o-tabs__item:focus.is-active.is-focus:not(:active) {\\n -webkit-box-shadow: 0 0 2px 2px #07c160 inset;\\n box-shadow: 0 0 2px 2px #07c160 inset;\\n border-radius: 3px; }\\n\\n.o-tabs__item:hover .o-icon-close {\\n visibility: visible; }\\n\\n.o-tabs__item .o-icon-close {\\n visibility: hidden;\\n border-radius: 50%;\\n text-align: center;\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n margin-left: 5px; }\\n\\n.o-tabs__item .o-icon-close:before {\\n -webkit-transform: scale(0.9);\\n transform: scale(0.9);\\n display: inline-block; }\\n\\n.o-tabs__item .o-icon-close:hover {\\n background-color: #C0C4CC;\\n color: #FFF; }\\n\\n.o-tabs__item.is-active {\\n color: #07c160; }\\n\\n.o-tabs__item:hover {\\n color: #07c160;\\n cursor: pointer; }\\n\\n.o-tabs__item.is-disabled {\\n color: #C0C4CC;\\n cursor: default; }\\n\\n.o-tabs__content {\\n overflow: hidden;\\n position: relative; }\\n\\n.o-tabs--card > .o-tabs__header {\\n border-bottom: 1px solid #E4E7ED; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__nav {\\n border: 1px solid #E4E7ED;\\n border-bottom: none;\\n border-radius: 4px 4px 0 0;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__active-bar {\\n display: none; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item .o-icon-close {\\n position: relative;\\n font-size: 12px;\\n width: 0;\\n height: 14px;\\n vertical-align: middle;\\n line-height: 15px;\\n overflow: hidden;\\n top: -1px;\\n right: -2px;\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable .o-icon-close,\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover .o-icon-close {\\n width: 14px; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item {\\n border-bottom: 1px solid transparent;\\n border-left: 1px solid #E4E7ED;\\n -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item:first-child {\\n border-left: none; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover {\\n padding-left: 13px;\\n padding-right: 13px; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-active {\\n border-bottom-color: #FFF; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable {\\n padding-left: 20px;\\n padding-right: 20px; }\\n\\n.o-tabs--border-card {\\n background: #FFF;\\n border: 1px solid #DCDFE6;\\n border-bottom: none; }\\n\\n.o-tabs--border-card.o-tabs--bottom {\\n border: 1px solid #DCDFE6; }\\n\\n.o-tabs--border-card > .o-tabs__content {\\n padding: 15px; }\\n\\n.o-tabs--border-card > .o-tabs__header {\\n background-color: #F5F7FA;\\n border-bottom: 1px solid #E4E7ED;\\n margin: 0; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item {\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n border: 1px solid transparent;\\n margin-top: -1px;\\n color: #909399; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item + .o-tabs__item,\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item:first-child {\\n margin-left: -1px; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-active {\\n color: #07c160;\\n background-color: #FFF;\\n border-right-color: #DCDFE6;\\n border-left-color: #DCDFE6; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item:not(.is-disabled):hover {\\n color: #07c160; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-disabled {\\n color: #C0C4CC; }\\n\\n.o-tabs--border-card > .o-tabs__header .is-scrollable .o-tabs__item:first-child {\\n margin-left: 0; }\\n\\n.o-tabs--bottom .o-tabs__item.is-bottom:nth-child(2),\\n.o-tabs--bottom .o-tabs__item.is-top:nth-child(2),\\n.o-tabs--top .o-tabs__item.is-bottom:nth-child(2),\\n.o-tabs--top .o-tabs__item.is-top:nth-child(2) {\\n padding-left: 0; }\\n\\n.o-tabs--bottom .o-tabs__item.is-bottom:last-child,\\n.o-tabs--bottom .o-tabs__item.is-top:last-child,\\n.o-tabs--top .o-tabs__item.is-bottom:last-child,\\n.o-tabs--top .o-tabs__item.is-top:last-child {\\n padding-right: 0; }\\n\\n.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2) {\\n padding-left: 20px; }\\n\\n.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:last-child {\\n padding-right: 20px; }\\n\\n.o-tabs--bottom.o-tabs--border-card {\\n border-top: none; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__header.is-bottom {\\n border-bottom: 0;\\n border-top: 1px solid #DCDFE6; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__nav-wrap.is-bottom {\\n margin-top: -1px;\\n margin-bottom: 0; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom:not(.is-active) {\\n border: 1px solid transparent; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom {\\n margin: 0 -1px -1px; }\\n\\n.o-tabs--left,\\n.o-tabs--right {\\n overflow: hidden; }\\n\\n.o-tabs--left .o-tabs__header.is-left,\\n.o-tabs--left .o-tabs__header.is-right,\\n.o-tabs--left .o-tabs__nav-scroll,\\n.o-tabs--left .o-tabs__nav-wrap.is-left,\\n.o-tabs--left .o-tabs__nav-wrap.is-right,\\n.o-tabs--right .o-tabs__header.is-left,\\n.o-tabs--right .o-tabs__header.is-right,\\n.o-tabs--right .o-tabs__nav-scroll,\\n.o-tabs--right .o-tabs__nav-wrap.is-left,\\n.o-tabs--right .o-tabs__nav-wrap.is-right {\\n height: 100%; }\\n\\n.o-tabs--left .o-tabs__active-bar.is-left,\\n.o-tabs--left .o-tabs__active-bar.is-right,\\n.o-tabs--right .o-tabs__active-bar.is-left,\\n.o-tabs--right .o-tabs__active-bar.is-right {\\n top: 0;\\n bottom: auto;\\n width: 2px;\\n height: auto; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left,\\n.o-tabs--left .o-tabs__nav-wrap.is-right,\\n.o-tabs--right .o-tabs__nav-wrap.is-left,\\n.o-tabs--right .o-tabs__nav-wrap.is-right {\\n margin-bottom: 0; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev {\\n height: 30px;\\n line-height: 30px;\\n width: 100%;\\n text-align: center;\\n cursor: pointer; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i,\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i {\\n -webkit-transform: rotateZ(90deg);\\n transform: rotateZ(90deg); }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev {\\n left: auto;\\n top: 0; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next {\\n right: auto;\\n bottom: 0; }\\n\\n.o-tabs--left .o-tabs__active-bar.is-left,\\n.o-tabs--left .o-tabs__nav-wrap.is-left::after {\\n right: 0;\\n left: auto; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left.is-scrollable,\\n.o-tabs--left .o-tabs__nav-wrap.is-right.is-scrollable,\\n.o-tabs--right .o-tabs__nav-wrap.is-left.is-scrollable,\\n.o-tabs--right .o-tabs__nav-wrap.is-right.is-scrollable {\\n padding: 30px 0; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left::after,\\n.o-tabs--left .o-tabs__nav-wrap.is-right::after,\\n.o-tabs--right .o-tabs__nav-wrap.is-left::after,\\n.o-tabs--right .o-tabs__nav-wrap.is-right::after {\\n height: 100%;\\n width: 2px;\\n bottom: auto;\\n top: 0; }\\n\\n.o-tabs--left .o-tabs__nav.is-left,\\n.o-tabs--left .o-tabs__nav.is-right,\\n.o-tabs--right .o-tabs__nav.is-left,\\n.o-tabs--right .o-tabs__nav.is-right {\\n float: none; }\\n\\n.o-tabs--left .o-tabs__item.is-left,\\n.o-tabs--left .o-tabs__item.is-right,\\n.o-tabs--right .o-tabs__item.is-left,\\n.o-tabs--right .o-tabs__item.is-right {\\n display: block; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__active-bar.is-left,\\n.o-tabs--right.o-tabs--card .o-tabs__active-bar.is-right {\\n display: none; }\\n\\n.o-tabs--left .o-tabs__header.is-left {\\n float: left;\\n margin-bottom: 0;\\n margin-right: 10px; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left {\\n margin-right: -1px; }\\n\\n.o-tabs--left .o-tabs__item.is-left {\\n text-align: right; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left {\\n border-left: none;\\n border-right: 1px solid #E4E7ED;\\n border-bottom: none;\\n border-top: 1px solid #E4E7ED;\\n text-align: left; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left:first-child {\\n border-right: 1px solid #E4E7ED;\\n border-top: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active {\\n border: 1px solid #E4E7ED;\\n border-right-color: #fff;\\n border-left: none;\\n border-bottom: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:first-child {\\n border-top: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:last-child {\\n border-bottom: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__nav {\\n border-radius: 4px 0 0 4px;\\n border-bottom: 1px solid #E4E7ED;\\n border-right: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__new-tab {\\n float: none; }\\n\\n.o-tabs--left.o-tabs--border-card .o-tabs__header.is-left {\\n border-right: 1px solid #dfe4ed; }\\n\\n.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left {\\n border: 1px solid transparent;\\n margin: -1px 0 -1px -1px; }\\n\\n.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left.is-active {\\n border-color: #d1dbe5 transparent; }\\n\\n.o-tabs--right .o-tabs__header.is-right {\\n float: right;\\n margin-bottom: 0;\\n margin-left: 10px; }\\n\\n.o-tabs--right .o-tabs__nav-wrap.is-right {\\n margin-left: -1px; }\\n\\n.o-tabs--right .o-tabs__nav-wrap.is-right::after {\\n left: 0;\\n right: auto; }\\n\\n.o-tabs--right .o-tabs__active-bar.is-right {\\n left: 0; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right {\\n border-bottom: none;\\n border-top: 1px solid #E4E7ED; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right:first-child {\\n border-left: 1px solid #E4E7ED;\\n border-top: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active {\\n border: 1px solid #E4E7ED;\\n border-left-color: #fff;\\n border-right: none;\\n border-bottom: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:first-child {\\n border-top: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:last-child {\\n border-bottom: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__nav {\\n border-radius: 0 4px 4px 0;\\n border-bottom: 1px solid #E4E7ED;\\n border-left: none; }\\n\\n.o-tabs--right.o-tabs--border-card .o-tabs__header.is-right {\\n border-left: 1px solid #dfe4ed; }\\n\\n.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right {\\n border: 1px solid transparent;\\n margin: -1px -1px -1px 0; }\\n\\n.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right.is-active {\\n border-color: #d1dbe5 transparent; }\\n\\n.slideInLeft-transition,\\n.slideInRight-transition {\\n display: inline-block; }\\n\\n.slideInRight-enter {\\n -webkit-animation: slideInRight-enter .3s;\\n animation: slideInRight-enter .3s; }\\n\\n.slideInRight-leave {\\n position: absolute;\\n left: 0;\\n right: 0;\\n -webkit-animation: slideInRight-leave .3s;\\n animation: slideInRight-leave .3s; }\\n\\n.slideInLeft-enter {\\n -webkit-animation: slideInLeft-enter .3s;\\n animation: slideInLeft-enter .3s; }\\n\\n.slideInLeft-leave {\\n position: absolute;\\n left: 0;\\n right: 0;\\n -webkit-animation: slideInLeft-leave .3s;\\n animation: slideInLeft-leave .3s; }\\n\\n@-webkit-keyframes slideInRight-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@keyframes slideInRight-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@-webkit-keyframes slideInRight-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n opacity: 0; } }\\n\\n@keyframes slideInRight-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n opacity: 0; } }\\n\\n@-webkit-keyframes slideInLeft-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@keyframes slideInLeft-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@-webkit-keyframes slideInLeft-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n opacity: 0; } }\\n\\n@keyframes slideInLeft-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n opacity: 0; } }\\n\\n.o-icon-close {\\n display: inline-block;\\n vertical-align: -0.125em; }\\n\\n.o-icon-add {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5em;\\n margin-left: 0.5em;\\n cursor: pointer; }\\n\\n.o-icon-add:hover {\\n color: #07c160; }\\n\", \"\"]);\n\n// exports\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\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","\n var result = require(\"!!../node_modules/_css-loader@1.0.1@css-loader/index.js!../node_modules/_resolve-url-loader@3.1.1@resolve-url-loader/index.js!../node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??ref--4-3!./index.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar omi_1 = require(\"omi\");\nvar css = require(\"./index.scss\");\nrequire(\"@omiu/common/theme.ts\");\nvar Tabs = /** @class */ (function (_super) {\n __extends(Tabs, _super);\n function Tabs() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onTabClick = function (evt, index) {\n _this.setActiveBar(evt.currentTarget, index);\n _this.fire('change', {\n tab: _this.props.list[index],\n index: index\n });\n };\n return _this;\n }\n Tabs.prototype.setActiveBar = function (ele, index) {\n var rect = ele.getBoundingClientRect();\n this._x = rect.left - this.baseRect.left;\n this._width = rect.width;\n if (index === 0) {\n this._x = 0;\n this._width -= 20;\n }\n else if (index === this.props.list.length - 1) {\n this._x += 20;\n this._width -= 20;\n }\n else {\n this._x += 20;\n this._width -= 40;\n }\n this.updateProps({\n activeIndex: index\n });\n };\n Tabs.prototype.installed = function () {\n this.baseRect = this.rootNode.getBoundingClientRect();\n this.setActiveBar(this['$tab' + this.props.activeIndex], this.props.activeIndex);\n };\n Tabs.prototype.removeTab = function (index) {\n var removedTab = this.props.list.splice(index, 1)[0];\n this.forceUpdate();\n this.fire('removed', {\n removedTab: removedTab,\n index: index\n });\n };\n Tabs.prototype.addTab = function (tab) {\n this.props.list.push(tab);\n this.forceUpdate();\n };\n Tabs.prototype.onAddIconClick = function () {\n this.fire('addIconClick');\n };\n Tabs.prototype.render = function (props) {\n var _a, _b, _c, _d, _e;\n var _this = this;\n var activeBarStyle = (props.position === 'left' || props.position === 'right') ? {\n height: \"40px\",\n transform: \"translateY(\" + props.activeIndex * 40 + \"px)\"\n } : {\n width: this._width + \"px\",\n transform: \"translateX(\" + this._x + \"px)\"\n };\n return (omi_1.h(\"div\", __assign({}, omi_1.extractClass(props, 'o-tabs', (_a = {},\n _a[\"o-tabs--\" + props.position] = props.position,\n _a[\"o-tabs--\" + props.type] = props.type,\n _a))),\n omi_1.h(\"div\", { class: omi_1.classNames('o-tabs__header', (_b = {},\n _b[\"is-\" + props.position] = props.position,\n _b)) },\n omi_1.h(\"div\", { class: omi_1.classNames('o-tabs__nav-wrap', (_c = {},\n _c[\"is-\" + props.position] = props.position,\n _c)) },\n omi_1.h(\"div\", { class: \"o-tabs__nav-scroll\" },\n omi_1.h(\"div\", { role: \"tablist\", class: omi_1.classNames('o-tabs__nav', (_d = {},\n _d[\"is-\" + props.position] = props.position,\n _d)) },\n !props.type && omi_1.h(\"div\", { class: omi_1.classNames('o-tabs__active-bar', (_e = {},\n _e[\"is-\" + props.position] = props.position,\n _e)), style: activeBarStyle }),\n props.list.map(function (tab, index) {\n var _a;\n _this._tempTagName = 'o-icon-' + tab.icon;\n return omi_1.h(\"div\", __assign({ ref: function (e) { _this['$tab' + index] = e; }, role: \"tab\", onClick: function (evt) { return props.activeIndex !== index && _this.onTabClick(evt, index); }, tabindex: props.active === index ? '0' : -1 }, omi_1.extractClass(props, 'o-tabs__item', (_a = {},\n _a[\"is-\" + props.position] = props.position,\n _a['is-active'] = props.activeIndex === index,\n _a['is-closable'] = props.closable,\n _a))),\n tab.icon && omi_1.h(_this._tempTagName, null),\n tab.label,\n props.closable && omi_1.h(\"svg\", { onClick: function (_) { _this.removeTab(index); }, class: \"o-icon-close\", style: props.activeIndex === index && \"visibility: visible;\", fill: \"currentColor\", width: \"1em\", height: \"1em\", focusable: \"false\", viewBox: \"0 0 24 24\", \"aria-hidden\": \"true\" },\n omi_1.h(\"path\", { d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" })));\n })),\n props.addable && omi_1.h(\"svg\", { class: \"o-icon-add\", fill: \"currentColor\", width: \"1em\", height: \"1em\", focusable: \"false\", viewBox: \"0 0 24 24\", \"aria-hidden\": \"true\", onClick: this.onAddIconClick },\n omi_1.h(\"path\", { d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\" })))))));\n };\n Tabs.css = css;\n Tabs.defaultProps = {\n position: 'top',\n closable: false,\n addable: false\n };\n Tabs.propTypes = {\n list: Array,\n activeIndex: Number,\n type: String,\n position: String,\n closable: Boolean,\n addable: Boolean\n };\n Tabs = __decorate([\n omi_1.tag('o-tabs')\n ], Tabs);\n return Tabs;\n}(omi_1.WeElement));\nexports.default = Tabs;\n","module.exports = __WEBPACK_EXTERNAL_MODULE_omi__;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://OTabs/webpack/universalModuleDefinition","webpack://OTabs/webpack/bootstrap","webpack://OTabs/./node_modules/_@omiu_common@0.0.2@@omiu/common/color.js","webpack://OTabs/./node_modules/_@omiu_common@0.0.2@@omiu/common/index.js","webpack://OTabs/./node_modules/_@omiu_common@0.0.2@@omiu/common/theme.js","webpack://OTabs/./node_modules/_color-convert@1.9.3@color-convert/conversions.js","webpack://OTabs/./node_modules/_color-convert@1.9.3@color-convert/index.js","webpack://OTabs/./node_modules/_color-convert@1.9.3@color-convert/route.js","webpack://OTabs/./node_modules/_color-name@1.1.3@color-name/index.js","webpack://OTabs/./node_modules/_color-name@1.1.4@color-name/index.js","webpack://OTabs/./node_modules/_color-string@1.5.3@color-string/index.js","webpack://OTabs/./src/index.scss","webpack://OTabs/./node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js","webpack://OTabs/./node_modules/_is-arrayish@0.3.2@is-arrayish/index.js","webpack://OTabs/./node_modules/_simple-swizzle@0.2.2@simple-swizzle/index.js","webpack://OTabs/./src/index.scss?56db","webpack://OTabs/./src/index.tsx","webpack://OTabs/external {\"commonjs\":\"omi\",\"commonjs2\":\"omi\",\"amd\":\"omi\",\"root\":\"Omi\"}"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFA;AAAA;AAAa;;AAEb,kBAAkB,mBAAO,CAAC,8EAAc;AACxC,cAAc,mBAAO,CAAC,iFAAe;;AAErC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,qEAAqE,kCAAkC,EAAE;;AAEzG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACjeA;AAAA;AAAmB;;;;;;;;;;;;;ACAnB;AAAA;AAA+B;;AAE/B;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,oDAAK;AACxD,iDAAiD,oDAAK;AACtD,iDAAiD,oDAAK;AACtD,gDAAgD,oDAAK;AACrD,8CAA8C,oDAAK;;AAEnD,oDAAoD,oDAAK;AACzD,gDAAgD,oDAAK;;AAErD;AACA;AACA,kDAAkD,oDAAK;AACvD,gDAAgD,oDAAK;AACrD,gDAAgD,oDAAK;AACrD,+CAA+C,oDAAK;AACpD,6CAA6C,oDAAK;AAClD;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/DA;AACA,kBAAkB,mBAAO,CAAC,wEAAY;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,QAAQ,4BAA4B;AACpC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,6BAA6B;AACpC,WAAW,iCAAiC;AAC5C,UAAU,gCAAgC;AAC1C,WAAW,iCAAiC;AAC5C,OAAO,qCAAqC;AAC5C,SAAS,2CAA2C;AACpD,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,QAAQ;AAC/B,gBAAgB,OAAO,QAAQ;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;;AAEtE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,EAAE,UAAU,EAAE;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACn2BA,kBAAkB,mBAAO,CAAC,uFAAe;AACzC,YAAY,mBAAO,CAAC,2EAAS;;AAE7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wDAAwD,uCAAuC;AAC/F,sDAAsD,qCAAqC;;AAE3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF,CAAC;;AAED;;;;;;;;;;;;AC7EA,kBAAkB,mBAAO,CAAC,uFAAe;;AAEzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,SAAS;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;AC/FY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvJY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvJA;AACA,iBAAiB,mBAAO,CAAC,wEAAY;AACrC,cAAc,mBAAO,CAAC,oFAAgB;;AAEtC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,IAAI;AAC7B,wBAAwB,EAAE,WAAW,EAAE;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;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AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACRa;;AAEb,iBAAiB,mBAAO,CAAC,2EAAa;;AAEtC;AACA;;AAEA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,2YAAiN;;AAE9O;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;ACPa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D,YAAY,mBAAO,CAAC,gBAAK;AACzB,UAAU,mBAAO,CAAC,sCAAc;AAChC,mBAAO,CAAC,8EAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0CAA0C,8CAA8C;AACxF;AACA;AACA;AACA,4BAA4B,mDAAmD;AAC/E;AACA,0BAA0B;AAC1B,gCAAgC,qDAAqD;AACrF;AACA,8BAA8B;AAC9B,oCAAoC,8BAA8B;AAClE,wCAAwC,iEAAiE;AACzG;AACA,sCAAsC;AACtC,2DAA2D,uDAAuD;AAClH;AACA,iEAAiE;AACjE;AACA;AACA;AACA,gEAAgE,oBAAoB,2BAA2B,EAAE,wCAAwC,oEAAoE,EAAE,+CAA+C,oDAAoD;AAClU;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wBAAwB,wBAAwB,EAAE,oFAAoF,uHAAuH;AACnU,yDAAyD,6GAA6G;AACtK,6BAA6B;AAC7B,yDAAyD,wKAAwK;AACjO,6CAA6C,2CAA2C;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;ACrJA,iD","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"omi\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"omi\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OTabs\"] = factory(require(\"omi\"));\n\telse\n\t\troot[\"OTabs\"] = factory(root[\"Omi\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_omi__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.tsx\");\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar 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\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nexport function Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, 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\tvar i;\n\tvar channels;\n\n\tif (obj == 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 (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\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 (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[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\tvar 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: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var 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: function () {\n\t\tvar 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: function () {\n\t\tvar 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: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), 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, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\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(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((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: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar 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: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n //hsl.color[2] += hsl.color[2] * ratio;\n hsl.color[2] += ratio * 100;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n //hsl.color[2] -= hsl.color[2] * ratio;\n hsl.color[2] -= ratio * 100;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar 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: function (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\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\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(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n","import './theme.js'\n","import { Color } from './color'\n\ntheme()\n\ndocument.addEventListener('DOMContentLoaded', () => {\n theme()\n})\n\nfunction theme() {\n if (document.body && !document.body.style.getPropertyValue('--o-primary')) {\n setTheme('primary', '#07c160')\n setTheme('danger', '#f5222d')\n setTheme('surface', '#ffffff')\n setTheme('on-primary', '#ffffff')\n setTheme('on-danger', '#ffffff')\n setTheme('on-surface', '#000000')\n setTheme('background', '#ffffff')\n setTheme('small-radius', '4px')\n setTheme('medium-radius', '4px')\n setTheme('large-radius', '0px')\n setTheme('font-family', '-apple-system-font,\"Helvetica Neue\",sans-serif')\n }\n}\n\nfunction setTheme(key, value) {\n const style = document.body.style\n\n style.setProperty('--o-' + key, value)\n switch (key) {\n case 'primary':\n style.setProperty('--o-primary-fade-little', Color(value).fade(0.382))\n style.setProperty('--o-primary-fade-some', Color(value).fade(0.618))\n style.setProperty('--o-primary-fade-more', Color(value).fade(0.759))\n style.setProperty('--o-primary-fade-lot', Color(value).fade(0.9))\n style.setProperty('--o-primary-active', Color(value).darken(0.1))\n\n style.setProperty('--o-primary-hover-border', Color(value).fade(0.618))\n style.setProperty('--o-primary-hover-bg', Color(value).fade(0.9))\n\n break\n case 'danger':\n style.setProperty('--o-danger-fade-little', Color(value).fade(0.382))\n style.setProperty('--o-danger-fade-some', Color(value).fade(0.618))\n style.setProperty('--o-danger-fade-more', Color(value).fade(0.759))\n style.setProperty('--o-danger-fade-lot', Color(value).fade(0.9))\n style.setProperty('--o-danger-active', Color(value).darken(0.1))\n break\n\n }\n}\n\n\nif (typeof window !== undefined) {\n //@ts-ignore\n window.Omiu = {\n setTheme: setTheme,\n setThemePrimary: function (color) {\n setTheme('primary', color)\n },\n setThemeError: function (color) {\n setTheme('error', color)\n }\n }\n}\n","/* MIT license */\nvar 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\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\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\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\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\tl = (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\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 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\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\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar 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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar 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\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar 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\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var 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\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\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = 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\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar 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\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (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\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\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\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 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\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar 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 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(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\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(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\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar 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\tvar r = args[0];\n\tvar g = args[1];\n\tvar 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\tvar 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\tvar 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\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar 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\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar 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\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar 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\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar 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 + 4;\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\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\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\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar 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\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\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\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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar 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 = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\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\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\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\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar 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 (var 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(function (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\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar 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","var 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\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var 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\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar 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\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar 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\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar 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","'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","'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","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(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*([+-]?\\d+)\\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 = /(\\D+)/;\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] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\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] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\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\trgb[3] = parseFloat(match[4]);\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\trgb[3] = parseFloat(match[4]);\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\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\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*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\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;\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*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\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 = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","exports = module.exports = require(\"../node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n display: block; }\\n\\n.o-tabs__header {\\n padding: 0;\\n position: relative;\\n margin: 0 0 15px; }\\n\\n.o-tabs__active-bar {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n height: 2px;\\n background-color: #07c160;\\n z-index: 1;\\n -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n list-style: none; }\\n\\n.o-tabs__new-tab {\\n float: right;\\n border: 1px solid #d3dce6;\\n height: 18px;\\n width: 18px;\\n line-height: 18px;\\n margin: 12px 0 9px 10px;\\n border-radius: 3px;\\n text-align: center;\\n font-size: 12px;\\n color: #d3dce6;\\n cursor: pointer;\\n -webkit-transition: all .15s;\\n transition: all .15s; }\\n\\n.o-tabs__new-tab .o-icon-plus {\\n -webkit-transform: scale(0.8, 0.8);\\n transform: scale(0.8, 0.8); }\\n\\n.o-tabs__new-tab:hover {\\n color: #07c160; }\\n\\n.o-tabs__nav-wrap {\\n overflow: hidden;\\n margin-bottom: -1px;\\n position: relative; }\\n\\n.o-tabs__nav-wrap::after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n height: 2px;\\n background-color: #E4E7ED;\\n z-index: 1; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__nav-wrap::after,\\n.o-tabs--card > .o-tabs__header .o-tabs__nav-wrap::after {\\n content: none; }\\n\\n.o-tabs__nav-wrap.is-scrollable {\\n padding: 0 20px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box; }\\n\\n.o-tabs__nav-scroll {\\n overflow: hidden; }\\n\\n.o-tabs__nav-next,\\n.o-tabs__nav-prev {\\n position: absolute;\\n cursor: pointer;\\n line-height: 44px;\\n font-size: 12px;\\n color: #909399; }\\n\\n.o-tabs__nav-next {\\n right: 0; }\\n\\n.o-tabs__nav-prev {\\n left: 0; }\\n\\n.o-tabs__nav {\\n white-space: nowrap;\\n position: relative;\\n -webkit-transition: -webkit-transform .3s;\\n transition: -webkit-transform .3s;\\n transition: transform .3s;\\n transition: transform .3s, -webkit-transform .3s;\\n float: left;\\n z-index: 2; }\\n\\n.o-tabs__nav.is-stretch {\\n min-width: 100%;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex; }\\n\\n.o-tabs__nav.is-stretch > * {\\n -webkit-box-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n text-align: center; }\\n\\n.o-tabs__item {\\n padding: 0 20px;\\n height: 40px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n line-height: 40px;\\n display: inline-block;\\n list-style: none;\\n font-size: 14px;\\n font-weight: 500;\\n color: #303133;\\n position: relative; }\\n\\n.o-tabs__item:focus,\\n.o-tabs__item:focus:active {\\n outline: 0; }\\n\\n.o-tabs__item:focus.is-active.is-focus:not(:active) {\\n -webkit-box-shadow: 0 0 2px 2px #07c160 inset;\\n box-shadow: 0 0 2px 2px #07c160 inset;\\n border-radius: 3px; }\\n\\n.o-tabs__item:hover .o-icon-close {\\n visibility: visible; }\\n\\n.o-tabs__item .o-icon-close {\\n visibility: hidden;\\n border-radius: 50%;\\n text-align: center;\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n margin-left: 5px; }\\n\\n.o-tabs__item .o-icon-close:before {\\n -webkit-transform: scale(0.9);\\n transform: scale(0.9);\\n display: inline-block; }\\n\\n.o-tabs__item .o-icon-close:hover {\\n background-color: #C0C4CC;\\n color: #FFF; }\\n\\n.o-tabs__item.is-active {\\n color: #07c160; }\\n\\n.o-tabs__item:hover {\\n color: #07c160;\\n cursor: pointer; }\\n\\n.o-tabs__item.is-disabled {\\n color: #C0C4CC;\\n cursor: default; }\\n\\n.o-tabs__content {\\n overflow: hidden;\\n position: relative; }\\n\\n.o-tabs--card > .o-tabs__header {\\n border-bottom: 1px solid #E4E7ED; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__nav {\\n border: 1px solid #E4E7ED;\\n border-bottom: none;\\n border-radius: 4px 4px 0 0;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__active-bar {\\n display: none; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item .o-icon-close {\\n position: relative;\\n font-size: 12px;\\n width: 0;\\n height: 14px;\\n vertical-align: middle;\\n line-height: 15px;\\n overflow: hidden;\\n top: -1px;\\n right: -2px;\\n -webkit-transform-origin: 100% 50%;\\n transform-origin: 100% 50%; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable .o-icon-close,\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover .o-icon-close {\\n width: 14px; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item {\\n border-bottom: 1px solid transparent;\\n border-left: 1px solid #E4E7ED;\\n -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item:first-child {\\n border-left: none; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-closable:hover {\\n padding-left: 13px;\\n padding-right: 13px; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-active {\\n border-bottom-color: #FFF; }\\n\\n.o-tabs--card > .o-tabs__header .o-tabs__item.is-active.is-closable {\\n padding-left: 20px;\\n padding-right: 20px; }\\n\\n.o-tabs--border-card {\\n background: #FFF;\\n border: 1px solid #DCDFE6;\\n border-bottom: none; }\\n\\n.o-tabs--border-card.o-tabs--bottom {\\n border: 1px solid #DCDFE6; }\\n\\n.o-tabs--border-card > .o-tabs__content {\\n padding: 15px; }\\n\\n.o-tabs--border-card > .o-tabs__header {\\n background-color: #F5F7FA;\\n border-bottom: 1px solid #E4E7ED;\\n margin: 0; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item {\\n -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\\n border: 1px solid transparent;\\n margin-top: -1px;\\n color: #909399; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item + .o-tabs__item,\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item:first-child {\\n margin-left: -1px; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-active {\\n color: #07c160;\\n background-color: #FFF;\\n border-right-color: #DCDFE6;\\n border-left-color: #DCDFE6; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item:not(.is-disabled):hover {\\n color: #07c160; }\\n\\n.o-tabs--border-card > .o-tabs__header .o-tabs__item.is-disabled {\\n color: #C0C4CC; }\\n\\n.o-tabs--border-card > .o-tabs__header .is-scrollable .o-tabs__item:first-child {\\n margin-left: 0; }\\n\\n.o-tabs--bottom .o-tabs__item.is-bottom:nth-child(2),\\n.o-tabs--bottom .o-tabs__item.is-top:nth-child(2),\\n.o-tabs--top .o-tabs__item.is-bottom:nth-child(2),\\n.o-tabs--top .o-tabs__item.is-top:nth-child(2) {\\n padding-left: 0; }\\n\\n.o-tabs--bottom .o-tabs__item.is-bottom:last-child,\\n.o-tabs--bottom .o-tabs__item.is-top:last-child,\\n.o-tabs--top .o-tabs__item.is-bottom:last-child,\\n.o-tabs--top .o-tabs__item.is-top:last-child {\\n padding-right: 0; }\\n\\n.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:nth-child(2),\\n.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:nth-child(2) {\\n padding-left: 20px; }\\n\\n.o-tabs--bottom .o-tabs--left > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--bottom .o-tabs--right > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--bottom.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--bottom.o-tabs--card > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top .o-tabs--left > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top .o-tabs--right > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top.o-tabs--border-card > .o-tabs__header .o-tabs__item:last-child,\\n.o-tabs--top.o-tabs--card > .o-tabs__header .o-tabs__item:last-child {\\n padding-right: 20px; }\\n\\n.o-tabs--bottom.o-tabs--border-card {\\n border-top: none; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__header.is-bottom {\\n border-bottom: 0;\\n border-top: 1px solid #DCDFE6; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__nav-wrap.is-bottom {\\n margin-top: -1px;\\n margin-bottom: 0; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom:not(.is-active) {\\n border: 1px solid transparent; }\\n\\n.o-tabs--bottom.o-tabs--border-card .o-tabs__item.is-bottom {\\n margin: 0 -1px -1px; }\\n\\n.o-tabs--left,\\n.o-tabs--right {\\n overflow: hidden; }\\n\\n.o-tabs--left .o-tabs__header.is-left,\\n.o-tabs--left .o-tabs__header.is-right,\\n.o-tabs--left .o-tabs__nav-scroll,\\n.o-tabs--left .o-tabs__nav-wrap.is-left,\\n.o-tabs--left .o-tabs__nav-wrap.is-right,\\n.o-tabs--right .o-tabs__header.is-left,\\n.o-tabs--right .o-tabs__header.is-right,\\n.o-tabs--right .o-tabs__nav-scroll,\\n.o-tabs--right .o-tabs__nav-wrap.is-left,\\n.o-tabs--right .o-tabs__nav-wrap.is-right {\\n height: 100%; }\\n\\n.o-tabs--left .o-tabs__active-bar.is-left,\\n.o-tabs--left .o-tabs__active-bar.is-right,\\n.o-tabs--right .o-tabs__active-bar.is-left,\\n.o-tabs--right .o-tabs__active-bar.is-right {\\n top: 0;\\n bottom: auto;\\n width: 2px;\\n height: auto; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left,\\n.o-tabs--left .o-tabs__nav-wrap.is-right,\\n.o-tabs--right .o-tabs__nav-wrap.is-left,\\n.o-tabs--right .o-tabs__nav-wrap.is-right {\\n margin-bottom: 0; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev {\\n height: 30px;\\n line-height: 30px;\\n width: 100%;\\n text-align: center;\\n cursor: pointer; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i,\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next i,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev i,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next i,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev i {\\n -webkit-transform: rotateZ(90deg);\\n transform: rotateZ(90deg); }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-prev,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-prev {\\n left: auto;\\n top: 0; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--left .o-tabs__nav-wrap.is-right > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-left > .o-tabs__nav-next,\\n.o-tabs--right .o-tabs__nav-wrap.is-right > .o-tabs__nav-next {\\n right: auto;\\n bottom: 0; }\\n\\n.o-tabs--left .o-tabs__active-bar.is-left,\\n.o-tabs--left .o-tabs__nav-wrap.is-left::after {\\n right: 0;\\n left: auto; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left.is-scrollable,\\n.o-tabs--left .o-tabs__nav-wrap.is-right.is-scrollable,\\n.o-tabs--right .o-tabs__nav-wrap.is-left.is-scrollable,\\n.o-tabs--right .o-tabs__nav-wrap.is-right.is-scrollable {\\n padding: 30px 0; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left::after,\\n.o-tabs--left .o-tabs__nav-wrap.is-right::after,\\n.o-tabs--right .o-tabs__nav-wrap.is-left::after,\\n.o-tabs--right .o-tabs__nav-wrap.is-right::after {\\n height: 100%;\\n width: 2px;\\n bottom: auto;\\n top: 0; }\\n\\n.o-tabs--left .o-tabs__nav.is-left,\\n.o-tabs--left .o-tabs__nav.is-right,\\n.o-tabs--right .o-tabs__nav.is-left,\\n.o-tabs--right .o-tabs__nav.is-right {\\n float: none; }\\n\\n.o-tabs--left .o-tabs__item.is-left,\\n.o-tabs--left .o-tabs__item.is-right,\\n.o-tabs--right .o-tabs__item.is-left,\\n.o-tabs--right .o-tabs__item.is-right {\\n display: block; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__active-bar.is-left,\\n.o-tabs--right.o-tabs--card .o-tabs__active-bar.is-right {\\n display: none; }\\n\\n.o-tabs--left .o-tabs__header.is-left {\\n float: left;\\n margin-bottom: 0;\\n margin-right: 10px; }\\n\\n.o-tabs--left .o-tabs__nav-wrap.is-left {\\n margin-right: -1px; }\\n\\n.o-tabs--left .o-tabs__item.is-left {\\n text-align: right; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left {\\n border-left: none;\\n border-right: 1px solid #E4E7ED;\\n border-bottom: none;\\n border-top: 1px solid #E4E7ED;\\n text-align: left; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left:first-child {\\n border-right: 1px solid #E4E7ED;\\n border-top: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active {\\n border: 1px solid #E4E7ED;\\n border-right-color: #fff;\\n border-left: none;\\n border-bottom: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:first-child {\\n border-top: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__item.is-left.is-active:last-child {\\n border-bottom: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__nav {\\n border-radius: 4px 0 0 4px;\\n border-bottom: 1px solid #E4E7ED;\\n border-right: none; }\\n\\n.o-tabs--left.o-tabs--card .o-tabs__new-tab {\\n float: none; }\\n\\n.o-tabs--left.o-tabs--border-card .o-tabs__header.is-left {\\n border-right: 1px solid #dfe4ed; }\\n\\n.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left {\\n border: 1px solid transparent;\\n margin: -1px 0 -1px -1px; }\\n\\n.o-tabs--left.o-tabs--border-card .o-tabs__item.is-left.is-active {\\n border-color: #d1dbe5 transparent; }\\n\\n.o-tabs--right .o-tabs__header.is-right {\\n float: right;\\n margin-bottom: 0;\\n margin-left: 10px; }\\n\\n.o-tabs--right .o-tabs__nav-wrap.is-right {\\n margin-left: -1px; }\\n\\n.o-tabs--right .o-tabs__nav-wrap.is-right::after {\\n left: 0;\\n right: auto; }\\n\\n.o-tabs--right .o-tabs__active-bar.is-right {\\n left: 0; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right {\\n border-bottom: none;\\n border-top: 1px solid #E4E7ED; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right:first-child {\\n border-left: 1px solid #E4E7ED;\\n border-top: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active {\\n border: 1px solid #E4E7ED;\\n border-left-color: #fff;\\n border-right: none;\\n border-bottom: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:first-child {\\n border-top: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__item.is-right.is-active:last-child {\\n border-bottom: none; }\\n\\n.o-tabs--right.o-tabs--card .o-tabs__nav {\\n border-radius: 0 4px 4px 0;\\n border-bottom: 1px solid #E4E7ED;\\n border-left: none; }\\n\\n.o-tabs--right.o-tabs--border-card .o-tabs__header.is-right {\\n border-left: 1px solid #dfe4ed; }\\n\\n.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right {\\n border: 1px solid transparent;\\n margin: -1px -1px -1px 0; }\\n\\n.o-tabs--right.o-tabs--border-card .o-tabs__item.is-right.is-active {\\n border-color: #d1dbe5 transparent; }\\n\\n.slideInLeft-transition,\\n.slideInRight-transition {\\n display: inline-block; }\\n\\n.slideInRight-enter {\\n -webkit-animation: slideInRight-enter .3s;\\n animation: slideInRight-enter .3s; }\\n\\n.slideInRight-leave {\\n position: absolute;\\n left: 0;\\n right: 0;\\n -webkit-animation: slideInRight-leave .3s;\\n animation: slideInRight-leave .3s; }\\n\\n.slideInLeft-enter {\\n -webkit-animation: slideInLeft-enter .3s;\\n animation: slideInLeft-enter .3s; }\\n\\n.slideInLeft-leave {\\n position: absolute;\\n left: 0;\\n right: 0;\\n -webkit-animation: slideInLeft-leave .3s;\\n animation: slideInLeft-leave .3s; }\\n\\n@-webkit-keyframes slideInRight-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@keyframes slideInRight-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@-webkit-keyframes slideInRight-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n opacity: 0; } }\\n\\n@keyframes slideInRight-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n opacity: 0; } }\\n\\n@-webkit-keyframes slideInLeft-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@keyframes slideInLeft-enter {\\n 0% {\\n opacity: 0;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%); }\\n to {\\n opacity: 1;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0); } }\\n\\n@-webkit-keyframes slideInLeft-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n opacity: 0; } }\\n\\n@keyframes slideInLeft-leave {\\n 0% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(0);\\n transform: translateX(0);\\n opacity: 1; }\\n 100% {\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n opacity: 0; } }\\n\\n.o-icon-close {\\n display: inline-block;\\n vertical-align: -0.125em; }\\n\\n.o-icon-add {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5em;\\n margin-left: 0.5em;\\n cursor: pointer; }\\n\\n.o-icon-add:hover {\\n color: #07c160; }\\n\", \"\"]);\n\n// exports\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\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","\n var result = require(\"!!../node_modules/_css-loader@1.0.1@css-loader/index.js!../node_modules/_resolve-url-loader@3.1.1@resolve-url-loader/index.js!../node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??ref--4-3!./index.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar omi_1 = require(\"omi\");\nvar css = require(\"./index.scss\");\nrequire(\"@omiu/common\");\nvar Tabs = /** @class */ (function (_super) {\n __extends(Tabs, _super);\n function Tabs() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onTabClick = function (evt, index) {\n _this.setActiveBar(evt.currentTarget, index);\n _this.fire('change', {\n tab: _this.props.list[index],\n index: index\n });\n };\n return _this;\n }\n Tabs.prototype.setActiveBar = function (ele, index) {\n var rect = ele.getBoundingClientRect();\n this._x = rect.left - this.baseRect.left;\n this._width = rect.width;\n if (index === 0) {\n this._x = 0;\n this._width -= 20;\n }\n else if (index === this.props.list.length - 1) {\n this._x += 20;\n this._width -= 20;\n }\n else {\n this._x += 20;\n this._width -= 40;\n }\n this.updateProps({\n activeIndex: index\n });\n };\n Tabs.prototype.installed = function () {\n this.baseRect = this.rootNode.getBoundingClientRect();\n this.setActiveBar(this['$tab' + this.props.activeIndex], this.props.activeIndex);\n };\n Tabs.prototype.removeTab = function (index) {\n var tab = this.props.list.splice(index, 1)[0];\n this.forceUpdate();\n this.fire('remove', {\n tab: tab,\n index: index\n });\n };\n Tabs.prototype.addTab = function (tab) {\n this.props.list.push(tab);\n this.forceUpdate();\n };\n Tabs.prototype.onAddIconClick = function () {\n this.fire('addIconClick');\n };\n Tabs.prototype.render = function (props) {\n var _a, _b, _c, _d, _e;\n var _this = this;\n var activeBarStyle = (props.position === 'left' || props.position === 'right') ? {\n height: \"40px\",\n transform: \"translateY(\" + props.activeIndex * 40 + \"px)\"\n } : {\n width: this._width + \"px\",\n transform: \"translateX(\" + this._x + \"px)\"\n };\n return (omi_1.h(\"div\", __assign({}, omi_1.extractClass(props, 'o-tabs', (_a = {},\n _a[\"o-tabs--\" + props.position] = props.position,\n _a[\"o-tabs--\" + props.type] = props.type,\n _a))),\n omi_1.h(\"div\", { class: omi_1.classNames('o-tabs__header', (_b = {},\n _b[\"is-\" + props.position] = props.position,\n _b)) },\n omi_1.h(\"div\", { class: omi_1.classNames('o-tabs__nav-wrap', (_c = {},\n _c[\"is-\" + props.position] = props.position,\n _c)) },\n omi_1.h(\"div\", { class: \"o-tabs__nav-scroll\" },\n omi_1.h(\"div\", { role: \"tablist\", class: omi_1.classNames('o-tabs__nav', (_d = {},\n _d[\"is-\" + props.position] = props.position,\n _d)) },\n !props.type && omi_1.h(\"div\", { class: omi_1.classNames('o-tabs__active-bar', (_e = {},\n _e[\"is-\" + props.position] = props.position,\n _e)), style: activeBarStyle }),\n props.list.map(function (tab, index) {\n var _a;\n _this._tempTagName = 'o-icon-' + tab.icon;\n return omi_1.h(\"div\", __assign({ ref: function (e) { _this['$tab' + index] = e; }, role: \"tab\", onClick: function (evt) { return props.activeIndex !== index && _this.onTabClick(evt, index); }, tabindex: props.active === index ? '0' : -1 }, omi_1.extractClass(props, 'o-tabs__item', (_a = {},\n _a[\"is-\" + props.position] = props.position,\n _a['is-active'] = props.activeIndex === index,\n _a['is-closable'] = props.closable,\n _a))),\n tab.icon && omi_1.h(_this._tempTagName, null),\n tab.label,\n props.closable && omi_1.h(\"svg\", { onClick: function (_) { _this.removeTab(index); }, class: \"o-icon-close\", style: props.activeIndex === index && \"visibility: visible;\", fill: \"currentColor\", width: \"1em\", height: \"1em\", focusable: \"false\", viewBox: \"0 0 24 24\", \"aria-hidden\": \"true\" },\n omi_1.h(\"path\", { d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" })));\n })),\n props.addable && omi_1.h(\"svg\", { class: \"o-icon-add\", fill: \"currentColor\", width: \"1em\", height: \"1em\", focusable: \"false\", viewBox: \"0 0 24 24\", \"aria-hidden\": \"true\", onClick: this.onAddIconClick },\n omi_1.h(\"path\", { d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\" })))))));\n };\n Tabs.css = css;\n Tabs.defaultProps = {\n position: 'top',\n closable: false,\n addable: false\n };\n Tabs.propTypes = {\n list: Array,\n activeIndex: Number,\n type: String,\n position: String,\n closable: Boolean,\n addable: Boolean\n };\n Tabs = __decorate([\n omi_1.tag('o-tabs')\n ], Tabs);\n return Tabs;\n}(omi_1.WeElement));\nexports.default = Tabs;\n","module.exports = __WEBPACK_EXTERNAL_MODULE_omi__;"],"sourceRoot":""} \ No newline at end of file diff --git a/components/tabs/src/index.tsx b/components/tabs/src/index.tsx index 5c00c9c16..b4fb82c63 100644 --- a/components/tabs/src/index.tsx +++ b/components/tabs/src/index.tsx @@ -1,6 +1,6 @@ import { tag, WeElement, h, extractClass, classNames } from 'omi' import * as css from './index.scss' -import '@omiu/common/theme.ts' +import '@omiu/common' interface Props { list?: any[] @@ -68,10 +68,10 @@ export default class Tabs extends WeElement{ } removeTab(index) { - const removedTab = this.props.list.splice(index, 1)[0] + const tab = this.props.list.splice(index, 1)[0] this.forceUpdate() - this.fire('removed', { - removedTab: removedTab, + this.fire('remove', { + tab: tab, index: index }) }