diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..b85ad48
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,171 @@
+{
+ "extends": "eslint:recommended",
+ "rules": {
+ // 声明
+ "no-use-before-define": "error",
+ //禁止定义前使用
+
+ // 对象
+ "no-dupe-keys": "error",
+ // 禁止在对象字面量中出现重复的键
+ "quote-props": [
+ "error",
+ "as-needed"
+ ],
+ // 对象属性只在需要的时候加引号
+
+ // 字符串
+ "quotes": [
+ "error",
+ "double",
+ {
+ "allowTemplateLiterals": true
+ }
+ ],
+ // 字符串开头和结束使用双引号
+ "no-useless-concat": "error",
+ // 禁止没有必要的字符拼接
+ "no-useless-escape": "error",
+ // 禁用不必要的转义
+
+ // 函数
+ "no-dupe-args": "error",
+ // 禁止在 function 定义中出现重复的参数
+ "space-before-function-paren": "error",
+ // 函数括号前必须要有空格
+
+ // 变量
+ "no-undef": "error",
+ // 禁止使用未声明的变量
+
+ // 比较运算符 & 相等运算符
+ "eqeqeq": "error",
+ // 使用 === 和 !== 代替 == 和 !=
+ "no-unneeded-ternary": "error",
+ //禁止可以在有更简单的可替代的表达式时使用三元操作符
+
+ // 条件
+ "default-case": "error",
+ // 要求 Switch 语句中有 Default 分支
+ "no-else-return": "error",
+ // 如果 if 块中包含了一个 return 语句,else 块就成了多余的了。可以将其内容移至块外
+
+ // 代码块
+ "brace-style": [
+ "error",
+ "1tbs",
+ {
+ "allowSingleLine": true
+ }
+ ],
+ // 代码块左括号紧跟上一行结束
+ "curly": [
+ "error",
+ "multi-line"
+ ],
+ // if、else if、else、for、while强制使用大括号,但允许在单行中省略大括号
+
+ // 注释
+ "spaced-comment": "error",
+ // 注释前有空格
+
+ // 空白
+ "indent": [
+ "error",
+ 4,
+ {
+ "SwitchCase": 1
+ }
+ ],
+ // 缩进控制4空格
+ "no-mixed-spaces-and-tabs": "error",
+ // 禁止使用 空格 和 tab 混合缩进
+ "space-before-blocks": [
+ "error",
+ "always"
+ ],
+ // 语句块之前的需要有空格
+ "space-infix-ops": [
+ "error",
+ {
+ "int32Hint": false
+ }
+ ],
+ // 要求中缀操作符周围有空格,设置 int32Hint 选项为 true (默认 false) 允许 a|0 不带空格
+ "no-trailing-spaces": [
+ "error",
+ {
+ "skipBlankLines": true
+ }
+ ],
+ // 禁用行尾空格
+ "key-spacing": [
+ "error",
+ {
+ "afterColon": true
+ }
+ ],
+ // 要求在对象字面量的冒号和值之间存在至少有一个空格
+
+
+ // 逗号
+ "comma-style": "error",
+ // 逗号必须放在行末
+ "comma-dangle": [
+ "error",
+ "never"
+ ],
+ // 多行对象字面量中要求不要拖尾逗号
+ "comma-spacing": [
+ "error",
+ {
+ "before": false,
+ "after": true
+ }
+ ],
+ //在变量声明、数组字面量、对象字面量、函数参数 和 序列中禁止在逗号前使用空格,要求在逗号后使用一个或多个空格
+
+
+ // 分号
+ "semi": "error",
+ //不得省略语句结束的分号
+ "semi-spacing": [
+ "error",
+ {
+ "before": false,
+ "after": true
+ }
+ ],
+ //禁止分号周围的空格
+ "no-extra-semi": "error",
+ // 禁用不必要的分号
+
+
+ // 类型转换
+ "no-extra-boolean-cast": "error",
+ // 禁止不必要的布尔类型转换
+
+
+ // 其他最佳实践或规范
+ "no-unexpected-multiline": "error",
+ // 禁止使用令人困惑的多行表达式
+ "no-unreachable": "error",
+ // 禁止在 return、throw、continue 和 break 语句后出现不可达代码
+ "valid-typeof": "error",
+ // 强制 typeof 表达式与有效的字符串进行比较
+ "no-new-wrappers": "error"
+ // 禁止通过 new 操作符使用 String、Number 和 Boolean
+ },
+ "globals": {
+ "window": true,
+ "BI": true,
+ "BICst": true,
+ "Data": true,
+ "Fix": true,
+ "module": true,
+ "describe": true,
+ "it": true,
+ "expect": true,
+ "Dec": true
+ }
+}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 7b249e0..9f629fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,3 +46,4 @@ com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
+/node_modules/
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..70aa6fa
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,121 @@
+module.exports = function (grunt) {
+ // Project configuration.
+ grunt.initConfig({
+ pkg: grunt.file.readJSON("package.json"),
+ concat: {
+ options: {
+ separator: ""
+ },
+ bundleJs: {
+ src: [
+ "src/modules/**/*.js",
+ "src/index.js"
+ ],
+ dest: "dist/bundle.js"
+ },
+ bundleCss: {
+ src: ["src/css/**/*.css"],
+ dest: "dist/bundle.css"
+ }
+ },
+
+ less: {
+ main: {
+ expand: true,
+ cwd: "src/modules",
+ src: ["**/*.less"],
+ dest: "src/css/",
+ ext: ".css"
+ },
+ dev: {
+ options: {
+ compress: true,
+ yuicompress: false
+ }
+ }
+ },
+
+ uglify: {
+ options: {
+ banner:
+ "/*! <%= pkg.name %> <%= grunt.template.today(\"dd-mm-yyyy\") %> */\n"
+ },
+ dist: {
+ files: {
+ "dist/bundle.min.js": ["<%= concat.bundleJs.dest %>"]
+ }
+ }
+ },
+
+ cssmin: {
+ bundleCss: {
+ src: "<%= concat.bundleCss.dest %>",
+
+ dest: "dist/bundle.min.css"
+ }
+ },
+
+ jshint: {
+ files: ["src/**/*.js"],
+ options: {
+ globals: {
+ $: true,
+ jQuery: true,
+ console: true,
+ module: true,
+ document: true
+ },
+ browser: true,
+ expr: true
+ }
+ },
+ watch: {
+ scripts: {
+ files: ["src/**/*.js", "src/**/*.less"],
+ tasks: ["less", "concat"],
+ options: {
+ spanw: true,
+ interrupt: true
+ }
+ },
+ livereload: {
+ options: {
+ livereload: "<%= connect.options.livereload %>"
+ },
+ files: ["src/**/*.js", "src/**/*.less"]
+ }
+ },
+ connect: {
+ options: {
+ port: 9000,
+ open: true,
+ livereload: 35799,
+ // Change this to '0.0.0.0' to access the server from outside
+ hostname: "localhost"
+ },
+ server: {
+ options: {
+ port: 9009,
+ base: "./"
+ }
+ }
+ }
+ });
+
+ grunt.loadNpmTasks("grunt-contrib-uglify");
+ grunt.loadNpmTasks("grunt-contrib-jshint");
+ grunt.loadNpmTasks("grunt-contrib-less");
+ grunt.loadNpmTasks("grunt-contrib-watch");
+ grunt.loadNpmTasks("grunt-contrib-concat");
+ grunt.loadNpmTasks("grunt-contrib-cssmin");
+ grunt.loadNpmTasks("grunt-contrib-connect");
+
+ grunt.registerTask("default", [
+ "jshint",
+ "less",
+ "concat",
+ "connect",
+ "watch"
+ ]);
+ grunt.registerTask("min", ["less", "concat", "uglify", "cssmin"]);
+};
diff --git a/dist/bundle.css b/dist/bundle.css
new file mode 100644
index 0000000..24518b3
--- /dev/null
+++ b/dist/bundle.css
@@ -0,0 +1,1875 @@
+.my-todolist-header {
+ background-color: #3d4d66;
+}
+.my-todolist-header .my-todolist-title {
+ font-size: 22px;
+ color: #FFF;
+}
+.my-todolist-header .my-todolist-header-editor {
+ background-color: #FFF;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.my-todolist-list .my-todolist-list-text {
+ font-size: 16px;
+ font-weight: bold;
+}
+.my-todolist-list .my-todolist-list-count-container {
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ background-color: #3d4d66;
+ color: #ffffff;
+}
+@font-face {
+ font-family: 'bi';
+ src: url('font/iconfont.eot');
+ src: url('font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('font/iconfont.woff') format('woff'), /* chrome、firefox */ url('font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ url('font/iconfont.svg#svgFontName') format('svg');
+ /* iOS 4.1- */
+}
+.b-font {
+ font-family: "bi";
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -webkit-text-stroke-width: 0.2px;
+ -moz-osx-font-smoothing: grayscale;
+}
+.close-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.close-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.close-h-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-h-font:hover .b-font:before,
+.close-h-font.hover .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-h-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.close-ha-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-ha-font:hover .b-font:before,
+.close-ha-font.hover .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-ha-font:active .b-font:before,
+.close-ha-font.active .b-font:before {
+ content: "\e6d0";
+ color: #3f8ce8;
+}
+.close-ha-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.circle-close-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.circle-close-font .b-font:before {
+ content: "\e6d5";
+ color: inherit;
+}
+.circle-close-font.disabled .b-font:before {
+ content: "\e6d5";
+ color: inherit;
+}
+.search-close-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.search-close-h-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.search-close-h-font:hover .b-font:before,
+.search-close-h-font.hover .b-font:before {
+ content: "\e6d0";
+ color: #ff4949;
+}
+.search-close-h-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.pre-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pre-page-h-font .b-font:before {
+ content: "\e70d";
+ color: inherit;
+}
+.pre-page-h-font:hover .b-font:before,
+.pre-page-h-font.hover .b-font:before {
+ content: "\e70d";
+ color: inherit;
+}
+.pre-page-h-font.disabled .b-font:before {
+ content: "\e70d";
+ color: inherit;
+}
+.next-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.next-page-h-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.next-page-h-font:hover .b-font:before,
+.next-page-h-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.next-page-h-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.search-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.search-font .b-font:before {
+ content: "\e6dc";
+ color: inherit;
+}
+.search-font.disabled .b-font:before {
+ content: "\e6dc";
+ color: inherit;
+}
+.date-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.date-font .b-font:before {
+ content: "\e733";
+ color: inherit;
+}
+.date-font.disabled .b-font:before {
+ content: "\e733";
+ color: inherit;
+}
+.date-change-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.date-change-h-font .b-font:before {
+ content: "\e72f";
+ color: inherit;
+}
+.date-change-h-font:hover .b-font:before,
+.date-change-h-font.hover .b-font:before {
+ content: "\e72f";
+ color: inherit;
+}
+.date-change-h-font.disabled .b-font:before {
+ content: "\e72f";
+ color: inherit;
+}
+.dot-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-font .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-font.disabled .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-h-font .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-h-font:hover .b-font:before,
+.dot-h-font.hover .b-font:before {
+ content: "\e762";
+ color: inherit;
+}
+.dot-h-font.disabled .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-ha-font .b-font:before {
+ content: "\e762";
+ color: #ffffff;
+}
+.dot-ha-font:hover .b-font:before,
+.dot-ha-font.hover .b-font:before {
+ content: "\e762";
+ color: #999999;
+}
+.dot-ha-font:active .b-font:before,
+.dot-ha-font.active .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-ha-font.disabled .b-font:before {
+ content: "\e762";
+ color: #ffffff;
+}
+.dot-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-e-font .b-font:before {
+ content: "\e762";
+ color: transparent;
+}
+.dot-e-font:hover .b-font:before,
+.dot-e-font.hover .b-font:before {
+ content: "\e762";
+ color: rgba(54, 133, 242, 0.06);
+}
+.dot-e-font:active .b-font:before {
+ content: "\e762";
+ color: #3685f2;
+}
+.dot-e-font.active .b-font:before {
+ content: "\e762";
+ color: #3685f2;
+}
+.dot-e-font.disabled .b-font:before {
+ content: "\e762";
+ color: transparent;
+}
+.pull-right-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-h-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-h-font:hover .b-font:before,
+.pull-right-h-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-h-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-ha-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-ha-font:hover .b-font:before,
+.pull-right-ha-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-ha-font:active .b-font:before,
+.pull-right-ha-font.active .b-font:before {
+ content: "\e70c";
+ color: #3f8ce8;
+}
+.pull-right-ha-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-e-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-e-font:hover .b-font:before,
+.pull-right-e-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-e-font:active .b-font:before {
+ content: "\e70c";
+ color: #3f8ce8;
+}
+.pull-right-e-font.active .b-font:before {
+ content: "\e70c";
+ color: #3f8ce8;
+}
+.pull-right-e-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.copy-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-font .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-h-font .b-font:before {
+ content: "\e6bd";
+ color: #232e40;
+}
+.copy-h-font:hover .b-font:before,
+.copy-h-font.hover .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-h-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: #232e40;
+}
+.copy-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-ha-font .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-ha-font:hover .b-font:before,
+.copy-ha-font.hover .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-ha-font:active .b-font:before,
+.copy-ha-font.active .b-font:before {
+ content: "\e6bd";
+ color: #3f8ce8;
+}
+.copy-ha-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-e-font .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-e-font:hover .b-font:before,
+.copy-e-font.hover .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-e-font:active .b-font:before {
+ content: "\e6bd";
+ color: #3f8ce8;
+}
+.copy-e-font.active .b-font:before {
+ content: "\e6bd";
+ color: #3f8ce8;
+}
+.copy-e-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.check-mark-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-h-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-h-font:hover .b-font:before,
+.check-mark-h-font.hover .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-h-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-ha-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-ha-font:hover .b-font:before,
+.check-mark-ha-font.hover .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-ha-font:active .b-font:before,
+.check-mark-ha-font.active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.check-mark-ha-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-e-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-e-font:hover .b-font:before,
+.check-mark-e-font.hover .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-e-font:active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.check-mark-e-font.active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.check-mark-e-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+/** dashboard组件/控件 下拉列表图标字体 ~end~**/
+.row-pre-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.row-pre-page-h-font .b-font:before {
+ content: "\e6d9";
+ color: inherit;
+}
+.row-pre-page-h-font:hover .b-font:before,
+.row-pre-page-h-font.hover .b-font:before {
+ content: "\e6d9";
+ color: inherit;
+}
+.row-pre-page-h-font.disabled .b-font:before {
+ content: "\e6d9";
+ color: inherit;
+}
+.row-next-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.row-next-page-h-font .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.row-next-page-h-font:hover .b-font:before,
+.row-next-page-h-font.hover .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.row-next-page-h-font.disabled .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.column-pre-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.column-pre-page-h-font .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.column-pre-page-h-font:hover .b-font:before,
+.column-pre-page-h-font.hover .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.column-pre-page-h-font.disabled .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.column-next-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.column-next-page-h-font .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.column-next-page-h-font:hover .b-font:before,
+.column-next-page-h-font.hover .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.column-next-page-h-font.disabled .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.expander-right-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.expander-right-font .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.expander-right-font.disabled .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.expander-down-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.expander-down-font .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.expander-down-font.disabled .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.solid-triangle-top-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.solid-triangle-top-font .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.solid-triangle-top-font:hover .b-font:before,
+.solid-triangle-top-font.hover .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.solid-triangle-top-font.disabled .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.solid-triangle-bottom-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.solid-triangle-bottom-font .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.solid-triangle-bottom-font:hover .b-font:before,
+.solid-triangle-bottom-font.hover .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.solid-triangle-bottom-font.disabled .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.trigger-triangle-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.trigger-triangle-font .b-font:before {
+ content: "\e64e";
+ color: inherit;
+}
+.trigger-triangle-font.disabled .b-font:before {
+ content: "\e64e";
+ color: inherit;
+}
+.pull-up-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-up-font .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.pull-up-font.disabled .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.pull-down-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-down-font .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-font.disabled .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-down-h-font .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.pull-down-h-font:hover .b-font:before,
+.pull-down-h-font.hover .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-h-font.disabled .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.pull-down-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-down-ha-font .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.pull-down-ha-font:hover .b-font:before,
+.pull-down-ha-font.hover .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-ha-font:active .b-font:before,
+.pull-down-ha-font.active .b-font:before {
+ content: "\e70b";
+ color: #3f8ce8;
+}
+.pull-down-ha-font.disabled .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.check-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-font .b-font:before {
+ content: "\e6cf";
+ color: #3685f2;
+}
+.check-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: #3685f2;
+}
+.item-check-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.item-check-font .b-font:before {
+ content: "\e6cf";
+ color: #ffffff;
+}
+.item-check-font:hover .b-font:before,
+.item-check-font.hover .b-font:before {
+ content: "\e6cf";
+ color: #999999;
+}
+.item-check-font:active .b-font:before,
+.item-check-font.active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.item-check-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: #ffffff;
+}
+.primary-key-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.primary-key-font .b-font:before {
+ content: "\e740";
+ color: inherit;
+}
+.primary-key-font:hover .b-font:before,
+.primary-key-font.hover .b-font:before {
+ content: "\e740";
+ color: inherit;
+}
+.primary-key-font.disabled .b-font:before {
+ content: "\e740";
+ color: inherit;
+}
+.drag-tag-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.drag-tag-font .b-font:before {
+ content: "\e6d0";
+ color: #faaa39;
+}
+.drag-tag-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: #faaa39;
+}
+.less-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.less-font .b-font:before {
+ content: "\e75e";
+ color: inherit;
+}
+.less-font.disabled .b-font:before {
+ content: "\e75e";
+ color: inherit;
+}
+.less-equal-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.less-equal-font .b-font:before {
+ content: "\e761";
+ color: inherit;
+}
+.less-equal-font.disabled .b-font:before {
+ content: "\e761";
+ color: inherit;
+}
+.text-bold-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-bold-font .b-font:before {
+ content: "\e697";
+ color: inherit;
+}
+.text-bold-font.disabled .b-font:before {
+ content: "\e697";
+ color: inherit;
+}
+.text-italic-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-italic-font .b-font:before {
+ content: "\e69d";
+ color: inherit;
+}
+.text-italic-font.disabled .b-font:before {
+ content: "\e69d";
+ color: inherit;
+}
+.text-underline-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-underline-font .b-font:before {
+ content: "\e69c";
+ color: inherit;
+}
+.text-underline-font.disabled .b-font:before {
+ content: "\e69c";
+ color: inherit;
+}
+.text-color-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-color-font .b-font:before {
+ content: "\e698";
+ color: inherit;
+}
+.text-color-font.disabled .b-font:before {
+ content: "\e698";
+ color: inherit;
+}
+.text-background-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-background-font .b-font:before {
+ content: "\e699";
+ color: inherit;
+}
+.text-background-font.disabled .b-font:before {
+ content: "\e699";
+ color: inherit;
+}
+.text-color-underline-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-color-underline-font .b-font:before {
+ content: "\e69a";
+ color: inherit;
+}
+.text-color-underline-font.disabled .b-font:before {
+ content: "\e69a";
+ color: inherit;
+}
+.text-align-left-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-align-left-font .b-font:before {
+ content: "\e6ca";
+ color: inherit;
+}
+.text-align-left-font.disabled .b-font:before {
+ content: "\e6ca";
+ color: inherit;
+}
+.text-align-center-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-align-center-font .b-font:before {
+ content: "\e6bf";
+ color: inherit;
+}
+.text-align-center-font.disabled .b-font:before {
+ content: "\e6bf";
+ color: inherit;
+}
+.text-align-right-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-align-right-font .b-font:before {
+ content: "\e6c8";
+ color: inherit;
+}
+.text-align-right-font.disabled .b-font:before {
+ content: "\e6c8";
+ color: inherit;
+}
+.toast-error-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-error-font .b-font:before {
+ content: "\e757";
+ color: inherit;
+}
+.toast-error-font.disabled .b-font:before {
+ content: "\e757";
+ color: inherit;
+}
+.toast-success-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-success-font .b-font:before {
+ content: "\e756";
+ color: inherit;
+}
+.toast-success-font.disabled .b-font:before {
+ content: "\e756";
+ color: inherit;
+}
+.toast-warning-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-warning-font .b-font:before {
+ content: "\e755";
+ color: inherit;
+}
+.toast-warning-font.disabled .b-font:before {
+ content: "\e755";
+ color: inherit;
+}
+.toast-message-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-message-font .b-font:before {
+ content: "\e74b";
+ color: inherit;
+}
+.toast-message-font.disabled .b-font:before {
+ content: "\e74b";
+ color: inherit;
+}
+.text-add-tip-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-add-tip-font .b-font:before {
+ content: "\e6dd";
+ color: #13cd66;
+}
+.text-add-tip-font.disabled .b-font:before {
+ content: "\e6dd";
+ color: #13cd66;
+}
+.add-up-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.add-up-font .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.add-up-font.disabled .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.minus-down-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.minus-down-font .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.minus-down-font.disabled .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.tree-collapse-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_1.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_1.png');
+ _background: none;
+}
+.tree-collapse-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_2.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_2.png');
+ _background: none;
+}
+.tree-collapse-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_3.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_3.png');
+ _background: none;
+}
+.tree-collapse-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_4.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_4.png');
+ _background: none;
+}
+.tree-expand-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_1.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_1.png');
+ _background: none;
+}
+.tree-expand-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_2.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_2.png');
+ _background: none;
+}
+.tree-expand-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_3.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_3.png');
+ _background: none;
+}
+.tree-expand-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_4.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_4.png');
+ _background: none;
+}
+.tree-vertical-line-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_vertical_line_2.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-vertical-line-type2 .x-icon.hack {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.tree-vertical-line-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_vertical_line_3.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-vertical-line-type3 .x-icon.hack {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.tree-vertical-line-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_vertical_line_4.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-vertical-line-type4 .x-icon.hack {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_1.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_1.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_2.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_2.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_3.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_3.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_4.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_4.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_1.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_1.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_2.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_2.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_3.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_3.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_4.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_4.png');
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_vertical_line_2.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type2 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_vertical_line_3.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type3 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_vertical_line_4.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type4 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_4.png');
+ _background: none;
+}
+.check-box-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon .x-icon.hack {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.check-box-icon:hover .x-icon,
+.check-box-icon.hover .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon:hover .x-icon.hack,
+.check-box-icon.hover .x-icon.hack {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.check-box-icon:active .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon:active .x-icon.hack {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.check-box-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_active.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon.active .x-icon.hack {
+ background: url('images/1x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_active.png');
+ _background: none;
+}
+.check-box-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/check_box_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_disable.png');
+ _background: none;
+}
+.check-box-icon.disabled.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_disable2.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon.disabled.active .x-icon.hack {
+ background: url('images/1x/icon/check_box_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_disable2.png');
+ _background: none;
+}
+.radio-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon .x-icon.hack {
+ background: url('images/1x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_normal.png');
+ _background: none;
+}
+.radio-icon:hover .x-icon,
+.radio-icon.hover .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon:hover .x-icon.hack,
+.radio-icon.hover .x-icon.hack {
+ background: url('images/1x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_normal.png');
+ _background: none;
+}
+.radio-icon:active .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon:active .x-icon.hack {
+ background: url('images/1x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_normal.png');
+ _background: none;
+}
+.radio-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_active.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon.active .x-icon.hack {
+ background: url('images/1x/icon/radio_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_active.png');
+ _background: none;
+}
+.radio-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/radio_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_disable.png');
+ _background: none;
+}
+.radio-icon.disabled.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_disable2.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon.disabled.active .x-icon.hack {
+ background: url('images/1x/icon/radio_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_disable2.png');
+ _background: none;
+}
+.check-half-select-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.check-half-select-icon .x-icon.hack {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.slider-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/slider_normal_small.png');
+ background-size: contain;
+ _background: none;
+}
+.slider-icon .x-icon.hack {
+ background: url('images/1x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/slider_normal_small.png');
+ _background: none;
+}
+.slider-icon:hover .x-icon,
+.slider-icon.hover .x-icon {
+ display: block;
+ background: url('images/2x/icon/slider_active_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/slider_active_small.png');
+ background-size: contain;
+ _background: none;
+}
+.slider-icon:hover .x-icon.hack,
+.slider-icon.hover .x-icon.hack {
+ background: url('images/1x/icon/slider_active_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/slider_active_small.png');
+ _background: none;
+}
+.slider-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/slider_normal_small.png');
+ background-size: contain;
+ _background: none;
+}
+.slider-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/slider_normal_small.png');
+ _background: none;
+}
+.auto-color-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/auto_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/auto_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-icon .x-icon.hack {
+ background: url('images/1x/icon/auto_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/auto_normal.png');
+ _background: none;
+}
+.auto-color-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/auto_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/auto_select.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-icon.active .x-icon.hack {
+ background: url('images/1x/icon/auto_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/auto_select.png');
+ _background: none;
+}
+.auto-color-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/auto_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/auto_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/auto_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/auto_disable.png');
+ _background: none;
+}
+.trans-color-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/trans_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-icon .x-icon.hack {
+ background: url('images/1x/icon/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/trans_normal.png');
+ _background: none;
+}
+.trans-color-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/trans_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/trans_select.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-icon.active .x-icon.hack {
+ background: url('images/1x/icon/trans_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/trans_select.png');
+ _background: none;
+}
+.trans-color-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/trans_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/trans_disable.png');
+ _background: none;
+}
+.farbtastic .wheel {
+ background: url('images/1x/background/wheel.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/wheel.png');
+ _background: none;
+}
+.farbtastic .overlay {
+ background: url('images/1x/background/mask.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/mask.png');
+ _background: none;
+}
+.farbtastic .marker {
+ background: url('images/1x/background/marker.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/marker.png');
+ _background: none;
+}
+.bi-display-tree .ztree li span.button.switch.center_open {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-display-tree .ztree li span.button.switch.roots_open {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-display-tree .ztree li span.button.switch.bottom_open {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.ztree li ul.line {
+ background: url('images/1x/icon/tree_vertical_line_1.png') repeat-y 1px 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_1.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li ul.line {
+ background: url('images/1x/icon/dark/tree_vertical_line_1.png') repeat-y 1px 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_1.png');
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_full {
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_full_focus {
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_part {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_part_focus {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_full {
+ background: url('images/2x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_active.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_full_focus {
+ background: url('images/2x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_active.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_part {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_part_focus {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_full {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_full_focus {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_part {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_part_focus {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_full {
+ background: url('images/1x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_active.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_full_focus {
+ background: url('images/1x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_active.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_part {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_part_focus {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree li span.button.root_open {
+ background: url('images/1x/icon/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_1.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.root_open {
+ background: url('images/1x/icon/dark/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_1.png');
+ _background: none;
+}
+.ztree li span.button.root_close {
+ background: url('images/1x/icon/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_1.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.root_close {
+ background: url('images/1x/icon/dark/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_1.png');
+ _background: none;
+}
+.ztree li span.button.roots_open {
+ background: url('images/1x/icon/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_2.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.roots_open {
+ background: url('images/1x/icon/dark/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_2.png');
+ _background: none;
+}
+.ztree li span.button.roots_close {
+ background: url('images/1x/icon/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_2.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.roots_close {
+ background: url('images/1x/icon/dark/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_2.png');
+ _background: none;
+}
+.ztree li span.button.center_open {
+ background: url('images/1x/icon/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_3.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.center_open {
+ background: url('images/1x/icon/dark/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_3.png');
+ _background: none;
+}
+.ztree li span.button.center_close {
+ background: url('images/1x/icon/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_3.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.center_close {
+ background: url('images/1x/icon/dark/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_3.png');
+ _background: none;
+}
+.ztree li span.button.bottom_open {
+ background: url('images/1x/icon/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_4.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.bottom_open {
+ background: url('images/1x/icon/dark/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_4.png');
+ _background: none;
+}
+.ztree li span.button.bottom_close {
+ background: url('images/1x/icon/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_4.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.bottom_close {
+ background: url('images/1x/icon/dark/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_4.png');
+ _background: none;
+}
+.ztree li span.button.roots_docu {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.roots_docu {
+ background: url('images/1x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_2.png');
+ _background: none;
+}
+.ztree li span.button.center_docu {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.center_docu {
+ background: url('images/1x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_3.png');
+ _background: none;
+}
+.ztree li span.button.bottom_docu {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.bottom_docu {
+ background: url('images/1x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_4.png');
+ _background: none;
+}
+.ztree li span.button.ico_loading {
+ background: url('images/1x/icon/loading.gif') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/loading.gif');
+ _background: none;
+}
+.base-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_1.png') repeat-y 0 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_1.png');
+ _background: none;
+}
+.bi-theme-dark .base-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_1.png') repeat-y 0 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_1.png');
+ _background: none;
+}
+.first-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-theme-dark .first-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_2.png');
+ _background: none;
+}
+.mid-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-theme-dark .mid-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_3.png');
+ _background: none;
+}
+.last-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.bi-theme-dark .last-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_4.png');
+ _background: none;
+}
+.loading-background {
+ background: url('images/2x/icon/loading.gif') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/loading.gif');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-background {
+ background: url('images/2x/background/auto_color.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/auto_color.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-normal-background {
+ background: url('images/2x/background/auto_color_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/auto_color_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-normal-disabled-background {
+ background: url('images/2x/background/auto_color_normal_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/auto_color_normal_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-background {
+ background: url('images/2x/background/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/trans_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-disabled-background {
+ background: url('images/2x/background/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/trans_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-background.hack {
+ background: url('images/1x/background/auto_color.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/auto_color.png');
+ _background: none;
+}
+.auto-color-normal-background.hack {
+ background: url('images/1x/background/auto_color_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/auto_color_normal.png');
+ _background: none;
+}
+.auto-color-normal-disabled-background.hack {
+ background: url('images/1x/background/auto_color_normal_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/auto_color_normal_disable.png');
+ _background: none;
+}
+.trans-color-background.hack {
+ background: url('images/1x/background/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/trans_normal.png');
+ _background: none;
+}
+.trans-color-disabled-background.hack {
+ background: url('images/1x/background/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/trans_disable.png');
+ _background: none;
+}
+html {
+ height: 100%;
+ overflow: hidden;
+}
+body {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ top: 0;
+ left: 0;
+ background-repeat: repeat;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+ color: #3d4d66;
+ font: normal 12px "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Heiti;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ text-decoration: none;
+ -kthml-user-focus: normal;
+ -moz-user-focus: normal;
+ -moz-outline: 0 none;
+ outline: 0 none;
+}
+div::-webkit-scrollbar,
+textarea::-webkit-scrollbar {
+ -webkit-appearance: none;
+ background-color: rgba(135, 141, 159, 0.05);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#0d878d9f,endColorstr=#0d878d9f);
+ width: 6px;
+ height: 6px;
+}
+div::-webkit-scrollbar-thumb,
+textarea::-webkit-scrollbar-thumb {
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ background-color: rgba(135, 141, 159, 0.3);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d878d9f,endColorstr=#4d878d9f);
+}
+div::-webkit-scrollbar-thumb:hover,
+textarea::-webkit-scrollbar-thumb:hover {
+ background-color: rgba(135, 141, 159, 0.7);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#b3878d9f,endColorstr=#b3878d9f);
+}
+.bi-theme-dark div::-webkit-scrollbar,
+.bi-theme-dark textarea::-webkit-scrollbar {
+ -webkit-appearance: none;
+ background-color: rgba(208, 212, 218, 0.05);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#0dd0d4da,endColorstr=#0dd0d4da);
+ width: 6px;
+ height: 6px;
+}
+.bi-theme-dark div::-webkit-scrollbar-thumb,
+.bi-theme-dark textarea::-webkit-scrollbar-thumb {
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ background-color: rgba(208, 212, 218, 0.3);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4dd0d4da,endColorstr=#4dd0d4da);
+}
+.bi-theme-dark div::-webkit-scrollbar-thumb:hover,
+.bi-theme-dark textarea::-webkit-scrollbar-thumb:hover {
+ background-color: rgba(208, 212, 218, 0.7);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#b3d0d4da,endColorstr=#b3d0d4da);
+}
+#wrapper {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ overflow: hidden;
+ overflow-x: hidden;
+ overflow-y: hidden;
+}
diff --git a/dist/bundle.js b/dist/bundle.js
new file mode 100644
index 0000000..e752433
--- /dev/null
+++ b/dist/bundle.js
@@ -0,0 +1,276 @@
+!(function () {
+ var ToDoListHeader = BI.inherit(BI.Widget, {
+
+ props: {
+ baseCls: "my-todolist-header"
+ },
+
+ render: function () {
+ var self = this, o = this.options;
+ return {
+ type: "bi.horizontal_auto",
+ items: [
+ {
+ el: {
+ type: "bi.left_right_vertical_adapt",
+ width: 600,
+ height: o.height,
+ items: {
+ left: [
+ {
+ el: {
+ type: "bi.label",
+ cls: "my-todolist-title",
+ text: "FineUI ToDoList",
+ height: o.height
+ }
+ }
+ ],
+ right: [
+ {
+ el: {
+ type: "bi.editor",
+ allowBlank: true,
+ cls: "my-todolist-header-editor",
+ watermark: "添加ToDo",
+ width: 300,
+ height: 24,
+ listeners: [
+ {
+ eventName: "EVENT_ENTER",
+ action: function () {
+ self.fireEvent(ToDoListHeader.EVENT_ADD, this.getValue());
+ this.setValue("");
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ };
+ }
+ });
+
+ ToDoListHeader.EVENT_ADD = "EVENT_ADD";
+
+ BI.shortcut("my.todolist.header", ToDoListHeader);
+})();!(function () {
+ var List = BI.inherit(BI.Widget, {
+
+ props: {
+ baseCls: "my-todolist-list",
+ text: "正在进行"
+ },
+
+ render: function () {
+ var self = this, o = this.options;
+ return {
+ type: "bi.vertical",
+ items: [
+ {
+ el: {
+ type: "bi.vertical_adapt",
+ height: 40,
+ items: [
+ {
+ type: "bi.label",
+ cls: "my-todolist-list-text",
+ textAlign: "left",
+ text: o.text,
+ width: 580
+ }, {
+ type: "bi.center_adapt",
+ cls: "my-todolist-list-count-container",
+ width: 20,
+ height: 20,
+ items: [
+ {
+ el: {
+ type: "bi.label",
+ ref: function (_ref) {
+ self.count = _ref;
+ },
+ text: "0"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }, {
+ type: "bi.button_group",
+ ref: function (_ref) {
+ self.list = _ref;
+ },
+ layouts: [
+ {
+ type: "bi.vertical",
+ vgap: 10
+ }
+ ],
+ items: o.items,
+ listeners: [
+ {
+ eventName: "EVENT_CHANGE",
+ action: function (v) {
+ self.fireEvent("EVENT_CHANGE", v);
+ }
+ }
+ ]
+ }
+ ]
+ };
+ },
+
+ _createItems: function (items) {
+ return BI.createItems(items, this.options.el);
+ },
+
+ _setCount: function (count) {
+ this.count.setText(count);
+ },
+
+ populate: function (items) {
+ this.list.populate(this._createItems(items));
+ this._setCount(items.length);
+ }
+ });
+ BI.shortcut("my.todolist.list", List);
+})();!(function () {
+ var ToDoList = BI.inherit(BI.Widget, {
+
+ props: {
+ baseCls: "fine-to-do-list"
+ },
+
+ _store: function () {
+ return BI.Models.getModel("my.model.todolist");
+ },
+
+ watch: {
+ todoList: function (items) {
+ this.todolist.populate(items);
+ },
+ doneList: function (items) {
+ this.donelist.populate(items);
+ }
+ },
+
+ render: function () {
+ var self = this, o = this.options;
+ return {
+ type: "bi.vtape",
+ items: [
+ {
+ el: {
+ type: "my.todolist.header",
+ listeners: [
+ {
+ eventName: "EVENT_ADD",
+ action: function (v) {
+ self.store.addToDo(v);
+ }
+ }
+ ],
+ height: 40
+ },
+ height: 40
+ }, {
+ type: "bi.horizontal_auto",
+ cls: "bi-background",
+ items: [
+ {
+ el: {
+ type: "my.todolist.list",
+ ref: function (_ref) {
+ self.todolist = _ref;
+ },
+ text: "正在进行",
+ listeners: [
+ {
+ eventName: "EVENT_CHANGE",
+ action: function (v) {
+ self.store.finish(v);
+ }
+ }
+ ],
+ width: 600
+ }
+ }, {
+ el: {
+ type: "my.todolist.list",
+ text: "已经完成",
+ ref: function (_ref) {
+ self.donelist = _ref;
+ },
+ width: 600
+ }
+ }
+ ]
+ }
+ ]
+ };
+ }
+ });
+ BI.shortcut("my.todolist", ToDoList);
+})();
+!(function () {
+
+ var ToDoListModel = BI.inherit(Fix.Model, {
+
+ state: function () {
+ return {
+ list: []
+ };
+ },
+ watch: {},
+
+ computed: {
+ todoList: function () {
+ var items = BI.filter(this.model.list, function (index, item) {
+ return !item.done;
+ });
+ return BI.map(items, function (index, item) {
+ return BI.extend({
+ type: "bi.multi_select_item"
+ }, item);
+ });
+ },
+ doneList: function () {
+ var items = BI.filter(this.model.list, function (index, item) {
+ return item.done;
+ });
+ return BI.map(items, function (index, item) {
+ return BI.extend({
+ type: "bi.multi_select_item",
+ selected: true,
+ disabled: true
+ }, item);
+ });
+ }
+ },
+
+ actions: {
+ addToDo: function (v) {
+ this.model.list.push({
+ value: BI.UUID(),
+ text: v,
+ done: false
+ });
+ },
+
+ finish: function (v) {
+ BI.some(this.model.list, function (index, item) {
+ if (item.value === v) {
+ item.done = true;
+ }
+ });
+ }
+ }
+ });
+ BI.model("my.model.todolist", ToDoListModel);
+})();
diff --git a/dist/font/iconfont.eot b/dist/font/iconfont.eot
new file mode 100644
index 0000000..693b5dc
Binary files /dev/null and b/dist/font/iconfont.eot differ
diff --git a/dist/font/iconfont.svg b/dist/font/iconfont.svg
new file mode 100644
index 0000000..973571d
--- /dev/null
+++ b/dist/font/iconfont.svg
@@ -0,0 +1,1002 @@
+
+
+
+
diff --git a/dist/font/iconfont.ttf b/dist/font/iconfont.ttf
new file mode 100644
index 0000000..e62143d
Binary files /dev/null and b/dist/font/iconfont.ttf differ
diff --git a/dist/font/iconfont.woff b/dist/font/iconfont.woff
new file mode 100644
index 0000000..9c9686c
Binary files /dev/null and b/dist/font/iconfont.woff differ
diff --git a/dist/images/1x/background/auto_color.png b/dist/images/1x/background/auto_color.png
new file mode 100644
index 0000000..63b3edf
Binary files /dev/null and b/dist/images/1x/background/auto_color.png differ
diff --git a/dist/images/1x/background/line_conn.gif b/dist/images/1x/background/line_conn.gif
new file mode 100644
index 0000000..d561d36
Binary files /dev/null and b/dist/images/1x/background/line_conn.gif differ
diff --git a/dist/images/1x/background/marker.png b/dist/images/1x/background/marker.png
new file mode 100644
index 0000000..3929bbb
Binary files /dev/null and b/dist/images/1x/background/marker.png differ
diff --git a/dist/images/1x/background/mask.png b/dist/images/1x/background/mask.png
new file mode 100644
index 0000000..b0a4d40
Binary files /dev/null and b/dist/images/1x/background/mask.png differ
diff --git a/dist/images/1x/background/trans_color.png b/dist/images/1x/background/trans_color.png
new file mode 100644
index 0000000..8fa4492
Binary files /dev/null and b/dist/images/1x/background/trans_color.png differ
diff --git a/dist/images/1x/background/wheel.png b/dist/images/1x/background/wheel.png
new file mode 100644
index 0000000..97b343d
Binary files /dev/null and b/dist/images/1x/background/wheel.png differ
diff --git a/dist/images/1x/icon/check_box_active.png b/dist/images/1x/icon/check_box_active.png
new file mode 100644
index 0000000..af54808
Binary files /dev/null and b/dist/images/1x/icon/check_box_active.png differ
diff --git a/dist/images/1x/icon/check_box_disable.png b/dist/images/1x/icon/check_box_disable.png
new file mode 100644
index 0000000..bb7f451
Binary files /dev/null and b/dist/images/1x/icon/check_box_disable.png differ
diff --git a/dist/images/1x/icon/check_box_disable2.png b/dist/images/1x/icon/check_box_disable2.png
new file mode 100644
index 0000000..fb593ff
Binary files /dev/null and b/dist/images/1x/icon/check_box_disable2.png differ
diff --git a/dist/images/1x/icon/check_box_normal.png b/dist/images/1x/icon/check_box_normal.png
new file mode 100644
index 0000000..2974ad7
Binary files /dev/null and b/dist/images/1x/icon/check_box_normal.png differ
diff --git a/dist/images/1x/icon/dark/tree_collapse_1.png b/dist/images/1x/icon/dark/tree_collapse_1.png
new file mode 100644
index 0000000..583c00f
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_collapse_1.png differ
diff --git a/dist/images/1x/icon/dark/tree_collapse_2.png b/dist/images/1x/icon/dark/tree_collapse_2.png
new file mode 100644
index 0000000..083529b
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_collapse_2.png differ
diff --git a/dist/images/1x/icon/dark/tree_collapse_3.png b/dist/images/1x/icon/dark/tree_collapse_3.png
new file mode 100644
index 0000000..cc3d25c
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_collapse_3.png differ
diff --git a/dist/images/1x/icon/dark/tree_collapse_4.png b/dist/images/1x/icon/dark/tree_collapse_4.png
new file mode 100644
index 0000000..d599e57
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_collapse_4.png differ
diff --git a/dist/images/1x/icon/dark/tree_expand_1.png b/dist/images/1x/icon/dark/tree_expand_1.png
new file mode 100644
index 0000000..76c5863
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_expand_1.png differ
diff --git a/dist/images/1x/icon/dark/tree_expand_2.png b/dist/images/1x/icon/dark/tree_expand_2.png
new file mode 100644
index 0000000..53063e7
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_expand_2.png differ
diff --git a/dist/images/1x/icon/dark/tree_expand_3.png b/dist/images/1x/icon/dark/tree_expand_3.png
new file mode 100644
index 0000000..0f35d6e
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_expand_3.png differ
diff --git a/dist/images/1x/icon/dark/tree_expand_4.png b/dist/images/1x/icon/dark/tree_expand_4.png
new file mode 100644
index 0000000..4752f81
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_expand_4.png differ
diff --git a/dist/images/1x/icon/dark/tree_vertical_line_1.png b/dist/images/1x/icon/dark/tree_vertical_line_1.png
new file mode 100644
index 0000000..d13fc8d
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_vertical_line_1.png differ
diff --git a/dist/images/1x/icon/dark/tree_vertical_line_2.png b/dist/images/1x/icon/dark/tree_vertical_line_2.png
new file mode 100644
index 0000000..ebee980
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_vertical_line_2.png differ
diff --git a/dist/images/1x/icon/dark/tree_vertical_line_3.png b/dist/images/1x/icon/dark/tree_vertical_line_3.png
new file mode 100644
index 0000000..d2f7595
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_vertical_line_3.png differ
diff --git a/dist/images/1x/icon/dark/tree_vertical_line_4.png b/dist/images/1x/icon/dark/tree_vertical_line_4.png
new file mode 100644
index 0000000..277d0e5
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_vertical_line_4.png differ
diff --git a/dist/images/1x/icon/dark/tree_vertical_line_5.png b/dist/images/1x/icon/dark/tree_vertical_line_5.png
new file mode 100644
index 0000000..85aa1cc
Binary files /dev/null and b/dist/images/1x/icon/dark/tree_vertical_line_5.png differ
diff --git a/dist/images/1x/icon/dots.png b/dist/images/1x/icon/dots.png
new file mode 100644
index 0000000..55b461b
Binary files /dev/null and b/dist/images/1x/icon/dots.png differ
diff --git a/dist/images/1x/icon/half_selected.png b/dist/images/1x/icon/half_selected.png
new file mode 100644
index 0000000..298dd91
Binary files /dev/null and b/dist/images/1x/icon/half_selected.png differ
diff --git a/dist/images/1x/icon/icon_down_arrow.png b/dist/images/1x/icon/icon_down_arrow.png
new file mode 100644
index 0000000..b77c330
Binary files /dev/null and b/dist/images/1x/icon/icon_down_arrow.png differ
diff --git a/dist/images/1x/icon/loading.gif b/dist/images/1x/icon/loading.gif
new file mode 100644
index 0000000..d04fdd2
Binary files /dev/null and b/dist/images/1x/icon/loading.gif differ
diff --git a/dist/images/1x/icon/push_down.png b/dist/images/1x/icon/push_down.png
new file mode 100644
index 0000000..7eb88eb
Binary files /dev/null and b/dist/images/1x/icon/push_down.png differ
diff --git a/dist/images/1x/icon/push_up.png b/dist/images/1x/icon/push_up.png
new file mode 100644
index 0000000..a3042a4
Binary files /dev/null and b/dist/images/1x/icon/push_up.png differ
diff --git a/dist/images/1x/icon/radio_active.png b/dist/images/1x/icon/radio_active.png
new file mode 100644
index 0000000..7b2ee27
Binary files /dev/null and b/dist/images/1x/icon/radio_active.png differ
diff --git a/dist/images/1x/icon/radio_disable.png b/dist/images/1x/icon/radio_disable.png
new file mode 100644
index 0000000..c0389fd
Binary files /dev/null and b/dist/images/1x/icon/radio_disable.png differ
diff --git a/dist/images/1x/icon/radio_disable2.png b/dist/images/1x/icon/radio_disable2.png
new file mode 100644
index 0000000..f5a71f3
Binary files /dev/null and b/dist/images/1x/icon/radio_disable2.png differ
diff --git a/dist/images/1x/icon/radio_normal.png b/dist/images/1x/icon/radio_normal.png
new file mode 100644
index 0000000..2388bb8
Binary files /dev/null and b/dist/images/1x/icon/radio_normal.png differ
diff --git a/dist/images/1x/icon/slider_active.png b/dist/images/1x/icon/slider_active.png
new file mode 100644
index 0000000..a84164f
Binary files /dev/null and b/dist/images/1x/icon/slider_active.png differ
diff --git a/dist/images/1x/icon/slider_active_small.png b/dist/images/1x/icon/slider_active_small.png
new file mode 100644
index 0000000..1c29cec
Binary files /dev/null and b/dist/images/1x/icon/slider_active_small.png differ
diff --git a/dist/images/1x/icon/slider_normal.png b/dist/images/1x/icon/slider_normal.png
new file mode 100644
index 0000000..8a611ff
Binary files /dev/null and b/dist/images/1x/icon/slider_normal.png differ
diff --git a/dist/images/1x/icon/slider_normal_small.png b/dist/images/1x/icon/slider_normal_small.png
new file mode 100644
index 0000000..7bd6fc7
Binary files /dev/null and b/dist/images/1x/icon/slider_normal_small.png differ
diff --git a/dist/images/1x/icon/tree_collapse_1.png b/dist/images/1x/icon/tree_collapse_1.png
new file mode 100644
index 0000000..dfc427e
Binary files /dev/null and b/dist/images/1x/icon/tree_collapse_1.png differ
diff --git a/dist/images/1x/icon/tree_collapse_2.png b/dist/images/1x/icon/tree_collapse_2.png
new file mode 100644
index 0000000..8db0aa7
Binary files /dev/null and b/dist/images/1x/icon/tree_collapse_2.png differ
diff --git a/dist/images/1x/icon/tree_collapse_3.png b/dist/images/1x/icon/tree_collapse_3.png
new file mode 100644
index 0000000..efbbed9
Binary files /dev/null and b/dist/images/1x/icon/tree_collapse_3.png differ
diff --git a/dist/images/1x/icon/tree_collapse_4.png b/dist/images/1x/icon/tree_collapse_4.png
new file mode 100644
index 0000000..743bf8b
Binary files /dev/null and b/dist/images/1x/icon/tree_collapse_4.png differ
diff --git a/dist/images/1x/icon/tree_expand_1.png b/dist/images/1x/icon/tree_expand_1.png
new file mode 100644
index 0000000..914e324
Binary files /dev/null and b/dist/images/1x/icon/tree_expand_1.png differ
diff --git a/dist/images/1x/icon/tree_expand_2.png b/dist/images/1x/icon/tree_expand_2.png
new file mode 100644
index 0000000..95a8af0
Binary files /dev/null and b/dist/images/1x/icon/tree_expand_2.png differ
diff --git a/dist/images/1x/icon/tree_expand_3.png b/dist/images/1x/icon/tree_expand_3.png
new file mode 100644
index 0000000..b1c1e94
Binary files /dev/null and b/dist/images/1x/icon/tree_expand_3.png differ
diff --git a/dist/images/1x/icon/tree_expand_4.png b/dist/images/1x/icon/tree_expand_4.png
new file mode 100644
index 0000000..6702029
Binary files /dev/null and b/dist/images/1x/icon/tree_expand_4.png differ
diff --git a/dist/images/1x/icon/tree_vertical_line_1.png b/dist/images/1x/icon/tree_vertical_line_1.png
new file mode 100644
index 0000000..d13fc8d
Binary files /dev/null and b/dist/images/1x/icon/tree_vertical_line_1.png differ
diff --git a/dist/images/1x/icon/tree_vertical_line_2.png b/dist/images/1x/icon/tree_vertical_line_2.png
new file mode 100644
index 0000000..ebee980
Binary files /dev/null and b/dist/images/1x/icon/tree_vertical_line_2.png differ
diff --git a/dist/images/1x/icon/tree_vertical_line_3.png b/dist/images/1x/icon/tree_vertical_line_3.png
new file mode 100644
index 0000000..d2f7595
Binary files /dev/null and b/dist/images/1x/icon/tree_vertical_line_3.png differ
diff --git a/dist/images/1x/icon/tree_vertical_line_4.png b/dist/images/1x/icon/tree_vertical_line_4.png
new file mode 100644
index 0000000..277d0e5
Binary files /dev/null and b/dist/images/1x/icon/tree_vertical_line_4.png differ
diff --git a/dist/images/1x/icon/tree_vertical_line_5.png b/dist/images/1x/icon/tree_vertical_line_5.png
new file mode 100644
index 0000000..85aa1cc
Binary files /dev/null and b/dist/images/1x/icon/tree_vertical_line_5.png differ
diff --git a/dist/images/2x/background/auto_color.png b/dist/images/2x/background/auto_color.png
new file mode 100644
index 0000000..fc976e4
Binary files /dev/null and b/dist/images/2x/background/auto_color.png differ
diff --git a/dist/images/2x/background/line_conn.gif b/dist/images/2x/background/line_conn.gif
new file mode 100644
index 0000000..d561d36
Binary files /dev/null and b/dist/images/2x/background/line_conn.gif differ
diff --git a/dist/images/2x/background/marker.png b/dist/images/2x/background/marker.png
new file mode 100644
index 0000000..3929bbb
Binary files /dev/null and b/dist/images/2x/background/marker.png differ
diff --git a/dist/images/2x/background/mask.png b/dist/images/2x/background/mask.png
new file mode 100644
index 0000000..b0a4d40
Binary files /dev/null and b/dist/images/2x/background/mask.png differ
diff --git a/dist/images/2x/background/trans_color.png b/dist/images/2x/background/trans_color.png
new file mode 100644
index 0000000..262626f
Binary files /dev/null and b/dist/images/2x/background/trans_color.png differ
diff --git a/dist/images/2x/background/wheel.png b/dist/images/2x/background/wheel.png
new file mode 100644
index 0000000..97b343d
Binary files /dev/null and b/dist/images/2x/background/wheel.png differ
diff --git a/dist/images/2x/icon/check_box_active.png b/dist/images/2x/icon/check_box_active.png
new file mode 100644
index 0000000..f5083b8
Binary files /dev/null and b/dist/images/2x/icon/check_box_active.png differ
diff --git a/dist/images/2x/icon/check_box_disable.png b/dist/images/2x/icon/check_box_disable.png
new file mode 100644
index 0000000..b6767f3
Binary files /dev/null and b/dist/images/2x/icon/check_box_disable.png differ
diff --git a/dist/images/2x/icon/check_box_disable2.png b/dist/images/2x/icon/check_box_disable2.png
new file mode 100644
index 0000000..dbc3da4
Binary files /dev/null and b/dist/images/2x/icon/check_box_disable2.png differ
diff --git a/dist/images/2x/icon/check_box_normal.png b/dist/images/2x/icon/check_box_normal.png
new file mode 100644
index 0000000..cf167a7
Binary files /dev/null and b/dist/images/2x/icon/check_box_normal.png differ
diff --git a/dist/images/2x/icon/dark/tree_collapse_1.png b/dist/images/2x/icon/dark/tree_collapse_1.png
new file mode 100644
index 0000000..740b50a
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_collapse_1.png differ
diff --git a/dist/images/2x/icon/dark/tree_collapse_2.png b/dist/images/2x/icon/dark/tree_collapse_2.png
new file mode 100644
index 0000000..6b7192f
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_collapse_2.png differ
diff --git a/dist/images/2x/icon/dark/tree_collapse_3.png b/dist/images/2x/icon/dark/tree_collapse_3.png
new file mode 100644
index 0000000..172b933
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_collapse_3.png differ
diff --git a/dist/images/2x/icon/dark/tree_collapse_4.png b/dist/images/2x/icon/dark/tree_collapse_4.png
new file mode 100644
index 0000000..69eb9c3
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_collapse_4.png differ
diff --git a/dist/images/2x/icon/dark/tree_expand_1.png b/dist/images/2x/icon/dark/tree_expand_1.png
new file mode 100644
index 0000000..ce1480d
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_expand_1.png differ
diff --git a/dist/images/2x/icon/dark/tree_expand_2.png b/dist/images/2x/icon/dark/tree_expand_2.png
new file mode 100644
index 0000000..114dc2f
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_expand_2.png differ
diff --git a/dist/images/2x/icon/dark/tree_expand_3.png b/dist/images/2x/icon/dark/tree_expand_3.png
new file mode 100644
index 0000000..fb15500
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_expand_3.png differ
diff --git a/dist/images/2x/icon/dark/tree_expand_4.png b/dist/images/2x/icon/dark/tree_expand_4.png
new file mode 100644
index 0000000..75c9f23
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_expand_4.png differ
diff --git a/dist/images/2x/icon/dark/tree_vertical_line_1.png b/dist/images/2x/icon/dark/tree_vertical_line_1.png
new file mode 100644
index 0000000..e88f2a6
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_vertical_line_1.png differ
diff --git a/dist/images/2x/icon/dark/tree_vertical_line_2.png b/dist/images/2x/icon/dark/tree_vertical_line_2.png
new file mode 100644
index 0000000..554d8b3
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_vertical_line_2.png differ
diff --git a/dist/images/2x/icon/dark/tree_vertical_line_3.png b/dist/images/2x/icon/dark/tree_vertical_line_3.png
new file mode 100644
index 0000000..8e7da8a
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_vertical_line_3.png differ
diff --git a/dist/images/2x/icon/dark/tree_vertical_line_4.png b/dist/images/2x/icon/dark/tree_vertical_line_4.png
new file mode 100644
index 0000000..4645b52
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_vertical_line_4.png differ
diff --git a/dist/images/2x/icon/dark/tree_vertical_line_5.png b/dist/images/2x/icon/dark/tree_vertical_line_5.png
new file mode 100644
index 0000000..3fd2c56
Binary files /dev/null and b/dist/images/2x/icon/dark/tree_vertical_line_5.png differ
diff --git a/dist/images/2x/icon/dots.png b/dist/images/2x/icon/dots.png
new file mode 100644
index 0000000..beae59d
Binary files /dev/null and b/dist/images/2x/icon/dots.png differ
diff --git a/dist/images/2x/icon/half_selected.png b/dist/images/2x/icon/half_selected.png
new file mode 100644
index 0000000..765aabc
Binary files /dev/null and b/dist/images/2x/icon/half_selected.png differ
diff --git a/dist/images/2x/icon/icon_down_arrow.png b/dist/images/2x/icon/icon_down_arrow.png
new file mode 100644
index 0000000..5285f73
Binary files /dev/null and b/dist/images/2x/icon/icon_down_arrow.png differ
diff --git a/dist/images/2x/icon/loading.gif b/dist/images/2x/icon/loading.gif
new file mode 100644
index 0000000..d04fdd2
Binary files /dev/null and b/dist/images/2x/icon/loading.gif differ
diff --git a/dist/images/2x/icon/push_down.png b/dist/images/2x/icon/push_down.png
new file mode 100644
index 0000000..88ef8d5
Binary files /dev/null and b/dist/images/2x/icon/push_down.png differ
diff --git a/dist/images/2x/icon/push_up.png b/dist/images/2x/icon/push_up.png
new file mode 100644
index 0000000..040d502
Binary files /dev/null and b/dist/images/2x/icon/push_up.png differ
diff --git a/dist/images/2x/icon/radio_active.png b/dist/images/2x/icon/radio_active.png
new file mode 100644
index 0000000..e465430
Binary files /dev/null and b/dist/images/2x/icon/radio_active.png differ
diff --git a/dist/images/2x/icon/radio_disable.png b/dist/images/2x/icon/radio_disable.png
new file mode 100644
index 0000000..dfe0413
Binary files /dev/null and b/dist/images/2x/icon/radio_disable.png differ
diff --git a/dist/images/2x/icon/radio_disable2.png b/dist/images/2x/icon/radio_disable2.png
new file mode 100644
index 0000000..8476062
Binary files /dev/null and b/dist/images/2x/icon/radio_disable2.png differ
diff --git a/dist/images/2x/icon/radio_normal.png b/dist/images/2x/icon/radio_normal.png
new file mode 100644
index 0000000..0bbd274
Binary files /dev/null and b/dist/images/2x/icon/radio_normal.png differ
diff --git a/dist/images/2x/icon/slider_active.png b/dist/images/2x/icon/slider_active.png
new file mode 100644
index 0000000..cf361f7
Binary files /dev/null and b/dist/images/2x/icon/slider_active.png differ
diff --git a/dist/images/2x/icon/slider_active_small.png b/dist/images/2x/icon/slider_active_small.png
new file mode 100644
index 0000000..1c29cec
Binary files /dev/null and b/dist/images/2x/icon/slider_active_small.png differ
diff --git a/dist/images/2x/icon/slider_normal.png b/dist/images/2x/icon/slider_normal.png
new file mode 100644
index 0000000..a81cf03
Binary files /dev/null and b/dist/images/2x/icon/slider_normal.png differ
diff --git a/dist/images/2x/icon/slider_normal_small.png b/dist/images/2x/icon/slider_normal_small.png
new file mode 100644
index 0000000..7bd6fc7
Binary files /dev/null and b/dist/images/2x/icon/slider_normal_small.png differ
diff --git a/dist/images/2x/icon/tree_collapse_1.png b/dist/images/2x/icon/tree_collapse_1.png
new file mode 100644
index 0000000..f2d63e2
Binary files /dev/null and b/dist/images/2x/icon/tree_collapse_1.png differ
diff --git a/dist/images/2x/icon/tree_collapse_2.png b/dist/images/2x/icon/tree_collapse_2.png
new file mode 100644
index 0000000..4f87550
Binary files /dev/null and b/dist/images/2x/icon/tree_collapse_2.png differ
diff --git a/dist/images/2x/icon/tree_collapse_3.png b/dist/images/2x/icon/tree_collapse_3.png
new file mode 100644
index 0000000..88cfeba
Binary files /dev/null and b/dist/images/2x/icon/tree_collapse_3.png differ
diff --git a/dist/images/2x/icon/tree_collapse_4.png b/dist/images/2x/icon/tree_collapse_4.png
new file mode 100644
index 0000000..31c33b9
Binary files /dev/null and b/dist/images/2x/icon/tree_collapse_4.png differ
diff --git a/dist/images/2x/icon/tree_expand_1.png b/dist/images/2x/icon/tree_expand_1.png
new file mode 100644
index 0000000..2fb7e3b
Binary files /dev/null and b/dist/images/2x/icon/tree_expand_1.png differ
diff --git a/dist/images/2x/icon/tree_expand_2.png b/dist/images/2x/icon/tree_expand_2.png
new file mode 100644
index 0000000..9a26edb
Binary files /dev/null and b/dist/images/2x/icon/tree_expand_2.png differ
diff --git a/dist/images/2x/icon/tree_expand_3.png b/dist/images/2x/icon/tree_expand_3.png
new file mode 100644
index 0000000..6f6b5a7
Binary files /dev/null and b/dist/images/2x/icon/tree_expand_3.png differ
diff --git a/dist/images/2x/icon/tree_expand_4.png b/dist/images/2x/icon/tree_expand_4.png
new file mode 100644
index 0000000..c202c72
Binary files /dev/null and b/dist/images/2x/icon/tree_expand_4.png differ
diff --git a/dist/images/2x/icon/tree_vertical_line_1.png b/dist/images/2x/icon/tree_vertical_line_1.png
new file mode 100644
index 0000000..e88f2a6
Binary files /dev/null and b/dist/images/2x/icon/tree_vertical_line_1.png differ
diff --git a/dist/images/2x/icon/tree_vertical_line_2.png b/dist/images/2x/icon/tree_vertical_line_2.png
new file mode 100644
index 0000000..554d8b3
Binary files /dev/null and b/dist/images/2x/icon/tree_vertical_line_2.png differ
diff --git a/dist/images/2x/icon/tree_vertical_line_3.png b/dist/images/2x/icon/tree_vertical_line_3.png
new file mode 100644
index 0000000..8e7da8a
Binary files /dev/null and b/dist/images/2x/icon/tree_vertical_line_3.png differ
diff --git a/dist/images/2x/icon/tree_vertical_line_4.png b/dist/images/2x/icon/tree_vertical_line_4.png
new file mode 100644
index 0000000..4645b52
Binary files /dev/null and b/dist/images/2x/icon/tree_vertical_line_4.png differ
diff --git a/dist/images/2x/icon/tree_vertical_line_5.png b/dist/images/2x/icon/tree_vertical_line_5.png
new file mode 100644
index 0000000..3fd2c56
Binary files /dev/null and b/dist/images/2x/icon/tree_vertical_line_5.png differ
diff --git a/dist/resource/ZeroClipboard.swf b/dist/resource/ZeroClipboard.swf
new file mode 100644
index 0000000..13bf8e3
Binary files /dev/null and b/dist/resource/ZeroClipboard.swf differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..294d241
--- /dev/null
+++ b/index.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+ FineUI Admin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..6f58981
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,4093 @@
+{
+ "name": "fineui-start",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+ "dev": true,
+ "requires": {
+ "mime-types": "2.1.21",
+ "negotiator": "0.6.1"
+ }
+ },
+ "acorn": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "3.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "3.1.0",
+ "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "dev": true,
+ "optional": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true,
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true,
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+ "dev": true,
+ "optional": true
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "body": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
+ "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
+ "dev": true,
+ "requires": {
+ "continuable-cache": "0.3.1",
+ "error": "7.0.2",
+ "raw-body": "1.1.7",
+ "safe-json-parse": "1.0.1"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
+ "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
+ "dev": true,
+ "requires": {
+ "bytes": "1.0.0",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "body-parser": {
+ "version": "1.18.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
+ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "http-errors": "1.6.3",
+ "iconv-lite": "0.4.23",
+ "on-finished": "2.3.0",
+ "qs": "6.5.2",
+ "raw-body": "2.3.3",
+ "type-is": "1.6.16"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "http://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
+ "dev": true
+ },
+ "browserify-zlib": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "dev": true,
+ "requires": {
+ "pako": "0.2.9"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ }
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true,
+ "optional": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chai": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
+ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "1.1.0",
+ "check-error": "1.0.2",
+ "deep-eql": "3.0.1",
+ "get-func-name": "2.0.0",
+ "pathval": "1.1.0",
+ "type-detect": "4.0.8"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.5.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.3"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "3.0.0"
+ }
+ }
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "dev": true
+ },
+ "clean-css": {
+ "version": "3.4.28",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
+ "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
+ "dev": true,
+ "requires": {
+ "commander": "2.8.1",
+ "source-map": "0.4.4"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "cli": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
+ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
+ "dev": true,
+ "requires": {
+ "exit": "0.1.2",
+ "glob": "7.1.3"
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ }
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "coffeescript": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
+ "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
+ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.8.1",
+ "resolved": "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": "1.0.1"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "1.1.1",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6",
+ "typedarray": "0.0.6"
+ }
+ },
+ "connect": {
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
+ "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.0",
+ "parseurl": "1.3.2",
+ "utils-merge": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
+ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "statuses": "1.3.1",
+ "unpipe": "1.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+ "dev": true
+ }
+ }
+ },
+ "connect-livereload": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz",
+ "integrity": "sha1-gBV9E3HJ83zBQDmrGJWXDRGdw7w=",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "0.1.4"
+ }
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
+ "dev": true
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "continuable-cache": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
+ "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=",
+ "dev": true
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.4",
+ "shebang-command": "1.2.0",
+ "which": "1.3.1"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
+ },
+ "cycle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
+ "dev": true,
+ "optional": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "dateformat": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1",
+ "meow": "3.7.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.1"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "diff": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.1.3",
+ "entities": "1.1.2"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "dev": true
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz",
+ "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.2.1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0.1.0",
+ "domelementtype": "1.2.1"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1",
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "entities": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "prr": "1.0.1"
+ }
+ },
+ "error": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
+ "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
+ "dev": true,
+ "requires": {
+ "string-template": "0.2.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "es6-promise": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
+ "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==",
+ "dev": true,
+ "optional": true
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint": {
+ "version": "4.19.1",
+ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
+ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "babel-code-frame": "6.26.0",
+ "chalk": "2.4.1",
+ "concat-stream": "1.6.2",
+ "cross-spawn": "5.1.0",
+ "debug": "3.2.6",
+ "doctrine": "2.1.0",
+ "eslint-scope": "3.7.3",
+ "eslint-visitor-keys": "1.0.0",
+ "espree": "3.5.4",
+ "esquery": "1.0.1",
+ "esutils": "2.0.2",
+ "file-entry-cache": "2.0.0",
+ "functional-red-black-tree": "1.0.1",
+ "glob": "7.1.3",
+ "globals": "11.9.0",
+ "ignore": "3.3.10",
+ "imurmurhash": "0.1.4",
+ "inquirer": "3.3.0",
+ "is-resolvable": "1.1.0",
+ "js-yaml": "3.12.0",
+ "json-stable-stringify-without-jsonify": "1.0.1",
+ "levn": "0.3.0",
+ "lodash": "4.17.11",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "natural-compare": "1.4.0",
+ "optionator": "0.8.2",
+ "path-is-inside": "1.0.2",
+ "pluralize": "7.0.0",
+ "progress": "2.0.1",
+ "regexpp": "1.1.0",
+ "require-uncached": "1.0.3",
+ "semver": "5.6.0",
+ "strip-ansi": "4.0.0",
+ "strip-json-comments": "2.0.1",
+ "table": "4.0.2",
+ "text-table": "0.2.0"
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz",
+ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "1.2.0",
+ "jest-docblock": "21.2.0"
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
+ "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "4.2.1",
+ "estraverse": "4.2.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "3.5.4",
+ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.7.3",
+ "acorn-jsx": "3.0.1"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+ "dev": true
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "express": {
+ "version": "4.16.4",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
+ "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
+ "dev": true,
+ "requires": {
+ "accepts": "1.3.5",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.3",
+ "content-disposition": "0.5.2",
+ "content-type": "1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "finalhandler": "1.1.1",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "1.1.2",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "2.0.4",
+ "qs": "6.5.2",
+ "range-parser": "1.2.0",
+ "safe-buffer": "5.1.2",
+ "send": "0.16.2",
+ "serve-static": "1.13.2",
+ "setprototypeof": "1.1.0",
+ "statuses": "1.4.0",
+ "type-is": "1.6.16",
+ "utils-merge": "1.0.1",
+ "vary": "1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true,
+ "optional": true
+ },
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "dev": true,
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.24",
+ "tmp": "0.0.33"
+ }
+ },
+ "extract-zip": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "concat-stream": "1.6.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1",
+ "yauzl": "2.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
+ "dev": true,
+ "optional": true
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": "0.7.0"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pend": "1.2.0"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "1.3.4",
+ "object-assign": "4.1.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.1",
+ "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "statuses": "1.4.0",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "findup-sync": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
+ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
+ "dev": true,
+ "requires": {
+ "glob": "5.0.15"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
+ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
+ "dev": true,
+ "requires": {
+ "circular-json": "0.3.3",
+ "graceful-fs": "4.1.15",
+ "rimraf": "2.6.2",
+ "write": "0.2.1"
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.7",
+ "mime-types": "2.1.21"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "4.1.15",
+ "jsonfile": "2.4.0",
+ "klaw": "1.3.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
+ "requires": {
+ "globule": "1.2.1"
+ }
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "getobject": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "globals": {
+ "version": "11.9.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
+ "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
+ "dev": true
+ },
+ "globule": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.3",
+ "lodash": "4.17.11",
+ "minimatch": "3.0.4"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "dev": true
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
+ "dev": true
+ },
+ "grunt": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz",
+ "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==",
+ "dev": true,
+ "requires": {
+ "coffeescript": "1.10.0",
+ "dateformat": "1.0.12",
+ "eventemitter2": "0.4.14",
+ "exit": "0.1.2",
+ "findup-sync": "0.3.0",
+ "glob": "7.0.6",
+ "grunt-cli": "1.2.0",
+ "grunt-known-options": "1.1.1",
+ "grunt-legacy-log": "2.0.0",
+ "grunt-legacy-util": "1.1.1",
+ "iconv-lite": "0.4.24",
+ "js-yaml": "3.5.5",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "nopt": "3.0.6",
+ "path-is-absolute": "1.0.1",
+ "rimraf": "2.6.2"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "grunt-cli": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
+ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
+ "dev": true,
+ "requires": {
+ "findup-sync": "0.3.0",
+ "grunt-known-options": "1.1.1",
+ "nopt": "3.0.6",
+ "resolve": "1.1.7"
+ }
+ },
+ "js-yaml": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
+ "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.10",
+ "esprima": "2.7.3"
+ }
+ }
+ }
+ },
+ "grunt-contrib-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz",
+ "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "grunt-contrib-connect": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-1.0.2.tgz",
+ "integrity": "sha1-XPkzuRpnOGBEJzwLJERgPNmIebo=",
+ "dev": true,
+ "requires": {
+ "async": "1.5.2",
+ "connect": "3.6.6",
+ "connect-livereload": "0.5.4",
+ "http2": "3.3.7",
+ "morgan": "1.9.1",
+ "opn": "4.0.2",
+ "portscanner": "1.2.0",
+ "serve-index": "1.9.1",
+ "serve-static": "1.13.2"
+ }
+ },
+ "grunt-contrib-cssmin": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.2.tgz",
+ "integrity": "sha1-FzTL09hMpzZHWLflj/GOUqpgu3Y=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "clean-css": "3.4.28",
+ "maxmin": "1.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "grunt-contrib-jshint": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz",
+ "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "hooker": "0.2.3",
+ "jshint": "2.9.6"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "grunt-contrib-less": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.1.tgz",
+ "integrity": "sha1-O73sC3XRLOqlXWKUNiXAsIYc328=",
+ "dev": true,
+ "requires": {
+ "async": "2.6.1",
+ "chalk": "1.1.3",
+ "less": "2.7.3",
+ "lodash": "4.17.11"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.11"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "grunt-contrib-uglify": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.2.tgz",
+ "integrity": "sha1-rmekb5FT7dTLEYE6Vetpxw19svs=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "lodash": "4.17.11",
+ "maxmin": "1.1.0",
+ "uglify-js": "2.6.4",
+ "uri-path": "1.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "grunt-contrib-watch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
+ "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
+ "dev": true,
+ "requires": {
+ "async": "2.6.1",
+ "gaze": "1.1.3",
+ "lodash": "4.17.11",
+ "tiny-lr": "1.1.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.11"
+ }
+ }
+ }
+ },
+ "grunt-known-options": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
+ "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
+ "dev": true
+ },
+ "grunt-legacy-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
+ "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
+ "dev": true,
+ "requires": {
+ "colors": "1.1.2",
+ "grunt-legacy-log-utils": "2.0.1",
+ "hooker": "0.2.3",
+ "lodash": "4.17.11"
+ }
+ },
+ "grunt-legacy-log-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
+ "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "lodash": "4.17.11"
+ }
+ },
+ "grunt-legacy-util": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
+ "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
+ "dev": true,
+ "requires": {
+ "async": "1.5.2",
+ "exit": "0.1.2",
+ "getobject": "0.1.0",
+ "hooker": "0.2.3",
+ "lodash": "4.17.11",
+ "underscore.string": "3.3.5",
+ "which": "1.3.1"
+ }
+ },
+ "gzip-size": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
+ "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=",
+ "dev": true,
+ "requires": {
+ "browserify-zlib": "0.1.4",
+ "concat-stream": "1.6.2"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "6.5.5",
+ "har-schema": "2.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
+ "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fast-deep-equal": "2.0.1",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.4.1",
+ "uri-js": "4.2.2"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true,
+ "optional": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "hasha": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
+ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-stream": "1.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "http://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.2.1",
+ "domhandler": "2.3.0",
+ "domutils": "1.5.1",
+ "entities": "1.0.0",
+ "readable-stream": "1.1.14"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": "1.4.0"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
+ "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.15.2"
+ }
+ },
+ "http2": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/http2/-/http2-3.3.7.tgz",
+ "integrity": "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ==",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "image-size": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+ "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+ "dev": true,
+ "optional": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "3.1.0",
+ "chalk": "2.4.1",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.2.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.11",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
+ }
+ },
+ "ipaddr.js": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
+ "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true,
+ "optional": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true,
+ "optional": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "jest-docblock": {
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz",
+ "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.10",
+ "esprima": "4.0.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "jshint": {
+ "version": "2.9.6",
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.6.tgz",
+ "integrity": "sha512-KO9SIAKTlJQOM4lE64GQUtGBRpTOuvbrRrSZw3AhUxMNG266nX9hK2cKA4SBhXOj0irJGyNyGSLT62HGOVDEOA==",
+ "dev": true,
+ "requires": {
+ "cli": "1.0.1",
+ "console-browserify": "1.1.0",
+ "exit": "0.1.2",
+ "htmlparser2": "3.8.3",
+ "lodash": "4.17.11",
+ "minimatch": "3.0.4",
+ "phantom": "4.0.12",
+ "phantomjs-prebuilt": "2.1.16",
+ "shelljs": "0.3.0",
+ "strip-json-comments": "1.0.4",
+ "unicode-5.2.0": "0.7.5"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "dev": true
+ }
+ }
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true,
+ "optional": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true,
+ "optional": true
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "4.1.15"
+ }
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true,
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "kew": {
+ "version": "0.7.0",
+ "resolved": "http://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
+ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
+ "dev": true,
+ "optional": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "4.1.15"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true
+ },
+ "less": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz",
+ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.7",
+ "graceful-fs": "4.1.15",
+ "image-size": "0.5.5",
+ "mime": "1.4.1",
+ "mkdirp": "0.5.1",
+ "promise": "7.3.1",
+ "request": "2.81.0",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "dev": true,
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.7",
+ "mime-types": "2.1.21"
+ }
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
+ "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "4.11.8",
+ "har-schema": "1.0.5"
+ }
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.15.2"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true,
+ "optional": true
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
+ "dev": true,
+ "optional": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
+ "dev": true,
+ "optional": true
+ },
+ "request": {
+ "version": "2.81.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.8.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.7",
+ "extend": "3.0.2",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "4.2.1",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.21",
+ "oauth-sign": "0.8.2",
+ "performance-now": "0.2.0",
+ "qs": "6.4.0",
+ "safe-buffer": "5.1.2",
+ "stringstream": "0.0.6",
+ "tough-cookie": "2.3.4",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.3.2"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.4",
+ "resolved": "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ }
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2"
+ }
+ },
+ "livereload-js": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
+ "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.15",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz",
+ "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "3.0.3"
+ }
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "maxmin": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
+ "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "figures": "1.7.0",
+ "gzip-size": "1.0.0",
+ "pretty-bytes": "1.0.4"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "object-assign": "4.1.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.37.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
+ "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.21",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
+ "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.37.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.11"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "mocha": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
+ "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
+ "dev": true,
+ "requires": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.11.0",
+ "debug": "3.1.0",
+ "diff": "3.3.1",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.3",
+ "he": "1.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "4.4.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "morgan": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
+ "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
+ "dev": true,
+ "requires": {
+ "basic-auth": "2.0.1",
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "on-finished": "2.3.0",
+ "on-headers": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "negotiator": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
+ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+ "dev": true
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1.1.1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.7.1",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.6.0",
+ "validate-npm-package-license": "3.0.4"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
+ "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.2.0"
+ }
+ },
+ "open": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
+ "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
+ "dev": true
+ },
+ "opn": {
+ "version": "4.0.2",
+ "resolved": "http://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
+ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "0.1.3",
+ "fast-levenshtein": "2.0.6",
+ "levn": "0.3.0",
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2",
+ "wordwrap": "1.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "pako": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.2"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.15",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
+ "dev": true
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true,
+ "optional": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true,
+ "optional": true
+ },
+ "phantom": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/phantom/-/phantom-4.0.12.tgz",
+ "integrity": "sha512-Tz82XhtPmwCk1FFPmecy7yRGZG2btpzY2KI9fcoPT7zT9det0CcMyfBFPp1S8DqzsnQnm8ZYEfdy528mwVtksA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "phantomjs-prebuilt": "2.1.16",
+ "split": "1.0.1",
+ "winston": "2.4.4"
+ }
+ },
+ "phantomjs-prebuilt": {
+ "version": "2.1.16",
+ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
+ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "es6-promise": "4.2.5",
+ "extract-zip": "1.6.7",
+ "fs-extra": "1.0.0",
+ "hasha": "2.2.0",
+ "kew": "0.7.0",
+ "progress": "1.1.8",
+ "request": "2.88.0",
+ "request-progress": "2.0.1",
+ "which": "1.3.1"
+ },
+ "dependencies": {
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "http://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "dev": true
+ },
+ "portscanner": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-1.2.0.tgz",
+ "integrity": "sha1-sUu9olfRTDEPqcwJaCrwLUCWGAI=",
+ "dev": true,
+ "requires": {
+ "async": "1.5.2"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.2.tgz",
+ "integrity": "sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==",
+ "dev": true
+ },
+ "pretty-bytes": {
+ "version": "1.0.4",
+ "resolved": "http://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
+ "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1",
+ "meow": "3.7.0"
+ }
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
+ "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==",
+ "dev": true
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asap": "2.0.6"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
+ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
+ "dev": true,
+ "requires": {
+ "forwarded": "0.1.2",
+ "ipaddr.js": "1.8.0"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true,
+ "optional": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.1.29",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
+ "dev": true,
+ "optional": true
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
+ "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.3",
+ "iconv-lite": "0.4.23",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
+ }
+ },
+ "regexpp": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
+ "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.7.0",
+ "aws4": "1.8.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.7",
+ "extend": "3.0.2",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.3",
+ "har-validator": "5.1.3",
+ "http-signature": "1.2.0",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.21",
+ "oauth-sign": "0.9.0",
+ "performance-now": "2.1.0",
+ "qs": "6.5.2",
+ "safe-buffer": "5.1.2",
+ "tough-cookie": "2.4.3",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.3.2"
+ }
+ },
+ "request-progress": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "throttleit": "1.0.0"
+ }
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "0.1.0",
+ "resolve-from": "1.0.1"
+ }
+ },
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.3"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "2.1.0"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safe-json-parse": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
+ "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=",
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "destroy": "1.0.4",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.6.3",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "2.3.0",
+ "range-parser": "1.2.0",
+ "statuses": "1.4.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "1.3.5",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "1.0.3",
+ "http-errors": "1.6.3",
+ "mime-types": "2.1.21",
+ "parseurl": "1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "parseurl": "1.3.2",
+ "send": "0.16.2"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.3.0",
+ "resolved": "http://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "http://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
+ "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "3.0.0",
+ "spdx-license-ids": "3.0.2"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "2.2.0",
+ "spdx-license-ids": "3.0.2"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz",
+ "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==",
+ "dev": true
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz",
+ "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1": "0.2.4",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.2",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.2",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "safer-buffer": "2.1.2",
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+ "dev": true,
+ "optional": true
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "dev": true
+ },
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
+ "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==",
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ }
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "chalk": "2.4.1",
+ "lodash": "4.17.11",
+ "slice-ansi": "1.0.0",
+ "string-width": "2.1.1"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "throttleit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+ "dev": true,
+ "optional": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "tiny-lr": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
+ "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
+ "dev": true,
+ "requires": {
+ "body": "5.1.0",
+ "debug": "3.2.6",
+ "faye-websocket": "0.10.0",
+ "livereload-js": "2.4.0",
+ "object-assign": "4.1.1",
+ "qs": "6.5.2"
+ }
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "psl": "1.1.29",
+ "punycode": "1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "1.1.2"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.16",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "2.1.21"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.6.4",
+ "resolved": "http://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz",
+ "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=",
+ "dev": true,
+ "requires": {
+ "async": "0.2.10",
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "http://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
+ "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "unicode-5.2.0": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/unicode-5.2.0/-/unicode-5.2.0-0.7.5.tgz",
+ "integrity": "sha512-KVGLW1Bri30x00yv4HNM8kBxoqFXr0Sbo55735nvrlsx4PYBZol3UtoWgO492fSwmsetzPEZzy73rbU8OGXJcA==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "2.1.1"
+ }
+ },
+ "uri-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
+ "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true,
+ "optional": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "3.0.2",
+ "spdx-expression-parse": "3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "1.3.0"
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+ "dev": true,
+ "requires": {
+ "http-parser-js": "0.5.0",
+ "websocket-extensions": "0.1.3"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "winston": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz",
+ "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async": "1.0.0",
+ "colors": "1.0.3",
+ "cycle": "1.0.3",
+ "eyes": "0.1.8",
+ "isstream": "0.1.2",
+ "stack-trace": "0.0.10"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npmjs.org/async/-/async-1.0.0.tgz",
+ "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=",
+ "dev": true,
+ "optional": true
+ },
+ "colors": {
+ "version": "1.0.3",
+ "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "0.5.1"
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ }
+ }
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fd-slicer": "1.0.1"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..c8d75b3
--- /dev/null
+++ b/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "fineui-start",
+ "version": "1.0.0",
+ "description": "fineui start",
+ "main": "index.js",
+ "dependencies": {},
+ "devDependencies": {
+ "chai": "^4.1.2",
+ "eslint": "^4.12.0",
+ "eslint-plugin-prettier": "^2.3.1",
+ "express": "^4.15.2",
+ "grunt": "^1.0.1",
+ "grunt-contrib-concat": "^1.0.1",
+ "grunt-contrib-connect": "^1.0.2",
+ "grunt-contrib-cssmin": "^1.0.1",
+ "grunt-contrib-jshint": "^1.0.0",
+ "grunt-contrib-less": "^1.4.1",
+ "grunt-contrib-uglify": "^1.0.1",
+ "grunt-contrib-watch": "^1.0.0",
+ "lodash": "^4.17.10",
+ "mocha": "^4.0.1",
+ "open": "0.0.5",
+ "prettier": "^1.8.2"
+ },
+ "scripts": {
+ "grunt": "grunt",
+ "uglify": "grunt min",
+ "eslint": "eslint src --fix"
+ },
+ "author": "",
+ "license": "MIT"
+}
diff --git a/src/common/app.less b/src/common/app.less
new file mode 100644
index 0000000..491bdf4
--- /dev/null
+++ b/src/common/app.less
@@ -0,0 +1,14 @@
+@import "../../fineui/src/less/resource/app";
+
+//定义自己的全局样式配置
+#body {
+}
+
+#wrapper {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ .overflow-hidden();
+}
\ No newline at end of file
diff --git a/src/common/background.less b/src/common/background.less
new file mode 100644
index 0000000..f2dfaa9
--- /dev/null
+++ b/src/common/background.less
@@ -0,0 +1,3 @@
+@import "../../fineui/src/less/resource/background";
+
+//定义自己的背景
\ No newline at end of file
diff --git a/src/common/font.less b/src/common/font.less
new file mode 100644
index 0000000..9459171
--- /dev/null
+++ b/src/common/font.less
@@ -0,0 +1,3 @@
+@import "../../fineui/src/less/resource/font";
+
+//定义自己的字体
diff --git a/src/common/icon.less b/src/common/icon.less
new file mode 100644
index 0000000..610fc21
--- /dev/null
+++ b/src/common/icon.less
@@ -0,0 +1,3 @@
+@import "../../fineui/src/less/resource/icon";
+
+//定义自己的icon
\ No newline at end of file
diff --git a/src/css/header/header.css b/src/css/header/header.css
new file mode 100644
index 0000000..78e5350
--- /dev/null
+++ b/src/css/header/header.css
@@ -0,0 +1,13 @@
+.my-todolist-header {
+ background-color: #3d4d66;
+}
+.my-todolist-header .my-todolist-title {
+ font-size: 22px;
+ color: #FFF;
+}
+.my-todolist-header .my-todolist-header-editor {
+ background-color: #FFF;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
diff --git a/src/css/index.css b/src/css/index.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/css/list/list.css b/src/css/list/list.css
new file mode 100644
index 0000000..88d1708
--- /dev/null
+++ b/src/css/list/list.css
@@ -0,0 +1,11 @@
+.my-todolist-list .my-todolist-list-text {
+ font-size: 16px;
+ font-weight: bold;
+}
+.my-todolist-list .my-todolist-list-count-container {
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ background-color: #3d4d66;
+ color: #ffffff;
+}
diff --git a/src/css/main.css b/src/css/main.css
new file mode 100644
index 0000000..6b396bc
--- /dev/null
+++ b/src/css/main.css
@@ -0,0 +1,1851 @@
+@font-face {
+ font-family: 'bi';
+ src: url('font/iconfont.eot');
+ src: url('font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('font/iconfont.woff') format('woff'), /* chrome、firefox */ url('font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ url('font/iconfont.svg#svgFontName') format('svg');
+ /* iOS 4.1- */
+}
+.b-font {
+ font-family: "bi";
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -webkit-text-stroke-width: 0.2px;
+ -moz-osx-font-smoothing: grayscale;
+}
+.close-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.close-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.close-h-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-h-font:hover .b-font:before,
+.close-h-font.hover .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-h-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.close-ha-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-ha-font:hover .b-font:before,
+.close-ha-font.hover .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.close-ha-font:active .b-font:before,
+.close-ha-font.active .b-font:before {
+ content: "\e6d0";
+ color: #3f8ce8;
+}
+.close-ha-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.circle-close-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.circle-close-font .b-font:before {
+ content: "\e6d5";
+ color: inherit;
+}
+.circle-close-font.disabled .b-font:before {
+ content: "\e6d5";
+ color: inherit;
+}
+.search-close-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.search-close-h-font .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.search-close-h-font:hover .b-font:before,
+.search-close-h-font.hover .b-font:before {
+ content: "\e6d0";
+ color: #ff4949;
+}
+.search-close-h-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: inherit;
+}
+.pre-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pre-page-h-font .b-font:before {
+ content: "\e70d";
+ color: inherit;
+}
+.pre-page-h-font:hover .b-font:before,
+.pre-page-h-font.hover .b-font:before {
+ content: "\e70d";
+ color: inherit;
+}
+.pre-page-h-font.disabled .b-font:before {
+ content: "\e70d";
+ color: inherit;
+}
+.next-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.next-page-h-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.next-page-h-font:hover .b-font:before,
+.next-page-h-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.next-page-h-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.search-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.search-font .b-font:before {
+ content: "\e6dc";
+ color: inherit;
+}
+.search-font.disabled .b-font:before {
+ content: "\e6dc";
+ color: inherit;
+}
+.date-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.date-font .b-font:before {
+ content: "\e733";
+ color: inherit;
+}
+.date-font.disabled .b-font:before {
+ content: "\e733";
+ color: inherit;
+}
+.date-change-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.date-change-h-font .b-font:before {
+ content: "\e72f";
+ color: inherit;
+}
+.date-change-h-font:hover .b-font:before,
+.date-change-h-font.hover .b-font:before {
+ content: "\e72f";
+ color: inherit;
+}
+.date-change-h-font.disabled .b-font:before {
+ content: "\e72f";
+ color: inherit;
+}
+.dot-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-font .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-font.disabled .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-h-font .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-h-font:hover .b-font:before,
+.dot-h-font.hover .b-font:before {
+ content: "\e762";
+ color: inherit;
+}
+.dot-h-font.disabled .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-ha-font .b-font:before {
+ content: "\e762";
+ color: #ffffff;
+}
+.dot-ha-font:hover .b-font:before,
+.dot-ha-font.hover .b-font:before {
+ content: "\e762";
+ color: #999999;
+}
+.dot-ha-font:active .b-font:before,
+.dot-ha-font.active .b-font:before {
+ content: "\e762";
+ color: #232e40;
+}
+.dot-ha-font.disabled .b-font:before {
+ content: "\e762";
+ color: #ffffff;
+}
+.dot-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.dot-e-font .b-font:before {
+ content: "\e762";
+ color: transparent;
+}
+.dot-e-font:hover .b-font:before,
+.dot-e-font.hover .b-font:before {
+ content: "\e762";
+ color: rgba(54, 133, 242, 0.06);
+}
+.dot-e-font:active .b-font:before {
+ content: "\e762";
+ color: #3685f2;
+}
+.dot-e-font.active .b-font:before {
+ content: "\e762";
+ color: #3685f2;
+}
+.dot-e-font.disabled .b-font:before {
+ content: "\e762";
+ color: transparent;
+}
+.pull-right-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-h-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-h-font:hover .b-font:before,
+.pull-right-h-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-h-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-ha-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-ha-font:hover .b-font:before,
+.pull-right-ha-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-ha-font:active .b-font:before,
+.pull-right-ha-font.active .b-font:before {
+ content: "\e70c";
+ color: #3f8ce8;
+}
+.pull-right-ha-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-right-e-font .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-e-font:hover .b-font:before,
+.pull-right-e-font.hover .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.pull-right-e-font:active .b-font:before {
+ content: "\e70c";
+ color: #3f8ce8;
+}
+.pull-right-e-font.active .b-font:before {
+ content: "\e70c";
+ color: #3f8ce8;
+}
+.pull-right-e-font.disabled .b-font:before {
+ content: "\e70c";
+ color: inherit;
+}
+.copy-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-font .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-h-font .b-font:before {
+ content: "\e6bd";
+ color: #232e40;
+}
+.copy-h-font:hover .b-font:before,
+.copy-h-font.hover .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-h-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: #232e40;
+}
+.copy-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-ha-font .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-ha-font:hover .b-font:before,
+.copy-ha-font.hover .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-ha-font:active .b-font:before,
+.copy-ha-font.active .b-font:before {
+ content: "\e6bd";
+ color: #3f8ce8;
+}
+.copy-ha-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.copy-e-font .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-e-font:hover .b-font:before,
+.copy-e-font.hover .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.copy-e-font:active .b-font:before {
+ content: "\e6bd";
+ color: #3f8ce8;
+}
+.copy-e-font.active .b-font:before {
+ content: "\e6bd";
+ color: #3f8ce8;
+}
+.copy-e-font.disabled .b-font:before {
+ content: "\e6bd";
+ color: inherit;
+}
+.check-mark-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-h-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-h-font:hover .b-font:before,
+.check-mark-h-font.hover .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-h-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-ha-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-ha-font:hover .b-font:before,
+.check-mark-ha-font.hover .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-ha-font:active .b-font:before,
+.check-mark-ha-font.active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.check-mark-ha-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-e-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-mark-e-font .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-e-font:hover .b-font:before,
+.check-mark-e-font.hover .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+.check-mark-e-font:active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.check-mark-e-font.active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.check-mark-e-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: inherit;
+}
+/** dashboard组件/控件 下拉列表图标字体 ~end~**/
+.row-pre-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.row-pre-page-h-font .b-font:before {
+ content: "\e6d9";
+ color: inherit;
+}
+.row-pre-page-h-font:hover .b-font:before,
+.row-pre-page-h-font.hover .b-font:before {
+ content: "\e6d9";
+ color: inherit;
+}
+.row-pre-page-h-font.disabled .b-font:before {
+ content: "\e6d9";
+ color: inherit;
+}
+.row-next-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.row-next-page-h-font .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.row-next-page-h-font:hover .b-font:before,
+.row-next-page-h-font.hover .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.row-next-page-h-font.disabled .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.column-pre-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.column-pre-page-h-font .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.column-pre-page-h-font:hover .b-font:before,
+.column-pre-page-h-font.hover .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.column-pre-page-h-font.disabled .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.column-next-page-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.column-next-page-h-font .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.column-next-page-h-font:hover .b-font:before,
+.column-next-page-h-font.hover .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.column-next-page-h-font.disabled .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.expander-right-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.expander-right-font .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.expander-right-font.disabled .b-font:before {
+ content: "\e6d8";
+ color: inherit;
+}
+.expander-down-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.expander-down-font .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.expander-down-font.disabled .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.solid-triangle-top-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.solid-triangle-top-font .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.solid-triangle-top-font:hover .b-font:before,
+.solid-triangle-top-font.hover .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.solid-triangle-top-font.disabled .b-font:before {
+ content: "\e6d6";
+ color: inherit;
+}
+.solid-triangle-bottom-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.solid-triangle-bottom-font .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.solid-triangle-bottom-font:hover .b-font:before,
+.solid-triangle-bottom-font.hover .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.solid-triangle-bottom-font.disabled .b-font:before {
+ content: "\e6d7";
+ color: inherit;
+}
+.trigger-triangle-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.trigger-triangle-font .b-font:before {
+ content: "\e64e";
+ color: inherit;
+}
+.trigger-triangle-font.disabled .b-font:before {
+ content: "\e64e";
+ color: inherit;
+}
+.pull-up-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-up-font .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.pull-up-font.disabled .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.pull-down-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-down-font .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-font.disabled .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-h-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-down-h-font .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.pull-down-h-font:hover .b-font:before,
+.pull-down-h-font.hover .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-h-font.disabled .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.pull-down-ha-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.pull-down-ha-font .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.pull-down-ha-font:hover .b-font:before,
+.pull-down-ha-font.hover .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.pull-down-ha-font:active .b-font:before,
+.pull-down-ha-font.active .b-font:before {
+ content: "\e70b";
+ color: #3f8ce8;
+}
+.pull-down-ha-font.disabled .b-font:before {
+ content: "\e70b";
+ color: #647185;
+}
+.check-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.check-font .b-font:before {
+ content: "\e6cf";
+ color: #3685f2;
+}
+.check-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: #3685f2;
+}
+.item-check-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.item-check-font .b-font:before {
+ content: "\e6cf";
+ color: #ffffff;
+}
+.item-check-font:hover .b-font:before,
+.item-check-font.hover .b-font:before {
+ content: "\e6cf";
+ color: #999999;
+}
+.item-check-font:active .b-font:before,
+.item-check-font.active .b-font:before {
+ content: "\e6cf";
+ color: #3f8ce8;
+}
+.item-check-font.disabled .b-font:before {
+ content: "\e6cf";
+ color: #ffffff;
+}
+.primary-key-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.primary-key-font .b-font:before {
+ content: "\e740";
+ color: inherit;
+}
+.primary-key-font:hover .b-font:before,
+.primary-key-font.hover .b-font:before {
+ content: "\e740";
+ color: inherit;
+}
+.primary-key-font.disabled .b-font:before {
+ content: "\e740";
+ color: inherit;
+}
+.drag-tag-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.drag-tag-font .b-font:before {
+ content: "\e6d0";
+ color: #faaa39;
+}
+.drag-tag-font.disabled .b-font:before {
+ content: "\e6d0";
+ color: #faaa39;
+}
+.less-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.less-font .b-font:before {
+ content: "\e75e";
+ color: inherit;
+}
+.less-font.disabled .b-font:before {
+ content: "\e75e";
+ color: inherit;
+}
+.less-equal-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.less-equal-font .b-font:before {
+ content: "\e761";
+ color: inherit;
+}
+.less-equal-font.disabled .b-font:before {
+ content: "\e761";
+ color: inherit;
+}
+.text-bold-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-bold-font .b-font:before {
+ content: "\e697";
+ color: inherit;
+}
+.text-bold-font.disabled .b-font:before {
+ content: "\e697";
+ color: inherit;
+}
+.text-italic-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-italic-font .b-font:before {
+ content: "\e69d";
+ color: inherit;
+}
+.text-italic-font.disabled .b-font:before {
+ content: "\e69d";
+ color: inherit;
+}
+.text-underline-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-underline-font .b-font:before {
+ content: "\e69c";
+ color: inherit;
+}
+.text-underline-font.disabled .b-font:before {
+ content: "\e69c";
+ color: inherit;
+}
+.text-color-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-color-font .b-font:before {
+ content: "\e698";
+ color: inherit;
+}
+.text-color-font.disabled .b-font:before {
+ content: "\e698";
+ color: inherit;
+}
+.text-background-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-background-font .b-font:before {
+ content: "\e699";
+ color: inherit;
+}
+.text-background-font.disabled .b-font:before {
+ content: "\e699";
+ color: inherit;
+}
+.text-color-underline-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-color-underline-font .b-font:before {
+ content: "\e69a";
+ color: inherit;
+}
+.text-color-underline-font.disabled .b-font:before {
+ content: "\e69a";
+ color: inherit;
+}
+.text-align-left-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-align-left-font .b-font:before {
+ content: "\e6ca";
+ color: inherit;
+}
+.text-align-left-font.disabled .b-font:before {
+ content: "\e6ca";
+ color: inherit;
+}
+.text-align-center-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-align-center-font .b-font:before {
+ content: "\e6bf";
+ color: inherit;
+}
+.text-align-center-font.disabled .b-font:before {
+ content: "\e6bf";
+ color: inherit;
+}
+.text-align-right-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-align-right-font .b-font:before {
+ content: "\e6c8";
+ color: inherit;
+}
+.text-align-right-font.disabled .b-font:before {
+ content: "\e6c8";
+ color: inherit;
+}
+.toast-error-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-error-font .b-font:before {
+ content: "\e757";
+ color: inherit;
+}
+.toast-error-font.disabled .b-font:before {
+ content: "\e757";
+ color: inherit;
+}
+.toast-success-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-success-font .b-font:before {
+ content: "\e756";
+ color: inherit;
+}
+.toast-success-font.disabled .b-font:before {
+ content: "\e756";
+ color: inherit;
+}
+.toast-warning-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-warning-font .b-font:before {
+ content: "\e755";
+ color: inherit;
+}
+.toast-warning-font.disabled .b-font:before {
+ content: "\e755";
+ color: inherit;
+}
+.toast-message-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.toast-message-font .b-font:before {
+ content: "\e74b";
+ color: inherit;
+}
+.toast-message-font.disabled .b-font:before {
+ content: "\e74b";
+ color: inherit;
+}
+.text-add-tip-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.text-add-tip-font .b-font:before {
+ content: "\e6dd";
+ color: #13cd66;
+}
+.text-add-tip-font.disabled .b-font:before {
+ content: "\e6dd";
+ color: #13cd66;
+}
+.add-up-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.add-up-font .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.add-up-font.disabled .b-font:before {
+ content: "\e70a";
+ color: inherit;
+}
+.minus-down-font .b-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');
+}
+.minus-down-font .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.minus-down-font.disabled .b-font:before {
+ content: "\e70b";
+ color: inherit;
+}
+.tree-collapse-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_1.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_1.png');
+ _background: none;
+}
+.tree-collapse-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_2.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_2.png');
+ _background: none;
+}
+.tree-collapse-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_3.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_3.png');
+ _background: none;
+}
+.tree-collapse-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_collapse_4.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-collapse-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_4.png');
+ _background: none;
+}
+.tree-expand-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_1.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_1.png');
+ _background: none;
+}
+.tree-expand-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_2.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_2.png');
+ _background: none;
+}
+.tree-expand-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_3.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_3.png');
+ _background: none;
+}
+.tree-expand-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_expand_4.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-expand-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_4.png');
+ _background: none;
+}
+.tree-vertical-line-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_vertical_line_2.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-vertical-line-type2 .x-icon.hack {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.tree-vertical-line-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_vertical_line_3.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-vertical-line-type3 .x-icon.hack {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.tree-vertical-line-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/tree_vertical_line_4.png');
+ background-size: contain;
+ _background: none;
+}
+.tree-vertical-line-type4 .x-icon.hack {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_1.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_1.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_2.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_2.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_3.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_3.png');
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_collapse_4.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-collapse-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_4.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type1 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_1.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type1 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_1.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_2.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type2 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_2.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_3.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type3 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_3.png');
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_expand_4.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-expand-icon-type4 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_4.png');
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type2 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_vertical_line_2.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type2 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type3 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_vertical_line_3.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type3 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type4 .x-icon {
+ display: block;
+ background: url('images/2x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/dark/tree_vertical_line_4.png');
+ background-size: contain;
+ _background: none;
+}
+.bi-theme-dark .tree-vertical-line-type4 .x-icon.hack {
+ background: url('images/1x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_4.png');
+ _background: none;
+}
+.check-box-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon .x-icon.hack {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.check-box-icon:hover .x-icon,
+.check-box-icon.hover .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon:hover .x-icon.hack,
+.check-box-icon.hover .x-icon.hack {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.check-box-icon:active .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon:active .x-icon.hack {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.check-box-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_active.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon.active .x-icon.hack {
+ background: url('images/1x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_active.png');
+ _background: none;
+}
+.check-box-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/check_box_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_disable.png');
+ _background: none;
+}
+.check-box-icon.disabled.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/check_box_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_disable2.png');
+ background-size: contain;
+ _background: none;
+}
+.check-box-icon.disabled.active .x-icon.hack {
+ background: url('images/1x/icon/check_box_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_disable2.png');
+ _background: none;
+}
+.radio-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon .x-icon.hack {
+ background: url('images/1x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_normal.png');
+ _background: none;
+}
+.radio-icon:hover .x-icon,
+.radio-icon.hover .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon:hover .x-icon.hack,
+.radio-icon.hover .x-icon.hack {
+ background: url('images/1x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_normal.png');
+ _background: none;
+}
+.radio-icon:active .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon:active .x-icon.hack {
+ background: url('images/1x/icon/radio_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_normal.png');
+ _background: none;
+}
+.radio-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_active.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon.active .x-icon.hack {
+ background: url('images/1x/icon/radio_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_active.png');
+ _background: none;
+}
+.radio-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/radio_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_disable.png');
+ _background: none;
+}
+.radio-icon.disabled.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/radio_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/radio_disable2.png');
+ background-size: contain;
+ _background: none;
+}
+.radio-icon.disabled.active .x-icon.hack {
+ background: url('images/1x/icon/radio_disable2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/radio_disable2.png');
+ _background: none;
+}
+.check-half-select-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.check-half-select-icon .x-icon.hack {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.slider-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/slider_normal_small.png');
+ background-size: contain;
+ _background: none;
+}
+.slider-icon .x-icon.hack {
+ background: url('images/1x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/slider_normal_small.png');
+ _background: none;
+}
+.slider-icon:hover .x-icon,
+.slider-icon.hover .x-icon {
+ display: block;
+ background: url('images/2x/icon/slider_active_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/slider_active_small.png');
+ background-size: contain;
+ _background: none;
+}
+.slider-icon:hover .x-icon.hack,
+.slider-icon.hover .x-icon.hack {
+ background: url('images/1x/icon/slider_active_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/slider_active_small.png');
+ _background: none;
+}
+.slider-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/slider_normal_small.png');
+ background-size: contain;
+ _background: none;
+}
+.slider-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/slider_normal_small.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/slider_normal_small.png');
+ _background: none;
+}
+.auto-color-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/auto_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/auto_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-icon .x-icon.hack {
+ background: url('images/1x/icon/auto_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/auto_normal.png');
+ _background: none;
+}
+.auto-color-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/auto_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/auto_select.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-icon.active .x-icon.hack {
+ background: url('images/1x/icon/auto_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/auto_select.png');
+ _background: none;
+}
+.auto-color-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/auto_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/auto_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/auto_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/auto_disable.png');
+ _background: none;
+}
+.trans-color-icon .x-icon {
+ display: block;
+ background: url('images/2x/icon/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/trans_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-icon .x-icon.hack {
+ background: url('images/1x/icon/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/trans_normal.png');
+ _background: none;
+}
+.trans-color-icon.active .x-icon {
+ display: block;
+ background: url('images/2x/icon/trans_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/trans_select.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-icon.active .x-icon.hack {
+ background: url('images/1x/icon/trans_select.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/trans_select.png');
+ _background: none;
+}
+.trans-color-icon.disabled .x-icon {
+ display: block;
+ background: url('images/2x/icon/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/trans_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-icon.disabled .x-icon.hack {
+ background: url('images/1x/icon/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/trans_disable.png');
+ _background: none;
+}
+.farbtastic .wheel {
+ background: url('images/1x/background/wheel.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/wheel.png');
+ _background: none;
+}
+.farbtastic .overlay {
+ background: url('images/1x/background/mask.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/mask.png');
+ _background: none;
+}
+.farbtastic .marker {
+ background: url('images/1x/background/marker.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/marker.png');
+ _background: none;
+}
+.bi-display-tree .ztree li span.button.switch.center_open {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-display-tree .ztree li span.button.switch.roots_open {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-display-tree .ztree li span.button.switch.bottom_open {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.ztree li ul.line {
+ background: url('images/1x/icon/tree_vertical_line_1.png') repeat-y 1px 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_1.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li ul.line {
+ background: url('images/1x/icon/dark/tree_vertical_line_1.png') repeat-y 1px 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_1.png');
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_full {
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_full_focus {
+ background: url('images/2x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_part {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_false_part_focus {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_full {
+ background: url('images/2x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_active.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_full_focus {
+ background: url('images/2x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/check_box_active.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_part {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree li span.button.chk.checkbox_true_part_focus {
+ background: url('images/2x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/half_selected.png');
+ background-size: contain;
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_full {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_full_focus {
+ background: url('images/1x/icon/check_box_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_normal.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_part {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_false_part_focus {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_full {
+ background: url('images/1x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_active.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_full_focus {
+ background: url('images/1x/icon/check_box_active.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/check_box_active.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_part {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree.hack li span.button.chk.checkbox_true_part_focus {
+ background: url('images/1x/icon/half_selected.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/half_selected.png');
+ _background: none;
+}
+.ztree li span.button.root_open {
+ background: url('images/1x/icon/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_1.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.root_open {
+ background: url('images/1x/icon/dark/tree_expand_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_1.png');
+ _background: none;
+}
+.ztree li span.button.root_close {
+ background: url('images/1x/icon/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_1.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.root_close {
+ background: url('images/1x/icon/dark/tree_collapse_1.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_1.png');
+ _background: none;
+}
+.ztree li span.button.roots_open {
+ background: url('images/1x/icon/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_2.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.roots_open {
+ background: url('images/1x/icon/dark/tree_expand_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_2.png');
+ _background: none;
+}
+.ztree li span.button.roots_close {
+ background: url('images/1x/icon/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_2.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.roots_close {
+ background: url('images/1x/icon/dark/tree_collapse_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_2.png');
+ _background: none;
+}
+.ztree li span.button.center_open {
+ background: url('images/1x/icon/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_3.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.center_open {
+ background: url('images/1x/icon/dark/tree_expand_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_3.png');
+ _background: none;
+}
+.ztree li span.button.center_close {
+ background: url('images/1x/icon/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_3.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.center_close {
+ background: url('images/1x/icon/dark/tree_collapse_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_3.png');
+ _background: none;
+}
+.ztree li span.button.bottom_open {
+ background: url('images/1x/icon/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_expand_4.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.bottom_open {
+ background: url('images/1x/icon/dark/tree_expand_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_expand_4.png');
+ _background: none;
+}
+.ztree li span.button.bottom_close {
+ background: url('images/1x/icon/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_collapse_4.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.bottom_close {
+ background: url('images/1x/icon/dark/tree_collapse_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_collapse_4.png');
+ _background: none;
+}
+.ztree li span.button.roots_docu {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.roots_docu {
+ background: url('images/1x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_2.png');
+ _background: none;
+}
+.ztree li span.button.center_docu {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.center_docu {
+ background: url('images/1x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_3.png');
+ _background: none;
+}
+.ztree li span.button.bottom_docu {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.bi-theme-dark .ztree li span.button.bottom_docu {
+ background: url('images/1x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_4.png');
+ _background: none;
+}
+.ztree li span.button.ico_loading {
+ background: url('images/1x/icon/loading.gif') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/loading.gif');
+ _background: none;
+}
+.base-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_1.png') repeat-y 0 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_1.png');
+ _background: none;
+}
+.bi-theme-dark .base-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_1.png') repeat-y 0 0;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_1.png');
+ _background: none;
+}
+.first-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_2.png');
+ _background: none;
+}
+.bi-theme-dark .first-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_2.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_2.png');
+ _background: none;
+}
+.mid-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_3.png');
+ _background: none;
+}
+.bi-theme-dark .mid-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_3.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_3.png');
+ _background: none;
+}
+.last-line-conn-background {
+ background: url('images/1x/icon/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/tree_vertical_line_4.png');
+ _background: none;
+}
+.bi-theme-dark .last-line-conn-background {
+ background: url('images/1x/icon/dark/tree_vertical_line_4.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/icon/dark/tree_vertical_line_4.png');
+ _background: none;
+}
+.loading-background {
+ background: url('images/2x/icon/loading.gif') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/icon/loading.gif');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-background {
+ background: url('images/2x/background/auto_color.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/auto_color.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-normal-background {
+ background: url('images/2x/background/auto_color_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/auto_color_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-normal-disabled-background {
+ background: url('images/2x/background/auto_color_normal_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/auto_color_normal_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-background {
+ background: url('images/2x/background/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/trans_normal.png');
+ background-size: contain;
+ _background: none;
+}
+.trans-color-disabled-background {
+ background: url('images/2x/background/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/2x/background/trans_disable.png');
+ background-size: contain;
+ _background: none;
+}
+.auto-color-background.hack {
+ background: url('images/1x/background/auto_color.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/auto_color.png');
+ _background: none;
+}
+.auto-color-normal-background.hack {
+ background: url('images/1x/background/auto_color_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/auto_color_normal.png');
+ _background: none;
+}
+.auto-color-normal-disabled-background.hack {
+ background: url('images/1x/background/auto_color_normal_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/auto_color_normal_disable.png');
+ _background: none;
+}
+.trans-color-background.hack {
+ background: url('images/1x/background/trans_normal.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/trans_normal.png');
+ _background: none;
+}
+.trans-color-disabled-background.hack {
+ background: url('images/1x/background/trans_disable.png') no-repeat center center;
+ _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/1x/background/trans_disable.png');
+ _background: none;
+}
+html {
+ height: 100%;
+ overflow: hidden;
+}
+body {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ top: 0;
+ left: 0;
+ background-repeat: repeat;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+ color: #3d4d66;
+ font: normal 12px "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Heiti;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ text-decoration: none;
+ -kthml-user-focus: normal;
+ -moz-user-focus: normal;
+ -moz-outline: 0 none;
+ outline: 0 none;
+}
+div::-webkit-scrollbar,
+textarea::-webkit-scrollbar {
+ -webkit-appearance: none;
+ background-color: rgba(135, 141, 159, 0.05);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#0d878d9f,endColorstr=#0d878d9f);
+ width: 6px;
+ height: 6px;
+}
+div::-webkit-scrollbar-thumb,
+textarea::-webkit-scrollbar-thumb {
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ background-color: rgba(135, 141, 159, 0.3);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d878d9f,endColorstr=#4d878d9f);
+}
+div::-webkit-scrollbar-thumb:hover,
+textarea::-webkit-scrollbar-thumb:hover {
+ background-color: rgba(135, 141, 159, 0.7);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#b3878d9f,endColorstr=#b3878d9f);
+}
+.bi-theme-dark div::-webkit-scrollbar,
+.bi-theme-dark textarea::-webkit-scrollbar {
+ -webkit-appearance: none;
+ background-color: rgba(208, 212, 218, 0.05);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#0dd0d4da,endColorstr=#0dd0d4da);
+ width: 6px;
+ height: 6px;
+}
+.bi-theme-dark div::-webkit-scrollbar-thumb,
+.bi-theme-dark textarea::-webkit-scrollbar-thumb {
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ background-color: rgba(208, 212, 218, 0.3);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4dd0d4da,endColorstr=#4dd0d4da);
+}
+.bi-theme-dark div::-webkit-scrollbar-thumb:hover,
+.bi-theme-dark textarea::-webkit-scrollbar-thumb:hover {
+ background-color: rgba(208, 212, 218, 0.7);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#b3d0d4da,endColorstr=#b3d0d4da);
+}
+#wrapper {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ overflow: hidden;
+ overflow-x: hidden;
+ overflow-y: hidden;
+}
diff --git a/src/css/nav/nav.css b/src/css/nav/nav.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/index.js b/src/index.js
new file mode 100644
index 0000000..efd2279
--- /dev/null
+++ b/src/index.js
@@ -0,0 +1,6 @@
+!(function () {
+ BI.createWidget({
+ type: "my.todolist",
+ element: "#wrapper"
+ });
+})();
diff --git a/src/index.less b/src/index.less
new file mode 100644
index 0000000..abfac0b
--- /dev/null
+++ b/src/index.less
@@ -0,0 +1,5 @@
+@import "../fineui/src/less/index";
+
+@fontUrl: 'font/'; //字体存放路径
+@imageUrl: 'images/1x/'; //图片的基本地址
+@image2xUrl: 'images/2x/'; //2x图片的基本地址
\ No newline at end of file
diff --git a/src/modules/header/header.js b/src/modules/header/header.js
new file mode 100644
index 0000000..98b2973
--- /dev/null
+++ b/src/modules/header/header.js
@@ -0,0 +1,61 @@
+!(function () {
+ var ToDoListHeader = BI.inherit(BI.Widget, {
+
+ props: {
+ baseCls: "my-todolist-header"
+ },
+
+ render: function () {
+ var self = this, o = this.options;
+ return {
+ type: "bi.horizontal_auto",
+ items: [
+ {
+ el: {
+ type: "bi.left_right_vertical_adapt",
+ width: 600,
+ height: o.height,
+ items: {
+ left: [
+ {
+ el: {
+ type: "bi.label",
+ cls: "my-todolist-title",
+ text: "FineUI ToDoList",
+ height: o.height
+ }
+ }
+ ],
+ right: [
+ {
+ el: {
+ type: "bi.editor",
+ allowBlank: true,
+ cls: "my-todolist-header-editor",
+ watermark: "添加ToDo",
+ width: 300,
+ height: 24,
+ listeners: [
+ {
+ eventName: "EVENT_ENTER",
+ action: function () {
+ self.fireEvent(ToDoListHeader.EVENT_ADD, this.getValue());
+ this.setValue("");
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ };
+ }
+ });
+
+ ToDoListHeader.EVENT_ADD = "EVENT_ADD";
+
+ BI.shortcut("my.todolist.header", ToDoListHeader);
+})();
\ No newline at end of file
diff --git a/src/modules/header/header.less b/src/modules/header/header.less
new file mode 100644
index 0000000..2b1694e
--- /dev/null
+++ b/src/modules/header/header.less
@@ -0,0 +1,16 @@
+@import "../../index.less";
+
+.my-todolist-header {
+ background-color: #3d4d66;
+
+ .my-todolist-title {
+ font-size: @font-size-22;
+ color: #FFF;
+ }
+
+ .my-todolist-header-editor {
+ background-color: #FFF;
+ .border-radius(5px);
+ .box-shadow(0 1px 0 rgba(255, 255, 255, 0.24), 0 1px 6px rgba(0, 0, 0, 0.45) inset)
+ }
+}
\ No newline at end of file
diff --git a/src/modules/list/list.js b/src/modules/list/list.js
new file mode 100644
index 0000000..42db177
--- /dev/null
+++ b/src/modules/list/list.js
@@ -0,0 +1,83 @@
+!(function () {
+ var List = BI.inherit(BI.Widget, {
+
+ props: {
+ baseCls: "my-todolist-list",
+ text: "正在进行"
+ },
+
+ render: function () {
+ var self = this, o = this.options;
+ return {
+ type: "bi.vertical",
+ items: [
+ {
+ el: {
+ type: "bi.vertical_adapt",
+ height: 40,
+ items: [
+ {
+ type: "bi.label",
+ cls: "my-todolist-list-text",
+ textAlign: "left",
+ text: o.text,
+ width: 580
+ }, {
+ type: "bi.center_adapt",
+ cls: "my-todolist-list-count-container",
+ width: 20,
+ height: 20,
+ items: [
+ {
+ el: {
+ type: "bi.label",
+ ref: function (_ref) {
+ self.count = _ref;
+ },
+ text: "0"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }, {
+ type: "bi.button_group",
+ ref: function (_ref) {
+ self.list = _ref;
+ },
+ layouts: [
+ {
+ type: "bi.vertical",
+ vgap: 10
+ }
+ ],
+ items: o.items,
+ listeners: [
+ {
+ eventName: "EVENT_CHANGE",
+ action: function (v) {
+ self.fireEvent("EVENT_CHANGE", v);
+ }
+ }
+ ]
+ }
+ ]
+ };
+ },
+
+ _createItems: function (items) {
+ return BI.createItems(items, this.options.el);
+ },
+
+ _setCount: function (count) {
+ this.count.setText(count);
+ },
+
+ populate: function (items) {
+ this.list.populate(this._createItems(items));
+ this._setCount(items.length);
+ }
+ });
+ BI.shortcut("my.todolist.list", List);
+})();
\ No newline at end of file
diff --git a/src/modules/list/list.less b/src/modules/list/list.less
new file mode 100644
index 0000000..b2819f8
--- /dev/null
+++ b/src/modules/list/list.less
@@ -0,0 +1,14 @@
+@import "../../index.less";
+
+.my-todolist-list {
+ .my-todolist-list-text {
+ font-size: @font-size-16;
+ font-weight: bold;
+ }
+
+ .my-todolist-list-count-container {
+ .border-radius(10px);
+ background-color: #3d4d66;
+ color: @font-color-white;
+ }
+}
\ No newline at end of file
diff --git a/src/modules/main.js b/src/modules/main.js
new file mode 100644
index 0000000..1058218
--- /dev/null
+++ b/src/modules/main.js
@@ -0,0 +1,78 @@
+!(function () {
+ var ToDoList = BI.inherit(BI.Widget, {
+
+ props: {
+ baseCls: "fine-to-do-list"
+ },
+
+ _store: function () {
+ return BI.Models.getModel("my.model.todolist");
+ },
+
+ watch: {
+ todoList: function (items) {
+ this.todolist.populate(items);
+ },
+ doneList: function (items) {
+ this.donelist.populate(items);
+ }
+ },
+
+ render: function () {
+ var self = this, o = this.options;
+ return {
+ type: "bi.vtape",
+ items: [
+ {
+ el: {
+ type: "my.todolist.header",
+ listeners: [
+ {
+ eventName: "EVENT_ADD",
+ action: function (v) {
+ self.store.addToDo(v);
+ }
+ }
+ ],
+ height: 40
+ },
+ height: 40
+ }, {
+ type: "bi.horizontal_auto",
+ cls: "bi-background",
+ items: [
+ {
+ el: {
+ type: "my.todolist.list",
+ ref: function (_ref) {
+ self.todolist = _ref;
+ },
+ text: "正在进行",
+ listeners: [
+ {
+ eventName: "EVENT_CHANGE",
+ action: function (v) {
+ self.store.finish(v);
+ }
+ }
+ ],
+ width: 600
+ }
+ }, {
+ el: {
+ type: "my.todolist.list",
+ text: "已经完成",
+ ref: function (_ref) {
+ self.donelist = _ref;
+ },
+ width: 600
+ }
+ }
+ ]
+ }
+ ]
+ };
+ }
+ });
+ BI.shortcut("my.todolist", ToDoList);
+})();
diff --git a/src/modules/main.model.js b/src/modules/main.model.js
new file mode 100644
index 0000000..2d43a3d
--- /dev/null
+++ b/src/modules/main.model.js
@@ -0,0 +1,56 @@
+!(function () {
+
+ var ToDoListModel = BI.inherit(Fix.Model, {
+
+ state: function () {
+ return {
+ list: []
+ };
+ },
+ watch: {},
+
+ computed: {
+ todoList: function () {
+ var items = BI.filter(this.model.list, function (index, item) {
+ return !item.done;
+ });
+ return BI.map(items, function (index, item) {
+ return BI.extend({
+ type: "bi.multi_select_item"
+ }, item);
+ });
+ },
+ doneList: function () {
+ var items = BI.filter(this.model.list, function (index, item) {
+ return item.done;
+ });
+ return BI.map(items, function (index, item) {
+ return BI.extend({
+ type: "bi.multi_select_item",
+ selected: true,
+ disabled: true
+ }, item);
+ });
+ }
+ },
+
+ actions: {
+ addToDo: function (v) {
+ this.model.list.push({
+ value: BI.UUID(),
+ text: v,
+ done: false
+ });
+ },
+
+ finish: function (v) {
+ BI.some(this.model.list, function (index, item) {
+ if (item.value === v) {
+ item.done = true;
+ }
+ });
+ }
+ }
+ });
+ BI.model("my.model.todolist", ToDoListModel);
+})();