From d3ec5be295a2085267cf8d1d211608adfcad7196 Mon Sep 17 00:00:00 2001 From: alan Date: Fri, 16 Aug 2019 14:23:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintignore | 10 +- .eslintrc.js => .eslintrc | 321 +- .gitattributes | 7 - .gitignore | 13 +- README.md | 295 +- assets/font/iconfont.eot | Bin 0 -> 8908 bytes assets/font/iconfont.svg | 119 + assets/font/iconfont.ttf | Bin 0 -> 8740 bytes assets/font/iconfont.woff | Bin 0 -> 4720 bytes babel.config.js | 29 + config/fineui.prepare.js | 6 + config/fineui.setup.js | 48 + config/jest.environment.js | 34 + i18n/zh_cn.properties | 240 +- index.html | 44 + jest.config.js | 26 + lib/transform-i18n/transform-i18n.js | 15 + lib/upgrade/index.js | 7 + package.json | 103 +- private/constants.ts | 373 - private/i18n.ts | 345 +- redis.js | 180 + src/app/app.constant.ts | 4 - src/app/app.model.ts | 39 - src/app/app.ts | 55 - src/app/connection/left/item/left_item.less | 4 - src/app/connection/left/item/left_item.ts | 77 - .../connection/left/item/left_item_delete.ts | 43 - .../connection/left/item/left_item_icon.ts | 26 - src/app/connection/left/left.ts | 39 - src/app/connection/link_set.mixin.ts | 50 - src/app/connection/link_set.model.ts | 154 - src/app/connection/link_set.service.ts | 26 - src/app/connection/link_set.ts | 58 - .../connection/more/item/more_link_item.less | 6 - .../connection/more/item/more_link_item.ts | 68 - .../more/item/more_link_litem.model.ts | 6 - src/app/connection/more/more_link.model.ts | 16 - src/app/connection/more/more_link.service.ts | 50 - src/app/connection/more/more_link.ts | 52 - src/app/connection/right/nothing.ts | 30 - src/app/connection/right/right.ts | 33 - src/app/connection/right/right.typing.d.ts | 25 - .../right/right_detail/right_detail.model.ts | 6 - .../right/right_detail/right_detail.ts | 74 - .../right/right_edit/right_edit.model.ts | 20 - .../right/right_edit/right_edit.service.ts | 24 - .../connection/right/right_edit/right_edit.ts | 373 - .../right/right_edit/right_edit_jndi.ts | 226 - .../right/right_edit/right_edit_mysql.ts | 325 - .../right/right_show/right_show.model.ts | 20 - .../connection/right/right_show/right_show.ts | 72 - .../right/right_show/right_show_jndi.ts | 203 - .../right/right_title/right_title.model.ts | 20 - .../right/right_title/right_title.ts | 66 - src/app/connection/select/select.service.ts | 23 - src/app/connection/select/select.ts | 77 - src/app/status/left/left.model.ts | 17 - src/app/status/left/left.ts | 44 - src/app/status/left/left_item.ts | 39 - src/app/status/link_status.model.ts | 9 - src/app/status/link_status.ts | 63 - src/app/status/right/right.model.ts | 14 - src/app/status/right/right.ts | 68 - src/app/status/right/right.typings.d.ts | 6 - src/app/status/right/right_card.ts | 91 - src/app/title/title.less | 8 - src/app/title/title.model.ts | 11 - src/app/title/title.ts | 61 - src/demo/plugin.redis.edit.ts | 91 - src/demo/plugin.redis.preview.ts | 68 - src/demo/plugin.tedis.pool.ts | 53 - src/demo/style.scss | 3 - src/i18n.ts | 3 + src/img/ads.jpg | Bin 12781 -> 0 bytes src/img/amazon-redshift.jpg | Bin 18220 -> 0 bytes src/img/apache-impala.jpg | Bin 16763 -> 0 bytes src/img/apache-kylin.jpg | Bin 24985 -> 0 bytes src/img/apache-phoenix.jpg | Bin 14712 -> 0 bytes src/img/database-selected.png | Bin 1175 -> 0 bytes src/img/derby.jpg | Bin 13874 -> 0 bytes src/img/error.png | Bin 8649 -> 0 bytes src/img/gbase-8a.jpg | Bin 20884 -> 0 bytes src/img/gbase-8s.jpg | Bin 20769 -> 0 bytes src/img/gbase-8t.jpg | Bin 19715 -> 0 bytes src/img/h2.jpg | Bin 14326 -> 0 bytes src/img/hadoop-hive.jpg | Bin 18889 -> 0 bytes src/img/hbase.jpg | Bin 15541 -> 0 bytes src/img/hp-vertica.jpg | Bin 15843 -> 0 bytes src/img/hsql.jpg | Bin 16323 -> 0 bytes src/img/hw-dws.jpg | Bin 14782 -> 0 bytes src/img/hw-elk.jpg | Bin 17861 -> 0 bytes src/img/hw-fusioninsight-hd.jpg | Bin 16635 -> 0 bytes src/img/hw-libr-a.jpg | Bin 13697 -> 0 bytes src/img/ibm-db2.jpg | Bin 13148 -> 0 bytes src/img/icon_close9x9_normal.png | Bin 260 -> 0 bytes src/img/informix.jpg | Bin 13059 -> 0 bytes src/img/kingbase.jpg | Bin 28815 -> 0 bytes src/img/loading.gif | Bin 28283 -> 0 bytes src/img/mysql.jpg | Bin 19002 -> 0 bytes src/img/oracle.jpg | Bin 14972 -> 0 bytes src/img/pivotal-greenplum-database.jpg | Bin 15970 -> 0 bytes src/img/postgresql.jpg | Bin 19071 -> 0 bytes src/img/presto.jpg | Bin 16999 -> 0 bytes src/img/resources.png | Bin 15077 -> 0 bytes src/img/sap-hana.jpg | Bin 21809 -> 0 bytes src/img/sap-sybase.jpg | Bin 16657 -> 0 bytes src/img/spark.jpg | Bin 16450 -> 0 bytes src/img/sql-server.jpeg | Bin 16349 -> 0 bytes src/img/sql-server.jpg | Bin 16349 -> 0 bytes src/img/sqlite.jpg | Bin 14750 -> 0 bytes src/img/success.png | Bin 9842 -> 0 bytes src/img/teradata.jpg | Bin 18478 -> 0 bytes src/img/transwarp-inceptor.jpg | Bin 16087 -> 0 bytes src/img/warning.png | Bin 6085 -> 0 bytes src/index.html | 16 - src/index.ts | 14 +- src/less/background.less | 9 + src/less/font.less | 8 + src/less/index.less | 9 +- src/less/lib/background.less | 11 +- src/less/lib/color.less | 2 - src/less/lib/font.less | 2 + src/less/resource/background.less | 23 - src/less/resource/font.less | 7 - src/less/var.less | 8 +- src/lib/fineui.min.css | 1 - src/lib/fineui.min.js | 41 - src/modules/app.model.ts | 39 + src/modules/app.service.ts | 23 + src/modules/app.ts | 78 + src/modules/app.typings.d.ts | 12 + .../components/collapse/collapse.model.ts | 17 + src/modules/components/collapse/collapse.ts | 65 + .../test_status/test_status.model.ts | 17 + .../components/test_status/test_status.ts | 150 + .../test_status/tip_icon/tip_fail.model.ts | 18 + .../test_status/tip_icon/tip_fail.ts | 92 + .../test_status/tip_icon/tip_icon.ts | 38 + src/modules/constants/constant.ts | 466 + src/modules/constants/env.ts | 13 + src/modules/constants/plugin.ts | 3 + src/modules/core/core.ts | 43 + src/modules/crud/api.ts | 42 + src/modules/crud/apiFactory.ts | 14 + src/modules/crud/crud.service.ts | 113 + src/modules/crud/crud.typings.d.ts | 206 + src/modules/crud/decision.api.ts | 50 + src/modules/crud/design.api.ts | 47 + .../components/form_item/form_item.ts | 30 + .../pages/connection/connection.model.ts | 28 + src/modules/pages/connection/connection.ts | 184 + .../connection_jdbc/connection_jdbc.model.ts | 11 + .../connection_jdbc/connection_jdbc.ts | 149 + .../connection_jndi/connection_jndi.model.ts | 11 + .../connection_jndi/connection_jndi.ts | 179 + .../connection_plugin.model.ts | 11 + .../connection_plugin/connection_plugin.ts | 18 + src/modules/pages/connection/list/list.less | 1 + .../pages/connection/list/list.model.ts | 28 + .../pages/connection/list/list.service.ts | 37 + src/modules/pages/connection/list/list.ts | 79 + .../connection/list/list_item/list_item.less | 4 + .../list/list_item/list_item.model.ts | 42 + .../connection/list/list_item/list_item.ts | 165 + .../connection_pool/connection_pool.model.ts | 29 + .../pages/connection_pool/connection_pool.ts | 96 + .../list_item/list_item.model.ts | 16 + .../connection_pool/list_item/list_item.ts | 32 + .../pages/connection_pool/pool/pool.less} | 5 +- .../pages/connection_pool/pool/pool.model.ts | 28 + .../pages/connection_pool/pool/pool.ts | 133 + src/modules/pages/database/database.model.ts | 40 + src/modules/pages/database/database.ts | 248 + .../pages/database/database.typings.d.ts | 12 + .../database/database_type/database_type.less | 14 + .../database_type/database_type.model.ts | 18 + .../database/database_type/database_type.ts | 64 + src/modules/pages/database/filter/filter.less | 6 + .../pages/database/filter/filter.model.ts | 18 + src/modules/pages/database/filter/filter.ts | 32 + src/modules/pages/index.ts | 10 + .../components/form_item/form_item.ts | 27 + .../maintain/forms/components/form.jdbc.ts | 587 + .../maintain/forms/components/form.jndi.ts | 389 + .../maintain/forms/components/form.plugin.ts | 35 + .../pages/maintain/forms/form.model.ts | 36 + src/modules/pages/maintain/forms/form.ts | 216 + src/modules/pages/maintain/maintain.less | 1 + src/modules/pages/maintain/maintain.model.ts | 21 + src/modules/pages/maintain/maintain.ts | 80 + src/modules/title/title.model.ts | 19 + src/modules/title/title.ts | 85 + .../title_database/title_datebase.model.ts | 19 + .../title/title_database/title_datebase.ts | 53 + .../title_maintain/title_maintain.model.ts | 27 + .../title/title_maintain/title_maintain.ts | 56 + src/shared/components/both_side.ts | 29 - src/shared/components/title.ts | 20 - src/shared/crud/crud.request.ts | 130 - src/shared/crud/curd.mock.ts | 1 - src/shared/service/dialog.service.ts | 271 - src/ui/fineui.ts | 37 +- src/ui/index.ts | 16 - src/ui/type.ts | 27 - tsconfig.json | 61 +- types/globals.d.ts | 9 +- webpack.config.js | 88 - webpack/dirs.js | 15 + webpack/webpack.common.js | 73 + webpack/webpack.dev.js | 66 + webpack/webpack.prod.js | 51 + yarn.lock | 9908 +++++++++++++++++ 213 files changed, 16622 insertions(+), 4560 deletions(-) rename .eslintrc.js => .eslintrc (51%) delete mode 100644 .gitattributes create mode 100644 assets/font/iconfont.eot create mode 100644 assets/font/iconfont.svg create mode 100644 assets/font/iconfont.ttf create mode 100644 assets/font/iconfont.woff create mode 100644 babel.config.js create mode 100644 config/fineui.prepare.js create mode 100644 config/fineui.setup.js create mode 100644 config/jest.environment.js create mode 100644 index.html create mode 100644 jest.config.js create mode 100644 lib/transform-i18n/transform-i18n.js create mode 100644 lib/upgrade/index.js delete mode 100644 private/constants.ts create mode 100644 redis.js delete mode 100644 src/app/app.constant.ts delete mode 100644 src/app/app.model.ts delete mode 100644 src/app/app.ts delete mode 100644 src/app/connection/left/item/left_item.less delete mode 100644 src/app/connection/left/item/left_item.ts delete mode 100644 src/app/connection/left/item/left_item_delete.ts delete mode 100644 src/app/connection/left/item/left_item_icon.ts delete mode 100644 src/app/connection/left/left.ts delete mode 100644 src/app/connection/link_set.mixin.ts delete mode 100644 src/app/connection/link_set.model.ts delete mode 100644 src/app/connection/link_set.service.ts delete mode 100644 src/app/connection/link_set.ts delete mode 100644 src/app/connection/more/item/more_link_item.less delete mode 100644 src/app/connection/more/item/more_link_item.ts delete mode 100644 src/app/connection/more/item/more_link_litem.model.ts delete mode 100644 src/app/connection/more/more_link.model.ts delete mode 100644 src/app/connection/more/more_link.service.ts delete mode 100644 src/app/connection/more/more_link.ts delete mode 100644 src/app/connection/right/nothing.ts delete mode 100644 src/app/connection/right/right.ts delete mode 100644 src/app/connection/right/right.typing.d.ts delete mode 100644 src/app/connection/right/right_detail/right_detail.model.ts delete mode 100644 src/app/connection/right/right_detail/right_detail.ts delete mode 100644 src/app/connection/right/right_edit/right_edit.model.ts delete mode 100644 src/app/connection/right/right_edit/right_edit.service.ts delete mode 100644 src/app/connection/right/right_edit/right_edit.ts delete mode 100644 src/app/connection/right/right_edit/right_edit_jndi.ts delete mode 100644 src/app/connection/right/right_edit/right_edit_mysql.ts delete mode 100644 src/app/connection/right/right_show/right_show.model.ts delete mode 100644 src/app/connection/right/right_show/right_show.ts delete mode 100644 src/app/connection/right/right_show/right_show_jndi.ts delete mode 100644 src/app/connection/right/right_title/right_title.model.ts delete mode 100644 src/app/connection/right/right_title/right_title.ts delete mode 100644 src/app/connection/select/select.service.ts delete mode 100644 src/app/connection/select/select.ts delete mode 100644 src/app/status/left/left.model.ts delete mode 100644 src/app/status/left/left.ts delete mode 100644 src/app/status/left/left_item.ts delete mode 100644 src/app/status/link_status.model.ts delete mode 100644 src/app/status/link_status.ts delete mode 100644 src/app/status/right/right.model.ts delete mode 100644 src/app/status/right/right.ts delete mode 100644 src/app/status/right/right.typings.d.ts delete mode 100644 src/app/status/right/right_card.ts delete mode 100644 src/app/title/title.less delete mode 100644 src/app/title/title.model.ts delete mode 100644 src/app/title/title.ts delete mode 100644 src/demo/plugin.redis.edit.ts delete mode 100644 src/demo/plugin.redis.preview.ts delete mode 100644 src/demo/plugin.tedis.pool.ts delete mode 100644 src/demo/style.scss create mode 100644 src/i18n.ts delete mode 100644 src/img/ads.jpg delete mode 100644 src/img/amazon-redshift.jpg delete mode 100644 src/img/apache-impala.jpg delete mode 100644 src/img/apache-kylin.jpg delete mode 100644 src/img/apache-phoenix.jpg delete mode 100644 src/img/database-selected.png delete mode 100644 src/img/derby.jpg delete mode 100644 src/img/error.png delete mode 100644 src/img/gbase-8a.jpg delete mode 100644 src/img/gbase-8s.jpg delete mode 100644 src/img/gbase-8t.jpg delete mode 100644 src/img/h2.jpg delete mode 100644 src/img/hadoop-hive.jpg delete mode 100644 src/img/hbase.jpg delete mode 100644 src/img/hp-vertica.jpg delete mode 100644 src/img/hsql.jpg delete mode 100644 src/img/hw-dws.jpg delete mode 100644 src/img/hw-elk.jpg delete mode 100644 src/img/hw-fusioninsight-hd.jpg delete mode 100644 src/img/hw-libr-a.jpg delete mode 100644 src/img/ibm-db2.jpg delete mode 100644 src/img/icon_close9x9_normal.png delete mode 100644 src/img/informix.jpg delete mode 100644 src/img/kingbase.jpg delete mode 100644 src/img/loading.gif delete mode 100644 src/img/mysql.jpg delete mode 100644 src/img/oracle.jpg delete mode 100644 src/img/pivotal-greenplum-database.jpg delete mode 100644 src/img/postgresql.jpg delete mode 100644 src/img/presto.jpg delete mode 100644 src/img/resources.png delete mode 100644 src/img/sap-hana.jpg delete mode 100644 src/img/sap-sybase.jpg delete mode 100644 src/img/spark.jpg delete mode 100644 src/img/sql-server.jpeg delete mode 100644 src/img/sql-server.jpg delete mode 100644 src/img/sqlite.jpg delete mode 100644 src/img/success.png delete mode 100644 src/img/teradata.jpg delete mode 100644 src/img/transwarp-inceptor.jpg delete mode 100644 src/img/warning.png delete mode 100644 src/index.html create mode 100644 src/less/background.less create mode 100644 src/less/font.less delete mode 100644 src/less/lib/color.less delete mode 100644 src/less/resource/background.less delete mode 100644 src/less/resource/font.less delete mode 100644 src/lib/fineui.min.css delete mode 100644 src/lib/fineui.min.js create mode 100644 src/modules/app.model.ts create mode 100644 src/modules/app.service.ts create mode 100644 src/modules/app.ts create mode 100644 src/modules/app.typings.d.ts create mode 100644 src/modules/components/collapse/collapse.model.ts create mode 100644 src/modules/components/collapse/collapse.ts create mode 100644 src/modules/components/test_status/test_status.model.ts create mode 100644 src/modules/components/test_status/test_status.ts create mode 100644 src/modules/components/test_status/tip_icon/tip_fail.model.ts create mode 100644 src/modules/components/test_status/tip_icon/tip_fail.ts create mode 100644 src/modules/components/test_status/tip_icon/tip_icon.ts create mode 100644 src/modules/constants/constant.ts create mode 100644 src/modules/constants/env.ts create mode 100644 src/modules/constants/plugin.ts create mode 100644 src/modules/core/core.ts create mode 100644 src/modules/crud/api.ts create mode 100644 src/modules/crud/apiFactory.ts create mode 100644 src/modules/crud/crud.service.ts create mode 100644 src/modules/crud/crud.typings.d.ts create mode 100644 src/modules/crud/decision.api.ts create mode 100644 src/modules/crud/design.api.ts create mode 100644 src/modules/pages/connection/components/form_item/form_item.ts create mode 100644 src/modules/pages/connection/connection.model.ts create mode 100644 src/modules/pages/connection/connection.ts create mode 100644 src/modules/pages/connection/connection_jdbc/connection_jdbc.model.ts create mode 100644 src/modules/pages/connection/connection_jdbc/connection_jdbc.ts create mode 100644 src/modules/pages/connection/connection_jndi/connection_jndi.model.ts create mode 100644 src/modules/pages/connection/connection_jndi/connection_jndi.ts create mode 100644 src/modules/pages/connection/connection_plugin/connection_plugin.model.ts create mode 100644 src/modules/pages/connection/connection_plugin/connection_plugin.ts create mode 100644 src/modules/pages/connection/list/list.less create mode 100644 src/modules/pages/connection/list/list.model.ts create mode 100644 src/modules/pages/connection/list/list.service.ts create mode 100644 src/modules/pages/connection/list/list.ts create mode 100644 src/modules/pages/connection/list/list_item/list_item.less create mode 100644 src/modules/pages/connection/list/list_item/list_item.model.ts create mode 100644 src/modules/pages/connection/list/list_item/list_item.ts create mode 100644 src/modules/pages/connection_pool/connection_pool.model.ts create mode 100644 src/modules/pages/connection_pool/connection_pool.ts create mode 100644 src/modules/pages/connection_pool/list_item/list_item.model.ts create mode 100644 src/modules/pages/connection_pool/list_item/list_item.ts rename src/{app/status/right/right_card.less => modules/pages/connection_pool/pool/pool.less} (61%) create mode 100644 src/modules/pages/connection_pool/pool/pool.model.ts create mode 100644 src/modules/pages/connection_pool/pool/pool.ts create mode 100644 src/modules/pages/database/database.model.ts create mode 100644 src/modules/pages/database/database.ts create mode 100644 src/modules/pages/database/database.typings.d.ts create mode 100644 src/modules/pages/database/database_type/database_type.less create mode 100644 src/modules/pages/database/database_type/database_type.model.ts create mode 100644 src/modules/pages/database/database_type/database_type.ts create mode 100644 src/modules/pages/database/filter/filter.less create mode 100644 src/modules/pages/database/filter/filter.model.ts create mode 100644 src/modules/pages/database/filter/filter.ts create mode 100644 src/modules/pages/index.ts create mode 100644 src/modules/pages/maintain/components/form_item/form_item.ts create mode 100644 src/modules/pages/maintain/forms/components/form.jdbc.ts create mode 100644 src/modules/pages/maintain/forms/components/form.jndi.ts create mode 100644 src/modules/pages/maintain/forms/components/form.plugin.ts create mode 100644 src/modules/pages/maintain/forms/form.model.ts create mode 100644 src/modules/pages/maintain/forms/form.ts create mode 100644 src/modules/pages/maintain/maintain.less create mode 100644 src/modules/pages/maintain/maintain.model.ts create mode 100644 src/modules/pages/maintain/maintain.ts create mode 100644 src/modules/title/title.model.ts create mode 100644 src/modules/title/title.ts create mode 100644 src/modules/title/title_database/title_datebase.model.ts create mode 100644 src/modules/title/title_database/title_datebase.ts create mode 100644 src/modules/title/title_maintain/title_maintain.model.ts create mode 100644 src/modules/title/title_maintain/title_maintain.ts delete mode 100644 src/shared/components/both_side.ts delete mode 100644 src/shared/components/title.ts delete mode 100644 src/shared/crud/crud.request.ts delete mode 100644 src/shared/crud/curd.mock.ts delete mode 100644 src/shared/service/dialog.service.ts delete mode 100644 src/ui/type.ts delete mode 100644 webpack.config.js create mode 100644 webpack/dirs.js create mode 100644 webpack/webpack.common.js create mode 100644 webpack/webpack.dev.js create mode 100644 webpack/webpack.prod.js create mode 100644 yarn.lock diff --git a/.eslintignore b/.eslintignore index d53c44e..8acd6cf 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,5 @@ -dist/*.js -src/assets/* -src/lib/* -webpack.config.js -curd.mock.ts \ No newline at end of file +types +node_modules/ +dist/ +assets/ +webpack/ \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc similarity index 51% rename from .eslintrc.js rename to .eslintrc index d62bd01..8016d83 100644 --- a/.eslintrc.js +++ b/.eslintrc @@ -1,89 +1,61 @@ -module.exports = { - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], - extends: ['plugin:@typescript-eslint/recommended'], - rules:{ - "indent": "off", - "quotes": [1, "single"], - "space-infix-ops": 2,//操作符前后有空格 - // 必须使用 === 和 !== ,和 null 对比时除外 - 'eqeqeq': [2, 'always', { 'null': 'ignore' }], - // 函数的形参不能多于5个 - 'max-params': [2, 5], - // 禁止 switch 中出现相同的 case - 'no-duplicate-case': 2, - // 禁止使用 var,必须用 let 或 const - 'no-var': 0, - // 禁止出现空代码块 - 'no-empty': [2, { 'allowEmptyCatch': true }], - // 禁止空的 function - // 包含注释的情况下允许 - 'no-empty-function': 0, - // if 后必须包含 { ,单行 if 除外 - 'curly': [2, 'multi-line', 'consistent'], - // for 循环不得因方向错误造成死循环 - 'for-direction': 2, - // 关键字前后必须有空格 - 'keyword-spacing': 2, - 'key-spacing':2, - // 最大块嵌套深度为 5 层 - 'max-depth': [2, 5], - // 最大回调深度为 3 层 - 'max-nested-callbacks': [2, 3], - // 禁止普通字符串中出现模板字符串语法 - 'no-template-curly-in-string': 0, - // 禁止连等赋值 - 'no-multi-assign': 2, - // 禁止使用连续的空格 - 'no-multi-spaces': 2, - // 禁止使用 \ 来定义多行字符串,统一使用模板字符串来做 - 'no-multi-str': 2, - // 禁止使用 new Object - 'no-new-object': 2, - - // 禁止使用 new require - 'no-new-require': 2, - - // 禁止使用 new Symbol - 'no-new-symbol': 2, - // 禁止 new Boolean、Number 或 String - 'no-new-wrappers': 2, - // 禁止 new 一个类而不存储该实例 - 'no-new': 2, - // 禁止把原生对象 Math、JSON、Reflect 当函数使用 - 'no-obj-calls': 2, - // 禁止使用八进制转义符 - 'no-octal-escape': 2, - // 禁止使用0开头的数字表示八进制 - 'no-octal': 2, - // 禁止使用 __dirname + 'file' 的形式拼接路径,应该使用 path.join 或 path.resolve 来代替 - 'no-path-concat': 2, - // 禁止对函数的参数重新赋值 - 'no-param-reassign': 2, - // 禁止使用保留字作为变量名 - 'no-shadow-restricted-names': 2, - // 禁止数组中出现连续逗号 - 'no-sparse-arrays': 2, - // 禁止在finally块中出现 return、throw、break、continue - 'no-unsafe-finally': 2, - // 禁止出现不安全的否定,如 for (!key in obj} {},应该写为 for (!(key in obj)} {} - 'no-unsafe-negation': 2, - // ...后面不允许有空格 - 'rest-spread-spacing': [2, 'never'], - // 注释的斜线和星号后要加空格 - 'spaced-comment': [2, 'always', { - 'block': { - exceptions: ['*'], - balanced: true +{ + "env": { + "browser": true, + "node": true, + "es6": true, + "jest/globals": true + }, + "globals": { + "Fix": true, + "BI": true, + "Report": true, + "Dec": true, + "DecCst": true + }, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "./tsconfig.json", + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "modules": true + } + }, + "plugins": ["@typescript-eslint", "jest"], + "rules": { + "no-underscore-dangle": 0, + "prefer-rest-params": 0, + "no-plusplus": 0, + "max-len": 0, + "no-use-before-define": [ + "error", + { + "functions": false } - }], - // typeof 判断条件只能是 "undefined", "object", "boolean", "number", "string", "function" 或 "symbol" - 'valid-typeof': 2, - "@typescript-eslint/indent": ["error", 2], - "@typescript-eslint/explicit-function-return-type": ["warn", { - allowExpressions: true - }], - "@typescript-eslint/no-explicit-any": ["off"], + ], + "new-cap": [ + "error", + { + "properties": false + } + ], + "no-confusing-arrow": ["off"], + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "vars": "all", + "args": "none", + "ignoreRestSiblings": true + } + ], + "no-irregular-whitespace": [ + "error", + { + "skipTemplates": false, + "skipStrings": false + } + ], // 声明 "prefer-const": "error", //如果一个变量不会被重新赋值,最好使用const进行声明 "no-const-assign": "error", //不允许改变用const声明的变量 @@ -93,50 +65,38 @@ module.exports = { "no-prototype-builtins": "error", // 禁止直接使用 Object.prototypes 的内置属性 "no-extend-native": "error", // 禁止扩展原生对象 "no-new-object": "error", // 禁止使用 Object 构造函数 - "object-shorthand": [ - "error", - "always" - ], //要求对象字面量简写语法 - "quote-props": [ - "error", - "as-needed" - ], // 对象属性只在需要的时候加引号 + "object-shorthand": ["error", "always"], //要求对象字面量简写语法 + "quote-props": ["error", "as-needed"], // 对象属性只在需要的时候加引号 // 数组 "no-sparse-arrays": "error", // 禁用稀疏数组 "no-array-constructor": "error", //禁止使用 Array 构造函数 "array-callback-return": "error", // 数组回调函数内必须返回一个状态 // 字符串 "quotes": [ - "error", - "single", - { - "allowTemplateLiterals": true - } + "error", + "single", + { + "allowTemplateLiterals": true + } ], // 字符串开头和结束使用单引号 "prefer-template": "error", // 使用模板而非字符串连接 - "template-curly-spacing": [ - "error", - "never" - ], // 强制模板字符串中花括号内不能出现空格 + "template-curly-spacing": ["error", "never"], // 强制模板字符串中花括号内不能出现空格 "no-path-concat": "error", // 当使用 _dirname 和 _filename 时不允许字符串拼接 "no-useless-concat": "error", // 禁止没有必要的字符拼接 "no-useless-escape": "error", // 禁用不必要的转义 // 函数 "no-dupe-args": "error", // 禁止在 function 定义中出现重复的参数 - "no-new-func": "error", // 禁用Function构造函数 + // "no-new-func": "error", // 禁用Function构造函数 "no-return-assign": "error", // 禁止在返回语句中赋值 "func-style": [ - "error", - "declaration", - { - "allowArrowFunctions": true - } + "error", + "declaration", + { + "allowArrowFunctions": true + } ], // 统一函数风格为函数表达式或函数声明,并且允许使用箭头函数 "newline-before-return": "error", // 要求 return 语句之前有一空行 - "wrap-iife": [ - "error", - "outside" - ], // 立即执行函数外部必须包裹括号 + "wrap-iife": ["error", "outside"], // 立即执行函数外部必须包裹括号 "no-loop-func": "error", // 禁止在非function内声明function // "space-before-function-paren": "error", // 函数括号前必须要有空格 "no-param-reassign": "error", // 禁止修改函数参数 @@ -144,16 +104,13 @@ module.exports = { // 箭头函数 "prefer-arrow-callback": "error", // 回调使用箭头函数 "arrow-spacing": "error", // 箭头前后要有空格 - "arrow-parens": [ - "error", - "as-needed" - ], // 参数使用括号包裹 + "arrow-parens": ["error", "as-needed"], // 参数使用括号包裹 "arrow-body-style": [ - "error", - "as-needed", - { - "requireReturnForObjectLiteral": true - } + "error", + "as-needed", + { + "requireReturnForObjectLiteral": true + } ], // 函数体在必要的时候使用大括号 // 类 & 构造器 "no-useless-constructor": "error", // 禁止没必要的构造器 @@ -167,10 +124,12 @@ module.exports = { // 属性 "dot-notation": "error", //强制在任何允许的时候使用点号访问属性 // 变量 + "no-undef": "error", // 禁止使用未声明的变量 // "one-var": ["error", "never"], // 变量统一声明 // 比较运算符 & 相等运算符 "eqeqeq": "error", // 使用 === 和 !== 代替 == 和 != - "no-nested-ternary": "error", // 禁止混合的三目运算符 + "no-case-declarations": "error", // 禁止在 case 或 default 子句中出现变量声明 + // "no-nested-ternary": "error", // 禁止混合的三目运算符 "no-unneeded-ternary": "error", //禁止可以在有更简单的可替代的表达式时使用三元操作符 // 条件 "no-cond-assign": "error", // 禁止在条件语句中出现赋值操作符 @@ -181,94 +140,81 @@ module.exports = { "no-fallthrough": "error", // 禁止 case 语句落空 // 代码块 "brace-style": "error", // 代码块左括号紧跟上一行结束 - "curly": [ - "error", - "multi-line" - ], // if、else if、else、for、while强制使用大括号,但允许在单行中省略大括号 + "curly": ["error", "multi-line"], // if、else if、else、for、while强制使用大括号,但允许在单行中省略大括号 "no-empty": [ - "error", - { - "allowEmptyCatch": true - } + "error", + { + "allowEmptyCatch": true + } ], // 禁止空块语句,但允许出现空的 catch 子句 // 注释 "spaced-comment": "error", // 注释前有空格 + "lines-around-comment": [ + "error", + { + "beforeBlockComment": false + } + ], // 块级注释前要有空行 + // 空白 + "indent": [ + "error", + 4, + { + "SwitchCase": 1 + } + ], // 缩进控制4空格 "no-mixed-spaces-and-tabs": "error", // 禁止使用 空格 和 tab 混合缩进 - "space-before-blocks": [ - "error", - "always" - ], // 语句块之前的需要有空格 + "space-before-blocks": ["error", "always"], // 语句块之前的需要有空格 "keyword-spacing": "error", // 关键字后面必须要有空格 "space-infix-ops": [ - "error", - { - "int32Hint": false - } + "error", + { + "int32Hint": false + } ], // 要求中缀操作符周围有空格,设置 int32Hint 选项为 true (默认 false) 允许 a|0 不带空格 "eol-last": "error", // 要求文件末尾保留一行空行 "newline-per-chained-call": "error", // 要求方法链中每个调用都有一个换行符 - "padded-blocks": [ - "error", - "never" - ], // 代码块开始和结束位置不可以有多余的空行 - "space-in-parens": [ - "error", - "never" - ], // 禁止圆括号内的空格 - "array-bracket-spacing": [ - "error", - "never" - ], // 数组紧贴括号部分不允许包含空格 - "object-curly-spacing": [ - "error", - "never" - ], // 对象紧贴花括号部分不允许包含空格 + "padded-blocks": ["error", "never"], // 代码块开始和结束位置不可以有多余的空行 + "space-in-parens": ["error", "never"], // 禁止圆括号内的空格 + "array-bracket-spacing": ["error", "never"], // 数组紧贴括号部分不允许包含空格 + "object-curly-spacing": ["error", "always"], // 对象紧贴花括号部分不允许包含空格 "no-regex-spaces": "error", // 禁止正则表达式字面量中出现多个空格 "no-multi-spaces": "error", // 禁止出现多个空格而且不是用来作缩进的 - "block-spacing": [ - "error", - "never" - ], // 单行代码块中紧贴括号部分不允许包含空格 - "computed-property-spacing": [ - "error", - "never" - ], // 禁止括号和其内部值之间的空格 + "block-spacing": ["error", "never"], // 单行代码块中紧贴括号部分不允许包含空格 + "computed-property-spacing": ["error", "never"], // 禁止括号和其内部值之间的空格 "no-trailing-spaces": [ - "error", - { - "skipBlankLines": true - } + "error", + { + "skipBlankLines": true + } ], // 禁用行尾空格 "no-spaced-func": "error", // 禁止函数调用时,与圆括号之间有空格 "space-unary-ops": "error", // 要求或禁止在一元操作符之前或之后存在空格,new、delete、typeof、void、yield要求有空格,-、+、--、++、!、!!要求无空格 "yield-star-spacing": [ - "error", - { - "before": true, - "after": false - } + "error", + { + "before": true, + "after": false + } ], // 强制 yield* 表达式中 * 号前有空格,后无空格 // 逗号 "comma-style": "error", // 逗号必须放在行末 - "comma-dangle": [ - "error", - "always-multiline" - ], // 多行对象字面量中要求拖尾逗号 + "comma-dangle": ["error", "always-multiline"], // 多行对象字面量中要求拖尾逗号 "comma-spacing": [ - "error", - { - "before": false, - "after": true - } + "error", + { + "before": false, + "after": true + } ], //在变量声明、数组字面量、对象字面量、函数参数 和 序列中禁止在逗号前使用空格,要求在逗号后使用一个或多个空格 // 分号 "semi": "error", //不得省略语句结束的分号 "semi-spacing": [ - "error", - { - "before": false, - "after": true - } + "error", + { + "before": false, + "after": true + } ], //禁止分号周围的空格 "no-extra-semi": "error", // 禁用不必要的分号 // 类型转换 @@ -276,7 +222,8 @@ module.exports = { "no-extra-boolean-cast": "error", // 禁止不必要的布尔类型转换 // 其他最佳实践或规范 "strict": "error", // 使用强制模式开关use strict; - // "@typescript-eslint/no-extra-parens": ["error"], + // 禁止冗余的括号 + "@typescript-eslint/no-extra-parens": ["error"], "no-eval": "error", // 禁用 eval() "no-with": "error", // 禁用 with 语句 "no-unexpected-multiline": "error", // 禁止使用令人困惑的多行表达式 @@ -286,4 +233,4 @@ module.exports = { "no-new-wrappers": "error", // 禁止通过 new 操作符使用 String、Number 和 Boolean "handle-callback-err": "error" // 强制回调错误处理 } -} \ No newline at end of file +} diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index de1131c..0000000 --- a/.gitattributes +++ /dev/null @@ -1,7 +0,0 @@ -* text=auto !eol -designer_scripts/designer_scripts.iml -text -designer_scripts/src/readme.md -text -designer_scripts/src/scripts/store/web/index.html -text -designer_scripts/src/scripts/store/web/js/bridge.js -text -designer_scripts/src/scripts/store/web/js/lib/jquery-2.2.2.min.js -text -designer_scripts/src/scripts/store/web/js/store.js -text diff --git a/.gitignore b/.gitignore index 6428b54..b941a73 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ -node_modules -yarn.lock -dist \ No newline at end of file +/node_modules +/bower_components +.idea/ +.DS_Store +/constants/classes/ +dist +package-lock.json +.vscode +yarn-error.log +.history/ \ No newline at end of file diff --git a/README.md b/README.md index 5821f32..f824a73 100644 --- a/README.md +++ b/README.md @@ -5,149 +5,216 @@ ![finui](https://img.shields.io/badge/lib-FinUi-blue.svg) ## 开始 -下载代码 - -``` -git clone ssh://git@cloud.finedevelop.com:7999/~alan/database-connection.git -``` 安装依赖 - ``` yarn ``` 开始开发 ``` -yarn start +yarn dev ``` -## 接口文档 +## 接口文档: ### 增加数据连接类型 -使用`BI.config`,ConstantName名称为`dec.constant.database.conf.connect.list`,值为连接的名称 +使用`BI.config`,ConstantName名称为`dec.constant.database.conf.connect.types`,值为连接的名称 例如增加`Redis`的连接: ```js -BI.config(ConstantName, (datas: string[]) => [...datas, 'Redis']); +BI.config(ConstantPluginTyps, (datas: string[]) => [...datas, { + text: 'Redis', + databaseType: 'Redis', +}]); ``` ### 数据连接填写页面 -ConstantName名称为`dec.constant.database.conf.connect.form.${name.toLowerCase()}.edit`,值为组件shortcut的名称 - -例如配置`Redis`的连接填写页面: - -```js -const className = 'fr.plugin.redis.preview'; -const RedisPreview = BI.inherit(BI.Widget, { - render() { - return { - type: 'bi.left', - cls: 'title', - items: [{ - type: 'bi.editor', - watermark:'这里是编辑页', - }], - }; - }, -}); -BI.shortcut(className, RedisPreview); -BI.constant('dec.constant.database.conf.connect.form.redis.edit', className); -``` -### 数据连接预览页面 -ConstantName名称为`dec.constant.database.conf.connect.form.${name.toLowerCase()}.show`,值为组件shortcut的名称 - -例如配置`Redis`的连接预览页面: - -```js -const className = 'fr.plugin.redis.edit'; -const RedisPreview = BI.inherit(BI.Widget, { - render() { - return { - type: 'bi.left', - cls: 'title', - items: [{ - type: 'bi.label', - text:'这里是预览页', - }], - }; - }, -}); -BI.shortcut(className, RedisPreview); -BI.constant('dec.constant.database.conf.connect.form.redis.edit', className); -``` +ConstantName名称为`dec.constant.database.conf.connect.form.${name}.edit`,值为组件shortcut的名称 -### 插件配置表单值传递 -ConstantName名称为`dec.constant.database.conf.connect.form.${name.toLowerCase()}.value`,值为插件数据结构 +### 数据连接展示页面 +ConstantName名称为`dec.constant.database.conf.connect.form.${name}.show`,值为组件shortcut的名称 -例如: - -```js -const ConstantName = 'dec.constant.database.conf.connect.form.redis.value'; -const form = { - url:'192.168.1.22', - port: 6379, - password: '123456' -}; -BI.config(ConstantName, (data: object) => form); +### 示例 ``` +const ConstantRedisType = 'dec.constant.database.conf.connect.types'; +const ConstantRedisShow = 'dec.constant.database.conf.connect.form.Redis.show'; +const ConstantRedisEdit = 'dec.constant.database.conf.connect.form.Redis.edit'; + +BI.DOM.ready(() => { + BI.config(ConstantRedisType, datas => [...datas, { + text: 'Redis', + databaseType: 'Redis', + }]); + + const RedisShowName = 'dec.dcm.connection.plugin.redis.show'; + const RedisShow = BI.inherit(BI.Widget, { + props: { + formData: { + url: '', + port: '6379', + password: '', + }, + }, + render() { + const o = this.options; + + return { + type: 'bi.vertical', + hgap: 15, + vgap: 10, + items: [ + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '数据库地址', + }, + { + type: 'bi.label', + text: o.formData.url, + }, + ], + }, + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '端口号', + }, + { + type: 'bi.label', + text: o.formData.port, + }, + ], + }, + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '密码', + }, + { + type: 'bi.label', + text: o.formData.password, + }, + ], + }, + ], + }; + }, + }); -### 数据连接池页面 -ConstantName名称为`dec.constant.database.conf.connect.form.${name.toLowerCase()}.pool`,值为组件shortcut的名称 + BI.shortcut(RedisShowName, RedisShow); + BI.constant(ConstantRedisShow, RedisShowName); -例如配置`Redis`的连接预览页面: -```js -const classNamePool = 'fr.plugin.redis.pool'; - -const WidgetPool = BI.inherit(BI.Widget, { - render() { - const {maxActive, maxIdle, numActive, numIdle} = this.options; - - return { - type: 'bi.left', - items: [ - { - type: 'bi.left', - cls: 'right-status-item', - items: [ - { - type: 'bi.vertical', - cls:'right-status-board', - items: [ - { - type: 'bi.vertical', - cls:'right-status-board-item', - items: [ + const RedisEditName = 'dec.dcm.connection.plugin.redis.edit'; + const RedisEdit = BI.inherit(BI.Widget, { + props: { + formData: { + url: '', + port: '6379', + password: '', + }, + }, + render() { + const o = this.options; + + return { + type: 'bi.vertical', + hgap: 15, + vgap: 10, + items: [ { - type: 'bi.label', - cls: 'right-status-text', - extraCls: 'card-font1', - text: numActive, + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '数据库地址', + }, + { + type: 'bi.text_editor', + width: 300, + allowBlank: true, + ref: _ref => { + this.url = _ref; + }, + text: o.formData.url, + }, + ], }, { - type: 'bi.label', - cls: 'right-status-text', - text: '/', + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '端口号', + }, + { + type: 'bi.text_editor', + width: 300, + allowBlank: true, + ref: _ref => { + this.port = _ref; + }, + text: o.formData.port, + }, + ], }, { - type: 'bi.label', - cls: 'right-status-text', - text: maxActive, + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '密码', + }, + { + type: 'bi.text_editor', + width: 300, + allowBlank: true, + inputType: 'password', + ref: _ref => { + this.password = _ref; + }, + text: o.formData.password, + }, + ], }, - ], - }, - { - type: 'bi.label', - text: 'Redis连接数', - }, - ], - }, - ], + ], + }; + }, + getSubmitValue() { + return { + url: this.url.getValue(), + port: this.port.getValue(), + password: this.password.getValue(), + }; }, - ], - }; - }, + }); + + BI.shortcut(RedisEditName, RedisEdit); + BI.constant(ConstantRedisEdit, RedisEditName); }); -BI.shortcut(classNamePool, WidgetPool); -BI.constant('dec.constant.database.conf.connect.form.redis.pool', classNamePool); + ``` \ No newline at end of file diff --git a/assets/font/iconfont.eot b/assets/font/iconfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..96837902c0f8cf225593ea3c4a5c8de40f214aec GIT binary patch literal 8908 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 FzW|{V;nDyA literal 0 HcmV?d00001 diff --git a/assets/font/iconfont.svg b/assets/font/iconfont.svg new file mode 100644 index 0000000..8aea2d0 --- /dev/null +++ b/assets/font/iconfont.svg @@ -0,0 +1,119 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/font/iconfont.ttf b/assets/font/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..83bebd9581e2063a7fbb823c6b62c3869f31ee14 GIT binary patch literal 8740 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 literal 0 HcmV?d00001 diff --git a/assets/font/iconfont.woff b/assets/font/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..57d8641a40891915a9d2a860c5f0ae8ee3ba425e GIT binary patch literal 4720 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 bfZ7t5XxiUJGQ%8?(KQW~>7kaKL{6zU{3b literal 0 HcmV?d00001 diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..d83931d --- /dev/null +++ b/babel.config.js @@ -0,0 +1,29 @@ +module.exports = function(api) { + api.cache(true); + const presets = [ + [ + '@babel/preset-env', + { + targets: { + ie: 9, + chrome: 47, + }, + }, + ], + '@babel/preset-typescript', + ]; + const plugins = [ + [ + '@babel/plugin-proposal-decorators', + { + legacy: true, + }, + ], + '@babel/plugin-proposal-class-properties', + ]; + + return { + presets, + plugins, + }; +}; diff --git a/config/fineui.prepare.js b/config/fineui.prepare.js new file mode 100644 index 0000000..1978889 --- /dev/null +++ b/config/fineui.prepare.js @@ -0,0 +1,6 @@ +!(function () { + // 先把准备环境准备好 + while (BI.prepares && BI.prepares.length > 0) { + BI.prepares.shift()(); + } +}()); diff --git a/config/fineui.setup.js b/config/fineui.setup.js new file mode 100644 index 0000000..7a1b5fc --- /dev/null +++ b/config/fineui.setup.js @@ -0,0 +1,48 @@ +!(function () { + Report = { + SessionMgr: { + get() { + return ''; + }, + }, + }; + let target = null; + const targetStack = []; + + function pushTarget (_target) { + if (target) { + targetStack.push(target); + } + Fix.Model.target = target = _target; + } + + function popTarget () { + Fix.Model.target = target = targetStack.pop(); + } + + Fix.Test = { + makeContext: (state, fn) => { + const Store = BI.inherit(Fix.Model, { + state, + childContext: Object.keys(state), + }); + const store = new Store(); + pushTarget(store); + fn(store); + popTarget(); + + return store; + }, + extractContext: (model, contextList) => { + BI.each(BI.deepClone(model), key => { + if (BI.contains(contextList, key)) { + return; + } + + delete model[key]; + }); + + return model; + }, + }; +}()); diff --git a/config/jest.environment.js b/config/jest.environment.js new file mode 100644 index 0000000..b564081 --- /dev/null +++ b/config/jest.environment.js @@ -0,0 +1,34 @@ +const JsdomEnvironment = require('jest-environment-jsdom'); +const path = require('path'); +const fs = require('fs'); + +class FineUiEnvironment extends JsdomEnvironment { + async setup(...args) { + await super.setup(args); + + const document = this.dom.window.document; + + document.createElement('body'); + + [ + '../node_modules/fineui/dist/fineui.js', + '../node_modules/fineui-materials/docs/materials.js', + '../config/fineui.prepare.js', + './fineui.setup.js', + ].forEach(scriptRelativePath => { + writeScript(document, scriptRelativePath); + }); + + return Promise.resolve(); + } +} + +function writeScript(document, scriptRelativePath) { + const scriptEl = document.createElement('script'); + scriptEl.text = fs.readFileSync(path.resolve(__dirname, scriptRelativePath), { + encoding: 'utf8', + }); + document.body.appendChild(scriptEl); +} + +module.exports = FineUiEnvironment; diff --git a/i18n/zh_cn.properties b/i18n/zh_cn.properties index 13c2e30..785a538 100644 --- a/i18n/zh_cn.properties +++ b/i18n/zh_cn.properties @@ -1,11 +1,23 @@ +Dec-Dcm_Connection_New= 新建数据连接 +Dec-Dcm_Connection_Name= 数据连接名称 +Dec-Dcm_Connection_None= 无可用数据连接,请点击添加 +Dec-Dcm_Connection_Test= 测试连接 +Dec-Dcm_Connection_Commonly= 常用 +Dec-Dcm_Connection_Type_Filter= 类型筛选: +Dec-Dcm_Connection_Support_Inner= 内置支持 +Dec-Dcm_Connection_Support_Plugin= 插件支持 +Dec-Dcm_Connection_Filter_Tip= 提示:当前仅支持部分插件类型,未支持类型请使用设计器的旧版本数据连接进行创建 +Dec-Dcm_Connection_All= 所有 +Dec-Dcm_Connection_Other= 其他 Dec-Dcm_Connection_Management= 数据连接管理 -Dec-Dcm_Pool_Connection_Management= 连接池管理 +Dec-Dcm_Pool_Connection_Management= 连接池状态 Dec-Dcm_Data_Connections= 数据连接 Dec-Dcm_Active_Connections_Number= 活动连接数 Dec-Dcm_Leisure_Connections_Number= 空闲连接数 Dec-Dcm_Connections= 连接 Dec-Dcm_Default= 默认 Dec-Dcm_Delete= 删除 +Dec-Dcm_Millisecond= 毫秒 Dec-Dcm_Test_Connection= 测试连接 Dec-Dcm_Copy= 复制 Dec-Dcm_Edit= 编辑 @@ -13,18 +25,20 @@ Dec-Dcm_Save= 保存 Dec-Dcm_Yes= 是 Dec-Dcm_No= 否 Dec-Dcm_Search= 搜索 -Dec-Dcm_Type= 类型 +Dec-Dcm_Type= 类型:{R1} Dec-Dcm_Other= 其他 Dec-Dcm_Tips= 提示 Dec-Dcm_Back= 返回 -Dec-Dcm_Creator= 创建者 +Dec-Dcm_Creator= 创建者:{R1} Dec-Dcm_First_Step= 第一步 Dec-Dcm_Second_Step= 第二步 Dec-Dcm_Third_Step= 第三步 +Dec-Dcm_Connection_ConnectionName_Cannt_Null= 数据连接名不可为空 +Dec-Dcm_Connection_Np_Registered= 该类型暂仅支持在设计器中使用旧版本数据连接查看 Dec-Dcm_Connection_Detailed_Information= 详细信息 Dec-Dcm_Connection_Handup_Information= 收起信息 Dec-Dcm_Connection_Testing= 正在测试连接,请稍候... -Dec-Dcm_Connection_Test_Fail= 测试连接失败 +Dec-Dcm_Connection_Test_Fail= {R1}测试连接失败 Dec-Dcm_Connection_Test_Success= 连接成功 Dec-Dcm_Connection_Option_Cannot_Find= 找不到该连接的配置信息 Dec-Dcm_Connection_Config_No_Save= 当前设置尚未保存,是否保存? @@ -34,15 +48,21 @@ Dec-Dcm_Connection_More_Title= 更多数据连接 Dec-Dcm_Connection_Other= 其他 Dec-Dcm_Connection_Plase_Add_One= 请选择左侧数据连接或点击新建数据连接 Dec-Dcm_Connection_Is_Existence= 数据连接名已存在 +Dec-Dcm_Connection_No_Search_Result= 无搜索结果 Dec-Dcm_Connection_Form_ConnectionName= 数据连接名 Dec-Dcm_Connection_Form_ConnectionName-Change-Confirm= *修改数据连接名会影响相关数据表和仪表板 -Dec-Dcm_Connection_Form_Driver= 驱动器 +Dec-Dcm_Connection_Form_Driver= 驱动 Dec-Dcm_Connection_Form_URL= URL +Dec-Dcm_Connection_Form_Database_URL= 数据库URL Dec-Dcm_Connection_Form_Place_Input= 请输入 Dec-Dcm_Connection_Form_OriginalCharsetName= 编码 Dec-Dcm_Connection_Form_Auto= 自动 +Dec-Dcm_Connection_Form_Host= 主机 +Dec-Dcm_Connection_Form_AuthType= 认证方式 Dec-Dcm_Connection_Form_UserName= 用户名 Dec-Dcm_Connection_Form_Password= 密码 +Dec-Dcm_Connection_Form_Principal= 客户端principal +Dec-Dcm_Connection_Form_KeyPath= keytab密钥路径 Dec-Dcm_Connection_Form_Pool_Properties= 连接池属性 Dec-Dcm_Connection_Form_SQL_Validation_Query= SQL验证查询 Dec-Dcm_Connection_Form_Connection-Check= 获取连接前校验 @@ -50,11 +70,217 @@ Dec-Dcm_Connection_Form_Connection_Max_Number= 最大活动连接数 Dec-Dcm_Connection_Form_Place_Input-Number= 请输入有效的正整数 Dec-Dcm_Connection_Form_Pattern= 模式 Dec-Dcm_Connection_Form_Database_Addr= 数据库地址 -Dec-Dcm_Connection_Form_Database_Port= 端口号 +Dec-Dcm_Connection_Form_Database_Name= 数据库名称 +Dec-Dcm_Connection_Form_Database_Port= 端口 +Dec-Dcm_Connection_Form_Database_Advanced_Setting= 高级设置 +Dec-Dcm_Connection_Form_Database_Initial_Size= 初始化连接数 +Dec-Dcm_Connection_Form_Database_Max_Active= 最大活动连接数 +Dec-Dcm_Connection_Form_Database_Max_Idle= 最大空闲连接数 +Dec-Dcm_Connection_Form_Database_Max_Wait= 最大等待时间 +Dec-Dcm_Connection_Form_Database_Validation_Query= SQL验证查询 +Dec-Dcm_Connection_Form_Database_Test_On_Borrow= 获取连接前检验 +Dec-Dcm_Connection_Form_Database_Test_On_Return= 归还连接前检验 +Dec-Dcm_Connection_Form_Database_Test_While_Idle= 开启空闲回收器检验 +Dec-Dcm_Connection_Form_Database_Test_Between_Eviction_Millis= 空闲连接回收器休眠时间 +Dec-Dcm_Connection_Form_Database_Tests_PerEviction_Run_Num= 空闲连接回收检查数 +Dec-Dcm_Connection_Form_Database_Min_Evictable_Idle_Time_Millis= 保持空闲最小时间值 Dec-Dcm_Connection_Make_Sure_Delete= 确定删除该数据连接? Dec-Dcm_Connection_ReConnect= 重新连接 Dec-Dcm_Connection_JNDI_Form_ConnectionName= JNDI的名字 +Dec-Dcm_Connection_JNDI_Form_Connection= 数据来自数据连接 Dec-Dcm_Connection_Form_JNDI_Context= 上下文 Dec-Dcm_Connection_Form_JNDI_Advanced= 高级 Dec-Dcm_Connection_Form_JNDI_Other_Attributes= 其他属性 -Dec-Dcm_Connection_Form_JNDI_Collapse-Attributes= 收起 \ No newline at end of file +Dec-Dcm_Connection_Form_JNDI_Collapse-Attributes= 收起 +Dec-Dcm_Connection_JNDI= JNDI数据连接 +Dec-Dcm_Connection_JNDI_Warning= 注意:需要把包含INTIAL_CONTEXT_FACTORY类的.jar文件复制到软件安装目录下的/lib目录下 +Dec-Dcm_Connection_Error= 接口访问错误 +BI-Multi_Date_Quarter_End= 季度末 +BI-Multi_Date_Month_Begin= 月初 +BI-Multi_Date_YMD= 年月日 +BI-Custom_Color= 自定义颜色 +BI-Numerical_Interval_Input_Data= 请输入数值 +BI-Please_Input_Natural_Number= 请输入非负整数 +BI-No_More_Data= 无更多数据 +BI-Basic_Altogether= 共 +BI-Basic_Sunday= 星期日 +BI-Widget_Background_Colour= 组件背景 +BI-Color_Picker_Error_Text= 请输入0~255的正整数 +BI-Multi_Date_Month= 月 +BI-No_Selected_Item= 没有可选项 +BI-Multi_Date_Year_Begin= 年初 +BI-Quarter_1= 第1季度 +BI-Quarter_2= 第2季度 +BI-Quarter_3= 第3季度 +BI-Quarter_4= 第4季度 +BI-Multi_Date_Year_Next= 年后 +BI-Multi_Date_Month_Prev= 个月前 +BI-Month_Trigger_Error_Text= 请输入1~12的正整数 +BI-Less_And_Equal= 小于等于 +BI-Year_Trigger_Invalid_Text= 请输入有效时间 +BI-Multi_Date_Week_Next= 周后 +BI-Font_Size= 字号 +BI-Basic_Total= 共 +BI-Already_Selected= 已选择 +BI-Formula_Insert= 插入 +BI-Select_All= 全选 +BI-Basic_Tuesday= 星期二 +BI-Multi_Date_Month_End= 月末 +BI-Load_More= 点击加载更多数据 +BI-Basic_September= 九月 +BI-Current_Is_Last_Page= 当前已是最后一页 +BI-Basic_Auto= 自动 +BI-Basic_Count= 个 +BI-Basic_Value= 值 +BI-Basic_Unrestricted= 无限制 +BI-Quarter_Trigger_Error_Text= 请输入1~4的正整数 +BI-Basic_More= 更多 +BI-Basic_Wednesday= 星期三 +BI-Basic_Bold= 加粗 +BI-Basic_Simple_Saturday= 六 +BI-Multi_Date_Month_Next= 个月后 +BI-Basic_March= 三月 +BI-Current_Is_First_Page= 当前已是第一页 +BI-Basic_Thursday= 星期四 +BI-Basic_Prompt= 提示 +BI-Multi_Date_Today= 今天 +BI-Multi_Date_Quarter_Prev= 个季度前 +BI-Row_Header= 行表头 +BI-Date_Trigger_Error_Text= 日期格式示例:2015-3-11 +BI-Basic_Cancel= 取消 +BI-Basic_January= 一月 +BI-Basic_June= 六月 +BI-Basic_July= 七月 +BI-Basic_April= 四月 +BI-Multi_Date_Quarter_Begin= 季度初 +BI-Multi_Date_Week= 周 +BI-Click_Blank_To_Select= 点击\\空格键\\选中完全匹配项 +BI-Basic_August= 八月 +BI-Word_Align_Left= 文字居左 +BI-Basic_November= 十一月 +BI-Font_Colour= 字体颜色 +BI-Multi_Date_Day_Prev= 天前 +BI-Select_Part= 部分选择 +BI-Multi_Date_Day_Next= 天后 +BI-Less_Than= 小于 +BI-Basic_February= 二月 +BI-Multi_Date_Year= 年 +BI-Number_Index= 序号 +BI-Multi_Date_Week_Prev= 周前 +BI-Next_Page= 下一页 +BI-Right_Page= 向右翻页 +BI-Numerical_Interval_Signal_Value= 前后值相等,请将操作符改为“≤” +BI-Basic_December= 十二月 +BI-Basic_Saturday= 星期六 +BI-Basic_Simple_Wednesday= 三 +BI-Multi_Date_Quarter_Next= 个季度后 +BI-Basic_October= 十月 +BI-Basic_Simple_Friday= 五 +BI-Basic_Save= 保存 +BI-Numerical_Interval_Number_Value= 请保证前面的数值小于/等于后面的数值 +BI-Previous_Page= 上一页 +BI-No_Select= 搜索结果为空 +BI-Basic_Clears= 清空 +BI-Created_By_Me= 我创建的 +BI-Basic_Simple_Tuesday= 二 +BI-Word_Align_Right= 文字居右 +BI-Summary_Values= 汇总 +BI-Basic_Clear= 清除 +BI-Upload_File_Size_Error= 文件大小不支持 +BI-Up_Page= 向上翻页 +BI-Basic_Simple_Sunday= 日 +BI-Multi_Date_Relative_Current_Time= 相对当前时间 +BI-Selected_Data= 已选数据: +BI-Multi_Date_Quarter= 季度 +BI-Check_Selected= 查看已选 +BI-Basic_Search= 搜索 +BI-Basic_May= 五月 +BI-Continue_Select= 继续选择 +BI-Please_Input_Positive_Integer= 请输入正整数 +BI-Upload_File_Type_Error= 文件类型不支持 +BI-Upload_File_Error= 文件上传失败 +BI-Basic_Friday= 星期五 +BI-Down_Page= 向下翻页 +BI-Basic_Monday= 星期一 +BI-Left_Page= 向左翻页 +BI-Transparent_Color= 透明 +BI-Basic_Simple_Monday= 一 +BI-Multi_Date_Year_End= 年末 +BI-Time_Interval_Error_Text= 请保证开始时间早于/等于结束时间 +BI-Basic_Time= 时间 +BI-Basic_OK= 确定 +BI-Basic_Sure= 确定 +BI-Basic_Simple_Thursday= 四 +BI-Multi_Date_Year_Prev= 年前 +BI-Tiao_Data= 条数据 +BI-Basic_Italic= 斜体 +BI-Basic_Dynamic_Title= 动态时间 +BI-Basic_Year= 年 +BI-Basic_Single_Quarter= 季 +BI-Basic_Month= 月 +BI-Basic_Week= 周 +BI-Basic_Day= 天 +BI-Basic_Work_Day= 工作日 +BI-Basic_Front= 前 +BI-Basic_Behind= 后 +BI-Basic_Empty= 空 +BI-Basic_Month_End= 月末 +BI-Basic_Month_Begin= 月初 +BI-Basic_Year_End= 年末 +BI-Basic_Year_Begin= 年初 +BI-Basic_Quarter_End= 季末 +BI-Basic_Quarter_Begin= 季初 +BI-Basic_Week_End= 周末 +BI-Basic_Week_Begin= 周初 +BI-Basic_Current_Day= 当天 +BI-Basic_Begin_Start= 初 +BI-Basic_End_Stop= 末 +BI-Basic_Current_Year= 今年 +BI-Basic_Year_Fen= 年份 +BI-Basic_Current_Month= 本月 +BI-Basic_Current_Quarter= 本季度 +BI-Basic_Year_Month= 年月 +BI-Basic_Year_Quarter= 年季度 +BI-Basic_Input_Can_Not_Null= 输入框不能为空 +BI-Basic_Date_Time_Error_Text= 日期格式示例:2015-3-11 00:00:00 +BI-Basic_Input_From_To_Number= 请输入{R1}的数值 +BI-Basic_Or= 或 +BI-Basic_And= 且 +BI-Conf_Add_Formula= 添加公式 +BI-Conf_Add_Condition= 添加条件 +BI-Conf_Formula_And= 且公式条件 +BI-Conf_Formula_Or= 或公式条件 +BI-Conf_Condition_And= 且条件 +BI-Conf_Condition_Or= 或条件 +BI-Microsoft_YaHei= 微软雅黑 +BI-Apple_Light= 苹方-light +BI-Font_Family= 字体 +BI-Basic_Please_Input_Content= 请输入内容 +BI-Word_Align_Center= 文字居中 +BI-Basic_Please_Enter_Number_Between= 请输入{R1}-{R2}的值 +BI-More_Than= 大于 +BI-More_And_Equal= 大于等于 +BI-Please_Enter_SQL= 请输入SQL +BI-Basic_Click_To_Add_Text= +点击新增\\{R1}\\ +BI-Basic_Please_Select= 请选择 +BI-Basic_Font_Color= 文字颜色 +BI-Basic_Background_Color= 背景色 +BI-Basic_Underline= 下划线 +BI-Basic_Param_Month= {R1}月 +BI-Basic_Param_Day= {R1}日 +BI-Basic_Param_Quarter= {R1}季度 +BI-Basic_Param_Week_Count= 第{R1}周 +BI-Basic_Param_Hour= {R1}时 +BI-Basic_Param_Minute= {R1}分 +BI-Basic_Param_Second= {R1}秒 +BI-Basic_Param_Year= {R1}年 +BI-Basic_Date_Day= 日 +BI-Basic_Hour_Sin= 时 +BI-Basic_Seconds= 秒 +BI-Basic_Minute= 分 +BI-Basic_Wan= 万 +BI-Basic_Million= 百万 +BI-Basic_Billion= 亿 +BI-Basic_Quarter= 季度 +BI-Basic_No_Select= 不选 +BI-Basic_Now= 此刻 \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..dc471da --- /dev/null +++ b/index.html @@ -0,0 +1,44 @@ + + + + + Fine Report + + + + + + + + + +
+ + + + + + diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..ce14d8a --- /dev/null +++ b/jest.config.js @@ -0,0 +1,26 @@ +const { pathsToModuleNameMapper } = require('ts-jest/utils'); +// In the following statement, replace `./tsconfig` with the path to your `tsconfig` file +// which contains the path mapping (ie the `compilerOptions.paths` option): +const { jsonc } = require('jsonc'); +const { readFileSync } = require('fs'); + +const { compilerOptions } = jsonc.parse(readFileSync('./tsconfig.json', { encoding: 'utf8' })); + +module.exports = { + transform: { + '^.+\\.tsx?$': 'ts-jest', + }, + testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$', + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], + testEnvironment: './config/jest.environment.js', + moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { + prefix: '', + }), + globals: { + 'ts-jest': { + diagnostics: { + ignoreCodes: ['TS151001'], + }, + }, + }, +}; diff --git a/lib/transform-i18n/transform-i18n.js b/lib/transform-i18n/transform-i18n.js new file mode 100644 index 0000000..133610d --- /dev/null +++ b/lib/transform-i18n/transform-i18n.js @@ -0,0 +1,15 @@ +const { resolve } = require('path'); +const { writeFileSync } = require('fs'); +const propertiesReader = require('properties-reader'); + +let content = ''; + +const properties = propertiesReader(resolve(__dirname, '../../i18n/zh_cn.properties')); + +properties.each((key, value) => { + content += ` '${key}': '${value}',\n`; +}); + +writeFileSync(resolve(__dirname, '../../private/i18n.ts'), `export default { +${content}}; +`); diff --git a/lib/upgrade/index.js b/lib/upgrade/index.js new file mode 100644 index 0000000..a8dd672 --- /dev/null +++ b/lib/upgrade/index.js @@ -0,0 +1,7 @@ +const { execSync } = require('child_process'); + +const repositories = ['fineui', 'fineui-materials']; + +repositories.forEach(repository => { + execSync(`yarn upgrade ${repository}`); +}); diff --git a/package.json b/package.json index 8c5a597..3c1bd3b 100644 --- a/package.json +++ b/package.json @@ -1,38 +1,81 @@ { - "name": "database-connection", + "name": "decision-webui-dcm", "version": "1.0.0", - "description": "数据连接设置页面", - "main": "index.js", - "scripts": { - "start": "webpack-dev-server --mode development --open", - "build": "webpack --mode production" + "description": "", + "main": "src/index.ts", + "repository": "", + "author": "decision", + "license": "MIT", + "dependencies": { + "@types/jss": "9.5.8", + "autoprefixer": "^9.6.1", + "es6-promise": "4.2.6", + "jss": "9.8.7", + "jss-plugin-global": "10.0.0-alpha.7", + "jss-plugin-nested": "10.0.0-alpha.7", + "nprogress": "0.2.0" }, - "author": "alan ", - "license": "ISC", "devDependencies": { - "@types/node": "^12.0.2", - "@typescript-eslint/eslint-plugin": "^1.6.0", - "@typescript-eslint/parser": "^1.6.0", - "copy-webpack-plugin": "^5.0.2", - "css-loader": "^2.1.1", - "eslint": "^5.16.0", - "file-loader": "^3.0.1", - "html-webpack-plugin": "^3.2.0", - "less": "^3.9.0", - "less-loader": "^5.0.0", - "mini-css-extract-plugin": "^0.6.0", - "node-sass": "^4.11.0", - "path": "^0.12.7", - "sass-loader": "^7.1.0", - "style-loader": "^0.23.1", - "ts-loader": "^5.3.3", - "typescript": "^3.4.1", - "webpack": "^4.29.6", - "webpack-cli": "^3.3.0", - "webpack-dev-server": "^3.2.1", - "webpack-stream": "^5.2.1" + "@babel/core": "7.4.5", + "@babel/plugin-proposal-class-properties": "^7.5.0", + "@babel/plugin-proposal-decorators": "7.4.4", + "@babel/polyfill": "7.4.4", + "@babel/preset-env": "7.4.5", + "@babel/preset-typescript": "7.3.3", + "@types/jest": "24.0.11", + "@typescript-eslint/eslint-plugin": "1.7.0", + "@typescript-eslint/parser": "1.7.0", + "axios": "0.18.0", + "babel-loader": "8.0.6", + "body-parser": "1.18.3", + "chokidar": "2.1.5", + "cross-env": "5.2.0", + "css-loader": "3.0.0", + "eslint": "5.16.0", + "eslint-plugin-jest": "22.4.1", + "express": "4.16.4", + "html-webpack-plugin": "3.2.0", + "http-proxy": "1.17.0", + "husky": "1.3.1", + "jest": "24.7.1", + "jest-environment-jsdom": "24.7.1", + "jsdom": "15.0.0", + "jsonc": "1.1.0", + "less": "3.9.0", + "less-loader": "5.0.0", + "mini-css-extract-plugin": "0.7.0", + "npm-run-all": "4.1.5", + "postcss-loader": "3.0.0", + "postcss-simple-vars": "5.0.2", + "properties-reader": "0.0.16", + "source-map-loader": "0.2.4", + "style-loader": "0.23.1", + "ts-jest": "24.0.2", + "typescript": "3.5.1", + "webpack": "4.35.2", + "webpack-cli": "3.3.5", + "webpack-dev-server": "3.7.2", + "webpack-merge": "4.2.1", + "ydoc": "4.1.0", + "ydoc-plugin-jsdoc": "0.0.3" }, "optionalDependencies": { - "fineui": "git+ssh://git@cloud.finedevelop.com:7999/visual/fineui.git" + "fineui": "git+ssh://git@cloud.finedevelop.com:7999/visual/fineui.git", + "fineui-materials": "git+ssh://git@cloud.finedevelop.com:7999/fui/fineui-materials.git#release/10.0" + }, + "scripts": { + "dev": "cross-env NODE_ENV=mock webpack-dev-server -p --progress --config=webpack/webpack.dev.js --mode development --open", + "build": "webpack -p --progress --config=webpack/webpack.prod.js --mode production", + "eslint": "eslint './*.js' './**/*.js' './**/*.ts'", + "eslint-fix": "eslint './*.js' './**/*.js' './**/*.ts' --fix", + "const": "javac -encoding UTF-8 -d constants/classes constants/*.java && java -cp constants/classes FRConstantsWriter", + "i18n": "node ./lib/transform-i18n/transform-i18n.js", + "test": "jest --passWithNoTests", + "upgrade": "node lib/upgrade" + }, + "husky": { + "hooks": { + "pre-push": "npm run eslint && npm run test" + } } } diff --git a/private/constants.ts b/private/constants.ts deleted file mode 100644 index f882542..0000000 --- a/private/constants.ts +++ /dev/null @@ -1,373 +0,0 @@ -export const OTHER_CONNECT = 'other'; -export const JNDI_CONNECT = 'JNDI'; -export const MYSQL_CONNECT = 'MySQL'; -export const DEFAULT_INFO = 'DESIGNER'; -export const ACTION_DELETE = 'ACTION_DELETE'; -export const ACTION_COPY = 'ACTION_COPY'; -export const ACTION_TEST = 'ACTION_TEST'; - -export const TAB_LINK_SET = 'TAB_LINK_SET'; -export const TAB_LINK_POOL = 'TAB_LINK_POOL'; - - -export const DATA_LINKS = ['APACHE KYLIN', 'DERBY', 'HP Vertica', 'IBM DB2', 'INFORMIX', 'Microsoft SQL Server', 'MySQL', 'Oracle', 'Privotal Greenplum Database', 'Postgresql', 'GaussDB 200', 'JNDI']; - -export const DATA_BASE_TYPE_OTHER = [ - { - text: 'ADS', - databaseType: 'ads', - driver: 'com.mysql.jdbc.Driver', - url: 'jdbc:mysql://hostname:port/my_ads_db', - }, - { - text: 'Amazon Redshift', - databaseType: 'amazon-redshift', - driver: 'com.amazon.redshift.jdbc4.Driver', - drivers: ['com.amazon.redshift.jdbc4.Driver', 'com.amazon.redshift.jdbc41.Driver'], - url: 'jdbc:redshift://endpoint:port/database', - }, - { - text: 'APACHE IMPALA', - databaseType: 'apache-impala', - driver: 'com.cloudera.impala.jdbc41.Driver', - url: 'jdbc:impala://hostname:port/_impala_builtins', - }, - { - text: 'APACHE KYLIN', - databaseType: 'apache-kylin', - driver: 'org.apache.kylin.jdbc.Driver', - url: 'jdbc:kylin://:/', - }, - { - text: 'APACHE Phoenix', - databaseType: 'apache-phoenix', - driver: 'org.apache.phoenix.jdbc.PhoenixDriver', - url: 'jdbc:phoenix:hostname:port/dbname', - }, - { - text: 'DERBY', - databaseType: 'derby', - driver: 'org.apache.derby.jdbc.ClientDriver', - url: 'jdbc:derby://localhost:1527/', - }, - { - text: 'Gbase 8A', - databaseType: 'gbase-8a', - driver: 'com.gbase.jdbc.Driver', - url: 'jdbc:gbase://hostname:port/dbname', - }, - { - text: 'Gbase 8S', - databaseType: 'gbase-8s', - driver: 'com.gbasedbt.jdbc.IfxDriver', - url: 'jdbc:gbasedbt-sqli://{host}:{port}/{database}', - }, - { - text: 'Gbase 8T', - databaseType: 'gbase-8t', - driver: 'com.informix.jdbc.IfxDriver', - url: 'jdbc:informix-sqli://{host}:{port}/{database}:INFORMIXSERVER={server}', - }, - { - text: 'H2', - databaseType: 'h2', - driver: 'org.h2.Driver', - url: 'jdbc:h2://${ENV_HOME}/../databaseName', - }, - { - text: '华为云DWS', - databaseType: 'hw-dws', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, - { - text: 'FusionInsight elk', - databaseType: 'hw-elk', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, - { - text: 'FusionInsight HD', - databaseType: 'hw-fusioninsight-hd', - driver: 'org.apache.hive.jdbc.HiveDriver', - url: 'jdbc:hive2://10.135.0.110:24002,10.135.0.67:24002,10.135.0.66:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;zk.principal=zookeeper/hadoop;principal=hive/hadoop.hadoop.com@HADOOP.COM;', - }, - { - text: 'GaussDB 200', - databaseType: 'hw-libr-a', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, { - text: 'Hadoop Hive', - databaseType: 'hadoop-hive', - driver: 'org.apache.hive.jdbc.HiveDriver', - url: 'jdbc:hive2://hostname:port/databasename', - }, { - text: 'Hbase', - databaseType: 'hbase', - driver: 'org.apache.phoenix.jdbc.PhoenixDriver', - url: 'jdbc:phoenix:hostname:port/dbname', - }, { - text: 'HP Vertica', - databaseType: 'hp-vertica', - driver: 'com.vertica.jdbc.Driver', - url: 'jdbc:vertica://ip:port/databaseName', - }, { - text: 'Hsql', - databaseType: 'hsql', - driver: 'com.fr.third.org.hsqldb.jdbcDriver', - url: 'jdbc:hsqldb:file:[PATH_TO_DB_FILES]', - }, { - text: 'IBM DB2', - databaseType: 'ibm-db2', - driver: 'com.ibm.db2.jcc.DB2Driver', - url: 'jdbc:db2://hostname:port/dbname', - }, { - text: 'INFORMIX', - databaseType: 'informix', - driver: 'com.informix.jdbc.IfxDriver', - url: 'jdbc:informix-sqli://{host}:{port}/{database}:INFORMIXSERVER={server}', - }, { - text: 'KINGBASE', - databaseType: 'kingbase', - driver: 'com.kingbase.Driver', - url: 'jdbc:kingbase://hostname:port', - }, { - text: 'Microsoft SQL Server', - databaseType: 'sql-server', - driver: 'com.microsoft.sqlserver.jdbc.SQLServerDriver', - url: 'jdbc:sqlserver://localhost:1433;databaseName=', - }, { - text: 'MySQL', - databaseType: 'mysql', - driver: 'com.mysql.jdbc.Driver', - drivers: ['com.mysql.jdbc.Driver', 'org.gjt.mm.mysql.Driver'], - url: 'jdbc:mysql://localhost/dbname', - }, - { - text: 'Oracle', - databaseType: 'oracle', - driver: 'oracle.jdbc.driver.OracleDriver', - url: 'jdbc:oracle:thin:@localhost:1521:databaseName', - }, - { - text: 'Pivotal Greenplum Database', - databaseType: 'pivotal-greenplum-database', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, { - text: 'Postgresql', - databaseType: 'postgresql', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, { - text: 'Presto', - databaseType: 'presto', - driver: 'com.facebook.presto.jdbc.PrestoDriver', - url: 'jdbc:presto://host:port/catalog', - }, { - text: 'SAP HANA', - databaseType: 'sap-hana', - driver: 'com.sap.db.jdbc.Driver', - url: 'jdbc:sap://hostname:port?reconnect=true', - }, { - text: 'SAP Sybase', - databaseType: 'sap-sybase', - driver: 'com.sybase.jdbc4.jdbc.SybDriver', - url: 'jdbc:sybase:Tds:hostname:2638/databasename', - }, { - text: 'SPARK', - databaseType: 'spark', - driver: 'org.apache.hive.jdbc.HiveDriver', - url: 'jdbc:hive2://hostname:port/databasename', - }, { - text: 'Sqlite', - databaseType: 'sqlite', - driver: 'org.sqlite.JDBC', - url: 'jdbc:sqlite:[PATH_TO_DB_FILES]', - }, { - text: 'TeraData', - databaseType: 'teradata', - driver: 'com.ncr.teradata.TeraDriver', - url: 'jdbc:teradata://localhost/CLIENT_CHARSET=EUC_CN,TMODE=TERA,CHARSET=ASCII,LOB_SUPPORT', - }, { - text: 'TRANSWARP INCEPTOR', - databaseType: 'transwarp-inceptor', - driver: 'org.apache.hive.jdbc.HiveDriver', - url: 'jdbc:hive2://hostname:port/databasename', - }, -]; - -export const DATA_BASE_TYPE = [ - { - text: 'APACHE KYLIN', - databaseType: 'apache-kylin', - driver: 'org.apache.kylin.jdbc.Driver', - url: 'jdbc:kylin://:/', - }, - { - text: 'DERBY', - databaseType: 'derby', - driver: 'org.apache.derby.jdbc.ClientDriver', - url: 'jdbc:derby://localhost:1527/', - }, - { - text: 'HP Vertica', - databaseType: 'hp-vertica', - driver: 'com.vertica.jdbc.Driver', - url: 'jdbc:vertica://ip:port/databaseName', - }, - { - text: 'IBM DB2', - databaseType: 'ibm-db2', - driver: 'com.ibm.db2.jcc.DB2Driver', - url: 'jdbc:db2://hostname:port/dbname', - }, - { - text: 'INFORMIX', - databaseType: 'informix', - driver: 'com.informix.jdbc.IfxDriver', - url: 'jdbc:informix-sqli://{host}:{port}/{database}:INFORMIXSERVER={server}', - }, - { - text: 'Microsoft SQL Server', - databaseType: 'sql-server', - driver: 'com.microsoft.sqlserver.jdbc.SQLServerDriver', - url: 'jdbc:sqlserver://localhost:1433;databaseName=', - }, - { - text: 'Oracle', - databaseType: 'oracle', - driver: 'oracle.jdbc.driver.OracleDriver', - url: 'jdbc:oracle:thin:@localhost:1521:databaseName', - }, - { - text: 'Privotal Greenplum Database', - databaseType: 'pivotal-greenplum-database', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, - { - text: 'Postgresql', - databaseType: 'postgresql', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, - { - text: 'GaussDB 200', - databaseType: 'hw-libr-a', - driver: 'org.postgresql.Driver', - url: 'jdbc:postgresql://hostname:port/dbname', - }, - { - text: 'MySQL', - databaseType: 'mysql', - driver: 'com.mysql.jdbc.Driver', - drivers: ['com.mysql.jdbc.Driver', 'org.gjt.mm.mysql.Driver'], - url: 'jdbc:mysql://localhost/dbname', - }, - { - text: OTHER_CONNECT, - databaseType: 'other', - driver: 'org.h2.Driver', - drivers: ['org.h2.Driver', 'com.fr.third.org.hsqldb.jdbcDriver', 'org.sqlite.JDBC'], - url: 'jdbc:h2://${ENV_HOME}/../databaseName', - }, - ...DATA_BASE_TYPE_OTHER, - { - text: JNDI_CONNECT, - }, -]; - -export const JNDI_FACTORYS = ['', 'weblogic.jndi.WLInitialContextFactory', 'com.ibm.websphere.naming.WsnInitialContextFactory', 'org.jboss.naming.HttpNamingContextFactory', 'org.jnp.interfaces.NamingContextFactory', 'com.caucho.burlap.BurlapContextFactory']; - -export const OTHER_ATTRIBUTES = [ - { - text: 'OBJECT_FACTORIES', - name: 'objectFactories', - }, - { - text: 'STATE_FACTORIES', - name: 'stateFactories', - }, - { - text: 'URL_PKG_PREFIXES', - name: 'urlPkgPrefixes', - }, - { - text: 'DNS_URL', - name: 'dnsUrl', - }, - { - text: 'AUTHORITATIVE', - name: 'authoritative', - }, - { - text: 'BATCHSIZE', - name: 'batchSize', - }, - { - text: 'REFERRAL', - name: 'referral', - }, - { - text: 'SECURITY_PROTOCOL', - name: 'securityProtocol', - }, - { - text: 'SECURITY_AUTHENTICATION', - name: 'securityAuthentication', - }, - { - text: 'LANGUAGE', - name: 'language', - }, - { - text: 'APPLET', - name: 'applet', - }, -]; - -export const CONNECT_CHARSET = [ - { - text: 'GBK', - value: 'GBK', - }, - { - text: 'BIG5', - value: 'BIG5', - }, - { - text: 'ISO-8859-1', - value: 'ISO-8859-1', - }, - { - text: 'UTF-8', - value: 'UTF-8', - }, - { - text: 'UTF-16', - value: 'UTF-16', - }, - { - text: 'EUC_JP', - value: 'EUC_JP', - }, - { - text: 'EUC_KR', - value: 'EUC_KR', - }, - { - text: 'CP850', - value: 'CP850', - }, -]; - - -const DecDcm = { - TEST_STATUS_WAITING: 1, - TEST_STATUS_SUCCESS: 2, - TEST_STATUS_FAIL: 3, -}; - -export default DecDcm; diff --git a/private/i18n.ts b/private/i18n.ts index 03caabc..29a533a 100644 --- a/private/i18n.ts +++ b/private/i18n.ts @@ -1,63 +1,286 @@ export default { - 'Dec-Dcm_Connection_Management': '数据连接管理', - 'Dec-Dcm_Pool_Connection_Management': '连接池管理', - 'Dec-Dcm_Data_Connections': '数据连接', - 'Dec-Dcm_Active_Connections_Number': '活动连接数', - 'Dec-Dcm_Leisure_Connections_Number': '空闲连接数', - 'Dec-Dcm_Connections': '连接', - 'Dec-Dcm_Default': '默认', - 'Dec-Dcm_Delete': '删除', - 'Dec-Dcm_Test_Connection': '测试连接', - 'Dec-Dcm_Copy': '复制', - 'Dec-Dcm_Edit': '编辑', - 'Dec-Dcm_Save': '保存', - 'Dec-Dcm_Yes': '是', - 'Dec-Dcm_No': '否', - 'Dec-Dcm_Search': '搜索', - 'Dec-Dcm_Type': '类型', - 'Dec-Dcm_Other': '其他', - 'Dec-Dcm_Tips': '提示', - 'Dec-Dcm_Back': '返回', - 'Dec-Dcm_Creator': '创建者', - 'Dec-Dcm_First_Step': '第一步', - 'Dec-Dcm_Second_Step': '第二步', - 'Dec-Dcm_Third_Step': '第三步', - 'Dec-Dcm_Connection_Detailed_Information': '详细信息', - 'Dec-Dcm_Connection_Handup_Information': '收起信息', - 'Dec-Dcm_Connection_Testing': '正在测试连接,请稍候...', - 'Dec-Dcm_Connection_Test_Fail': '测试连接失败', - 'Dec-Dcm_Connection_Test_Success': '连接成功', - 'Dec-Dcm_Connection_Option_Cannot_Find': '找不到该连接的配置信息', - 'Dec-Dcm_Connection_Config_No_Save': '当前设置尚未保存,是否保存?', - 'Dec-Dcm_Connection_New': '新建数据连接', - 'Dec-Dcm_Connection_More': '更多数据连接...', - 'Dec-Dcm_Connection_More_Title': '更多数据连接', - 'Dec-Dcm_Connection_Other': '其他', - 'Dec-Dcm_Connection_Plase_Add_One': '请选择左侧数据连接或点击新建数据连接', - 'Dec-Dcm_Connection_Is_Existence': '数据连接名已存在', - 'Dec-Dcm_Connection_Form_ConnectionName': '数据连接名', - 'Dec-Dcm_Connection_Form_ConnectionName-Change-Confirm': '*修改数据连接名会影响相关数据表和仪表板', - 'Dec-Dcm_Connection_Form_Driver': '驱动器', - 'Dec-Dcm_Connection_Form_URL': 'URL', - 'Dec-Dcm_Connection_Form_Place_Input': '请输入', - 'Dec-Dcm_Connection_Form_OriginalCharsetName': '编码', - 'Dec-Dcm_Connection_Form_Auto': '自动', - 'Dec-Dcm_Connection_Form_UserName': '用户名', - 'Dec-Dcm_Connection_Form_Password': '密码', - 'Dec-Dcm_Connection_Form_Pool_Properties': '连接池属性', - 'Dec-Dcm_Connection_Form_SQL_Validation_Query': 'SQL验证查询', - 'Dec-Dcm_Connection_Form_Connection-Check': '获取连接前校验', - 'Dec-Dcm_Connection_Form_Connection_Max_Number': '最大活动连接数', - 'Dec-Dcm_Connection_Form_Place_Input-Number': '请输入有效的正整数', - 'Dec-Dcm_Connection_Form_Pattern': '模式', - 'Dec-Dcm_Connection_Form_Database_Addr': '数据库地址', - 'Dec-Dcm_Connection_Form_Database_Port': '端口号', - 'Dec-Dcm_Connection_Make_Sure_Delete': '确定删除该数据连接?', - 'Dec-Dcm_Connection_ReConnect': '重新连接', - 'Dec-Dcm_Connection_JNDI_Form_ConnectionName': 'JNDI的名字', - 'Dec-Dcm_Connection_Form_JNDI_Context': '上下文', - 'Dec-Dcm_Connection_Form_JNDI_Advanced': '高级', - 'Dec-Dcm_Connection_Form_JNDI_Other_Attributes': '其他属性', - 'Dec-Dcm_Connection_Form_JNDI_Collapse-Attributes': '收起', - 'Dec-Dcm_Connection_Form_JNDI_Notice': '注意:需要把包含INITIAL_CONTEXT_FACTORY类的.jar文件复制到软件安装目录下的/lib目录下.', + 'Dec-Dcm_Connection_New': '新建数据连接', + 'Dec-Dcm_Connection_Name': '数据连接名称', + 'Dec-Dcm_Connection_None': '无可用数据连接,请点击添加', + 'Dec-Dcm_Connection_Test': '测试连接', + 'Dec-Dcm_Connection_Commonly': '常用', + 'Dec-Dcm_Connection_Type_Filter': '类型筛选:', + 'Dec-Dcm_Connection_Support_Inner': '内置支持', + 'Dec-Dcm_Connection_Support_Plugin': '插件支持', + 'Dec-Dcm_Connection_Filter_Tip': '提示:当前仅支持部分插件类型,未支持类型请使用设计器的旧版本数据连接进行创建', + 'Dec-Dcm_Connection_All': '所有', + 'Dec-Dcm_Connection_Other': '其他', + 'Dec-Dcm_Connection_Management': '数据连接管理', + 'Dec-Dcm_Pool_Connection_Management': '连接池状态', + 'Dec-Dcm_Data_Connections': '数据连接', + 'Dec-Dcm_Active_Connections_Number': '活动连接数', + 'Dec-Dcm_Leisure_Connections_Number': '空闲连接数', + 'Dec-Dcm_Connections': '连接', + 'Dec-Dcm_Default': '默认', + 'Dec-Dcm_Delete': '删除', + 'Dec-Dcm_Millisecond': '毫秒', + 'Dec-Dcm_Test_Connection': '测试连接', + 'Dec-Dcm_Copy': '复制', + 'Dec-Dcm_Edit': '编辑', + 'Dec-Dcm_Save': '保存', + 'Dec-Dcm_Yes': '是', + 'Dec-Dcm_No': '否', + 'Dec-Dcm_Search': '搜索', + 'Dec-Dcm_Type': '类型:{R1}', + 'Dec-Dcm_Other': '其他', + 'Dec-Dcm_Tips': '提示', + 'Dec-Dcm_Back': '返回', + 'Dec-Dcm_Creator': '创建者:{R1}', + 'Dec-Dcm_First_Step': '第一步', + 'Dec-Dcm_Second_Step': '第二步', + 'Dec-Dcm_Third_Step': '第三步', + 'Dec-Dcm_Connection_ConnectionName_Cannt_Null': '数据连接名不可为空', + 'Dec-Dcm_Connection_Np_Registered': '该类型暂仅支持在设计器中使用旧版本数据连接查看', + 'Dec-Dcm_Connection_Detailed_Information': '详细信息', + 'Dec-Dcm_Connection_Handup_Information': '收起信息', + 'Dec-Dcm_Connection_Testing': '正在测试连接,请稍候...', + 'Dec-Dcm_Connection_Test_Fail': '{R1}测试连接失败', + 'Dec-Dcm_Connection_Test_Success': '连接成功', + 'Dec-Dcm_Connection_Option_Cannot_Find': '找不到该连接的配置信息', + 'Dec-Dcm_Connection_Config_No_Save': '当前设置尚未保存,是否保存?', + 'Dec-Dcm_Connection_More': '更多数据连接...', + 'Dec-Dcm_Connection_More_Title': '更多数据连接', + 'Dec-Dcm_Connection_Plase_Add_One': '请选择左侧数据连接或点击新建数据连接', + 'Dec-Dcm_Connection_Is_Existence': '数据连接名已存在', + 'Dec-Dcm_Connection_No_Search_Result': '无搜索结果', + 'Dec-Dcm_Connection_Form_ConnectionName': '数据连接名', + 'Dec-Dcm_Connection_Form_ConnectionName-Change-Confirm': '*修改数据连接名会影响相关数据表和仪表板', + 'Dec-Dcm_Connection_Form_Driver': '驱动', + 'Dec-Dcm_Connection_Form_URL': 'URL', + 'Dec-Dcm_Connection_Form_Database_URL': '数据库URL', + 'Dec-Dcm_Connection_Form_Place_Input': '请输入', + 'Dec-Dcm_Connection_Form_OriginalCharsetName': '编码', + 'Dec-Dcm_Connection_Form_Auto': '自动', + 'Dec-Dcm_Connection_Form_Host': '主机', + 'Dec-Dcm_Connection_Form_AuthType': '认证方式', + 'Dec-Dcm_Connection_Form_UserName': '用户名', + 'Dec-Dcm_Connection_Form_Password': '密码', + 'Dec-Dcm_Connection_Form_Principal': '客户端principal', + 'Dec-Dcm_Connection_Form_KeyPath': 'keytab密钥路径', + 'Dec-Dcm_Connection_Form_Pool_Properties': '连接池属性', + 'Dec-Dcm_Connection_Form_SQL_Validation_Query': 'SQL验证查询', + 'Dec-Dcm_Connection_Form_Connection-Check': '获取连接前校验', + 'Dec-Dcm_Connection_Form_Connection_Max_Number': '最大活动连接数', + 'Dec-Dcm_Connection_Form_Place_Input-Number': '请输入有效的正整数', + 'Dec-Dcm_Connection_Form_Pattern': '模式', + 'Dec-Dcm_Connection_Form_Database_Addr': '数据库地址', + 'Dec-Dcm_Connection_Form_Database_Name': '数据库名称', + 'Dec-Dcm_Connection_Form_Database_Port': '端口', + 'Dec-Dcm_Connection_Form_Database_Advanced_Setting': '高级设置', + 'Dec-Dcm_Connection_Form_Database_Initial_Size': '初始化连接数', + 'Dec-Dcm_Connection_Form_Database_Max_Active': '最大活动连接数', + 'Dec-Dcm_Connection_Form_Database_Max_Idle': '最大空闲连接数', + 'Dec-Dcm_Connection_Form_Database_Max_Wait': '最大等待时间', + 'Dec-Dcm_Connection_Form_Database_Validation_Query': 'SQL验证查询', + 'Dec-Dcm_Connection_Form_Database_Test_On_Borrow': '获取连接前检验', + 'Dec-Dcm_Connection_Form_Database_Test_On_Return': '归还连接前检验', + 'Dec-Dcm_Connection_Form_Database_Test_While_Idle': '开启空闲回收器检验', + 'Dec-Dcm_Connection_Form_Database_Test_Between_Eviction_Millis': '空闲连接回收器休眠时间', + 'Dec-Dcm_Connection_Form_Database_Tests_PerEviction_Run_Num': '空闲连接回收检查数', + 'Dec-Dcm_Connection_Form_Database_Min_Evictable_Idle_Time_Millis': '保持空闲最小时间值', + 'Dec-Dcm_Connection_Make_Sure_Delete': '确定删除该数据连接?', + 'Dec-Dcm_Connection_ReConnect': '重新连接', + 'Dec-Dcm_Connection_JNDI_Form_ConnectionName': 'JNDI的名字', + 'Dec-Dcm_Connection_JNDI_Form_Connection': '数据来自数据连接', + 'Dec-Dcm_Connection_Form_JNDI_Context': '上下文', + 'Dec-Dcm_Connection_Form_JNDI_Advanced': '高级', + 'Dec-Dcm_Connection_Form_JNDI_Other_Attributes': '其他属性', + 'Dec-Dcm_Connection_Form_JNDI_Collapse-Attributes': '收起', + 'Dec-Dcm_Connection_JNDI': 'JNDI数据连接', + 'Dec-Dcm_Connection_JNDI_Warning': '注意:需要把包含INTIAL_CONTEXT_FACTORY类的.jar文件复制到软件安装目录下的/lib目录下', + 'Dec-Dcm_Connection_Error': '接口访问错误', + 'BI-Multi_Date_Quarter_End': '季度末', + 'BI-Multi_Date_Month_Begin': '月初', + 'BI-Multi_Date_YMD': '年月日', + 'BI-Custom_Color': '自定义颜色', + 'BI-Numerical_Interval_Input_Data': '请输入数值', + 'BI-Please_Input_Natural_Number': '请输入非负整数', + 'BI-No_More_Data': '无更多数据', + 'BI-Basic_Altogether': '共', + 'BI-Basic_Sunday': '星期日', + 'BI-Widget_Background_Colour': '组件背景', + 'BI-Color_Picker_Error_Text': '请输入0~255的正整数', + 'BI-Multi_Date_Month': '月', + 'BI-No_Selected_Item': '没有可选项', + 'BI-Multi_Date_Year_Begin': '年初', + 'BI-Quarter_1': '第1季度', + 'BI-Quarter_2': '第2季度', + 'BI-Quarter_3': '第3季度', + 'BI-Quarter_4': '第4季度', + 'BI-Multi_Date_Year_Next': '年后', + 'BI-Multi_Date_Month_Prev': '个月前', + 'BI-Month_Trigger_Error_Text': '请输入1~12的正整数', + 'BI-Less_And_Equal': '小于等于', + 'BI-Year_Trigger_Invalid_Text': '请输入有效时间', + 'BI-Multi_Date_Week_Next': '周后', + 'BI-Font_Size': '字号', + 'BI-Basic_Total': '共', + 'BI-Already_Selected': '已选择', + 'BI-Formula_Insert': '插入', + 'BI-Select_All': '全选', + 'BI-Basic_Tuesday': '星期二', + 'BI-Multi_Date_Month_End': '月末', + 'BI-Load_More': '点击加载更多数据', + 'BI-Basic_September': '九月', + 'BI-Current_Is_Last_Page': '当前已是最后一页', + 'BI-Basic_Auto': '自动', + 'BI-Basic_Count': '个', + 'BI-Basic_Value': '值', + 'BI-Basic_Unrestricted': '无限制', + 'BI-Quarter_Trigger_Error_Text': '请输入1~4的正整数', + 'BI-Basic_More': '更多', + 'BI-Basic_Wednesday': '星期三', + 'BI-Basic_Bold': '加粗', + 'BI-Basic_Simple_Saturday': '六', + 'BI-Multi_Date_Month_Next': '个月后', + 'BI-Basic_March': '三月', + 'BI-Current_Is_First_Page': '当前已是第一页', + 'BI-Basic_Thursday': '星期四', + 'BI-Basic_Prompt': '提示', + 'BI-Multi_Date_Today': '今天', + 'BI-Multi_Date_Quarter_Prev': '个季度前', + 'BI-Row_Header': '行表头', + 'BI-Date_Trigger_Error_Text': '日期格式示例:2015-3-11', + 'BI-Basic_Cancel': '取消', + 'BI-Basic_January': '一月', + 'BI-Basic_June': '六月', + 'BI-Basic_July': '七月', + 'BI-Basic_April': '四月', + 'BI-Multi_Date_Quarter_Begin': '季度初', + 'BI-Multi_Date_Week': '周', + 'BI-Click_Blank_To_Select': '点击\\空格键\\选中完全匹配项', + 'BI-Basic_August': '八月', + 'BI-Word_Align_Left': '文字居左', + 'BI-Basic_November': '十一月', + 'BI-Font_Colour': '字体颜色', + 'BI-Multi_Date_Day_Prev': '天前', + 'BI-Select_Part': '部分选择', + 'BI-Multi_Date_Day_Next': '天后', + 'BI-Less_Than': '小于', + 'BI-Basic_February': '二月', + 'BI-Multi_Date_Year': '年', + 'BI-Number_Index': '序号', + 'BI-Multi_Date_Week_Prev': '周前', + 'BI-Next_Page': '下一页', + 'BI-Right_Page': '向右翻页', + 'BI-Numerical_Interval_Signal_Value': '前后值相等,请将操作符改为“≤”', + 'BI-Basic_December': '十二月', + 'BI-Basic_Saturday': '星期六', + 'BI-Basic_Simple_Wednesday': '三', + 'BI-Multi_Date_Quarter_Next': '个季度后', + 'BI-Basic_October': '十月', + 'BI-Basic_Simple_Friday': '五', + 'BI-Basic_Save': '保存', + 'BI-Numerical_Interval_Number_Value': '请保证前面的数值小于/等于后面的数值', + 'BI-Previous_Page': '上一页', + 'BI-No_Select': '搜索结果为空', + 'BI-Basic_Clears': '清空', + 'BI-Created_By_Me': '我创建的', + 'BI-Basic_Simple_Tuesday': '二', + 'BI-Word_Align_Right': '文字居右', + 'BI-Summary_Values': '汇总', + 'BI-Basic_Clear': '清除', + 'BI-Upload_File_Size_Error': '文件大小不支持', + 'BI-Up_Page': '向上翻页', + 'BI-Basic_Simple_Sunday': '日', + 'BI-Multi_Date_Relative_Current_Time': '相对当前时间', + 'BI-Selected_Data': '已选数据:', + 'BI-Multi_Date_Quarter': '季度', + 'BI-Check_Selected': '查看已选', + 'BI-Basic_Search': '搜索', + 'BI-Basic_May': '五月', + 'BI-Continue_Select': '继续选择', + 'BI-Please_Input_Positive_Integer': '请输入正整数', + 'BI-Upload_File_Type_Error': '文件类型不支持', + 'BI-Upload_File_Error': '文件上传失败', + 'BI-Basic_Friday': '星期五', + 'BI-Down_Page': '向下翻页', + 'BI-Basic_Monday': '星期一', + 'BI-Left_Page': '向左翻页', + 'BI-Transparent_Color': '透明', + 'BI-Basic_Simple_Monday': '一', + 'BI-Multi_Date_Year_End': '年末', + 'BI-Time_Interval_Error_Text': '请保证开始时间早于/等于结束时间', + 'BI-Basic_Time': '时间', + 'BI-Basic_OK': '确定', + 'BI-Basic_Sure': '确定', + 'BI-Basic_Simple_Thursday': '四', + 'BI-Multi_Date_Year_Prev': '年前', + 'BI-Tiao_Data': '条数据', + 'BI-Basic_Italic': '斜体', + 'BI-Basic_Dynamic_Title': '动态时间', + 'BI-Basic_Year': '年', + 'BI-Basic_Single_Quarter': '季', + 'BI-Basic_Month': '月', + 'BI-Basic_Week': '周', + 'BI-Basic_Day': '天', + 'BI-Basic_Work_Day': '工作日', + 'BI-Basic_Front': '前', + 'BI-Basic_Behind': '后', + 'BI-Basic_Empty': '空', + 'BI-Basic_Month_End': '月末', + 'BI-Basic_Month_Begin': '月初', + 'BI-Basic_Year_End': '年末', + 'BI-Basic_Year_Begin': '年初', + 'BI-Basic_Quarter_End': '季末', + 'BI-Basic_Quarter_Begin': '季初', + 'BI-Basic_Week_End': '周末', + 'BI-Basic_Week_Begin': '周初', + 'BI-Basic_Current_Day': '当天', + 'BI-Basic_Begin_Start': '初', + 'BI-Basic_End_Stop': '末', + 'BI-Basic_Current_Year': '今年', + 'BI-Basic_Year_Fen': '年份', + 'BI-Basic_Current_Month': '本月', + 'BI-Basic_Current_Quarter': '本季度', + 'BI-Basic_Year_Month': '年月', + 'BI-Basic_Year_Quarter': '年季度', + 'BI-Basic_Input_Can_Not_Null': '输入框不能为空', + 'BI-Basic_Date_Time_Error_Text': '日期格式示例:2015-3-11 00:00:00', + 'BI-Basic_Input_From_To_Number': '请输入{R1}的数值', + 'BI-Basic_Or': '或', + 'BI-Basic_And': '且', + 'BI-Conf_Add_Formula': '添加公式', + 'BI-Conf_Add_Condition': '添加条件', + 'BI-Conf_Formula_And': '且公式条件', + 'BI-Conf_Formula_Or': '或公式条件', + 'BI-Conf_Condition_And': '且条件', + 'BI-Conf_Condition_Or': '或条件', + 'BI-Microsoft_YaHei': '微软雅黑', + 'BI-Apple_Light': '苹方-light', + 'BI-Font_Family': '字体', + 'BI-Basic_Please_Input_Content': '请输入内容', + 'BI-Word_Align_Center': '文字居中', + 'BI-Basic_Please_Enter_Number_Between': '请输入{R1}-{R2}的值', + 'BI-More_Than': '大于', + 'BI-More_And_Equal': '大于等于', + 'BI-Please_Enter_SQL': '请输入SQL', + 'BI-Basic_Click_To_Add_Text': '+点击新增\\{R1}\\', + 'BI-Basic_Please_Select': '请选择', + 'BI-Basic_Font_Color': '文字颜色', + 'BI-Basic_Background_Color': '背景色', + 'BI-Basic_Underline': '下划线', + 'BI-Basic_Param_Month': '{R1}月', + 'BI-Basic_Param_Day': '{R1}日', + 'BI-Basic_Param_Quarter': '{R1}季度', + 'BI-Basic_Param_Week_Count': '第{R1}周', + 'BI-Basic_Param_Hour': '{R1}时', + 'BI-Basic_Param_Minute': '{R1}分', + 'BI-Basic_Param_Second': '{R1}秒', + 'BI-Basic_Param_Year': '{R1}年', + 'BI-Basic_Date_Day': '日', + 'BI-Basic_Hour_Sin': '时', + 'BI-Basic_Seconds': '秒', + 'BI-Basic_Minute': '分', + 'BI-Basic_Wan': '万', + 'BI-Basic_Million': '百万', + 'BI-Basic_Billion': '亿', + 'BI-Basic_Quarter': '季度', + 'BI-Basic_No_Select': '不选', + 'BI-Basic_Now': '此刻', }; diff --git a/redis.js b/redis.js new file mode 100644 index 0000000..5cbe897 --- /dev/null +++ b/redis.js @@ -0,0 +1,180 @@ +const ConstantRedisType = 'dec.constant.database.conf.connect.types'; +const ConstantRedisShow = 'dec.constant.database.conf.connect.form.Redis.show'; +const ConstantRedisEdit = 'dec.constant.database.conf.connect.form.Redis.edit'; + +BI.DOM.ready(() => { + BI.config(ConstantRedisType, datas => [...datas, { + text: 'Redis', + databaseType: 'Redis', + }]); + + const RedisShowName = 'dec.dcm.connection.plugin.redis.show'; + const RedisShow = BI.inherit(BI.Widget, { + props: { + formData: { + url: '', + port: '6379', + password: '', + }, + }, + render() { + const o = this.options; + + return { + type: 'bi.vertical', + hgap: 15, + vgap: 10, + items: [ + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '数据库地址', + }, + { + type: 'bi.label', + text: o.formData.url, + }, + ], + }, + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '端口号', + }, + { + type: 'bi.label', + text: o.formData.port, + }, + ], + }, + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '密码', + }, + { + type: 'bi.label', + text: o.formData.password, + }, + ], + }, + ], + }; + }, + }); + + BI.shortcut(RedisShowName, RedisShow); + BI.constant(ConstantRedisShow, RedisShowName); + + + const RedisEditName = 'dec.dcm.connection.plugin.redis.edit'; + const RedisEdit = BI.inherit(BI.Widget, { + props: { + formData: { + url: '', + port: '6379', + password: '', + }, + }, + render() { + const o = this.options; + + return { + type: 'bi.vertical', + hgap: 15, + vgap: 10, + items: [ + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '数据库地址', + }, + { + type: 'bi.text_editor', + width: 300, + allowBlank: true, + ref: _ref => { + this.url = _ref; + }, + text: o.formData.url, + }, + ], + }, + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '端口号', + }, + { + type: 'bi.text_editor', + width: 300, + allowBlank: true, + ref: _ref => { + this.port = _ref; + }, + text: o.formData.port, + }, + ], + }, + { + type: 'bi.left', + items: [ + { + type: 'bi.label', + cls: 'bi-font-bold', + width: 100, + textAlign: 'left', + text: '密码', + }, + { + type: 'bi.text_editor', + width: 300, + allowBlank: true, + inputType: 'password', + ref: _ref => { + this.password = _ref; + }, + text: o.formData.password, + }, + ], + }, + ], + }; + }, + getSubmitValue() { + return { + url: this.url.getValue(), + port: this.port.getValue(), + password: this.password.getValue(), + }; + }, + }); + + BI.shortcut(RedisEditName, RedisEdit); + BI.constant(ConstantRedisEdit, RedisEditName); +}); diff --git a/src/app/app.constant.ts b/src/app/app.constant.ts deleted file mode 100644 index fa584b2..0000000 --- a/src/app/app.constant.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const ConstantName = 'dec.constant.database.conf.connect.list'; -BI.constant(ConstantName, [ -]); -export default ConstantName; diff --git a/src/app/app.model.ts b/src/app/app.model.ts deleted file mode 100644 index 0698887..0000000 --- a/src/app/app.model.ts +++ /dev/null @@ -1,39 +0,0 @@ -const className = 'dec.dcm.model.main'; -import {ModelType} from '@ui'; -import {LinkType} from '@ui/type'; -import {fetchLinkList} from '../shared/crud/crud.request'; -import {TAB_LINK_SET} from '@private/constants'; - -const linkList: LinkType[] = []; -const Model: ModelType = { - - childContext: ['tab', 'linkList', 'linkSelected', 'linkUpdate', 'moreLinkSelected', 'statusSelected', 'connectionNameErr'], - state () { - return { - tab: '', - linkList, - linkSelected: {}, - linkUpdate: {}, - moreLinkSelected: '', - statusSelected: '', - connectionNameErr: '', - }; - }, - computed: { - - }, - - actions: { - initData(callback: Function) { - fetchLinkList((linkList: LinkType[]) => { - this.model.linkList = linkList; - this.model.tab = TAB_LINK_SET; - callback(); - }); - }, - }, -}; - -BI.model(className, BI.inherit(Fix.Model, Model)); - -export default className; diff --git a/src/app/app.ts b/src/app/app.ts deleted file mode 100644 index de16680..0000000 --- a/src/app/app.ts +++ /dev/null @@ -1,55 +0,0 @@ -import {Vtape, Absolute, LinearSegment} from '../ui/index'; -import appModel from './app.model'; -import title from './title/title'; -import linkSet from './connection/link_set'; -import linkStatus from './status/link_status'; -import '../less/index.less'; - -const className = 'dec.dcm.main'; -const Widget = BI.inherit(BI.Widget, { - props: { - baseCls: 'dec-webui-dcm-layout bi-background', - }, - _store() { - return BI.Models.getModel(appModel); - }, - beforeInit (callback) { - this.store.initData(callback); - }, - render() { - return { - type: Vtape, - items: [ - { - el: { - type: title, - }, - height: 40, - }, - { - type: Absolute, - items: [{ - el: { - type: linkSet, - }, - left: 10, - top: 10, - right: 10, - bottom: 10, - }, { - el: { - type: linkStatus, - }, - left: 10, - top: 10, - right: 10, - bottom: 10, - }], - }, - ], - }; - }, -}); -BI.shortcut(className, Widget); - -export default className; diff --git a/src/app/connection/left/item/left_item.less b/src/app/connection/left/item/left_item.less deleted file mode 100644 index a3d0766..0000000 --- a/src/app/connection/left/item/left_item.less +++ /dev/null @@ -1,4 +0,0 @@ -@import '../../../../less/index.less'; -.dec-webui-dcm-connection-left-item{ - .hover-visible(link-item-icon); -} \ No newline at end of file diff --git a/src/app/connection/left/item/left_item.ts b/src/app/connection/left/item/left_item.ts deleted file mode 100644 index 4e88046..0000000 --- a/src/app/connection/left/item/left_item.ts +++ /dev/null @@ -1,77 +0,0 @@ -import './left_item.less'; -import {WidgetType, Icon, TextButton, LeftRightVerticalAdapt} from '@ui'; -import ItemIcon from './left_item_icon'; -import ItemDelete from './left_item_delete'; -import Model from '../../link_set.model'; -import {ACTION_COPY, ACTION_TEST, ACTION_DELETE, DEFAULT_INFO} from '@private/constants'; -const className = 'dec.dcm.component.linkSet.left.item'; -const Widget: WidgetType = { - props: { - title: '', - id: '', - creator: '', - baseCls: 'dec-webui-dcm-connection-left-item bi-list-item-active', - }, - _store() { - return BI.Models.getModel(Model); - }, - render() { - const {title, creator, text, id} = this.options; - - return { - type: LeftRightVerticalAdapt, - items: { - left: [ - { - type: Icon, - cls: 'dcm-link-font', - height: 25, - width: 25, - text: BI.i18nText('Dec-Dcm_Connections'), - title, - }, - { - type: TextButton, - text: title, - title, - }, - ], - right: [ - { - type: ItemIcon, - cls: 'link-item-icon dcm-test-font', - title: BI.i18nText('Dec-Dcm_Test_Connection'), - value: ACTION_TEST, - id, - }, - { - type: ItemIcon, - cls: 'link-item-icon copy-font', - title: BI.i18nText('Dec-Dcm_Copy'), - value: ACTION_COPY, - id, - }, - { - type: ItemIcon, - cls: 'link-item-icon dcm-info-font', - title: `${BI.i18nText('Dec-Dcm_Type')}:${text === DEFAULT_INFO ? BI.i18nText('Dec-Dcm_Other') : text} \r\n${BI.i18nText('Dec-Dcm_Creator')}:${creator}`, - id, - }, - { - type: ItemDelete, - cls: 'link-item-icon dcm-delete-font', - title: BI.i18nText('Dec-Dcm_Delete'), - value: ACTION_DELETE, - id, - }, - ], - }, - }; - }, - doClick() { - const {title} = this.options; - this.store.setLinkSelected(title); - }, -}; -BI.shortcut(className, BI.inherit(BI.BasicButton, Widget)); -export default className; diff --git a/src/app/connection/left/item/left_item_delete.ts b/src/app/connection/left/item/left_item_delete.ts deleted file mode 100644 index ad56b54..0000000 --- a/src/app/connection/left/item/left_item_delete.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {WidgetType, Icon, BubbleCombo, TextBubblePopupBarView} from '@ui'; -import Model from '../../link_set.model'; - -const className = 'dec.dcm.component.linkSet.left.item.icon.delete'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - render() { - const {title, id} = this.options; - const that = this; - - return { - type: BubbleCombo, - stopPropagation: true, - direction: 'bottom', - ref: _ref => { - this.combo = _ref; - }, - el: { - type: Icon, - height: 25, - width: 25, - title, - }, - popup: { - type: TextBubblePopupBarView, - text: BI.i18nText('Dec-Dcm_Connection_Make_Sure_Delete'), - listeners: [{ - eventName: BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON, - action (type: boolean) { - that.combo.hideView(); - if (type) { - that.store.onIconClick(title, id); - } - }, - }], - }, - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/left/item/left_item_icon.ts b/src/app/connection/left/item/left_item_icon.ts deleted file mode 100644 index d16ed76..0000000 --- a/src/app/connection/left/item/left_item_icon.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {WidgetType, IconButton} from '@ui'; -import Model from '../../link_set.model'; - -const className = 'dec.dcm.component.linkSet.left.item.icon'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - render() { - const {title} = this.options; - - return { - type: IconButton, - height: 25, - width: 25, - stopPropagation: true, - title, - handler: () => { - const {id, title} = this.options; - this.store.onIconClick(title, id); - }, - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/left/left.ts b/src/app/connection/left/left.ts deleted file mode 100644 index dd4b5a1..0000000 --- a/src/app/connection/left/left.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {WidgetType, ListView} from '@ui'; -import Model from '../link_set.model'; -import {LinkType} from '@ui/type'; -import LeftItem from './item/left_item'; - -const className = 'dec.dcm.component.linkset.left'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - watch: { - linkList(linkList: LinkType[]) { - this.leftContent.populate(BI.createItems(this._renderItems(linkList))); - }, - }, - render() { - return { - type: ListView, - ref: _ref => { - this.leftContent = _ref; - }, - items: this._renderItems(this.model.linkList), - }; - }, - _renderItems(linkList: LinkType[]) { - return BI.map(linkList, (index: number, item: LinkType) => { - return { - type: LeftItem, - selected: item.isSelected, - title: item.connectionName, - id: item.connectionId, - creator: item.creator, - text: item.text ? item.text : BI.i18nText('Dec-Dcm_Default'), - }; - }); - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/link_set.mixin.ts b/src/app/connection/link_set.mixin.ts deleted file mode 100644 index 45f487d..0000000 --- a/src/app/connection/link_set.mixin.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {LinkType} from '@ui/type'; -import {saveConnection} from './link_set.service'; - -const mixinName = 'dec.dcm.minxin.linkset'; -const Mixin = { - setConnectionNameErr(err: string) { - this.model.connectionNameErr = err; - }, - setEdit(type: boolean) { - this.model.linkSelected = { - ...this.model.linkSelected, - isSelected: type, - }; - this.model.linkUpdate = this.model.linkSelected; - }, - setCancel() { - const linkSelected: LinkType = this.model.linkSelected; - const linkList: LinkType[] = this.model.linkList; - if (linkSelected.connectionId) { - this.setEdit(false); - } else { - this.model.linkList = [ - ...linkList.filter(item => !!item.connectionId), - ]; - if (this.model.linkList.length > 0) { - this.model.linkList[0].isSelected = true; - this.model.linkSelected = { - ...this.model.linkList[0], - isSelected: false, - }; - } else { - this.model.linkSelected = {}; - } - this.model.linkUpdate = this.model.linkSelected; - } - }, - saveLink() { - const pluginData = this.model.linkUpdate.text ? BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${this.model.linkUpdate.text.toLowerCase()}.value`) : {}; - const update = { - ...this.model.linkUpdate, - ...pluginData, - }; - saveConnection(update).then(() => { - this.setEdit(false); - }); - }, -}; - -Fix.mixin(mixinName, Mixin); -export default mixinName; diff --git a/src/app/connection/link_set.model.ts b/src/app/connection/link_set.model.ts deleted file mode 100644 index f61bd13..0000000 --- a/src/app/connection/link_set.model.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {LinkType} from '@ui/type'; -import {deleteConnection, testConnection} from '@shared/crud/crud.request'; -import {getCnnectionName} from './select/select.service'; -import {DATA_BASE_TYPE} from '@private/constants'; -import dialog from '@shared/service/dialog.service'; -import Mixin from './link_set.mixin'; -const className = 'dec.dcm.model.linkset'; -const Model = { - context: ['tab', 'linkList', 'linkSelected', 'linkUpdate', 'connectionNameErr'], - mixins: [Mixin], - actions: { - /** - * 左侧点击链接选中 - * @param name - */ - setLinkSelected(name: string) { - this._noSaveConfirm(() => { - this._setLinkSelected(name); - }); - }, - onIconClick(title: string, id: string) { - switch (title) { - case BI.i18nText('Dec-Dcm_Delete'): - deleteConnection(id, () => { - this.model.linkList = [...this.model.linkList.filter((item: LinkType) => item.connectionId !== id)]; - this.model.linkSelected = {}; - this.model.linkUpdate = {}; - }); - break; - case BI.i18nText('Dec-Dcm_Test_Connection'): - this._textLink(id); - break; - case BI.i18nText('Dec-Dcm_Copy'): - this._noSaveConfirm(() => { - this.copyLink(id); - }); - break; - default: - break; - } - }, - copyLink(id: string) { - const connectionName = BI.find(this.model.linkList, (index: number, item: LinkType) => item.connectionId === id).connectionName; - const name = getCnnectionName(this.model.linkList, connectionName); - let data = {}; - this.model.linkList.forEach((item: LinkType) => { - if (item.connectionId === id) { - data = item; - } - }); - const newCopy = { - ...data, - isSelected: true, - connectionName: name, - connectionId: '', - }; - this.model.linkList = [ - newCopy, - ...this.model.linkList, - ]; - this.model.linkSelected = { - ...newCopy, - }; - this.model.linkUpdate = { - ...newCopy, - }; - }, - setLinkUpdate(value: any) { - this.model.linkUpdate = value; - }, - setNewLink(value: string) { - if (!DATA_BASE_TYPE.some(item => item.text === value) && !BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${value.toLowerCase()}.edit`)) { - dialog.error(BI.i18nText('Dec-Dcm_Connection_Option_Cannot_Find')); - - return; - } - this._noSaveConfirm(() => { - this._setNewLink(value); - }); - }, - }, - _setLinkSelected(name: string) { - this.model.linkList.forEach((item: LinkType) => { - item.isSelected = item.connectionName === name; - if (item.connectionName === name) { - this.model.linkSelected = { - ...item, - isSelected: false, - }; - } - }); - this.model.linkList = [...this.model.linkList]; - this.model.linkUpdate = this.model.linkSelected; - }, - _textLink(id: string) { - const link = this.model.linkList.find((item: LinkType) => item.connectionId === id); - const loadingId = dialog.loading(BI.i18nText('Dec-Dcm_Connection_Testing')); - testConnection(link, (res: any) => { - dialog.remove(loadingId); - if (res && res.errorCode) { - dialog.linkFail(`${link.connectionName}${BI.i18nText('Dec-Dcm_Connection_Test_Fail')}`, res.errorMsg, () => { - this._textLink(id); - }); - } else { - dialog.success(BI.i18nText('Dec-Dcm_Connection_Test_Success')); - } - }); - }, - _setNewLink(value: string) { - const name = getCnnectionName(this.model.linkList, value); - let data = {}; - DATA_BASE_TYPE.forEach(item => { - if (item.text === value) { - data = item; - } - }); - this.model.linkList = [ - { - connectionName: name, - isSelected: true, - ...data, - text: value, - }, - ...this.model.linkList, - ]; - this.model.linkSelected = { - ...data, - connectionName: name, - isSelected: true, - text: value, - }; - this.model.linkUpdate = { - ...data, - connectionName: name, - text: value, - }; - }, - _noSaveConfirm(cb: Function) { - if (this.model.linkSelected && this.model.linkSelected.isSelected) { - dialog.confirm(BI.i18nText('Dec-Dcm_Connection_Config_No_Save'), (isConfirm: boolean) => { - if (isConfirm) { - this.saveLink(); - } else { - this.setCancel(); - } - cb(); - }); - } else { - cb(); - } - }, -}; -BI.model(className, BI.inherit(Fix.Model, Model)); -export default className; diff --git a/src/app/connection/link_set.service.ts b/src/app/connection/link_set.service.ts deleted file mode 100644 index 11a418b..0000000 --- a/src/app/connection/link_set.service.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {LinkType} from '@ui/type'; -import {addConnection, updateConnection} from '@shared/crud/crud.request'; - -export function saveConnection(linkUpdate: LinkType): Promise { - if (linkUpdate.connectionId) { - return new Promise(((resolve, reject) => { - try { - addConnection(linkUpdate, (res: string) => { - resolve(res); - }); - } catch (error) { - reject(error); - } - })); - } - - return new Promise(((resolve, reject) => { - try { - updateConnection(linkUpdate, (res: string) => { - resolve(res); - }); - } catch (error) { - reject(error); - } - })); -} diff --git a/src/app/connection/link_set.ts b/src/app/connection/link_set.ts deleted file mode 100644 index 07b25c7..0000000 --- a/src/app/connection/link_set.ts +++ /dev/null @@ -1,58 +0,0 @@ -import {Htape, WidgetType, Vtape, VerticalAdapt} from '@ui'; -import LeftList from './left/left'; -import linkSetModel from './link_set.model'; -import Select from './select/select'; -import Right from './right/right'; -import {TAB_LINK_SET} from '@private/constants'; -const className = 'dec.dcm.linkset'; -const Widget: WidgetType = { - props: { - baseCls: 'bi-card', - }, - _store() { - return BI.Models.getModel(linkSetModel); - }, - watch: { - tab(tab: string) { - this.setVisible(tab === TAB_LINK_SET); - }, - }, - render() { - return { - type: Htape, - items: [{ - el: { - type: Vtape, - cls: 'dcm-link-left bi-border-right', - items: [ - { - el: { - type: VerticalAdapt, - cls: 'bi-border-bottom', - items: [ - { - type: Select, - hgap: 10, - vgap: 10, - }, - ], - }, - height: 40, - }, { - type: LeftList, - cls: 'left-list', - vgap: 10, - hgap: 10, - }, - ], - }, - width: 280, - }, { - type: Right, - }], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); - -export default className; diff --git a/src/app/connection/more/item/more_link_item.less b/src/app/connection/more/item/more_link_item.less deleted file mode 100644 index fd3ff0f..0000000 --- a/src/app/connection/more/item/more_link_item.less +++ /dev/null @@ -1,6 +0,0 @@ -@import '../../../../less/index.less'; -.dec-webui-dcm-connection-more-link-item{ - &:hover{ - border-color :@border-color-highlight; - } -} \ No newline at end of file diff --git a/src/app/connection/more/item/more_link_item.ts b/src/app/connection/more/item/more_link_item.ts deleted file mode 100644 index 23c5628..0000000 --- a/src/app/connection/more/item/more_link_item.ts +++ /dev/null @@ -1,68 +0,0 @@ -import './more_link_item.less'; -import {WidgetType, Img, Label, Layout, Absolute, Vtape} from '@ui/index'; -import ModelName from './more_link_litem.model'; - -const className = 'dec.dcm.component.linkSet.morelink.item'; -const Widget: WidgetType = { - props: { - baseCls: 'dec-webui-dcm-connection-more-link-item bi-border', - height: 120, - width: 120, - }, - _store() { - return BI.Models.getModel(ModelName); - }, - watch: { - otherSelected(otherSelected: string) { - const {text} = this.options; - this.selected.setVisible(text === otherSelected); - }, - }, - render() { - const {text, name} = this.options; - - return { - type: Vtape, - items: [ - { - type: Absolute, - items: [ - { - el: { - type: Img, - src: this._buildResourceUrl(name), - }, - }, - { - el: { - type: Layout, - cls: 'dcm-link-more-selected', - invisible: true, - width: 30, - height: 30, - ref: _ref => { - this.selected = _ref; - }, - }, - right: 0, - }, - ], - }, - { - el: { - type: Label, - cls: 'bi-header-background', - text, - }, - height: 30, - }, - ], - }; - }, - _buildResourceUrl(name: string) { - // TODO: 目前不知道生产环境下的图片的绝对地址,先这样写用于测试。 - return `img/${name}.jpg`; - }, -}; -BI.shortcut(className, BI.inherit(BI.BasicButton, Widget)); -export default className; diff --git a/src/app/connection/more/item/more_link_litem.model.ts b/src/app/connection/more/item/more_link_litem.model.ts deleted file mode 100644 index 599711f..0000000 --- a/src/app/connection/more/item/more_link_litem.model.ts +++ /dev/null @@ -1,6 +0,0 @@ -const className = 'dec.dcm.model.link_set.more_link_item'; -export const Model = BI.inherit(Fix.Model, { - context: ['otherSelected'], -}); -BI.model(className, Model); -export default className; diff --git a/src/app/connection/more/more_link.model.ts b/src/app/connection/more/more_link.model.ts deleted file mode 100644 index c9c1e13..0000000 --- a/src/app/connection/more/more_link.model.ts +++ /dev/null @@ -1,16 +0,0 @@ -const className = 'dec.dcm.model.link_set.more_link'; -export const Model = BI.inherit(Fix.Model, { - childContext: ['otherSelected'], - state() { - return { - otherSelected: '', - }; - }, - actions: { - setOtherSelected(name: string) { - this.model.otherSelected = name; - }, - }, -}); -BI.model(className, Model); -export default className; diff --git a/src/app/connection/more/more_link.service.ts b/src/app/connection/more/more_link.service.ts deleted file mode 100644 index c10489c..0000000 --- a/src/app/connection/more/more_link.service.ts +++ /dev/null @@ -1,50 +0,0 @@ -import MoreLink from './more_link'; -let subbitButton = null; -let selectKey = ''; -export const moreLink = (onConfirm?: Function): void => { - const id = BI.UUID(); - BI.Popovers.create(id, { - type: 'bi.bar_popover', - size: 'normal', - header: BI.i18nText('Dec-Dcm_Connection_More_Title'), - width: 560, - height: 500, - body: { - type: MoreLink, - listeners: [ - { - eventName: 'EVENT_SELECT', - action (text: string) { - selectKey = text; - subbitButton.setEnable(true); - }, - }, - ], - }, - footer: { - type: 'bi.right_vertical_adapt', - lgap: 10, - items: [{ - type: 'bi.button', - text: BI.i18nText('BI-Basic_Cancel'), - value: 1, - level: 'ignore', - handler () { - BI.Popovers.close(id); - }, - }, { - type: 'bi.button', - text: BI.i18nText('BI-Basic_Sure'), - disabled: true, - value: 0, - ref: _ref => { - subbitButton = _ref; - }, - handler () { - BI.Popovers.close(id); - onConfirm ? onConfirm(selectKey) : null; - }, - }], - }, - }).open(id); -}; diff --git a/src/app/connection/more/more_link.ts b/src/app/connection/more/more_link.ts deleted file mode 100644 index 4d21a1a..0000000 --- a/src/app/connection/more/more_link.ts +++ /dev/null @@ -1,52 +0,0 @@ -import {WidgetType, SearchEditor, Left, Vtape, VerticalAdapt} from '@ui/index'; -import {DATA_BASE_TYPE_OTHER} from '@private/constants'; -import MoreLinkItem from './item/more_link_item'; -import ModelName from './more_link.model'; -const className = 'dec.dcm.component.linkSet.morelink'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(ModelName); - }, - render() { - return { - type: Vtape, - items: [ - { - el: { - type: VerticalAdapt, - items: [{ - type: SearchEditor, - width: 300, - watermark: BI.i18nText('Dec-Dcm_Search'), - }], - }, - height: 30, - }, - { - type: Left, - scrolly: true, - tgap: 2, - rgap: 2, - bgap: 2, - lgap: 2, - items: this._createItems(), - }, - ], - }; - }, - _createItems() { - return BI.map(DATA_BASE_TYPE_OTHER, (index: number, item) => { - return { - type: MoreLinkItem, - text: item.text, - name: item.databaseType, - handler: () => { - this.store.setOtherSelected(item.text); - this.fireEvent('EVENT_SELECT', item.text); - }, - }; - }); - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/right/nothing.ts b/src/app/connection/right/nothing.ts deleted file mode 100644 index 4840ead..0000000 --- a/src/app/connection/right/nothing.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {WidgetType, Layout, Label, HorizotalAdapt, Vtape} from '@ui/index'; -const className = 'dec.dcm.component.right.nothing'; -const Widget: WidgetType = { - render() { - return { - type: HorizotalAdapt, - top: 200, - items: [{ - type: Vtape, - width: 260, - height: 150, - items: [ - { - el: { - type: Layout, - cls: 'data-connection-background', - }, - height: 130, - }, - { - type: Label, - text: BI.i18nText('Dec-Dcm_Connection_Plase_Add_One'), - }, - ], - }], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/right/right.ts b/src/app/connection/right/right.ts deleted file mode 100644 index 905be56..0000000 --- a/src/app/connection/right/right.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {WidgetType, ListView} from '@ui'; -import {LinkType} from '@ui/type'; -import Nothing from './nothing'; -import RightDetail from './right_detail/right_detail'; -import Model from '../link_set.model'; -const className = 'dec.dcm.component.right'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - watch: { - linkSelected(linkSelected: LinkType) { - this.rightContent.populate(BI.createItems([ - { - type: (linkSelected && linkSelected.connectionName) ? RightDetail : Nothing, - }, - ])); - }, - }, - render() { - return { - type: ListView, - ref: _ref => { - this.rightContent = _ref; - }, - items: [{ - type: Nothing, - }], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/right/right.typing.d.ts b/src/app/connection/right/right.typing.d.ts deleted file mode 100644 index 060bd1a..0000000 --- a/src/app/connection/right/right.typing.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -export interface AttributeType { - text: string; - name: string; -} - -export interface FormType { - connectionName?: string; - factory?: string; - url?: string; - principal?: string; - credentials?: string; - originalCharsetName?: string; - - objectFactories?: string; - stateFactories?: string; - urlPkgPrefixes?: string; - dnsUrl?: string; - authoritative?: string; - batchSize?: string; - referral?: string; - securityProtocol?: string; - securityAuthentication?: string; - language?: string; - applet?: string; -} diff --git a/src/app/connection/right/right_detail/right_detail.model.ts b/src/app/connection/right/right_detail/right_detail.model.ts deleted file mode 100644 index 5a61555..0000000 --- a/src/app/connection/right/right_detail/right_detail.model.ts +++ /dev/null @@ -1,6 +0,0 @@ -const className = 'dec.dcm.model.link.set.right.detail'; -export const Model = BI.inherit(Fix.Model, { - context: ['linkSelected'], -}); -BI.model(className, Model); -export default className; diff --git a/src/app/connection/right/right_detail/right_detail.ts b/src/app/connection/right/right_detail/right_detail.ts deleted file mode 100644 index d41547c..0000000 --- a/src/app/connection/right/right_detail/right_detail.ts +++ /dev/null @@ -1,74 +0,0 @@ -import {WidgetType, ListView} from '@ui/index'; -import Model from './right_detail.model'; -import {LinkType} from '@ui/type'; -import Title from '../right_title/right_title'; -import RightShow from '../right_show/right_show'; -import RightShowJndi from '../right_show/right_show_jndi'; -import RightEdit from '../right_edit/right_edit'; -import RightEditMysql from '../right_edit/right_edit_mysql'; -import RightEditJndi from '../right_edit/right_edit_jndi'; -import pluginListConstant from '../../../app.constant'; -import {MYSQL_CONNECT, JNDI_CONNECT} from '@private/constants'; - -const className = 'dec.dcm.component.right.detail'; - -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - watch: { - linkSelected(linkSelected: LinkType) { - const showPage = this._createItems(linkSelected); - this.rightDetail.populate(BI.createItems(showPage)); - }, - }, - render() { - const linkSelected = this.model.linkSelected; - - return { - type: ListView, - ref: _ref => { - this.rightDetail = _ref; - }, - items: this._createItems(linkSelected), - }; - }, - _createItems(linkSelected: LinkType) { - const plugins: string[] = BI.Constants.getConstant(pluginListConstant); - const isPlugin = BI.some(plugins, (index: number, item: string) => item === linkSelected.text); - let editPage = null; - let showPage = null; - switch (linkSelected.text) { - case (MYSQL_CONNECT): - editPage = RightEditMysql; - showPage = RightShow; - break; - case (JNDI_CONNECT): - editPage = RightEditJndi; - showPage = RightShowJndi; - break; - default: - editPage = RightEdit; - showPage = RightShow; - } - if (isPlugin) { - editPage = BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${linkSelected.text.toLowerCase()}.edit`); - showPage = BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${linkSelected.text.toLowerCase()}.preview`); - } - - return [ - { - type: Title, - isEdit: linkSelected.isSelected, - linkSelected, - }, { - type: linkSelected.isSelected ? editPage : showPage, - vgap: 10, - hgap: 10, - linkSelected, - }, - ]; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/right/right_edit/right_edit.model.ts b/src/app/connection/right/right_edit/right_edit.model.ts deleted file mode 100644 index 21f99ed..0000000 --- a/src/app/connection/right/right_edit/right_edit.model.ts +++ /dev/null @@ -1,20 +0,0 @@ -export const className = 'dec.dcm.model.components.right.edit'; -export const Model = BI.inherit(Fix.Model, { - state() { - return { - isCollapse: false, - }; - }, - - computed: { - - }, - - actions: { - setIsCollapse(status: boolean) { - this.model.isCollapse = status; - }, - }, -}); -BI.model(className, Model); -export default className; diff --git a/src/app/connection/right/right_edit/right_edit.service.ts b/src/app/connection/right/right_edit/right_edit.service.ts deleted file mode 100644 index 90f2a9a..0000000 --- a/src/app/connection/right/right_edit/right_edit.service.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {LinkType} from '@ui/type'; - -export function getDrivers(linkSelected: LinkType): {text: string; value: string}[] { - const drivers: {text: string; value: string}[] = []; - if (linkSelected.drivers && linkSelected.drivers.length > 0) { - linkSelected.drivers.forEach(item => { - drivers.push({ - text: item, - value: item, - }); - }); - } else { - drivers.push({ - text: linkSelected.driver, - value: linkSelected.driver, - }); - } - - return drivers; -} - -export function connectNameChecker(name: string): boolean { - return /^\+?[1-9][0-9]*$/.test(name); -} diff --git a/src/app/connection/right/right_edit/right_edit.ts b/src/app/connection/right/right_edit/right_edit.ts deleted file mode 100644 index edaf66a..0000000 --- a/src/app/connection/right/right_edit/right_edit.ts +++ /dev/null @@ -1,373 +0,0 @@ -import {WidgetType, Vertical, MultiSelectItem, TextAreaEditor, Button, TextValueCombo, TextEditor, VerticalAdapt, Label} from '@ui/index'; -import {LinkType} from '@ui/type'; -import {CONNECT_CHARSET} from '@private/constants'; -import Model from '../../link_set.model'; -import Title from '@shared/components/title'; -import {getDrivers, connectNameChecker} from './right_edit.service'; -let connectionName: any = null; -const className = 'dec.dcm.component.right.edit'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - watch: { - connectionNameErr(msg: string) { - if (msg) { - BI.Bubbles.show('singleBubble', msg, connectionName, { - level: 'error', - }); - } else { - BI.Bubbles.hide('singleBubble'); - } - }, - }, - render() { - const linkSelected: LinkType = this.model.linkSelected; - const that = this; - - return { - type: Vertical, - vgap: 10, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_ConnectionName'), - }, - { - type: TextEditor, - width: 300, - value: linkSelected.connectionName, - ref(ref: any) { - connectionName = ref; - }, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - connectionName: this.getValue(), - }); - }, - }, { - eventName: BI.Editor.EVENT_FOCUS, - action() { - that.store.setConnectionNameErr(''); - }, - }], - }, - { - type: Label, - cls: 'bi-water-mark', - lgap: 5, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_ConnectionName-Change-Confirm'), - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_First_Step'), - }, - { - type: Vertical, - vgap: 10, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Driver'), - }, - { - type: TextValueCombo, - width: 300, - text: linkSelected.driver, - items: getDrivers(linkSelected), - listeners: [{ - eventName: BI.TextValueCombo.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - driver: this.getValue()[0], - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_URL'), - }, - { - type: TextEditor, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - value: linkSelected.url, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - url: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), - }, - { - type: TextValueCombo, - width: 300, - text: linkSelected.originalCharsetName === '' ? BI.i18nText('Dec-Dcm_Connection_Form_Auto') : linkSelected.originalCharsetName, - items: [ - { - text: BI.i18nText('Dec-Dcm_Connection_Form_Auto'), - value: '', - }, - ...CONNECT_CHARSET, - ], - listeners: [{ - eventName: BI.TextValueCombo.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - originalCharsetName: this.getValue()[0], - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_UserName'), - }, - { - type: TextEditor, - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - value: linkSelected.user, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - user: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Password'), - }, - { - type: TextEditor, - inputType: 'password', - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - value: linkSelected.password, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - password: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: Title, - text: BI.i18nText('Dec-Dcm_Connection_Form_Pool_Properties'), - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_SQL_Validation_Query'), - }, - { - type: TextAreaEditor, - cls: 'bi-border', - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - height: 100, - value: linkSelected.validationQuery, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - validationQuery: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'), - }, - { - type: MultiSelectItem, - text: BI.i18nText('Dec-Dcm_Yes'), - selected: linkSelected.testOnBorrow, - width: 60, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - testOnBorrow: this.isSelected(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Connection_Max_Number'), - }, - { - type: TextEditor, - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 60, - value: linkSelected.maxActive, - errorText: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input-Number'), - validationChecker: connectNameChecker, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - maxActive: this.getValue(), - }); - }, - }], - }, - ], - }, - ], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Second_Step'), - }, - { - type: Button, - width: 80, - text: BI.i18nText('Dec-Dcm_Test_Connection'), - level: 'ignore', - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Third_Step'), - }, - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Pattern'), - }, - { - type: TextEditor, - width: 300, - disabled: true, - }, - ], - }, - ], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/right/right_edit/right_edit_jndi.ts b/src/app/connection/right/right_edit/right_edit_jndi.ts deleted file mode 100644 index 8c56730..0000000 --- a/src/app/connection/right/right_edit/right_edit_jndi.ts +++ /dev/null @@ -1,226 +0,0 @@ -import {Vertical, TextValueCombo, TextButton, Label, TextEditor, VerticalAdapt} from '@ui'; -import {JNDI_FACTORYS, OTHER_ATTRIBUTES, CONNECT_CHARSET} from '@private/constants'; -import {AttributeType} from '../right.typing'; -import ModelName from './right_edit.model'; - -const classNameEdit = 'dec.dcm.component.right.edit.jndi'; -const Widget = BI.inherit(BI.Widget, { - _store() { - return BI.Models.getModel(ModelName); - }, - watch: { - isCollapse(isCollapse) { - const text = isCollapse ? BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Collapse-Attributes') : BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Other_Attributes'); - this.collapseRef.setText(text); - this.otherAttributesRef.setVisible(isCollapse); - }, - }, - render() { - const {connectionName, url, factory, principal, credentials, originalCharsetName} = this.options; - - return { - type: Vertical, - vgap: 10, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_ConnectionName'), - }, - { - type: TextEditor, - width: 300, - allowBlank: true, - value: connectionName, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Context'), - }, - { - type: Vertical, - vgap: 10, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'INTIAL_CONTEXT_FACTORY', - }, - { - type: TextValueCombo, - width: 300, - value: factory, - items: BI.map(JNDI_FACTORYS, (index: number, item: string) => { - return { - text: item, - value: item, - }; - }), - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'PROVIDER_URL', - }, - { - type: TextEditor, - width: 300, - allowBlank: true, - value: url, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'SECURITY_PRINCIPAL', - }, - { - type: TextEditor, - width: 300, - allowBlank: true, - value: principal, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'SECURITY_CREDENTIALS', - }, - { - type: TextEditor, - width: 300, - allowBlank: true, - value: credentials, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: TextButton, - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Other_Attributes'), - width: 480, - textAlign: 'right', - ref: _ref => { - this.collapseRef = _ref; - }, - handler: () => { - this.store.setIsCollapse(!this.model.isCollapse); - }, - }, - ], - }, - { - type: Vertical, - invisible: true, - ref: _ref => { - this.otherAttributesRef = _ref; - }, - items: this._getOtherItems(), - }, - ], - }, - ], - }, - { - type: Label, - cls: 'bi-error', - lgap: 10, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Notice'), - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Advanced'), - }, - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), - }, - { - type: TextValueCombo, - width: 300, - items: [{ - text: BI.i18nText('Dec-Dcm_Connection_Form_Auto'), - value: originalCharsetName, - }, - ...CONNECT_CHARSET, - ], - }, - ], - }, - ], - }; - }, - _getOtherItems() { - return BI.map(OTHER_ATTRIBUTES, (index: number, item: AttributeType) => { - return { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: item.text, - }, - { - type: TextEditor, - width: 300, - allowBlank: true, - value: this.options[item.name], - }, - ], - }; - }); - }, -}); -BI.shortcut(classNameEdit, Widget); -export default classNameEdit; diff --git a/src/app/connection/right/right_edit/right_edit_mysql.ts b/src/app/connection/right/right_edit/right_edit_mysql.ts deleted file mode 100644 index 0d36f01..0000000 --- a/src/app/connection/right/right_edit/right_edit_mysql.ts +++ /dev/null @@ -1,325 +0,0 @@ -import {WidgetType, Vertical, MultiSelectItem, TextAreaEditor, Button, TextValueCombo, TextEditor, VerticalAdapt, Label} from '@ui/index'; -import {LinkType} from '@ui/type'; -import {CONNECT_CHARSET} from '@private/constants'; -import Model from '../../link_set.model'; -import Title from '@shared/components/title'; -import {getDrivers, connectNameChecker} from './right_edit.service'; -let connectionName: any = null; -const className = 'dec.dcm.component.right.edit.mysql'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - watch: { - connectionNameErr(msg: string) { - if (msg) { - BI.Bubbles.show('singleBubble', msg, connectionName, { - level: 'error', - }); - } else { - BI.Bubbles.hide('singleBubble'); - } - }, - }, - render() { - const linkSelected: LinkType = this.model.linkSelected; - const that = this; - - return { - type: Vertical, - vgap: 10, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_ConnectionName'), - }, - { - type: TextEditor, - width: 300, - value: linkSelected.connectionName, - ref(ref: any) { - connectionName = ref; - }, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - connectionName: this.getValue(), - }); - }, - }, { - eventName: BI.Editor.EVENT_FOCUS, - action() { - that.store.setConnectionNameErr(''); - }, - }], - }, - { - type: Label, - cls: 'bi-water-mark', - lgap: 5, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_ConnectionName-Change-Confirm'), - }, - ], - }, - - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Driver'), - }, - { - type: TextValueCombo, - width: 300, - text: linkSelected.driver, - items: getDrivers(linkSelected), - listeners: [{ - eventName: BI.TextValueCombo.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - driver: this.getValue()[0], - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_URL'), - }, - { - type: TextEditor, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - value: linkSelected.url, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - url: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), - }, - { - type: TextValueCombo, - width: 300, - text: linkSelected.originalCharsetName === '' ? BI.i18nText('Dec-Dcm_Connection_Form_Auto') : linkSelected.originalCharsetName, - items: [ - { - text: BI.i18nText('Dec-Dcm_Connection_Form_Auto'), - value: '', - }, - ...CONNECT_CHARSET, - ], - listeners: [{ - eventName: BI.TextValueCombo.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - originalCharsetName: this.getValue()[0], - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_UserName'), - }, - { - type: TextEditor, - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - value: linkSelected.user, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - user: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Password'), - }, - { - type: TextEditor, - inputType: 'password', - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - value: linkSelected.password, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - password: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: Title, - text: BI.i18nText('Dec-Dcm_Connection_Form_Pool_Properties'), - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_SQL_Validation_Query'), - }, - { - type: TextAreaEditor, - cls: 'bi-border', - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 300, - height: 100, - value: linkSelected.validationQuery, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - validationQuery: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'), - }, - { - type: MultiSelectItem, - text: BI.i18nText('Dec-Dcm_Yes'), - selected: linkSelected.testOnBorrow, - width: 60, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - testOnBorrow: this.isSelected(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_Connection_Max_Number'), - }, - { - type: TextEditor, - allowBlank: true, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), - width: 60, - value: linkSelected.maxActive, - errorText: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input-Number'), - validationChecker: connectNameChecker, - listeners: [{ - eventName: BI.Editor.EVENT_CHANGE, - action() { - that.store.setLinkUpdate({ - ...that.model.linkUpdate, - maxActive: this.getValue(), - }); - }, - }], - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Button, - width: 80, - text: BI.i18nText('Dec-Dcm_Test_Connection'), - level: 'ignore', - }, - ], - }, - ], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/right/right_show/right_show.model.ts b/src/app/connection/right/right_show/right_show.model.ts deleted file mode 100644 index 4209415..0000000 --- a/src/app/connection/right/right_show/right_show.model.ts +++ /dev/null @@ -1,20 +0,0 @@ -export const className = 'dec.dcm.model.components.right.show'; -export const Model = BI.inherit(Fix.Model, { - state() { - return { - isCollapse: false, - }; - }, - - computed: { - - }, - - actions: { - setIsCollapse(status: boolean) { - this.model.isCollapse = status; - }, - }, -}); -BI.model(className, Model); -export default className; diff --git a/src/app/connection/right/right_show/right_show.ts b/src/app/connection/right/right_show/right_show.ts deleted file mode 100644 index 590efe1..0000000 --- a/src/app/connection/right/right_show/right_show.ts +++ /dev/null @@ -1,72 +0,0 @@ -import {WidgetType, Vertical} from '@ui/index'; -import RightShowModel from '../../link_set.model'; -import BothSide from '@shared/components/both_side'; -import Title from '@shared/components/title'; -import {LinkType} from '@ui/type'; -const className = 'dec.dcm.component.right.show'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(RightShowModel); - }, - render() { - const linkSelected: LinkType = this.model.linkSelected; - - return { - type: Vertical, - vgap: 10, - items: [ - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_ConnectionName'), - rightText: linkSelected.connectionName, - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_Driver'), - rightText: linkSelected.driver, - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_URL'), - rightText: linkSelected.url, - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), - rightText: linkSelected.originalCharsetName === '' ? BI.i18nText('Dec-Dcm_Connection_Form_Auto') : linkSelected.originalCharsetName, - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_UserName'), - rightText: linkSelected.user, - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_Password'), - rightText: linkSelected.password, - }, - { - type: Title, - text: BI.i18nText('Dec-Dcm_Connection_Form_Pool_Properties'), - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_SQL_Validation_Query'), - rightText: linkSelected.validationQuery, - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'), - rightText: linkSelected.testOnBorrow ? BI.i18nText('Dec-Dcm_Yes') : BI.i18nText('Dec-Dcm_No'), - }, - { - type: BothSide, - leftText: BI.i18nText('Dec-Dcm_Connection_Form_Connection_Max_Number'), - rightText: linkSelected.maxActive, - }, - ], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/right/right_show/right_show_jndi.ts b/src/app/connection/right/right_show/right_show_jndi.ts deleted file mode 100644 index d4db6e1..0000000 --- a/src/app/connection/right/right_show/right_show_jndi.ts +++ /dev/null @@ -1,203 +0,0 @@ -import {Vertical, TextButton, Label, VerticalAdapt} from '@ui'; -import {OTHER_ATTRIBUTES} from '@private/constants'; -import {AttributeType} from '../right.typing'; -import ModelName from './right_show.model'; - -const className = 'dec.dcm.component.right.show.jndi'; -const Widget = BI.inherit(BI.Widget, { - _store() { - return BI.Models.getModel(ModelName); - }, - watch: { - isCollapse(isCollapse) { - const text = isCollapse ? BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Collapse-Attributes') : BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Other_Attributes'); - this.collapseRef.setText(text); - this.otherAttributesRef.setVisible(isCollapse); - }, - }, - render() { - const {connectionName, url, factory, principal, credentials, originalCharsetName} = this.options; - - return { - type: Vertical, - vgap: 10, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_ConnectionName'), - }, - { - type: Label, - text: connectionName, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Context'), - }, - { - type: Vertical, - vgap: 10, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'INTIAL_CONTEXT_FACTORY', - }, - { - type: Label, - text: factory, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'PROVIDER_URL', - }, - { - type: Label, - text: url, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'SECURITY_PRINCIPAL', - }, - { - type: Label, - value: principal, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: 'SECURITY_CREDENTIALS', - }, - { - type: Label, - value: credentials, - }, - ], - }, - { - type: VerticalAdapt, - items: [ - { - type: TextButton, - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Other_Attributes'), - width: 480, - textAlign: 'right', - ref: _ref => { - this.collapseRef = _ref; - }, - handler: () => { - this.store.setIsCollapse(!this.model.isCollapse); - }, - }, - ], - }, - { - type: Vertical, - invisible: true, - ref: _ref => { - this.otherAttributesRef = _ref; - }, - items: this._getOtherItems(), - }, - ], - }, - ], - }, - { - type: Label, - cls: 'bi-error', - lgap: 10, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Notice'), - }, - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 115, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_JNDI_Advanced'), - }, - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), - }, - { - type: Label, - text: originalCharsetName ? originalCharsetName : BI.i18nText('Dec-Dcm_Connection_Form_Auto'), - }, - ], - }, - ], - }; - }, - _getOtherItems() { - return BI.map(OTHER_ATTRIBUTES, (index: number, item: AttributeType) => { - return { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-font-bold', - width: 180, - textAlign: 'left', - text: item.text, - }, - { - type: Label, - value: this.options[item.name], - }, - ], - }; - }); - }, -}); -BI.shortcut(className, Widget); -export default className; diff --git a/src/app/connection/right/right_title/right_title.model.ts b/src/app/connection/right/right_title/right_title.model.ts deleted file mode 100644 index 6c54731..0000000 --- a/src/app/connection/right/right_title/right_title.model.ts +++ /dev/null @@ -1,20 +0,0 @@ -import LinksetMixin from '../../link_set.mixin'; -import {LinkType} from '@ui/type'; -const modelName = 'dec.dcm.model.component.right.title'; -export const Model = BI.inherit(Fix.Model, { - context: ['linkSelected', 'linkList', 'linkUpdate'], - mixins: [LinksetMixin], - actions: { - onSave() { - const linkList: LinkType[] = this.model.linkList; - const result = BI.find(linkList, (idx: number, value: LinkType) => this.model.linkUpdate.connectionName === value.connectionName && value.connectionId !== this.model.linkUpdate.connectionId); - if (result) { - this.setConnectionNameErr(BI.i18nText('Dec-Dcm_Connection_Is_Existence')); - } else { - this.saveLink(); - } - }, - }, -}); -BI.model(modelName, Model); -export default modelName; diff --git a/src/app/connection/right/right_title/right_title.ts b/src/app/connection/right/right_title/right_title.ts deleted file mode 100644 index f3995f3..0000000 --- a/src/app/connection/right/right_title/right_title.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {WidgetType, Label, Button, LeftRightVerticalAdapt} from '@ui/index'; -import RightTitleModel from './right_title.model'; -import {LinkType} from '@ui/type'; -import {OTHER_CONNECT} from '@private/constants'; -const className = 'dec.dcm.component.right.title'; -const Widget: WidgetType = { - props: { - baseCls: 'bi-border-bottom', - }, - _store() { - return BI.Models.getModel(RightTitleModel); - }, - render() { - const linkSelected: LinkType = this.model.linkSelected; - const that = this; - const {isEdit} = this.options; - const title = linkSelected.text === OTHER_CONNECT ? BI.i18nText('Dec-Dcm_Connection_Other') : linkSelected.text; - - return { - type: LeftRightVerticalAdapt, - height: 40, - items: { - left: [ - { - type: Label, - cls: 'bi-font-bold', - hgap: 10, - text: `${BI.i18nText('Dec-Dcm_Data_Connections')}(${title ? title : BI.i18nText('Dec-Dcm_Default')})`, - }, - ], - right: [ - { - type: Button, - hgap: 10, - invisible: isEdit, - text: BI.i18nText('Dec-Dcm_Edit'), - handler() { - that.store.setEdit(true); - }, - }, - { - type: Button, - hgap: 10, - invisible: !isEdit, - level: 'ignore', - text: BI.i18nText('BI-Basic_Cancel'), - handler() { - that.store.setCancel(); - }, - }, - { - type: Button, - hgap: 10, - invisible: !isEdit, - text: BI.i18nText('Dec-Dcm_Save'), - handler() { - that.store.onSave(); - }, - }, - ], - }, - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/connection/select/select.service.ts b/src/app/connection/select/select.service.ts deleted file mode 100644 index 0e11c16..0000000 --- a/src/app/connection/select/select.service.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {LinkType} from '@ui/type'; -import pluginListConstant from '../../app.constant'; - -export const getCnnectionName = (links: LinkType[], name: string): string => { - const plugins: string[] = BI.Constants.getConstant(pluginListConstant); - let nameIndex = 0; - const title = name.replace(/[0-9]/g, ''); - const isPlugin = BI.some(plugins, (index: number, item: string) => item === title); - const startWith = isPlugin ? title : BI.i18nText('Dec-Dcm_Data_Connections'); - - links.forEach(link => { - link.isSelected = false; - if (link.connectionName.startsWith(startWith)) { - const name = link.connectionName.replace(startWith, '0'); - const index = parseInt(name, 10) + 1; - if (index > nameIndex) { - nameIndex = index; - } - } - }); - - return `${startWith}${nameIndex > 0 ? nameIndex : ''}`; -}; diff --git a/src/app/connection/select/select.ts b/src/app/connection/select/select.ts deleted file mode 100644 index 10dd883..0000000 --- a/src/app/connection/select/select.ts +++ /dev/null @@ -1,77 +0,0 @@ -import {WidgetType, Combo, ButtonGroup, TextItem, Vertical} from '@ui'; -import selectModel from '../link_set.model'; -import {moreLink} from '../more/more_link.service'; -import connectList from '../../app.constant'; -import {DATA_LINKS} from '@private/constants'; -const className = 'dec.dcm.linkset.select'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(selectModel); - }, - render() { - return { - type: Combo, - trigger: 'click', - adjustYOffset: 4, - el: { - type: 'bi.button', - text: BI.i18nText('Dec-Dcm_Connection_New'), - }, - popup: { - el: { - type: ButtonGroup, - items: [...BI.map([...DATA_LINKS, ...BI.Constants.getConstant(connectList)], (index: number, item: string) => { - return { - type: TextItem, - height: 24, - width: 152, - textLgap: 10, - text: item, - title: item, - value: item, - }; - }), { - type: TextItem, - height: 24, - width: 152, - textLgap: 10, - text: BI.i18nText('Dec-Dcm_Connection_More'), - title: BI.i18nText('Dec-Dcm_Connection_More'), - value: 'more', - }, { - type: TextItem, - cls: 'bi-border-top', - height: 24, - width: 152, - textLgap: 10, - text: BI.i18nText('Dec-Dcm_Connection_Other'), - title: BI.i18nText('Dec-Dcm_Connection_Other'), - value: 'other', - }], - layouts: [{ - type: Vertical, - }], - }, - maxHeight: 400, - }, - listeners: [{ - eventName: 'EVENT_CHANGE', - action: (v: string) => { - if (v === 'more') { - moreLink((text: string) => { - this.store.setNewLink(text); - }); - } else { - this.store.setNewLink(v); - } - this.combo.hideView(); - }, - }], - ref: _ref => { - this.combo = _ref; - }, - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/status/left/left.model.ts b/src/app/status/left/left.model.ts deleted file mode 100644 index fb06170..0000000 --- a/src/app/status/left/left.model.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {ModelType} from '@ui'; -const className = 'dec.dcm.model.linkstatus.left'; -const Model: ModelType = { - context: ['tab', 'linkList', 'statusSelected'], - state () { - return { - selected: '', - }; - }, - actions: { - setStatusSelected(title: string) { - this.model.statusSelected = title; - }, - }, -}; -BI.model(className, BI.inherit(Fix.Model, Model)); -export default className; diff --git a/src/app/status/left/left.ts b/src/app/status/left/left.ts deleted file mode 100644 index d16451d..0000000 --- a/src/app/status/left/left.ts +++ /dev/null @@ -1,44 +0,0 @@ -import {WidgetType, ListView} from '@ui'; -import Model from './left.model'; -import {LinkType} from '@ui/type'; -import LeftItem from './left_item'; - -const className = 'dec.dcm.component.linkStatus.left'; -const Widget: WidgetType = { - _store() { - return BI.Models.getModel(Model); - }, - watch: { - linkList(linkList: LinkType[]) { - const title = linkList.length > 0 ? linkList[0].connectionName : ''; - this.store.setStatusSelected(title); - }, - statusSelected(title: string) { - const linkList = this.model.linkList; - this.leftContent.populate(BI.createItems(this._renderItems(linkList, title))); - }, - }, - render() { - return { - type: ListView, - ref: _ref => { - this.leftContent = _ref; - }, - items: this._renderItems(this.model.linkList, this.model.statusSelected), - }; - }, - _renderItems(linkList: LinkType[], selectTitle = '') { - return BI.map(linkList, (index: number, item: LinkType) => { - return { - type: LeftItem, - selected: item.connectionName === selectTitle, - title: item.connectionName, - id: item.connectionId, - creator: item.creator, - text: item.text ? item.text : BI.i18nText('Dec-Dcm_Default'), - }; - }); - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/status/left/left_item.ts b/src/app/status/left/left_item.ts deleted file mode 100644 index 0a4ee89..0000000 --- a/src/app/status/left/left_item.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {WidgetType, TextButton, VerticalAdapt} from '@ui'; -import Model from './left.model'; -const className = 'dec.dcm.component.linkStatus.left.item'; -const Widget: WidgetType = { - props: { - title: '', - id: '', - creator: '', - baseCls: 'bi-list-item-active', - }, - _store() { - return BI.Models.getModel(Model); - }, - render() { - const {title} = this.options; - - return { - type: VerticalAdapt, - cls: 'bi-list-item-active', - height: 30, - items: [ - { - type: TextButton, - cls: 'link-title', - lgap: 10, - textAlign: 'left', - text: title, - title, - }, - ], - }; - }, - doClick() { - const {title} = this.options; - this.store.setStatusSelected(title); - }, -}; -BI.shortcut(className, BI.inherit(BI.BasicButton, Widget)); -export default className; diff --git a/src/app/status/link_status.model.ts b/src/app/status/link_status.model.ts deleted file mode 100644 index c4e7467..0000000 --- a/src/app/status/link_status.model.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {ModelType} from '@ui'; -const className = 'dec.dcm.model.linkstatus'; -const Model: ModelType = { - context: ['tab', 'linkList'], - actions: { - }, -}; -BI.model(className, BI.inherit(Fix.Model, Model)); -export default className; diff --git a/src/app/status/link_status.ts b/src/app/status/link_status.ts deleted file mode 100644 index bf50a07..0000000 --- a/src/app/status/link_status.ts +++ /dev/null @@ -1,63 +0,0 @@ -import {WidgetType, Htape, Vtape, Label, VerticalAdapt} from '@ui'; -import linkStatusModel from './link_status.model'; -import LeftList from './left/left'; -import Right from './right/right'; -import {TAB_LINK_POOL} from '@private/constants'; -const className = 'dec.dcm.linkstatus'; - -const Widget: WidgetType = { - props: { - baseCls: 'bi-card', - }, - _store() { - return BI.Models.getModel(linkStatusModel); - }, - watch: { - tab(tab: string) { - this.linkStatus.setVisible(tab === TAB_LINK_POOL); - }, - }, - render() { - return { - type: Htape, - invisible: true, - ref: _ref => { - this.linkStatus = _ref; - }, - items: [{ - el: { - type: Vtape, - cls: 'dcm-link-left', - items: [ - { - el: { - type: VerticalAdapt, - cls: 'bi-border-bottom', - items: [ - { - type: Label, - cls: 'bi-font-bold', - hgap: 6, - vgap: 6, - text: BI.i18nText('Dec-Dcm_Data_Connections'), - }, - ], - }, - height: 40, - }, { - type: LeftList, - cls: 'left-list', - }, - ], - }, - width: 280, - }, { - type: Right, - cls: 'bi-border-left', - }], - }; - }, -}; - -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/status/right/right.model.ts b/src/app/status/right/right.model.ts deleted file mode 100644 index d5f06a8..0000000 --- a/src/app/status/right/right.model.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {ModelType} from '@ui'; -const className = 'dec.dcm.model.linkstatus.right'; -const Model: ModelType = { - context: ['linkList', 'statusSelected'], - state () { - return { - selected: '', - }; - }, - actions: { - }, -}; -BI.model(className, BI.inherit(Fix.Model, Model)); -export default className; diff --git a/src/app/status/right/right.ts b/src/app/status/right/right.ts deleted file mode 100644 index 71c1cd9..0000000 --- a/src/app/status/right/right.ts +++ /dev/null @@ -1,68 +0,0 @@ -import {WidgetType, Label, ListView, VerticalAdapt, Vtape} from '@ui/index'; -import Model from './right.model'; -import {info} from '@shared/crud/crud.request'; -import RightCard from './right_card'; -import {InfoType} from './right.typings'; -import {LinkType} from '@ui/type'; -import pluginListConstant from '../../app.constant'; - -const className = 'dcm-link-form'; - -const Widget: WidgetType = { - props: { - baseCls: 'dec-webui-dcm-title bi-card bi-border-bottom', - }, - _store() { - return BI.Models.getModel(Model); - }, - watch: { - statusSelected(title: string) { - const link = BI.find(this.model.linkList, (index: number, item: LinkType) => item.connectionName === title); - const plugins: string[] = BI.Constants.getConstant(pluginListConstant); - const isPlugin = link.text && BI.some(plugins, (index: number, item: string) => item === link.text); - const Pool = isPlugin ? BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${link.text.toLowerCase()}.pool`) : RightCard; - info(name, (res: InfoType) => { - this.statusGroup.populate(BI.createItems([{ - type: Pool, - ...res, - }])); - }); - this.statusTitle.setText(`${BI.i18nText('Dec-Dcm_Data_Connections')}(${title})`); - }, - }, - render() { - return { - type: Vtape, - items: [ - { - el: { - type: VerticalAdapt, - cls: 'bi-border-bottom', - items: [ - { - type: Label, - cls: 'bi-font-bold', - lgap: 10, - text: BI.i18nText('Dec-Dcm_Data_Connections'), - }, - ], - ref: _ref => { - this.statusTitle = _ref; - }, - }, - height: 40, - }, { - type: ListView, - cls: 'right-status-body', - vgap: 10, - hgap: 10, - ref: _ref => { - this.statusGroup = _ref; - }, - }, - ], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/status/right/right.typings.d.ts b/src/app/status/right/right.typings.d.ts deleted file mode 100644 index 0649242..0000000 --- a/src/app/status/right/right.typings.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface InfoType{ - maxActive: number; - maxIdle: number; - numActive: number; - numIdle: number; -} diff --git a/src/app/status/right/right_card.ts b/src/app/status/right/right_card.ts deleted file mode 100644 index 3894c95..0000000 --- a/src/app/status/right/right_card.ts +++ /dev/null @@ -1,91 +0,0 @@ -import './right_card.less'; -import {WidgetType, Left, Label, Vertical, FloatCenter, CenterAdapt, VerticalAdapt} from '@ui/index'; -const className = 'dec.dcm.component.linkStatus.right.card'; -const Widget: WidgetType = { - props: { - baseCls: 'dec-webui-dcm-status-right-card', - }, - render() { - const {maxActive, maxIdle, numActive, numIdle} = this.options; - - return { - type: FloatCenter, - height: 150, - hgap: 20, - items: [ - { - type: Vertical, - cls: 'bi-background', - items: [ - { - type: CenterAdapt, - cls: 'right-status-board-item', - tgap: 40, - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-high-light card-font-success', - text: numActive, - }, - { - type: Label, - text: '/', - }, - { - type: Label, - text: maxActive, - }, - ], - }, - ], - }, - { - type: Label, - text: BI.i18nText('Dec-Dcm_Active_Connections_Number'), - }, - ], - }, - { - type: Vertical, - cls: 'bi-background', - items: [ - { - type: CenterAdapt, - tgap: 40, - cls: 'right-status-board-item', - items: [ - { - type: VerticalAdapt, - items: [ - { - type: Label, - cls: 'bi-high-light card-font-heighlight', - text: numIdle, - }, - { - type: Label, - text: '/', - }, - { - type: Label, - text: maxIdle, - }, - ], - }, - ], - }, - { - type: Label, - text: BI.i18nText('Dec-Dcm_Leisure_Connections_Number'), - }, - ], - }, - ], - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/app/title/title.less b/src/app/title/title.less deleted file mode 100644 index 83f12f1..0000000 --- a/src/app/title/title.less +++ /dev/null @@ -1,8 +0,0 @@ -@import '../../less/index.less'; -.dec-webui-dcm-title{ - .title-item-selected{ - color: @background-color-highlight; - border-bottom-color:@border-color-highlight; - border-bottom-width: 2px; - } -} \ No newline at end of file diff --git a/src/app/title/title.model.ts b/src/app/title/title.model.ts deleted file mode 100644 index 97efd09..0000000 --- a/src/app/title/title.model.ts +++ /dev/null @@ -1,11 +0,0 @@ -const className = 'dec.dcm.model.title.item'; -const Model = BI.inherit(Fix.Model, { - context: ['tab'], - actions: { - setTab(value: string) { - this.model.tab = value; - }, - }, -}); -BI.model(className, Model); -export default className; diff --git a/src/app/title/title.ts b/src/app/title/title.ts deleted file mode 100644 index 1a31ea0..0000000 --- a/src/app/title/title.ts +++ /dev/null @@ -1,61 +0,0 @@ -import './title.less'; -import {WidgetType, IconButton, LeftRightVerticalAdapt, LinearSegment} from '@ui/index'; -import Model from './title.model'; -import {isDesigner, closeWindow} from '@shared/crud/crud.request'; -import {TAB_LINK_SET, TAB_LINK_POOL} from '@private/constants'; -const className = 'dec.dcm.title'; -const Widget: WidgetType = { - props: { - baseCls: 'dec-webui-dcm-title bi-card bi-border-bottom', - }, - _store() { - return BI.Models.getModel(Model); - }, - render() { - const showCloseButton = isDesigner(); - const that = this; - - return { - type: LeftRightVerticalAdapt, - items: { - left: [ - { - type: LinearSegment, - cls: 'bi-card', - height: 40, - width: 200, - items: [{ - text: BI.i18nText('Dec-Dcm_Connection_Management'), - value: TAB_LINK_SET, - selected: true, - }, { - text: BI.i18nText('Dec-Dcm_Pool_Connection_Management'), - value: TAB_LINK_POOL, - }], - listeners: [{ - eventName: 'EVENT_CHANGE', - action () { - that.store.setTab(this.getValue()[0]); - }, - }], - }, - ], - right: [ - showCloseButton ? { - type: IconButton, - cls: 'close-ha-font', - width: 30, - height: 30, - rgap: 10, - handler() { - closeWindow(); - }, - } : null, - ], - }, - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); - -export default className; diff --git a/src/demo/plugin.redis.edit.ts b/src/demo/plugin.redis.edit.ts deleted file mode 100644 index 8824963..0000000 --- a/src/demo/plugin.redis.edit.ts +++ /dev/null @@ -1,91 +0,0 @@ -import './style.scss'; -import {TextEditor, Vertical, Left, Label} from '@ui/index'; -const RedisConstantName = 'dec.constant.database.conf.connect.form.redis.value'; -const form = { - url: '192.168.1.22', - port: 6379, - password: '123456', -}; - -const classNameEdit = 'dec.dcm.plugin.redis.edit'; -const Widget = BI.inherit(BI.Widget, { - render() { - return { - type: Vertical, - cls: 'bi-plugin-redis', - bgap: 10, - items: [ - { - type: Left, - height: 30, - items: [ - { - type: Label, - text: BI.i18nText('Dec-Dcm_Connection_Form_Database_Addr'), - height: 24, - width: 115, - textAlign: 'left', - }, - { - type: TextEditor, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Addr'), - value: form.url, - allowBlank: true, - width: 300, - height: 24, - }], - }, - { - type: Left, - height: 30, - items: [ - { - type: Label, - text: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'), - height: 24, - width: 115, - textAlign: 'left', - }, - { - type: TextEditor, - watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'), - allowBlank: true, - width: 300, - height: 24, - value: form.port, - errorText: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input-Number'), - validationChecker (v: string) { - return /^\+?[1-9][0-9]*$/.test(v); - }, - }], - }, - { - type: Left, - height: 30, - items: [ - { - type: Label, - text: BI.i18nText('Dec-Dcm_Connection_Form_Password'), - height: 24, - width: 115, - textAlign: 'left', - }, - { - type: TextEditor, - inputType: 'password', - value: form.password, - allowBlank: true, - width: 300, - height: 24, - }], - }, - ], - }; - }, -}); -BI.shortcut(classNameEdit, Widget); -export default classNameEdit; -export const ConstantName = 'dec.constant.database.conf.connect.list'; -BI.config(ConstantName, (datas: string[]) => [...datas, 'Redis']); -BI.constant(RedisConstantName, form); -BI.constant('dec.constant.database.conf.connect.form.redis.edit', classNameEdit); diff --git a/src/demo/plugin.redis.preview.ts b/src/demo/plugin.redis.preview.ts deleted file mode 100644 index b90b318..0000000 --- a/src/demo/plugin.redis.preview.ts +++ /dev/null @@ -1,68 +0,0 @@ -const classNamePreview = 'dec.dcm.plugin.redis.preview'; -const RedisConstantName = 'dec.constant.database.conf.connect.form.redis.value'; -const form = BI.Constants.getConstant(RedisConstantName); - -const Widget = BI.inherit(BI.Widget, { - render() { - return { - type: 'bi.vertical', - cls: 'bi-plugin-redis', - bgap: 10, - items: [ - { - type: 'bi.left', - height: 30, - items: [ - { - type: 'bi.label', - text: BI.i18nText('Dec-Dcm_Connection_Form_Database_Addr'), - height: 24, - width: 115, - textAlign: 'left', - }, - { - type: 'bi.label', - text: form.url, - height: 24, - }], - }, - { - type: 'bi.left', - height: 30, - items: [ - { - type: 'bi.label', - text: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'), - height: 24, - width: 115, - textAlign: 'left', - }, - { - type: 'bi.label', - text: form.port, - height: 24, - }], - }, - { - type: 'bi.left', - height: 30, - items: [ - { - type: 'bi.label', - text: BI.i18nText('Dec-Dcm_Connection_Form_Password'), - height: 24, - width: 115, - textAlign: 'left', - }, - { - type: 'bi.label', - text: '********', - height: 24, - }], - }, - ], - }; - }, -}); -BI.shortcut(classNamePreview, Widget); -BI.constant('dec.constant.database.conf.connect.form.redis.preview', classNamePreview); diff --git a/src/demo/plugin.tedis.pool.ts b/src/demo/plugin.tedis.pool.ts deleted file mode 100644 index 8ce7df5..0000000 --- a/src/demo/plugin.tedis.pool.ts +++ /dev/null @@ -1,53 +0,0 @@ -const classNamePool = 'dec.dcm.plugin.redis.pool'; - -const WidgetPool = BI.inherit(BI.Widget, { - render() { - const {maxActive, maxIdle, numActive, numIdle} = this.options; - - return { - type: 'bi.left', - items: [ - { - type: 'bi.left', - cls: 'right-status-item', - items: [ - { - type: 'bi.vertical', - cls: 'right-status-board', - items: [ - { - type: 'bi.vertical', - cls: 'right-status-board-item', - items: [ - { - type: 'bi.label', - cls: 'right-status-text', - text: numActive, - }, - { - type: 'bi.label', - cls: 'right-status-text', - text: '/', - }, - { - type: 'bi.label', - cls: 'right-status-text', - text: maxActive, - }, - ], - }, - { - type: 'bi.label', - height: 20, - text: BI.i18nText('Dec-Dcm_Active_Connections_Number'), - }, - ], - }, - ], - }, - ], - }; - }, -}); -BI.shortcut(classNamePool, WidgetPool); -BI.constant('dec.constant.database.conf.connect.form.redis.pool', classNamePool); diff --git a/src/demo/style.scss b/src/demo/style.scss deleted file mode 100644 index 70565fe..0000000 --- a/src/demo/style.scss +++ /dev/null @@ -1,3 +0,0 @@ -.bi-plugin-redis{ - padding: 20px; -} \ No newline at end of file diff --git a/src/i18n.ts b/src/i18n.ts new file mode 100644 index 0000000..2a1b3ab --- /dev/null +++ b/src/i18n.ts @@ -0,0 +1,3 @@ +import i18n from '../private/i18n'; + +BI.addI18n(i18n); diff --git a/src/img/ads.jpg b/src/img/ads.jpg deleted file mode 100644 index 5d87a7a42ceedd2272082221fdc4bf6981f6402b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12781 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 R+UAP&BoBVHvXey3HvwiUA{PJv diff --git a/src/img/apache-impala.jpg b/src/img/apache-impala.jpg deleted file mode 100644 index a7a2d01f11bfdfbfe141acc3e897a0f84fd481ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16763 zcmbum2Ut_v);1bMR6s;}2c;JQ=^`at+`t9|q&I;rJs?ebjg8*6RHbfe3=kqEbcl2X z=@0~@BnU`PC?Sx-%|73KzWeWU?m7Rx-@ka0wZdF;tvSXTbF6o~W6X50NOuk0JPLS&0qif z^U{B}V*jN5@8hPwPQ2Iy+<-e{*-TrYb_K(AxGXkme z8Gwe%TQBI}?GkiiFFpZSt^t|=SXvquz$F$MS{9m%et;15o^&+-*#6Ot`bBez_A=d- ztJmlm7^x>9ZUQdR(9&MIOiM@i*KKHGsO^BuEOe~56&_q+GkbbfIFMcO<=fJ0B0BXw z9Ojc)Q6-n>ujm;#xwv_F#l$5frKFWrRMqaO-+%b4uAcsH28I@vR@OGQcJ{7r?jD|A zAn%~ykkGL3h{)G(;^Gq$lae#DvU76t-o4K+E3c@mf_#8hH#9aOnp;}i+I#!@2L^{e ze;J;do|#3>eVboEW7dAGZ*2bD+QuCo9iQM&31{bj$wk%Ye~Cr?{x8Y?NiM1qXf9p8 zOndq2Uvkl03j0fNmdkXv6|S&8FuVFRkWE z2%u=~>@$}z03@jf{Nn%5?qcG9-gWYS-gWAK-gWxlcBQ`^?~_#4(vobjS^R7KwcC2R zpsJi#`s`+ZdS)63yb=~})VOPP`41`8vcifPSN87}OPNO2i=hT$HNIOv=$&Q)-yBo;pW78z1D8T}w=)d%9px2ZS1-Vj{G%bDfwv_|#eHi1u zE|NX{rmIS7=Cyejm!HM%^K?24|B_B^Kn7iWRt8Z|-Q>*^huL1v9J_fRtmyHq^U{&? z;sM^DoCS1^@dM5i(U1Wl?$}A8Ch-@(<%FKK)qG%rHghk4JC#KN2GEflzf-)$Je4pq=_f#p`XMW)9oj&)gsN@fcL5z_|yD zSqt~V^pZO_%>(^r#iS$$YGg*<>mO+&U9_YBomnzp%>0|DNqZuLSH1weGLMcRR|6Y5 z?JzdZuPy-B;E!xr!iNSTL;Bk<07-XJNaL&UYfZUfk%i`i%vrVGVZ7Gy+r17(BY2w@ z_~r_G_uKFE=rZ_As}dF*leRZ_-p!W5|Y!9Sc6z%cKFlY?_5sG4IjXMn@rLwLHves-tVOMRJ;Qk zAPL#i&z*)@pkMfc#>Vt>!95np)vA2tuKQ|1$!j2ebhM@q(UD|5nS^WU|6+Yb=n9D| zhW}5AxZ?+RP!yiI5WSdg)@ir&h-2dAyn*)FQGBCZo+#4z*!vv#J4tu+C+>j5ZF%U` z^N3zMK~C6AYsuY8v#8nJbUPCU%d;AUKg`89-q5l<$&A!EASYbHsPjbS#b9+?ov@X( zhw5o}sb1}E=|Gcn7w;oAZbW48oJL2sIyhx(vv@nAuFfMDv$0_((b`(9pBu6H{%hu_ za-H3eTsxj(1A+HT-x^sBR45QVX(>G^Jq1IBRC7Zq8PUv1(Ix}0+(e3x-+7nAY|BjY zJ30V6;4#fF|FWaGnEih zM40cbCtpG$g0Tw=y)c#j$-&B+@zJ0sEux=Xlr$H49@4z%?HTKqV9_=VaAYM~6qa-_ z1ein3ty6`6U@G^qbJsUXPm6vJ4~thU^b0H6P>IQ9mK*sw+$`MGl3feq4TcV=qu|z$ z%k}be3>#BLq=Y6RyA~IK%ijq8*xVStAtVoaN?V*{@{s8y{;VXW1`4ZRj1>EtBA&!oj>A z6)w}*yXR1r3%reen&_WX{603%`exf)jv+>qErfV+67QBJ|0Tcr} z{RKVQ(dQn7cBz3egjbAtju*Ib;scuh(FH(P1(^{mOUS^CK3pBzJ&N#XFHTYB1rNxl zPCXPjh}UN85sr{84fk07?MEZde?WmD>Jf5vnfs@M1G#x#&_3vSWbXD!`uGZ(raY%+HynC)bPh_o5twYcf?sAqP(kN&X2b3;hVtsBugA~ zoTg+S=Fo|~|LIY>INT&y%&HXwwWu+>HzJe-JFvG63Ad;m+a9YnI|U5}0slZIY6EfL z0U$3S4#9;aw|6_M5+|_W6J=>H30v`K?itq6)(D z=gv9q5wQk&zc-{p==EuH*S|%EKjLI#rZY)nU@srJrXw?AXRvHhkiGH!$GZILbw4$Z zcNiS^Zb;<2LMOS}9gNIuR*oUUTVvSVAN57%uSsSorKcGZR#^J4v+4hyVl)@1f1Om! zRs_-H z*Z3@(!_wD3e!89cUtiq`RAVtWW#q;6T+1Z}S<(?)j%KS4~`creU zngj)+SoD>y+!*bV-U|Q|i4VfUkyg;S6S-UyC}YZzR`hk6vCFi-TWluDCuK|AXQbf0 zpZtkBYRUbrW^{q<+6^sCZO7G@kD>3^)))xhM;VBCqn8_*IUx1H+5lWnPurIVx>Z|) z`5|I-@+mkrDePJ=nE9yIBhV=#R6ldds-9cA5g(Dj>WWiXFU^+5=G>nz2Bp*(=v8_n zybY$HdorVD z%VK7lE1%yL#$mzXWF<4x1Q`*!28U|@_V19=U#R|K?w=!x7>e!Y3J5fz#^_V)~y#&^!p)yck|O!-@!urN0eyhg7 zO5?DoVe2N52#v*D=QgrnY)0(u7_n%*5zYJ9Q$V##Ad^c_?Ewc*pEx=-pS4*+b+lf3 z@{KSu2xABNbeWwQ5}<6%4A6xejojII~tNx0UO>iO9L5B7VRdytd-0 z{w2u7>8NY+0$@y`kKqZw`jgzNuFn+E%@Fsb4;X}&+ zggSH;n_U?2?Ybt1w1U}Y;YX4#j;$ZehFFBZ0W+OMrLp!dJ_E9Mi)`)2b*j5d4h+4~ zRKM-m5RSA#EM3pLwy4af&h)jlT`~o2G3@28Eco=DPO;L>Dd_7st1$idPB*O^((ZfP z%Z%rve8ohLgl+~!&-K@-#d3s)B*OT`pDYQn+}lndB?Tx496j!LdoK{eLGKx0Xj!lH zJTs`M&82N4CS*0Lgf3bF`zxn4+id`t&wJ8AH~P_}-qr159{$}aEbXh?ho>L!*~`_*b<4r*kdfU|CbsRPZ8JHMM`>aQ zIxM6IyUyT-Vpd7%UG^8tOBlA!1=)XPZ)=a$f-Eu1ISRVZF21vjm>a2*c6V zomA*lj;3BzQTublN_ErxDy};tS{2wfRn{9f;sq7^EjI>T>Qy}7;+Qd9i7NiAqpQxe zPn5OgaV#Ykb1GJsej~A=JLW6Ycn3!6zRg+Yc=*Kd&PYczauoiVW)qh8kdFDO#oc~g z9rh)IC@!1|*Zzm?e3NZd_jzkmgp)#eQjx3DvzAZJ^rif!f*b5VCoy+6vTrAj5Ex(K z0#lXlY$_BBb6~Nf_1+fewbIZT^Ab&Ux0$tl;Pq$9;7dR4!SR|}*WW(y&CNAXGmfct z{v5XK9T_*cbQ&3V{O4$(X63iWyN(}9Z8jQ(eBN7cq^X&!h(&9Oc3(3h1Q@CXH8ee& zT`9_#3AgEu6~Jb^mciB;IWTEzGc(;8QT^H|U8mST%-&U{rZ(t;%>@(-cNw5s zl(LI5qgS|MXI7eu4l>;G(8xCj6&XG4zH=l~f7$gjO*81?efC7f3io4Q#qe*7rJhDR z_4vMa$=YGc5gG}Y`s~$r|0@<}hY~NagpNs{#n3xSRz}@1whzU_CqoG11^f- zFs;v)t(_v9rb`Z)RXky_c7x#y@86(qq*k8Tv(9CCBXVY{RSPEgsfv|G12@!$f4X3g19@G-qh2daR65hWwP-i*^{|`9+kV}v+ym*^ zYIa9A^vvPA4*H#in6H9VaUj&nf|C@EZU_&2(`4m1wSB*{$I9q~wDn*=a6!I~zE`L9 z4$nX|#~s>KWQ3r1n8VMLofuU9Hd)pU>=nMVma3_QjusaZ>AM3K!sSP+eVV6ZknYwH zC>WKrOtY72)0ZFNb6VsP^M)$_sPK+fz$#!XU#IL4RG8Ta@mmOIPD1=iKiFrcs_!#Q zM&!44zhatK!%K>+m+4%t&%;F&q5M`(`t*7%{=Y@l`))PtHn-1(L^Up-YZ4rp8N;2b zo)%(m_ZQ#7VR8cp&qgDYn6SP;C;#DN?+%g z_AJqZ$36YGNdCV8 z{omO-t;W@smlpuEFbdgn!WWXKGvVj*J(FWTs=7fLpWDHBB~$XU%f?E>Lb*7D^;&o+=qBPF9pD& ziJGIg4*mG!yw9rCM{+DIQgYd7edTArDH zJy!f}FyjT__i#@|5$|gie(@IohkzDV3`OaSLG?iQ!lGA+~bo6&O!{{Wx-e(8@FH z)z{B8&&S!&`#g5V>a+b8fj#K&o@#Dwn=z6wSV))_N7-?Ay4f-A+;KHF!-;3&^F8xm zAVwNTVZ8gvEj*IrOsp?LDfNTvJqVvckcqbmq<+{7V!G%muRfE*uVQO-G_QQX89sPw zJ_|b@4eJkUT+%{8que3O+a`W+fpw5v1)}Ah-jO!`mqkUIYYZP4iFaHX0#k*{ujxqN zO+Izy9N%FFyN>oJKH7ukRv^7?)HJ@1}`Wl56o{k`0o6~MokW@^&$Q7I9B7B7U*<;uU=o*>mKxBi7M+bkGQIv|4` zUkv|^d#AnlJ5#N_NeHSKK*Je8DApCj<=B!d2(kK>S60TZ7B@{5bz^)rC39U(9700c z5M7;Ip|wfj%~38X)pqWlx-L1YGv%QRp+DxVrtl|Z5eh1Xp_MBoT4j|~pqL&Q2koQW zb{k2?omn2P8!3$_Rm*3|rSmC4lGgiI>+Rg6V*D9Xd&gk>rguK(py@4BJ1+o3_ftp) zxT-vC^`O3>;PkKeF97{~iQVo|Q66@|d-UImO7}Ndc*-v;SoZ*A{0O^!jC+mu&`=q4 zHvhKuLLk)RjH7GJMn*zPWBz!8tkK_n8@2{aj$nQ{e?`~~{irToD3PR_d#PempF^iu zxX5<>-Ii%_VUX(2;Tx$D!O$yZMf1nmVa>c&si$gk&G+@*LJWdJgm1Adfba^NQry1_ zl{4?+uYQnuDxwW*A;SF}vU7jFsM+q3Z%xW$2>u)qxxMZ2Y?e>|s!J9b}VPbg`= zva_wEvN+ce$Q+;0Sjl%FA3?&CWRJd+sKngswhMp@Q3K9Eq9eDHWFQr46rt_}d^DjV zH?%q>uxxu2PG~`ob%jn2S3@4nP7mC_d@AcbWlHWST^J1(X>54e@jQ89=FjB|KxabT z+x)XSn|06fj=;^qX@a*r*67Ie$T{pSNp7w^VlDYDAm?}bPon&6Kb2+<@135q)BJ3Q z^sJ=h3&r_%hQXrm5HiXM!uWe)jksLsDwu7H!qJhuNztlk#xX7D-FT}R#;yHuAaq0? zt8{E<@!C&1@c9mh=)#GOKh{}cegPkP;OT!z=`y`n&C>X1cu>E#%q&b^i~?V=MAK<;qbfmojDA0?>on3Ry-BkrQ z2)%}0VAgI$fpZWzlQf7yZNV+)HpwwR56??^^Hq~z;TaZYZ*rrT(4HGZs*$82wSN-(nD?Wq6s*r2p2XR*PdrR*}iZ1zkbEG?Eb+M3`ikd0)C z<%!n8UbjySonFVmUy=0DUI+c|)(_pzHws)@9`NKm`7}j$r?kFJ_mL-$bFNuV%Q|Qg zHA*QiNULfwj;ulgO}BrNyQvo7_WP?f3d0`OOd?)tB3g^^11+8=`gjZ5(y#kOCY~>w zjG`53j#%t_e*tKt5~1wC! zJNpv2j2E3D*aJ&mp?+pMLgS}}`6Rh38EZl}d<1!Bud_bSVglMX)^{k}TNgbHReNlr z%V3t-X`i{D?}J5do^CU#lp9BA0f9RQ>i1p#k(K>>!i%260Y0oS#{XfwnLE90oECB` zU6S^vEEmSA_~oih$KvtRAT(L^x4pHuq;K%Ual!YjzeS_OJcSn?-oY zQ{nZ4@OdUf6Wav2Z`RcXQ-jFl6lSHu5luemu8iY{KR1uF2Le{&zdz_Z+m~TU8p7t% zSfPKj^!rxGWMCMl$?i>@GNny~a{G#%L}r633i&tT*y3x^w^w&cxWlXV?}hktKFMJ5 zX~|=tJTHLq?B2<-kr#or>7~<|hZznt>}hn8t{C5ub94|$_hT6tFU~HstQ7Q*Fi+li zGPgin44!&Msm7`)e(t=59aqIYOb^QEk@Zs@_1T=KguSc6?QpKE|Gu?~#clMvN?0?Q z_pN7ZZO^Lvf}`?Y5)yFs7l45YunVY0wE#VvZJ;Us5MShC`%an7o5r@R&u?VI!S1#f z%G}RG@vE>Z#U4VZW~M8pB|jelw)d^4M3W^b+3ycBBC3R>M$oBWqP4y#u)%VF%+@S- z2fkYl$h*0zyhYj0l}1Q8Fy&4`6Z_UDvS)m3VCu6O-<+`qz;8b(OTd)(9Hxd$TlxB404~jC zEa#~TvQbm5R06k0@XvURmLmQLUqOB+EBB|OCfFT2G$gC0YXIA1jmRPwk$7+!4{WS+ ziu&#S&wqU;_*+5Aa?cugXV$s9089)PTKfU2j1-W+7c*_N>0>mv0WJZPSR8uVTi#p% zRvVlf)LumUml{BPD4YZ|2F^%;^tI3CpPhSjP`MTQ@HOMv;8C67b#5_K5!7zz zru8+!k;eJY!6s}-C0FoPRsME?wa={5*FRxS^f1fX>9eI^QuiA98gdmX#DaW!Fn<+& z^$pP1bfEx!B>~50NiL2y3!`FizTVLDkT>nQFq{L1?$u8eYC$|Ja+2^o#z{-wqk= zz|~r9ZUQq_1YbaCEF(!07C4osV+BaUgcJ;u0ermQK}%bKDI=aF0VCL{EV)`tH1#JK zOv{sQLzfmFy5FeFoeXvV_GJcQo?|ptDXHFf2I0W_!+sQHh7t`=Te`-ROSy*?)5>{9 zavjSh=DyhP&uvxK#(oM$b_84III$ES8M%bHEt&@pjUS}QKqf7SeQj~*CQ@5-R{|?Z~D0w8$HHvbLYFTu% zI3W@Tc+IANWquKpx7&zbp@Af5b8ZW<`bL|gS8h5JMtV-IIkkl+H07hvU=C2M@Z@a= zBeGSr851fkP++}Z4S()|@RxlP#cF8#m7!OM#0uXwGml{UX@1dLA)7erSilO zA!9J|P0fQMA!xbAdEQK(S#B>cVbhKB(#tnmkj+if*v5xi&l&BmbVLbF>8HtpSBqD$ ze$KnLwbRec~cda+P5jn$R?(zuD&35s837arD6eW zLc;MDdg3_Zz_=*BbYlRcBu%Qbc0h#fZViMccX!EmL^b7%L3Tej?U#o|1#e`25vsAv`3&t0}`kUTV6{R}D=~S*2(y!M(M)8we$s4EpFt1RvZb zCPA^zS&|sEt_=-mUbNjY_riVOZVpvz522J)_f$FmBKK!!`tb6>BRyvaMmp;v8x57% z-&%*&CN-oqYC8N{_Cj^3sZV9}0LG>;->~Z0bh3ugcQ)hw|>h`;dYJ8#MkyxBO&qqVSA=2$NbbZ(3err&bN& z`4r9?)eAaF6EQ0M25Lry=9{vZcRO0ESm3iE2I?w)Uc<3Fkur$k>6P-R?>UCbxW@qm zPo54ZJjgrG!MlCr%g90105-^FDlAU%W< zNvj$^)$oNiPx^&CN^mZ#D%)7FzGNA@u&29-7E_s{2H zn3Hy}8aUtj2$*NOK%`uIjRsO#4XjfX^S8~_n8Ff9$|aI5RxXKXPG}3Brd=ed6WmoR zKY%U(Y|lD5d_;9LY~h-&6-!=%*QS>F3Iwj4_AeMW_Ady&+v2Lx7m!@l>N1V3aNCk0 zL&*se5d8>XC_YLpB5?dhvBdn)Z(o8sVscQ6CzD>MsNsDevZNWjw@IV}_jCfUcQeP1 zuUtlYL^(zcQWUV{!TM4HZBLlJa~#5}4r@#qnI#VIeY|)B@mmjvA zlpG)Sw*Q#k`h&2Do=aC=Qu}4D$=9^6{af4{WeKsTO zCbiN_s#Dp)jm{oM9{F3;hHcV9#qONt(K=t-{lqVc42}E)8NYSDk!UrSAdKP&05%^>!9s)>eU#oL%aBcV z+GqBJ)5q}hTuZ$+=cCsw5tX$bNTk5tk5k92M$PRRa*n=W0bIXDw|dd9$aGA4OOXnP zY5$k<8=410%7AP@i;ZuXrz?8vTag0dUC5FShmguwd$&7KkFjbe$$dz%%6D5mh7Qt{ zba~JWOx{1f4<5-1-K)RpH*6_&aJA!f-Mu-@aRn4(${Z*zb1TlqFh_a@lJW`TZc^>s zb&ha~nAmL02F<0qRNEO50y`b^>r>ENgq z6%4cn`!gp1u@8}pN*L|b3qbSGkm-C&zcY(A(}GX&rN&7W@WTEgdZT=GBgT2po{|D3 z`1h5tku(IFKjzm8%l@_aw_BT!p=RNtxa*7Ot9=Y+_8y`jQ9Rwd7gscR|P@(nJplBej zBHgBUx!7E6eW=2-I;8i-Y#*Q`m5ESa7=m6-`0P8KsjE56M-@6z01ELlOSPEw7jKD?hh35NFy zxSPvF*$*3cRZeP`#LUSLIXA8BBB@wPhdKz(*fFOYIO;2Np3#tShLL9vuL3fJYZ6ZT zsCai2=Q`9a(bAA*HG{B|*A_N%U0q@Lc`lnuuMG_>1uclBH9Feb&;LBl%li!Pl5X7% zvEjB3o_aF1?sqeJ0hPAsU*?a(dj!P`F<)N45!E46DW!I_ZtWOs{vlm1wrH! zg=HdmrnM1g4OfpM7CEiw56k$_yQa%PT5Z3we>}Fb&sn$j^QPCB7q3`Ena6OgMJ?US zR$!?3E@EI|{XBHXM=n_gZgu2fgdn#>o1ua9RD9H+1B$nRkDze|0r~i?geG zwp6D8YKGu&ui9&I%PaYT@T9wESdlH#anR7*5=C*2nI!*0)uA{wJk3QmAxUgX6h=1U zZ4kJr7=g__wIZ}&`|t%wZ1;QY+K`RYotZslYA_kC*zt-&bo_{%2$mUD?A>0od$nTN zc~~dwzwa9&DV%NW8j!S(!CB(&Nsr|hmEJdKlacjkGWJ?%t_cZQDhl=*%ZZHMSIaD_ zJ!p#D5;&+T5=5PL$5A!?nJ3{T@OQWCJ=6-+CL=|+Jr75|)m3YmQzOYRhTn!0ephI# z(JYA8uaqAvrFzpdYJ}xajfWCOg|MCpq(alZye~r}DgT7R&Dv+RJD3g)e3cP%pkEXVm5n)n4)9JFOT615#1sr^%<2FMv@__mLjOtoZl{y zayQ`3uH~E`i!lesH$r;wOeMK2q8v8zzTcs~-`8Hw!8ggWEi^|14~W ziS9|lp3RXvrcK-vVGQQUIb!D9TOFXfg+Zqd^7(U0OzhVZY@kig3LjzGhFVDEiX@0| z^&?rMADG@44TIapj^*pWI_R`5W>2OJ_({xS2qD;<6RQaei!5V1!Q+@0&Ru_qKH+}o zZzK1itSCB|-M_p>N^)f+KeVe$Xa(ec-O>S}snpdyh(FVlTLgcaG&&! z(Dsw=`P7qdg~q1q_+S^J0-{ilT9@5iSPq zhb|E;Ztuzsehhx49a)EerPyZ@xi)-T`QQE`^wSrcKw(^?I_oTQ67u(w%hA`#MO44o zH`J{{P{67JnZmF3P|<&-wwMb8?&rCa>Z@Hp#6QY?0GNQGaKXX4H@pX4OLAE4FET{O*2I?b@j9nI@r`8m{ zKLDd`#|7cogEjv9zJ={^M3NG&@bQD16+7EsV1Y3a=uzvDhd6gwT=zVJG3|=Rhp*x^fY3GZ^=GmgJ><~&B>w2G-C7|54T)1(0=svKPXnI9VG3I}bP z&e5IVKQ#M5!ySxm5N&TKefn&ldGMx-6qoEnOs2^{l)Vk0cHRrKAaL@6(`HnS9?bAb zLsPj7JY=W5z2kX{2~wgwV;+pPDOo&Nb>5Z0)}ZOhknU^xxM_SCxinU6g-TW;(D?ev z=!fE2=y^>cSa`mGqb3W+D5x}infpYGcTA&;lW0D%EIJU7nN7PlRIE9XwVrv{jE~x(#4wLC&+kwebg3_h>DYmM z?G{`M-VF?hzK?533@(7F;)i;HSGDE5g}D7{mlswnTd`fK#j+Fo?i0a8;yYQ{jpo<= z_knTn5DhQw>F_PDmYX4#eI6kT5Sx56V~w_+2f-a?{_iVRK=$~ha_-q)i_<@A@skE4 zxE8;yu&#_v8$5>UnO|v3#ZIhXA5$qLJd|L8mMOVT;v#2|+~wd{Pqb&!funqDU z*0Ls!D2tVJy$I#AL~{yO#pI5^WgL!;7VSTjH&Q2mAVLMu!Mef23?Gg@>#68heY$?p87g{ z!F>Q>@5^=yKD!$c&sm5r$mVxzK`Ava`%Engn8V{?e3tDF^H4{v(7@+&lRlgH zSVwXua`ht+`wKHcLcbqD&?kyUD-hC3!`TM$VKO*?^(JG9%kG`uq1M&I7P#f=`n&v_J#HKst6zUP1dQ+fkUm zUv8>SH*Xf=-tai42!1y59xkghapW79(y24JlanQ%Rk+tSXI{;+ve1JaFG^*M<<+5R29;#WX_@m#g(LsYI>N4AB z)XrQUx_Sa)Ulgt@)!I~7`L)nKGj!TV7ICD|KO1MDW4YLA@pHClKfkkN11TOmNEund zK2O+XCOSmZIKMz*ElUzOi#c&u>Pvgdqjg(nwD}xKMg$t1xC7%$t*S=Ol!^fikUiYS zCf~tGz|wXpJQg#gH^;V@FP{h_6^Oo0uX9K&w^(>87F@J;@O&mABy5DUJ;c{*&d!(L zN~$lnDP*T|Oe1ILRSu42-8Ue+)W3Qt9 z(^UNV!gHs7HP%~s*hWaf>B#aybrpC+z!@NNjJA3DAb$R-29WRp~_HNh~NRNJi zfR_z5Ybwv4#)Rx0Mh2O~;wr%&bt{LEu=NO)Q>Ud6AhpWHGlL+fpU^EseFQ!vCL%cY zTUb~LqxMz8Ln^b{4~{Fof}M+RN&^p0l9aI~^=N-~TY}5fcAxI611r>tuhEmasu_|a zY%AZ+r+_%mR9AH4y}K(2v}AD!{W4cDqs!bp^~a)7zQG{AJ4LrF)LBbxoL?vRwpD(U zd7y!hyQjaSQ#)M7e#nR#Qi*_j%z&=`1j*3XMDd@%hKzoJAk1}Y>fod#l^34ouOb8> zjQ6OjvV;$gpx29&{JoczCYv<6^fqj;V~{)4GBpg3v|HtnU*e6dG z#0nCt(&}8__3)p2*haP{2d^1wjw$)pc@63F#lW@u(cZn;6&nl2c3vya5<=tq9UIh` zhmMNzUUd*eFs399`Bmnyav6dyNk-m4z!ROWOlevL@pIZ&L9jy@)0ev;8SFn*j}C_(cQ#@DYV*B_ zvR_+L7(31mXwv$ON0_wTmle&j9NE`oBz|V+IV#`RZq%tYui*o#gv4$^#F1CehKwje zYE;3wsk(5ZdLCZ?T{i5F9uApy^3#pY3rrg;5T5W*TXN6XikzX^k zgK`Yi4VI{Bg6p|NSvBH*^sN0&>Wa0i|5WhL=AD|uEfRa<#n3(st_bhT@)!x^1E4PMS3bo%9OH+S{(nuHn?&W*xn zb-VDW?cKf87?g6Q7{edgaIcOI|MOUIAdy-kcl8pu#|`XC#Vo+xBPM-i+$LHe6_ zR*s2-A%9J-&D?tp75Bv`(%Z=-I75Bv)6o!_4!Afn-;o$Ybxmi#z-`z5ky-yY%bx$W zDEvRIu=so1zZBE{z4<@=y7+s^IrU zl`80Q&j>AOHZk3AhsD2DpA%x~u}=ynF)y*Z#QzxOSOe`PX;< zT>a0pq<^mcXSx1g6)%1Pz=kip{k{EOc>COwk$4CIt843D|5tC9=|9SX|53a>!ILnP z45+=n@tP)Uo1z|e@ddzi6HpHzUAw{rxXN_p8q<{v9Dwignp9W*BmGCS%fpqc*RE6D zpuR~%OLtkJ;Wpsvm220oUcW{~^{>lZ3B5cIxXwg%=f2eA8_Y%y)DK{HrQdugy2-Cz z)6HT$N)nK9^nFW1%gV;i!6_&tEFub&m6KNhD=IztTSHUpskV-ZshPQjr4`iaxwDJw z3paN^|A4?Cc<`%;$f)R;cd>CPscGpMnOWI6AB#Vglp@Pe<+XM74UJ9BEv*89bAF($D%`i|1F3dj-! z$^U}(AISdCfW7_yh3r3p{ZCwTfG3v|>%W&SE<5?}^>EqxV&QUH@?OjW=&xP5oJ`l4 z0BV3UaP`rM+Wh78eN77x`TvqJUVQuSG#>r$G#>l!G#>xoG%i@2CGMELo#hZtZxwL2 zs+rI8H=4|PU#=)XKQ;02fGo!XQW2d(i5Ed63?}!DY@g4@K^yC3Dxm2%mD0;K^H_It zwSxsG`(|c=yP?dJyitS;K=iA_jsS-AhK_~R(+j|+{}69~sD)u#g0nf7WnKoy1t3EV zyq;$<_q_c|?iwY|5-JM=S2}wWR*zg*8=VqSUK4JFi8=Q_VZ$sI`rdIZ!&jivv9NgF_P5%t{w7t=a0=8HCFN~tf&aqwWo{g4BrmowfFllwWLuPkQqDCD1;T*>}QuUYj6Rv$-vLu6!86Oo=6wd`vd-5sD0}y4)X8<0DXZmeiiC1H1wHt0ca|3zwV|H-2VyjyIS%!ylc5I z?vzh$=AeVmj`RyF19}Kge%kg~_icxM$M~EE4<_i2buaMY5BbrYQ;%4L5RsR&V%yKA z3EU^9V{D3Y4Sp$1LpwG72OMi$0;xB)STE-MoDyWL9dZFE`=QGJJo`Y+BhzVja5l|2 z0O$gUoc_dL(V!x4eXLo@}?~_8WEbVlXQvDU8DEfZ$ z=6vykE_wWF^I#{Uxm^0~%h9rqW0MO2)zd}sIXm+e*-jDuozKnN67tI5U)AL5>_+@? ze{yQ*rZXM5ru(7eZi$m>GvxFC%bj^K@o%TFysQ`Jx@F7m$Fq4ULX`x&v!ltkE6D{~ z-8Zv2xks?P&NlsdlB_nEK zl{+Y7>ml^qxuq7w?a@w(ej6WBtq!^E1S5vfNixIdZ7F`3OfizJj*XUCpS zg=~SX;#{}tWq;oMDs6SZIEr3(5N7&gzn+xsDFx4J@G?b-1vK^W8331gWrip0tg*pp zxV{~WyF*D-k>DaY!5TZ763Us|*|*se9Lj(A@vPvWZ4~+a)SBdLcjxY7l)JD72)7LE zY+xiu~iO1HHgKCSjrqQX2s-p$4Cz43T@Idh{Yu>3x z-M^W4Pt~T#+{^_7j2^Ac%D_R#l&RhGkqp6};67`lZUGi#$4hp3KdR50Othsoila!xzHRi+Rz}e5H0G=0 zc)){X@!kk;7s-#CmIJLD3JRbxH-#j>A9Ex88?=NGdmgBvWe=~LzLTIJ`?(5yq+2OD%DdWY2eh+2 zi{I4MJySgtz27;uQyea#8&X!Hk*@xg)|vG4ySB8Ba@U#xi%-U*7+6-h+~?*z+0W_g zG5F;gQ=~3irlaT(#vgWf6Y3^fW#`tTBQaX|J?{e0K?#X{n7zowXrA#P`T;oSVRd8= z0m(tAsTXDuF)Ie^7``<6gJxY3tQ2=sR~AIT_6dJc0qz0}ul&y}{9^LoEFv_&(5r3D z(X&(wpk2@lC5Ay*icetK$>4WP8OY}f`tv@}(PIodW-}=UkzH>8@hk9H!&|uCG53{_ zE3{I?7zHh^7ws7~K&Q-zOA2j&Y;DYFsyU81;Rzd=)oipUQYREO+EY=WKg83NGQN5? zTmWustZIud>b zvLwl;Bx+bD$8Na91|mM`p0~T*(Vv^I*f)xEbk=1MHc#SWi^(L1CohUR?XL2&eRVgx z09g8!D}T?)g1Alh@1piF`SjArA!GJ!cN4=ji-zLIW;hLXG(zRYd8~(hz1o+qTk~h} z7L>YWG2J4pb#<)lTsHqbSI@V@!KbBw(3z{;AhN zyV3Df?$DK6#l3Ur0uUG&D(l66q$Wvf!+B06Px){&TOUu96w*L58E?RGNF`YUQ7C>0f#t|67^5y+@(tK-FF53)DKDq4i z-Gr}&ZkC8X{yix4=mKy}SuZp0R0bD3^r~6UjGK{*EU*3A|3^n0UfNT;?1M|Ap; zhxq`^pP;BCWtOfQtS;kce5h=-tU*`|O>s8eAigl~A(cMKS>ZRYZZNHjn{d^VLq=D# zck84phjCWK85h>3p&tM z`imG9861g>MTvwjKQu}{7}t^<*fd8&Z4TTgD%93d#wMBPR6sF(pxsAjTP4p1srxHwTWd-6t2vfY;xYZBAd2-LmRsn%!j@&Ci_PDNV#NJ5D z3&1TH*rxYdoYn6e>++}%>-)jNG@74O8bA{Arom;sw|{oIX*LLNOVxkeGWr3lP>;EP zVuQF^M_!7NY!4^QUB3WCw*6HTEEn>^aR8qCSL3_0j~tGA!Ly~=FX+a2rM)38s& zRo~lx`(G?9wTr2LvjQ_}Q=ADW=n%W6#@d*XuJ*Rt(fzL>17+@Y=t>}xnqIfkUi+By zWEju~rh5FETyYHY?m^v47&64m8l9ZH0-8#)$}p>VhuZ$! z{E9sR%ViR#CqbK5Vd`aTE68Rtl{4ucc0!pZ1ikfNn(4)b(;u`*cp>;cQEnWn7+(Mk z-aPNp923ulwocz`QWN;|t9-Wc^Rs9C%`HMgn5TgkfLdjfOFM`5Sv%7(g;B16pApLu zL`~dqBEyy3;a}TZBkPnkJv3A6-B$#&3^ShpY%@XIL2_3kbJPX~;}a+`Y{W(jJp0X2 zbfFVGm(hYcx<|j4L9)s`>1wpCamf*ika4Thhj&y#$=^7q{bMq=>s{xavqI1*V-Y-+ zpwJ`9Jkcs@C~&e69E3>&j-r6yw^b0lyo#ah4&@jrRLt?B zs!WvS3CJXkv+!63WA!_(fs!iK58isa+ukOc$T?ZN^Wf{AT-=vo(@piuhq#-g#{h@9 z8LHnn%DcirkjBKllvgT$!#}*XtH+)h0U~Ffe~MmFoyTB~qeoqDG? z{Stf0!d3TpVr+e)f?itHNo;`7_%LN>L2Tjp5hb>e64Jx5rgkl*LT3J}}j-%`zkHYPsB+`yiYloAfzKh(=?IIB*vQ$7-3vLvhQ#6ia$ zsmf1}{`Np`)ajRO-H6l$-T+@ zJp}4vffUGG8CF-`SayxOO7?@M!$iiRL8u+kn;hz_K zE4oW4{g2F~piA}wTHAi^VyxG?iTd{?{TYnrfnUG5{Z0)6eqCB087qwOlca0jia397 z!=gce84kX1Za1M<4$Y^x6S_1yT~LXJwdtVW64AmUy*fJM`5^9vtvvbYuy_S7r#^|DO8%2H*bGQ!gsYx)34LutauFym$@>iAN7+s zs_y(!I6z?ObXl}@X8kl-Or6huOg}l|QW%g@6!OacLFpNY@2{hGv5nO^G$UEYWxZ-| znwsCAi~m(^LP8$4Q=AxIhdqE7>ee*fc5@-}F~7K35t*ztO%v=%ut8)TvSD`cQYm_` zJfGJHOdqlBXDoBt@Znp|uhD22e^HvKJI$eiJ{*v7S+!u$4$T28LvaMr(m8*Up;zO~ zc{+s=Zw4-mlJ;~Fs;EdXEq^}qsi4a8v`r^q^HJL*j*w6P_w0Bfo1F9Wk%Wq)=jW0C zm14S>{&y>2L%8F@EgpN~A8fOb#&g>clc{0Cd%0tyTX~JQ^xwQEH;}%NJdW#r zR;QT^BD9xt%=kGTyBtNkAEo~?5$-2vZ9kgXtYPPba6touzMTgiKXH+Js7%un;MQ0I zYNE;%dt_JOn&t30U}{TCi^C$@1HNEwaxie1Oqq5d@e?wNSGeMD1|%A9ZZgneTjg-k zk8HK9x{`ttz4QGZY)oY|{;_CUwA>Sjo}bg~1O41OPoWTqrF0nHtGzG{1ds9vpIrwC zDcHX`k`nz$2CrU;>SYo9UCGKD#jPpK_O)eQC$lCZa!Va{&O|E4Zd=6K*hdnM!P(0` zX+I|i{q#b?dy|+|ikpdeQmK zF&=uG?ic@;aN1Mqf8h4!nFdo{=!Qr9Rq(eeD(6EU0j`1_tC4r)oOwc;7uO;+MucNk~mgq*m& z<;03O1A64099@w_UA6l|j_0=$jSa%qI(%Nez%_TpO>tnR-Js^nGn-9Q%(Kr%ejg4fo;NJ86BRH6 zCi2xwJNscnXw&VrgU`)+x31Bsg>`TvX*96cG91cxd-Dwso97)9!H!b!KFynF4J7J_ zPT(mcg>KpV<_m>z+WJIY-7%pSvQQJ5%Vx^Ue?iiAT8?YTd}o+lHdnBrBdOn-;KqZ? znfz!V*y0?!;_Pw(uz<@%ojxWNcAwuNR2DK54sElXkGyn_cHHnSRcTW~qRxup zbjuG}YMR^IBr)H*9kxtSiItm%`LEysP}7w+RU7z{yonVF``eV_fD?bpBTUc|^ZruY z5<|NQA^*YTLGBhG)r(ip-)j|jpA5v$nN8L!=9<+s#@bm&-1f|kgI#A9xgyAUY&}Qv-pSSUT?}y}dwM!~H3xixAQf+v(?%uh1GE;q@%oo? z)hVAS$lpgL2MXK0;7j z*3ZP+E^^%2>HCzvy=Za%mc)$b7EWkqrr$ArvFvwR+d2SF1r-ZzIFL7UP`WHp>uKeo zPozGcb+XMWLh_338AK;Dc+CVUOY!HNj);du)G82dV`q?5d~lk~XD(`59g()6_zeff z%Pz`LnJIyjUD90HbXucCrX%@#PdzEWPE_1ET@zJVDQmVNJy09--zAiVc2R;?IF2(s zO89Gv!oq|a$@zD+V!1w z7Bx)QwK;?eSs)BV%19=hDLfu)=n0Tn=q-l!JX`XP)VOA~N&D>rP-->ceZ6rvC6V6A zeR|W5Wtsr(Z!W@A`wk*5|JsCxmCD1A_16@!cjw=ONxCXi8M7XUY`X|bli zy8@dIjR1o2oh&@Mkb}%(C))3t;+nNR&X(;|yPw%L| z(7+UwxD~1E^sd;G$VE7#<;~7O)ISvD-`V6n_WG9ktu|+;B=ycF|F1H;HNMmW)4OWp zx*|xB7WJCD)M0kC5l+#}%G%!bHR>(SVLWg~R}RqME? zIb}^Yeg81)tK&~|H@m*()rq_L4K}C_P?(CvQBpV}>VKhA{+&03u{GRbK~qdEL5(q? zl0~qMteV%Ge9+X%J!QTSvipbmua4v)JiK~q}*^9efu%-?@_NSDSKw)o!y~GcSFlBEeZ;xC-BVo*7sy=#M?hx$26yi z6rQMUcoP~!h?3E!#aOt`OolgBafo}D!<RX}bR?jlEflYEnIuFMRm;7q!mvv;g4L<=0O%D#Oe+6gnpW6W_A;TSBWl;>N8 z*-3rAr73CvB9j*`rYyR0(&5wtO~{eU_*kGso_>Q4W8FIEiN{D$qSuXE>c{26=gn9*b08>=G(a6Zd z-9{6gVuV!CZ=LXwgNf@hfn?Vi9e`uS5UEIh_S5u}Fdml?qIdVmZA#PANo5U^q;5)g zLx)7q4<)a~%AEa_ttqx>#iD2)1LJRw^^M~Ktr?8cvTf001RLA*bMIrP_Hl;ZF!psD ztqd2ArO4n=J%K&X8@Ej0^bp57s}VVj;}H;(uKZF#G@3W*Dm*T2@@X%VE~7bfz(g19 zSUU6x6UHVy{W*M_)r_bqU+_TDPJx-d(w3fXAnhT0f`Y88BEhF6ZOaU=nIN>hs*ZN| zi~E?c#CJZ)2WS^0IrZ2xbh&m2Lo>p;zi*NlIK33i>%X;g-DpD6>4&X>16)3QRC}(Q zTed%RZ=|%USR7vr`iyarCc!et__`OlNNw-nT-}H!Ih1`IDLY?e)$hw1*b^D;=8`2C zJuJn9%xXTMaQGe)40#7E$HE5#Fs(6M+z*IlEg2@#n|udRN5|T zwqK?P>o&6k#payrZS~kB>({D&j%G;mZIgYm>KUB3(Q;IbxfcLOgM^GinlQ<^8IPtu zCjuYutQG<7xJG=;Qcze{xfm4FV2yOF>AB06C{d__ixli=M9J<-Ythw(vF#g>)ffo9 zvHm{6of2R>t`%+-BV~KT zW==68{q9ktV#F~hShkUFph)p{WQ+Lod%8sHU+U*rT#i>#XY|e{*7nkC*E}j0|KhqE z(*z&1&aCE6W}L&SHS(CBFnxXfoaF*g1?L`N?mmi%KI*+qmgF!{>2Z?E()&#nIc!=3 z&g1otLT66*?*Z?onX0xa_rJA-guM!2t1IRshRG50igA1gPHb#gbL9muxLEvv9b8Eq~4-aWktmEizA_hHyy#pXb5}c zipaM_Q4^d_yAS!5gx=lScc!{-8X6~~ACA?=J^owJD7;G>9W7TxiLa56OeuNE zi!liw0uRWd%vGvcj3efL?W=KAoHnU_d-h+Phm05h&h5_VP7x#?o!%#Q@L4y_|Ka7C zt}kTjzS=nMlfmYrve2S()kf=X;O@2eeKJ>X3RrBOGn2*bIEdU$a>YZy86jB4x<5+P zdhQ8LYzau8$1}}CJ@3Vkf}46}YORHu5}E5hvhaD=lh8o#Y4j==ggH)+8PR*|IK6zBJ-MWt|-c*3p7zf@7n{s*od8KIao;v@+A_k7 zl-`TYeLntoPX5?Zw?tA-G#Z8dm`gWdUl*D~lMT{q1okHh7_^gme-=y7tR#%YHAg5D zUIGVX;yCh^u`%u>TUt1aa@c(*QPTmZgh3fvE2nPa$ByKh5=D?$0Sg%K?sLSea{NR> zjG){Vh=yPM?0Cpc1>42 z!!}JbN$ApWL+OAkjZutfOb2akf&&q5-=oUzv*Y|`MM7qfvL(9$l9z^m)w-t3cvh(C zFe|WpN@BGzGa^M>B?-_*ACR_pNji z>Ln~uf$bvcC*BgLhK`uuof1zlT{Q zw(Dp6tZFF|nq8?4*rF`k?V)#Vb&O&J)~`z0YqtZV z#S{s@Y2o2l3N$q3>bCVhQ(~g4V@*ugMG3X-w}dJ;`&qahl%G4BndGMAImzrl`qD{7 zYQlQcx!Ez0UZ&ql{^tcL3+?47E|8+l&mkePvm+obw{S4Oy|=J1{2MgZA`nGeafZSu z3t~?hut!1kK6rawP~UF9-3Vh$>8j$eG2);GoHOoQ5!*v_?>B?7$JM6mGziSOiQv@+ z^0aWlBdo6A`4d(AMDH5>IPYL3R7n>D5*H!iFm% zAkV>PGL1B^@)qmUK}{n}o7JQAJ#X?;3)(n?pCz_?a;E8x?%y9*&dB?o1ov!%o6cDY z8Va;WQxaXbr;OuGqFL}6d=mOQ1mh&$XkbDA_oj|HHRUZz-g)K!!Y=+hnHU3um|>{& z`6Bs>12fT-Z+DFC$Qkm_^CCf-uNJi5iEXvpp1Y^c+@>!l1l>Q_zf9|x{jga@oJ*Wc zn{Y-a=>@Wa=f!Q5b0DyGf%BfHTQotnDfMU<;_T)`m#3OzauVySwFpMcko%EZef{^+ zc9Iva`T}rYoMpgfegpVxV9`xlwr;McEo7r=RO^mb$y4hyt79OgI%;V5l^vf;R&!{` z6`fMCXfe|id;9)Rt9G5X916jXwHy5KNQX4jg7)YC~oX2x@q=>XbblJY{U$E=540;P#YjgaKJF4d?Q7s$V;B)3Eqj z;~(9SHVfNNeasoL;V6U*c^q5F^3W7W+6jp+%7x@P#}WpI(cHYjk>%4JR8go$PHq}Y znJlj}_!+@7Et)ppl9#!I2nt;Aka)Dgqkgf8fnr6FYS5b!6XrCc8**o4ODg`j@<)z0 zV?rV=Imo6qE+P3<^>@ahzXe1mkeR62z_MByflN+iGe7BcM3o8MBLdbQybLyvYXAk(`$ z+b5mf@67EMYq-=Ln^J@7vT^t(hCZKT4s-ggvNj?jpw|S8pFk@_2mK@{;AW zzcgiTUhZn@pZ?hU)h!U z&g7OO8Jy&C$r$3f7$eSav`wT~J|}Bda~}sq?jO$nlK41EIN&H!6gC($)@W@7u_`*B z$i;pTXpf!#LQcgE3P&RZV|(!>qU0M+w9OJc-MSgR6-j9-+g?xu1g|wmFVj0OU(>?R z7)4EZmdpaF?RAZE2rliRFVa|1;;Ly)@S21|Tr`ux0>-4Q-m)?zvh167i#ly1e>y%g zt*gME%VXRFS~<5P(6YN$U>%<=Agvt~4!fVSv!+cWWGhv>1QH0 zST1UwAMR@2pmVUUpy(*oP`VzAR_scGK<0<~T28b@<>Xh-D}2^0=-aN{f*KW%K+=_D z9awID!;B@1(;B@Uqe~a=uS^TggF@uN{YOuJs{b!O>3^?|ebjZGGJFBRv?k{Fbo`o3 zwOZ&2K`zZcB`>%IefwJ56W}cX|8TXxeBA+*e1bF9{nX`zu`!D$%m=bIaGN0nK7Y@# ztYlSSRKzl6I&SEjBJC0gzk7hO`nwBw-2$2>@W2{4HRkioA~O@DiZ@9J9LMtTd%Ga~ zQU=)U){XIZ$JlM>M!;-_M70)D$GE#1`2ZIHk8lRcaeps1{I)kpR+65nA8crOK$yxW4c*(v>-=EM2-WU2~1&MV<6`|rOt_tHgvrHrsd^n+7O37Q!W zMq|Y(>!*F1%t*67!!IipLg{*fc6#y;iaT$73~+i|bRG!LU$*ncvL`^iFcgHj>j%^@ z+J>IrxXL5ddNEH}KkN@%L`l2ULt~uL+eV3e)BuY`HRa6-7vd@{;|U1d%4l$oPoYpC5{@Q3LIzb2%Z%in>}R%hJpJ-<)-Ow zYk6XE1zPX&-8_CF)!!D_DpgseqCsp8scmViVJ7Qv``&71xCH|@75#zBj29SaG|(Kw zNIx6thE_>)pI*hQ=cDdC+myU&>9{aZGJuO7|N$5aTnJwORQQ%1WK`Fa|0S(mJD$!cBQJw-zI*)Y^c@ zV3>UyAwx?_KQJlX=<|O$t@@T!9ic3^>?NVX+}+7Fijew*f6S^Rl<$H3Yv+dYOvbFp z;NFKn$hX!lh4bdPzp zinhH~|F6PqSH;5soMoR2$Bsvq3uR_O8R8I!jw>$?*;O|~s=4Z`pvH}mJjE4!sQodWv&2Ez2y7EhfsRPg!N zr$)BRU`&(LnCW}f@+CakZY`H%EH`WOymhMN?e=}=xdOeJ-o@uX^-~t&V*&Rwov2Gvp>* z;hlEvG7qI8O3S2#){K$3u26oF+t*>ovHG%j?NtFgCpO11opI$RHfG%rP>SS{9I-3z zXr0Hkd2mDq4?KzrIDkK49OAxZ@FqSLnYlVKkKCSAz4XN81PB@jc$in1uo(L#A3q|D z#3*XrTxGZElEf;3f#T+QTfXgfZt-q@E3mp%n;k@rQCxy(IV_4(c8d4*n>}mYDw|78C zr{u!+u6fAG}P?>&H)~A`4eK8rfE${b8{2;3J0x%-Rg_eJyEl8uLupbUM z6KtN2*f8o|mN{NB{FIWUUpO9IWpxvcawzZr-p<4Rdz+M1d7aCvS$>q_%>ie`EHxt^(a z?%!n7RvYW)0de$VF1j^hR=#b%Wla+=cC0IU?B*y4QJY2Zr8#Z-R=KxW+@APi(q#ow z<-d~CCp>nmV`b{)5MPvwy@osQXnR-e9*E^poAIEpr4!KlV?Y_P_UD3IV3|ipO4v?m z@ujT&X6yq8C(_~=jnwW)8D*4LaD{>6D|2GlfX>o5ADV{?6d zbAvL)*1Z~lb&&OaJ1cA!ckA8aK1di|DvHw($!Q5?iqnxQQ3p!t&_ESzVy*DE-MF0* zMf>;vr}gs`tX%w zP0N(z7womO!cTLHcJCiwxBf71F-!65{$8cFQoy#nEv!@!l1uoUzBz6)hJE&60Wrd! zX^(QAfLS&cY$moAiuH0E#4Il|5pN0OcAI}3c_H*U{Q?sa&r^zDW131j8-Q)v5LH#n`c{%1(&aGv1~^xU#knc*462?$wax3yT+ZM)4WP zbyiH`8Lk9ux>l={=$LxPQ>pylyVz$%t7j<8|-JLkZknFYXazv^w- zF!BnTcyAU;mrWgME&30tz60IRGa9_JcyC!(yrHsjR6EN#+m%<>kHq+9KA0$E5=-Pp zGNwD*C`96PX-wWVXUbupXX}w+tLs?8mZKo>d-nL6PKgftt2EIeB{Lwt_J_iXBx|$U zTR)JhZnpWLAN?OD4M&HR=Zap4Iq7Ili&eB;IbBJll08QDTuU)OS(0gU)JP@>hc`v(;Nh;a?06WzZV)knsA)>yMRvY#tcUWB9L= z1|*Y-3Q^o{1Q(er(Zs>dC{B(B+N^|P*#UBzA9saJvDQq8Yb4$<72+S-z-FHKVie78 zR$?)uB!@CBM1DEv_o;qo>FFHCg`cdj5U-%+$goeunsvK?Y137ZwU&9}FG`CoX3R`C z$MT^N({hvb!}@Y{-eSV<@6#(m?_~2OjlI;cuc)RvTqNuHZo!Lj$1h`viHiHL%M%hsq!meL%l`%WG>_2uBF3nILEk? z3;2MQtI*t(`i=rALiuAIiBI>k$-&iQblAKKp2Y4-bMG9(0gp3l>7iQBT(+zq-)RT5 zH5;9DCdx$`#|yaTFc4|Ov>dJC^RI=B4GfQnnfN6t_yFcLCHVPOtX{G=cSHkPRg{6M10Ev-P#IShurvZmq9CS?l%TIvecU5T- zk10skZ}IY*}bZ2e}Q_xT_+aI8mFu&|0^FVV z{!}NHrKCEK^o3Qd*oF8LOZbC;60UgSn9&&Jd zJjuy>81SOf46L5dLVq2KKQAOq--0zt^2L#_;gmL?#|9@2If_0`lUO&oc1QSKO%-R$Rx;X_kcZB=kQBBy5*Y54j9aN<*1NpkmO}{rhS1^~Iv0zi*HmANOXv@XHZ454IdWXGimk z^*mvTu88PysQGSbgn~vPF9GiLq5YJ+A+$ph3 z4KjO>EKBiXI6;8Vkh55V{o7L~C*&NILAPi2*Fs5S!?K8X)xl5Cs#6sYmGr?swb`Jx z);Mwb6C+Dsdn7K!wKoutT+zzD|pUb5^1%XmIdf|8SiVO%FhIeQdY508vCKleeORm2B zOI8xubVtWAcEabA9--kT)B8h``s4RU54aMAHdkz#+jHc`ol*@OLp)@|rHKb$<)?N< zd<&(p_F7AKnyX`cdByu{PivJGaD213qG8Fy4=w3$T{>=hEe2{>>fFEQq^-P(BsT|t z!(ePCYm7a<8<(Z6^8GV{c(DxO8Qx3c9+YbSQ}BGrIMJs1a$7~tYIoKPW6h9H1T|jz zq2PU5bWj%9ow!7ha(KKkL(gRx=IwJvgyC5pLYJUo-2*jGo$ut4cb_4E-AX(2l8m6cpcNUWa-(rU9BHL?_ZGWgSo(ePDSiP97=hVzUWYHI4kS5ZJp-gSQADM6jLTviuO#Xx^ zlTF^a!TAU=w~YtDN*Nx#4a%DRlz3*{2ykF7IbwkMdhqd(Vy9Du z6o2^=-cy)N3Xf?KH(;e)00dE4FcrPFhz*jaLy94)hhu&c1aWv%pvH2L3GzE$0A|G* zh7H_aH%Qq(GUYNpG??XD=8HNPIW;9Ejzn&I`ZGMjyjo0M9!Xf5IXs;8s`^0qze+jx zaHjwN|JS>BNe)ZS44)D*L*y`rc$ZKU!wh3hh&hx)s40gc<}kd&$Z6g}ODr+Rl4Tom zE@u)p=TmKohS7Jw-|wIA;rjfp-*x@|f4#2P^SWNI*YohW-);{&Q$su1xm7FEg#TOm zk=XmA)KUc~6X82@Tknhb=`cC%l>>dO5&hs_TpS(2y)W>ji*0I>zc8iE!VNFme_;NY z%Gh_OaYp5n)r9rb`9#-i+oXP7>g!SawCi-i$Fzrbk(YJ3fDX{nkCP4f90V z7H$H23CT`O_4#L6@hn$mHdbt9HzF;qf%x=Gpy7dXOT&e>JHXI_^194v^|G5cTFRZh zPM$b;xa%@-n!&05)3;Ecz`Pq(Y|17*q4X*W2|X!^!=LlT_HK$_8ZGAw(*QA`-m+tb zLE#JqkIKh8?74jImu(l7Wc5-n_UgzIG1=TyMxLF9bTVVK9U4)~Gk{-iq*SL*1r?o^^>X%^xisT02sS>6`C*0y7wWM&W= zr2874#oj)VD|oA!095YuI=5uBaa~UbTO}%{%8}_60b994B?hxqEOgtAyY(udp$Eua z3)W_kYA;utMwF)w^-@gNq~XaIP)AX)k#mUdA4x7b@&G(zdN`!%ZFcC0io=g?{Wp*Z zSbiB(_QCyib}{8b0KZxaV`ii%8gszKz$o*F%+&XW?PzJah=Krn!Bv>1If{fo7}8>4w^yb34zm<5i5fWb9&Ax%6x zX&n;YJ}%J*mw>{IT&#M&=2hv4_t_w*Xs2_~XdSQ;AhbWMt`)9e0mpC_C z6JAYBRMpzu{@L|&4JMW9lW{w+LAciSZK?dvq_p8Mos3)oFR)LIS8M!P3#O+O9$QD7*i)e8Dmg zOE}TuKHDm-nXS^En*K(g{rB_lcv4oUSmN$Jw7dBG=|_aC4iPu3<=`X>Nsd)f%$0g} zV|0@)i$>NByN*>p-0mrO zIZA`vGM|*LNm9X92Z?!dV-vX6ZHj*k@DP1bf3c>DQz*azd79}_dUKy?W1=o1u`&t4 zdA7^VcYQh7s}qZ?PKs-zWzUT1*gL)ImwEd+f>QPSP;!*(oNxiXr7?~hrpKHTJtD+t z@h(~j>%{C-Rzovt={J{|OP3MnU1L41@Y5i~>4P3zas3laBAqzH0hu5F5_NL_?`kcc zdL{Nkn*$Fs6eNF%lm0TI$l8t_y-2A*PrpAXxqrt`9ya`w+g}kZ@d<42pEb!aznkh& z#TkYK;GXvdIUuyIH2;>2N-k3exg|^$#L=q^q!I#n zO;w5@4|t_$vR#Vk1RkA>jQ+Sk3{|{?jth%-v%uA z{bOt(d2_h5$t81Q#B;=}HPf;2k9*bh)=aMGh3cQl{rs6aAJM1N)UT9#%v6`W0b)7} z90AtMZ>C-YLAYb^B0)=d@9C5xJLvSN^&0w!H^ePB&gj-EqGx4+i_(fvJcsyd2F2o1 zJ8TpwkRIpN*>cMceZuNZQX<}{!q{(De%6m$!JL^ioGXZO99!4VNOps*{~~|&SbdAi z0nFR{c_8xcb7o}t7ZKyH)tXf?w4FU8f~Udq4}(wQ+f+g6q)4@Nv}O+jymT~=Gks&W zH882eS2mm-<`m#arppw*mc%@6yXj|YE37u6!jpy!hAV?I7aVX4W@pU=`&v}l6Cutn zDIY=-P1;Rc)1{B5rGv~yCDoUPF9^aDFG!}odb3qyj?CaV0Y_Y9tTu?sdw+hN>f_w+ zXrQ2MHCxH-;trdNc5wPibZVcJ{jbxhk+lLCPmRS(i`_>KYb5eYm&1~(T^Rl9bOhO% zEIdGet(I<91kEZ8jopZ}wR^B?2Q9brw|$l6n7>VMjBP14T>gFN+N6X(TM6Jyf)*J! zi5h-X6b*Ue4K~~}^A>e8ZJ3WwNtsW@E2)^zC$Hwml(73}w&l4u)Kd6p^>+y@`b)>| zF1KOk!){+rMi_}p+H+@E!`^bP_xXpTCvA-vKZA4Tyv|Jd#a$lMk0UL+f`bp+@2X&< z&CW0nR9K=)CGC;D*z^oR-)E>su{f5}26$t(26)NYiH`*>@i$4O32B()H2vCgL-iiP z9uA~RTL!Uvl~Z>2`r7HPuvb$igqD=*Q$AdLG!SjG1+4J$o39&ra6-Q%r4;R&d#$V6 ziK1v@>179C8N6q%nBV$XS1lN&##zE0C{FV%>qku0SX3aELU+rjv&4m;1{mZ^75Y%d z=7+wmpB{k~kydI~Xq+u0^nCL>K@KmpU_NUX0`K7l(~0N1uo{vb<56@RBsCSAak>+P z93mNG*9{yV5gy3)vayAd;11|(fy1UJ7z0XGKfdh4}Nt>af#Hae|LjeazKYxo+o*3}H6IzL_wjLdG8kD0CG+mNwFLk>VdXZ3A z^~s|rG9vIk*m)=@e*ZFux^fuL?qTp}3AZVeY~L37ypTj>(i~nBrEp>=SIj5xRj=+? z{Psw*e+SVevBa%GS_JVH()}!-d;9vzCvqQP^A|1nSjbd#8|o6niPAEl#lj1Sd%tAo zoXJrogGH}p^t6^{xK?AJsBhTaEq_ObmwLI2$O(zSPx#fr&|+F~oyUhX^AE8T=Hh0u z(@LkJPI0!iqqM6&45ADkM}#h3J&+xlj~b8|?E`XLyB^kVB-Hm8N56v)eVg`}hXGCh z)fN)F9jwTfQdw%12u-U&9`m}rWNF%xRecP0`#hx-FNTyZEsAu)1BeGo1^zZc0$N1R$5CpygCN6A3IJ)8Q z^=4od`$`Nq^!t!-i`bn#SDrRkFf@t{BlE;LEiuQrkGFAGGWVE;&Xr_Wn+qnCk7S?n zmEEIx(R#KRKg|}MH?)hElE2U^ijZHgi_jvUjAIn5$l&Z zZZ}2%Yidlqh#dPcvvWqNQF}j*r}Fy{38vt}z}oyiq*}ZZ{QJ;Npvmt;m7`d;T%kQkoLyk8#WbsGve5H>*!D!O!~3+ z#7knq;BGI%)3QXh>!z1_b+XNprjPNH6-o734$r#1z9#!$JKjk|0W+4zt3CI?bB;Nx zRU-yF3U<(Rt?-I&lMu9!ko$@nYtfi21CxyJg51rKsv<00hV+)6+3lpjuJ%8t55?!# z4I9lCpIwr5;cWH(`hDn4aGO!EN?>yMOseAP!S%AN#Y~|iN@;3R-Sas*%CG(uDSFx| zajgOJG*D5O;oK1oXi=|7DXet*z)dS$;JOhMmaGN3+7ZqQHuvpx9qb*0Gf$H244#~p zS)={*_l(JkIYS2=h03%Z=X<+J7FUPc!$LL;k)2L2So8B^+Il3Tdi8Ecv#TRf_gT?_ zG&2ddR{6`b2QqA@-Hn07pB#*j(6}wjrm4Cf7x?kc;P&?o7oD>yjk)6FCV9=#vnqi* z6de}7>a5Rvt-u7{GtjRUl^_?4eSBjh^n?UfK>ZRIMq|{y{OuF9#kcU5kUlWt!ROK- zH_*u-wQu8EvR$?7dnPQDs+1Fjc&0q(a~}sLmRtd}HGT2q&G=E^MQAPk)3zSwoFT6K z+6Yx2?XRMKZx^?5loJeZ<;K7Kimi2s;MiOliZYqYX&eeqy;}cX`RdTnwKomt-Cf&7 zvMgUzj@Ne-E07tZzobL^G*T<$ejmDl=a3kM_q6exdTx3kKP!Vj>VnjN`moUC=bIPg z9*4XqimNS&C)o&su!^_Al{ZUp)sAVmuYmeJT&or~u^uP5;sQA4ZB1ahXvQ&L*WNEU zNtCZ~%MV_Ri3F!9zjd_XO!@WenAA{4M-B+#H&hA5SJ2ElM1kh1En%!+AQg9uWAM-0 zc&-aAUpp>bx8a^MAJ&?|4c;28l0mwENzH9=PmaIwHF7NLTko$^1h|JXqvb|1C;SIA z??4yQ74ltlAxb^Fi5b%5QF#lg7tpEIMt$|^pUUnhfg>>S8;Ex2#rFY2p&8nP^C6LYRCm3y77c{zhp0?YjsUfQSpv^xLd zr~h-*`>*od_aHMhENh9mkwI&YXu%4>MvEEFyTZmnPw%`#{(a-v`**_|b=>-*OOIOe z92G1a-ZrLLHl?4Hx)%p{L+)%rdc?7bicWpxHZFKH@~bd0=ZI!WU%suEM2%}IIUQEhVY6n*u*#8&5-oMPRd4bi=}frL6v#K9o}p1+PIoPfQ5j& zI9!{i!CYx}qA~qO3L;RehG=U2qMkySGam{n!)9E5pJg{%rwQ$G84PB*5^XM8+cl-E z_A|Znjc(?46VHZ8aBPJCky%W+I`O#$SZvsPSNMzOfNqo%+vv4JI&BeoPq)y&AA39K zM4gUIK)0l)BLRkSEAVd?fqPmec5duhBe=QJmSMWviBD^%Y_^7LyE$1q|;j! z0(Uhgij@Bvi?|kk!-M89<*~AB^)!$)dHt#XZurb3+7d^I6uzJFQl*QyPTiskV+WoM zv{7X@rv}o_Khu_=v}(@cXFxjpIM)**?EDCOZ0p+K(Y}@>GWP> zRSprZqqPcX5BXpC<+5e4TFrL2gjobPdG9LEhf6BC#LSSzcDN4!EWs|PmUn{)&zGeP z$3hLCH5zBTDHfA{AM%3~3K3G)yZj{w%X_6hUw^sA&6UTluriX6mf-jl2=RrQ3dyl3 zAkSAoyZc9!sIKe~sF_Eo$KEK9;?W{FZ%AQrm&Xw zpe8c)s*fx}&q_@`oHi@+4qj;U2@DoK|2&Gn9&#&L0`fk3x@Hn1ZiduF7Xek}5 z9}z_XWFsmP$ap8xBU*RiisNn>N4)J-dU%OrgO;9@wzv!Ne|6L(fcj&SnbgU>?F2Rn zw-KdZ#``O;Zr^NZ-551VOl9t4oQ5Vt^2v2BT! zLDD670>ny5t$-`UbiSWI)~_?AY3s#_IH2H3@x2#N)T8+7nBYM7BXOM$GmfgbVAEjHBu{ItY>y&VFi5qm5lH7{hYko3|-W{_Wt=3O7L^U_Q8}V$; za<3h}Y!ew87_5Q*>&le}Aq3=IyY5hJ#sUyRB2e*zruGWl7^Xjy(hZ&Je%%VbslD7G-pXfqUlVLiR zMCXmRM$lwQ+g6z5o*E?LHf;FrdaT(IS&%M+xu4FD!#(FVR4!+2zbTjdv`}yS#xd8> zLn0&t5K8p02C-1oJ)6T83b``u|nfgU{VRSmzt#jFk_U~oI2-g14xVKCQ_Du{&q zR1$85M8UXb{0$NN5%qx74b;7a*(<&usKH=ccBFcJ6vtT08$ zh1Z~aexWDeL8pE+b<)#?=f;__qxhU06S2qC;hNz})*IP$NrM>`@V#RVN+*{$4dJU> z7`VuWId;Y9wHK8!!+*@FgY(l9)4a*|CS19GMu&EjcYW&NQ%Q?S_ zCnoLk7FO;7LRHGECw>Mh7?1EsZ<~URugWohv98@f80_Dd<;+N86Y@PbUu*Zp)^D0> z-AL^A^NK0WnKjbo0oR=9p8M%8Pue^e)|Zm1_N$h=>vlFA%d&4qjR}R|MA^Ym}@q)wOKO8)ydksnB7(6Ti~x0@5yB;8CoCD$H8`t?eCuy8wgb{)^0lgj5Wc;YMo zPR=~30jtz5ayEY;aZ5z`^60u+&XqJp)~CP+z9j~Ph-WwRg6i_tgHEkZPjb#mJAb-f zw4Q;D^l(P*u3Ln^96|h8ZGwJg z*wb01&X5!dkVS_6tm3JDY=#DFJqF&#$OGZ;@@9lGdVj3*BTvU{f0u*)cBcQFU$wt; zL1}uTYWB-f@@4z*KmwOnbtocOHf zhIIw@)gnz+&d;>+1_o}c`@@g0@vX|i84G#TA^x9p-lm%{>|Op9A#Pc&qVRFrOAaxpv}=9cCajtWad^E>KNvjBiUiDixpxC zq_)a%a|SvT1xBbfrq-S!^HTX4<9dBI-6;o??k076s?|O(U8x1ZdQZP)j!YN^CzU>0 z<0=V+7N25^Mklg@PW4i2!&(%;wm>tJRjhC>yaRuZXM`l z_Y}oW^Z6o8dpsNefA4Vr(*9|dTRb0t=vw1Z^l})`%ymp z-QD>5w(vpBS&S=Fa44Je`;hc4Bux5Nq;v2Vsye-bSrO_iy(;SyyW#2y@>*riZE$2j z<9Gn2BBQ-~Cjup3Twgbpt^P7>5hY7UwtCZ%4W2ps-shQuV-@tKjMv`$k{6~&OjzG| zV8Xr~UXr?$2oNTxC#qOaOdEt1WE(d!GGy0?f@~_C3`g#{#7D`7RiLqf)(8EA{~Yu+ zk9-RX)|WM}(_Hr)(Kh=Wc0W|LXK$}AwRhqV3%Tc7kr_Y^pMozmZ<9^*-%6KeMp>Ci zKJ|%p?5T*hYW49DOYRt0t2>{)DGY0mZ$I9>Xrq|p1IF}-5zt*e}#pQq=R+j#Qqn}hBg#cU&f&pO9qHT`Q)$LumR&zeIl znblNgCM;5xu=1BiUz=K#EyqqwI>p`^)ymvbdv`FH(xxBDYab34nD`bUNOtM({_6z< zD)ZWiRTwPbQ+PPJ?_#y!tsV01HLdQL@?4A69pV{C(3S1F--5A zoYwPV+A`?u41g!3SgFG`iaNnj#pDil*G%M&a)!3KCjcTKCo_`il{XU2XmQbfGFVT; zW@2wdNpFYyU`Ki7KT((e*1Y~t*ZjNw>ww??&Sd+4y7}KL9sk{!`yT@U{9mc+|8e<$ M9S-3Ck4ByN51gBq_W%F@ diff --git a/src/img/apache-phoenix.jpg b/src/img/apache-phoenix.jpg deleted file mode 100644 index c76f1545892d936269120347e68e6c8fa94217e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14712 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 z zly4Go5-^E43*?D-3Ft(;1yqqB0ab*ygBChEoIrQ03Q`Oxk}RkLL;}DBN(G_oy3_fM zk0>obDIhsF6eEB$2#L2^KiSn)4>f7bX^e3v03_!g8v4|4H0F37KrD@+=>>oyClJlO z8}(ug0)Rj+2ofA(ApqzX0f_=o1SBdz2uLXaJ|Lw6xPVjwU;?QWzyyM^N+Vsq$)M5r z#s-7em39`I@k3B2M0yU?1(5=fD|J9f0ChlQe_wSvA6Sxfh4Uod>hA8m`Y0y@K;4ou zAgKA$($klgg@u=xRpt<2fMT?BLTtXheZ#J=`{-i?hyr0~PWswI06L1+!?CtD%Z`uv zFMhF(uUndP{Y+8Lj@-k6FQ46RpRKR+CkL+0y#OfL8Ny-a9CG;2dJZ5F(F)P)4TcYj zpLCTI4jN+g2B2aq1SL5%r?emdDl|ekHZKHVgrGskCD;Mz=Q@D|ODqgP`b8k302G0U z1`rAn6(9s6I)E=kDF8kYr2)7?lnUSiQ96JPq7ncTL}dVZ5S0SxASwq?A!-3oA!xgn zg+4{O1N=E(zyG<;=LEGlFl;KF0@G-OWB`uBG#Q~aV493D8ZZ$?(2wNDM}{|am=mIt z0Z1OJOGA7*fC-$OblKtI12!po8Gyo(HbOUXdUw}u{}LaIVJ<-ipm?N=@SHg2P{;s? zL@}b-oMo4nf3@$O(MT5qCl0A720$#x2ztJ`we?C;;Q)z#VbB?B55Zf;1i#ZnDG^C(6@jADd|L#`47 z(5$c#5ho6&N)13$ZzDE0U$KjeKf2FxXokjG3;?XR5h#opYc&A#sMCm%FrZE&M#_LX zj2KA+sx)Gx4XDD1u`r-aBgV>rGK?5Y17aF6)&|5dVj>JEV#Gul5Msnc8sKBZL>u5@ p#8enyGGeL>Fd2cdsfzS7{2$`mDuQ|wbUOe5002ovPDHLkV1kX9@sa=l diff --git a/src/img/derby.jpg b/src/img/derby.jpg deleted file mode 100644 index ee53451087f0f16d08f2b5e4ed974c4459495c4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13874 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 H(d7RE7Yfq{ diff --git a/src/img/error.png b/src/img/error.png deleted file mode 100644 index ebbd147bcab58e29a0e78f4b5b9e134e1d00716e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8649 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ⅅ6Yp2B;<3J{2`5ZW04i5czxGIac zb%dlm5rrf;SbDB=GP*fF+gN$k82#x&7w2EqRA+(pGuL$@=&CYIx$DuDBC#^q>ify{ zh(Si?XOOw|q5kRZOi`_z9x=;yn9ok){3Ov0j$$9(Yc6fD)bmqwwaP;_3%^fjXz(}c z1$ap!%w68!J#4`K9ZMzJ zF{+^5O5?*eT!oQU09a~X;Gm)AQgxfqLR=0w7d%nu)|QU~6@0Qd9i>4aex{ugz7PVi zwa@E#Hu=Hz;FODtQ+Elo!e|;NCvg2jV(&LN84uc<(t6)%>nKES`kGNwKfbJAu z?{lX4Gf5Qbh#Rmnnm>~sVTMPgXZVF#=z%sZh_qdmDS$T;C7MD)Rc%Hpf-0C{9d6CK zX-x=22DpdU$YwkrLTS8h<_1ZS>$9NdynpL?Xt=CrRDfbrmk&!erqlu;+(|=DR%c?P z(=5RCSf;yIOmB(Z?yCz)sRq@)Hj%dYkf?Ci1@d^iu5pnohDnCl&&aaNYGSGTg7jAP z@CCOuu+$hd$I`tUuDN_}7M7v~UVlZ8FQ?p9t+JUH5?RgFvK>?m;xijSF^&`1#~puz z_FH@cs8uiJvD7|a9O^d>!>zk-3?HJj1B9P>?~hO!6oB`{ABQr%B~E!5qm{BjQph0U1l8EHj0LRCY}1S^$o6;F&j} zW6I=!T-~*+TlW=B!VGNQsX$L?6R!{r@Fgao0Y0HIp=Sc{^31OxvA-}ZeM&;4c#}=f zsN^@v5hra4`H7UDge;M_hJXpl`e99lN)U_HazM;u9PHbhm?qDFv1`1mY5aL$BJipq zm4-fpS{-Zx2H1{+`6re3UKN8nZQHXz^>c)d2zrL)*YXrnHMx%y(pB9yZDP(qrapmE zXi4;uSp6?RtO6DX!A`&Mwo9J^4!1_cjQG_ZOVG?^MGjFdtqI1#-}sP}Vp`}Z3wl(& z5zQaWD7t~s?)u!u@2_H2<=?oe9=;vwmlt%NdtdKI;k_D^CdUE+Z!aFL1T zd^X6l3&exp9zw_w99K6V6DIJU$g@A(?q&@0_5ka7P9&pHQ%XpR!_)1beAm98VH#QB zdkSj0Yv{jpc91RQ_=Fd_(jb8k*Z;Ml!=0_C^z^yp6sGg?3IbX z^#RA+(>m?H*CWLZ*3+us`Ho}SI(}N{`?WOoJf2hRluUDFtY`d?aA{6$5a=7TaT$4C z?2rU?jjrg)8Z24DadJ2CMV$1EsOk&?iIsI0buFB$-S!d`B<{?~ZbpdT<8=?xE6=vt zcQOzuYx|4}mSJza@4W1-4UAehsz(I$P5>ckw}VmKdh-xPmMIBwn|A<-)#)XJ4Isu% z^-Vp(`_p-1KaS)#bkROH=vWdXhYcW?xwY6LJ<1Q<}_Sr*PYio!m5Jg&Fx;BF-1*2?jpi6;Ql(v#k_!Hzy4O{w1- zP)a(}o7NdGA|W&C#Tlb}dtqTcs|Lihj_h7h6Wa8g=@;5Drx#NWW5dH1KZfrnu@ip~ ztY)$D2?-rsMVUSP3iDR!1#t54u!BPEJ}oPFom%^#Y@30H*Ww9rBguiZkIig~0 zqgaG{#>h0DM)F4s(h~vE8a;(tZgXY8llCYjEZhHFVc(5kgKn#<}4S0 z7)>>6K%3nU$*%*PnfYNOfFUY8cIvD=s#d!Lq7mZHZ1G3QaRG)mxoOot2On~jr}3cc9(z!eWY+}x zgjAtI0i&!DIiyH+d|JbW1CWd*E#*)CWAw~c;Fm`a1mM_jBBy+k zT+eIBA$bz`*5myb1@$HJN)3&g`&n*E;qdN948X+QNsn#)(kW7f(ayx-1>h2%VViR* zz1*dQ-M>|{B>|Z0@izFroC{{_Kx=5PUE%m@;C%23DC&;gsp_`HInZ_4$$nkdj14sU zY$G3R#lP9B^iOff5$L%5kE>$mw#4-P_Rd4b4%lJP6sZ0ZHO3vA=*AtHynM|eKChNB z6}YhAkT%?&q^lH{4w$cCa@Q0$w9Ynu)3NAP=mvq`ai@)%NvZA01UIN<95jb?RnMc28A#QW*x6QcTq)#(Jo#$Xa+WF+r{RMZ2>Tcc(pe z*#^=K!X|L5sRP*1pAsQJC4&6VvGByJC~dx%G$}DI$1yLe>hd&$T^^|eM$<`ljmY@C z^(ObxNyAJjBXT~ni}EF+j~p&wrcL}zW=a1d@v)=uGp-HD{L1Ulame!rk6ltW%nNDxyS3o#mOXJ{$%F1xWbkyQ0`*EV~@nUu@m|bVXfD!+eDK$!>2=(GRNeP-)Tj4fHWM*18@SkD>toBfXp)#Fdt3qh+JOEK(na*^Xo=* z-6Ff|GaU)T6qYMI5y1TE>HRI=a|vOCEsBJju-?$ZAT3>wqE11Yf#qK4UX=FVC`#a8 z9TPs;Qn;$1rCVa(30lxPXnbxLl%|n0yDW^7P{aVlw4p7zm4u8_m#+3fV63N_KYDBo zw0HD(`D$dS`Y(ZMT;kXSPrN;Lf0PWh8-}JNKlsB#g>SE0*cs>#z;eUYg#OEP`hnDb z=rVB)xC48ar{rkny2SiM*NFeePKtCrVnz~Od*!b446&P)uEv{}S(Br|29=E@W5D+} zj>5j{MMz8HeLbgu*WZ%Dvqrj5&y4o+0{^zXF9G0P5qe@U&MbW@Y>gu0uT+w9N;di1 zddEe85e*RzT&Ie-u{+jvq^RhUc;e`pN7IVk`kQn&NQ;hp{Y=`~V#`=SvLcgK9D;Xf zv6r`3)}@u#+zkStT2)k>g(v-Xv;{)IBn`q!_e4GJOm72#myGeZg0W&3w$v3s2+q9(9$v)!nUHwfQw5Rk9kcSq2#dq9`H#*Vo@1f$ z1f6DADYN{p10dA|kO+NWzf@{Jg!#tr%qs=S~o%o@N!d^2l=XAOF zMh=q@7r4#=e0nXg0Ng^Az5 z-P?YC`scB+q<@UMq`QVK`_tD#E$$c7IBZAsgtlIo7me)&ZjprUorLN_PK1nw0FZg7 zAw;D5SZ4E{jtVIMu(55kU>;Etk&hAP;INB+OpJc^qwVT0K^(%!owIRAwf?6>XE<&&_# zQUJ1Ocxf2RWAsIN)oXB?1K`j5`GR3QeiewRcD+7fN~N!v@|iQJ2(A|ZaN5Ym2xFF6 zp?|Q~(d;ut3NY_Xrx$U1=}P~F774&RA|yx^>1vSRl}#T~wPn3g0x1Ao<2B!;aB|K+qRju-Zr?RB6DJq8B4;(Zsp2`R1y(2Q-;?JfDev&BQ0+rYp=P-_&19rAhxG zuPb|gXS9OSrRXPwYAy$f%J-&|n~Mah3xBeixYfDuD%x!P0B^qQqq!rvOLW*(G-bmD z}8MA|Jl?W}x-3#f9MJaOY^2NbUB;D*?3lhnWrszdrDe zO`Z}s@9)A=B`{w)T4ZXi`hW>W^YY`51CFO z9U&4>8~5~b%1Bgz4>{zJr!|?#qT^b_2tt9q8t4F4w!9+Vlw1D!BugW0CY_}$tB=7U@a*#LL5@lX80?8 zAMUUZg3tBj>5qtCJX0M@EGN#rN7us+`?1C(&IAv5PKxMQzKjV{(YqYzt8AwUZWh<# zF1#Os0hIWQJ4w)TDEASZG1)-GUOgb3H{@4tD*szVZt8T=&+Y+E3SSU$-{p^)TvEH^ zhi*#AD~A^Mi?i~>OnX3BrtY79`7yj5XlQc{VOBRwHvpdo-?tfYcufejW{tcaHbI8x zAA5DczO9wEef1ukP$ChdscxEW|lr zUie^Pa=h!{2J`gH|D&kpTG=GvKbi?k3|RRtylw0@zgfD$B9UB(4pgyeaE{Wgh2ick zu8KW!GV-aND1u)wes2 z;SGMrLzWIQ;zC1`4RXNgjPU=?43A<%x>WIKb-a0gW&y7FGv2c z0mFBfc?iVY)!0wK1(Wr7)lIY%jDsN4SSEz8fq80SBli_=# zw8fMBQ&f54VEzn7trr4#Jh05k77D?rJ0JX~!Cxz}KV+axl_8!$?`(FN*uim#X%)_R zd0hM=9&Me4`Xxn9BrjQ_82T|Yz5VT)nAujq|Q0gL??qE#+6&xeZ=dvA+JAZWf9F{2|1Zz}+p+)Gug`#c^uYShmJ9kt{OOn^J|F#f;ZuwP96N7hsSk@fU{WIgjASwZAxjcEx!wH+@!93Co{>3`QdO-9V$)(c| z?nAUl{Z$h!zZLDjHMfoy73`jE_!-SM?$D@f{Iq^|K||0x?VRf)jnB&g)+B5^2y7gGoz&*Q*?HQKb>MXQ&i2sn1yK)Oo>S#$ z4~HVHO2SGI-{Zot(572N{XY|LIr#s!xavNulkh3Ix4Wa{SCjvdabYq4byX>QBp^NB{>hM z`Q=j@C&@mG4rEdHL6~jQSOBWQ_)-yNCd+X{#D2m@S3f*ugfz3%%dS-O?TdAZ)G%kf z8ci8KpbT0ogOe;lu^JZuKDb9AO_XwZ&^=@4NTxMQsN@n~h+=AU9Imp`N_BW=E{%8gtk@Rp(~0vLO?97i$`7C4E%(y3e*JjG z^zU^)Z%5z_FDT2N)W)SUZHJQE>eF*odYP*fQ%^)Y-pa ztQUY-`28EoNno*>xDcL8kaOY`M(1BR?kjZpY;E5S; z9{hHfY?+m|^gjdDU>bV-Sr)rykW6LawlFAn8fzY=NSiLRHSa6+pWW6(FokW(sF^<< zv1#=AF!B36X$S|Y@yS?;C=3QAi7HYO-uS$M$p@4~Tk{dwRHU$2*^!oRm|CPUSH_T4 z#h5vCMb+IgYO%xBy)H`Sn5m3{{BYjKIrV9?HYLP&XnK#4_K8eg2_Dgj~J-+s(eI+7nc8}RP*Yvet)b7|XjxABFZ#xt`Ez<~G#zyq?peG)W__603oQng^CH2Vq; zB~y7X0PM%EPKShTT;WfJ4mEmN9)p+ztcSmHlDUtTR=&;4A?^{D+M`2 zk68aGxCe2A4CMAMRKJ%qIT|t>u=cD(?}?YokQ)9WZs=+p(v&$Bd2fuS4ZB9R{}>H7 zn(1h?$M(yTR@1^fi58cr{~|s8viU0>=J$4}*3I``@&T{7KhMk2|$>cr_ zBCCuEnJ+24Sf&(YKO^VuupGm(Dv5i1TxX56N|Z>HDCink4{j|XE!ImvLr7VN-!yNK zwn8#aqYOHXp)z;7G-x;H^C$Z}c7Ofj&^{(QwUH|HA=GL{uF0pPBR}fR z`)-RQ8M0ke+^26gCrS<5_FT!ETc`b;>5+SLmU}wl=DDu9Nb{1%>jGLsoBel}RU=(9vk$LEAfEc z-zH9LC~ZyjD)T33E&D`NfZ|RB#X2eA6jJ$Kh&0vd_BoyHF7)+wU@cr^jlpq4bAe_bV0olx8dmKcsC+LX$3OSldr7_4idr@b_tW%LflHc zl2Nbc5#`pHZC$-L_L#{$e>GC~lLCR{YH$NdbJRw$``f+Wch2iB06tl~v|$L4CIP!d zZp3MvE?~!?4)+?IFefKvHz&hoWXyuFqGBCg5qXX87W#DR{9aT#svh;1tBv-;W=7N+ zP>`_|!)y;|sMgTNVvp3^fZc|zM~|ml#(kqE(LT@TMC8LdbA;Hlu$58`Da{_>!9<*! z)Z;Q$iWf#-BKTbT%@YQ0FBF&cC8sL?h2bMviCdkJ5-;2OLDf0G&7LMMfjEZ*^V|@d zZ&)6t5QGy)*2EmK9Pz&!D&WQc7&o)`fYypuueO&jGoNgqm+13RV#oE2u|-)~AbP?h zTB>OsQ0EI|S9NtJilVCBu3b?pLwOPW+L3PtMIBIr{7a9+yiUJg9=HgNNM{RKbhOp6-`=rDXReckRefA_TY*l#;UJ7r`!N3qa zrdd?q(dMug$1>MKt2KRIoNW!_yg;MCy)94zNBG^7s{|dD@X3BeNRD@R%4Bn(>iTPI zCEnts*~zQ`6IVjUHDX)%mva>-huq1t z?o8d_j%@>`4yhw6oRMV$B!=D*YyOb;oqb=>{hC_$v-(tuG&CJ2L4ffFlo2&8Gzl&f zJgFba*BGR+-f!v)13^qXoGuS+o#S*;lv0CdNV4@_9*3D*4PUX0nAg z2XEKFS!At$d=Y^SKqW6YsaMufEbhUeTwKpSey?(nZ7|(aKv+Oc$+GJ6!-T}Ma z!Ek0oJBZH|FoTwul{VcPCoe6`5?DF zNeXH7Nx(idzY*d~8$hphq1p6rQZ3J4QGo|u8lRt z0R#{~KD<^vk8mbpaQ@_Jbx&t%R2#z*A)9z5+tBZC`=1MG{KA3m1Km&bFEgYL**j)J zET;wtdmi;?nuHdx^+}kg)(^vBX{(N$T6F|KaJ{w>a~1v*79I z+AlaW9n&3e84`psQY!PkH3cNGmu!umjc?pyY2yJD(Y&)5$$wQzH9Y8E{f zeU96kzy_jEk`=;8C3lw05kD(khXE2+r?I-jv;wrLz5rqMN-iZoy;W3rP19#lSXAm! z$Xs(zXL!-J?q6TP!Hwrhuie|~tngdmzSEVm`qmIGgK&}sb25?|1Y@UYt)rHG)`MQf zuu?(o9X;eOJdnq@%J1uQis~5X0OUIxo)Pd+ojfMjpGG*BShZYGv+s(HZ2Z}%y|dO; z_Sb#q-%)pl$%VA1al@pL^p?m(ajS%%@meVD4#aSAhBWu=o=u2V2!c^_(Ck_Hp+<5^ zBsPWv8ij*J;f|4(gzs#hsx$FXIyQJ>bU`a-O_{3DQ6grqIHoig-1D5(w(h#kphsaL6NzN)V8KKt1BHLPyj(lPo;)}9i=u2HzdfGangK8BBl&<7?`@E}w?O_B`S z*CVD`T%{n4zIX)@;a4bGL%kW9SwzOh?c)1wlmyZc(Q9^jzPxf*-=PixtipD{p6_@HB;7zf57nGnMLVUehqN6tx*9+#U=)VY*ZQjf_q)%bpo-3lyk zvum1dS#Vqb4a7{L(pc#6Z{ul6NmTj9BF)9nr94@=Ob|m1`R%IRUbo&NtbnJA8D&CJ zh6s^sRW1A_hs;TJcBQ&*oM|X<6}%wm585!AM>pimW~aRMik*6|1wH_kT9kyzu+v${ z`#HvJH`!tOnVoa@m-Rh?qHV*;hM!{=PDR9df!lr4`^y2EHGb|!wCDlSch5AUG)%cd zFfzSOV6%g}IPBYOrPV{6Z4UTHwUO$s?Xz^}JWV&LFH-OpU6Xatwcx`z{s|Gu6~{lRC~KN%wc`!nBSe}e5^ zg!H|q`ju6CoXdfxLRp-vUl`rs-vn292oYBa%`LaszF~^DWhoq=EB0q*@S=a$qt3%x%*y()k7lSS?vD{GYc) zm_u!vNH9C!W;nS-C^eCf%c6*Tmq6z4?G9?Vb7YXI!%Qjq{u%T~>0xMQP_W>e)!mlze?n&q=+ybMT@}1Pj)Xez~pRcxf1G9H9Zk z)3BVqb-HDng?)(gf?HN=FeKx*4*BA+UT>TSYh(n{vF??AbH>Ly^uW1CV^li>P&G+4 z)n{RpRdX^r3ubuj_8bgCR1jTs_IE06SJH3lzeI5*^>6Cliy(Z_HcDkwI8IaG9Ahb< zXXpX5vNf|$W%*78br}dl*B%AWX};&P;7f1ns7q~3kN3ApHAl?;*zX6o*WO*yn#+ik zymMsE7V?UwI(zDTuCAZsVqfa6pXs8PO871~yc^Xmn5F7c zFMl?s_e>r1)ZHZ@BPdkAyaINYl!RkMQA5`f7GlOHcY5(fJFlIMa&{HJX;al_ob~z9 zY~6fmtt&<oWf4IlncR97SbKr-1ZopH& za~WD@Nk|T9VH%OB)HA`h)n?Ub4}855=^bqEIOP!fnVrh|Erm8#1_1Oj#i`I4zxp-q0h{S}p_gbYt?fd*(%!xvrpI8XW^ z)_TMx_{M}Xi+M;wW3D%)o?lj9nt!?5-m2Z7=*6P;z=*S-Ei7O%&%w4-0cley6~#Mo z0OTfh%Z}&_l1G(vUDHTy_?0Xy>;fQ17Q&|Is1eiG|HP99nUm|>l}~$~8{Xq7B|M9{ zIZP>LF7$G2lzlJs3bRfqc@*lT3U9Cd=Qr|Xh8z@k@KYh7{3;zk)Uil@vHc3>NFE`= zvve)!DA>ecuTcT9JhSW;slSSj`^dtAYL@&?jWgx@glZ_tm_1yK9O=ADUudq+nWz^T zW}!X5a1bHN&O;1tsV?xcQL-Ge!+3#F|NA*hmhZ7X&aThB_jUoX*DtvCkYOHc} zM6t6`B8Wk+sMe%>5U2l)VL;WlqU~fUT1%uUw4dk zUV7W?j7br?^1PM(@4Oo{x33M;;a(FT$KXx;|!h9NMH?XFX z`WuPGgB$%Fn3}OOjj3T$7W);MS`#N42Rt7{*a2O^dwkc12-k$X7x6AebfV)&VvhlsoxM~*}GTvPVRJW=};&I6T6 zZqYSOnNZ$G^A$Y`WpXf$HcBVkHg^OsIypE_*Cka>xZbU2YWJ^?`E+K_ClCDujHgXZ zRI|rvDZKj4m*C z#R-B12c^=H%s7o5r18yVl(o4N&V|fk_iXy-I*Nr%HD=vso;F7e~2g38W z!$Vg-UrruwhQfGn#ox?`Z=NIb1f1z0l4=Qd+q**mHg}fI4_w0Hn}s4R9f<$e9W4D;=<>dXZXBfLs(XBUO@g0l>bP&qN2r;qCQr zkhTg42gX*@ZY!Fz4X8fDYt=#T+?-X({=JW#qBpCu?}lDSjrSRkHTV1y@P;<@nsOvs zu*O!{74)?zV;>@nLJ`C0NPz|G3@PK{<+}!!fy!ALCs~t~*wHf#q|)N@V_hGE8jI3d zL@8PSX~Ftxb6xiIgo=x|UjoL{)6R7FO}f6lHKV;^g`-s&JD;vC6Da|#vUOfdk)b!u z!RIOTE-UC|ug?&KA|;u@`W+RH@N1*wV2cXU)zAzueNrH@!9c#D?`AdX)%UOqfG}l! z&@MG+;JNCUTY#%UKooA8suAMjahkWf+hd=wB8BbIRf*BYAI;@T_5SopZA=(&_qTDG z#9E(L?GVY(TI8VH__GXSfir0~rO<-k=R}5?i5-S@jT8rZHkh)+Fh^1iap-k44@mf@ zm3o${vd?=hW{9KA6UbqOBW<&7s1+wTu?xJcc4jtjWb_OLhm(~slgB}ct1Z8%H_A`8 zvRo*UXBs1jCCZ`Mw7h~?@qoTGWo!)v^gD&gcD4mL*(cKE^Jn@j0z7r|2Ty*`@x<8W z*$MxJY)n^+K(sIe3*|0;xQRh5I8&K>Wrp5@xk#wraN9$gCwliNal{3b1+hCR^+oop zNx>kz(48~m{>fXg_HrW2PXFWph>ALL9motyE&ah3Y zu+SRbv$NTg=BWK^{?{|3c{$#wWVwzpG3(gr-5=AM@(3z>T6X{kCUQ&i4$As7h9dzc zFK#&C5uDewW4rP6$C&1Lofx0g!sbK}#ws}E@ke{IYuaKxNj#h8dElkzIt*4Ff;^jc>H2@63PI1902lv* zqGg}VqKKDg9O_;=3!w@wsGk4JPh){`{R8jB!yjv}-}cVad7=8@ubT5jsY*__v0HxM zz&;vLcU|!X2QXdy2m`*y)xlzE+*AOpGPP_Q?2wF?*@;xIm?8c){T;WHgPqkZ{&q0b z^IV4cctuYt_^UgFdCZEbT9|=*V==Wgr&{~jCUz#h#p+jf2lHNl>9+}rTvG+{kSk^y z&8F)^Oxw$_R0GBqStRW%Y^UW9Nuo2w$!O=@I6?|Z{7$s+ul?{Isl!<19`=HZ%F8~=a%9Ljd zI2!M)zHoq>K-%N{%xx*jBd znYwyy>$kUQksW@kT`Up|R_%(8^~`h&X4ky?p!>|z;?3!<{02;MlY;i!kcP_4B#n~Cr*<+qLvdOjQYD`Kwvo8;sS zR|cK}%$pzD(yH-Gj=TWez!Q&PGm2y6*7T4%BhJAsXo;P)&00Ic+_prj@g{%esp5Gf z9Wi(d6oPw|ztZNzm9l+T;BhrUQ6QLg@EmJdxqtp?+3UKMj(^G)9u!&MmVEHn{o$ux zc`1L^emP6xBq+z)OymrZ=VQ< z>HT6`x{_}u%S?^5yhBRPBd#HdNN^LEP+V1QZ#cPqt-{h%TnbG6G;q5EBv0?U;u7F~ zmbV1@fs|+WdgW7clI>Tw?|s3x2ylk4`Ll_ zoTZ%$e^wyt$T!|ou5`+m1k4q*n?oImV&WDYNyzKg84jOjO1zlbpY*tR(U}XMjl!%X zUC2-F^#||O)?g#@Lyuvu<_JCe*g6Z=vdLi?%X|gN@m8w2f(YcQU3y5je|w8ojJtrD zy{)f@m{rCLMOw73Mg=vJ!gFToN&&8oqlsUD>q+stPwC@$XoM3bw06}`^yd5iqo6)e zgv9G;FI_&~PQmf~U#!n(EJRv;f7t_7L4Vtcn zBHXO|zL`vyxOnl~)~u>+^4DAWS3cbKIgKp#))#_i5yaVUt?#$p9->5)1)tdCmYN`V z2N!)EnTn(htaq4LCU&9PF7JumWdT8OECOunrk^1hACK%+0y$Ex>Am>=c?H~;F|0hL zyc2%lBfgLpcF68Pi4h3Df1BL#HKoG&3&h{9S7a!)qcjSu4U?GuWiz{7q@!bIG>4LJ z@=B!b2%BF3s)(9E?eS7wI8TUJzCs`B<4@cSUxFIl~M=ihL2X8EO-pK_oia8 zJA&a_6_$fM_2}?nOS7sEC;8iJa1%6FXpqPcQT~tQ?F3Fjp91?9rO(^`4H4b>Zg*~Q z?L1S4!MsV5v0$LSxzeDWz&LIN^)=0&3IzU*76$oRaK=o)Nwx}tw8>5h=ko{*kVkAG z9C%Z9?ftBr+A4#SFHO?<5h*%R=Ij9IIA`_M@sY3HkHMB|Elt!^>SdX3ImrB$HzJHudjBvvk8T``|<&xe2IxjdQ|D zHqNFZ0hPafOkUEh|1o!pBP~984vEWiFsLu7HL%(Fk)a1qvavQLT3Y|@M_fsDNkh+&<7(iI>W-B~sLPxf6OUB6Iq!c@o9)eRKr zTOpEw;t)%0v{&64dRVnH8H_Y#&!}eXkF=!2j@NcEYC;j|w{uI*^B!0IMyFFjmFq#1 z!~N0uUev4m6lb*|>%pyN+*+vcdIGt-L`@?RQMmd0{Pj@;BbVAwU9ETPsTAh<8J)G;9;J7EUkYbSz^CBK7f5yLIkcb>}fWbsU;(=m*u_O?2t^^u(p`#cloW^dJ_my zhCeYBj*lzs*=xaJ-3ol=8*f~AUGr@6gex9vT{BKcW^YmqW06eCBX>Gp;vUsvtls7` zGiz&P@T(jgel|UkDnA*dEJc#(%76p4&?<;C1%8jznL%p(;W?2(-h#ZVRfizrI-_hwJAszHBWq zac4Wy`$?N@j0RVHZS$K3UKv(%rB6Rj(e{H=I6P6R!NzaANr=&@S~~}8xj_x5$3;Ds zMPY3$3?|S#(|5DcpLVBbt^vkH7};Z0U-(3dNQ9}q zHLLO0j)lfB-fWu-H!XcWtW;+h?s>Iw;qT>KbUisJwH<0LBri-@K{7j^$=|@*B9rs( zyWcUtky(;tbNN$OaSkno$lUIa&U*!UD z)t@9uXQFYv=>5<$8yF|4EUOM?L;C*yX{GTyh<|U^%f2YK*EJ?h{xqK1utqDB4iwuS zhu;hD%BF9pxlRZBd~!8;pW+TZ&ewiYOYZo95>JjGQb!N6j1#KZ#)pn{YRCJZkWL7dQ)zOGyDC=6^y>T+doMr6Ua`$g< zewZj<3e>+wM?m=fC3?-2H;9ko zJOJXbwxtxWe*qp8#b6ttX-0kXRJj_8+mC2zvy^L%#DMcqlfH|=!njf-p2=ZR3S7f{ z2eY}jgGqS61`;r|LIII*k3-6B^#0+Q9Bl^8Op~XWo)D({;OmE1SNF&}v`ZaHADz4= zQi`2PWgiG*)~4!qZtC+L&#o0C-M;9mpLB7)?OYkK6|_Co=OL}$CVc<%qqjq#93p*? zAnAJVDogi%k4TeU4IN#$M6vTvCVdt)FgbXnSQ@v z|KT-te}O1@TEu7uX{gR(GH95=Vr%tARhV9>r zjWckLY!JM_wNPwihr-i*pB`@=sUd4SE9jFL(HcP{LZbSU9Y^i9(L0yf-9a8PKSRw6 zfGL_wmw|+&F}*s|pg7}b%w*Q`Bx=B06Y-O@@Q}2<@+;7$-Qgu&(=`b1vH|D5U(u_? z(GQz_QnEWn?eKqRfd$*_75co zLc>xTBj6AEz6d(^ovkZ|EAjcMM}}yAqQuFd3Q05{e)l6LRa81wmjVEM~(u0VYSm_3{g8U{*GD`$0rYERfCK^D@N8wZP(`p_Syo#5=t z&L8u|Jx%rOZOS4%Zf7o8y3+PyHFeZJwH&I9mNEhNkA01qnNm9fX2Vuhw@rrQtu|)z ztBp=;%ZDLgNL6_fO*}Y5o?)$fs|T4G{&EbtJx8)t9__FmupG3uQCx%twT{Wy*2#jO z<-yq4N;L<`c|MZ-F?3pIz)GzV=zNaSb(F}c-&t;d5s}y@Rt5P~^Y!zpu}}S?U$sK} z=Yq~`o5a&$BM#T)`y+boJ*kgPE`cei8}-wTxWxi+mGm8V(rnGnxQb;R)ALd-%`Z{| zJ9j>K{CxfbI19X2f(8~)gkEETvG_-b)UmeF=YsrwdM>)iwHD3sC+hO){us`>MBLrb z$wpECaQDNRl6Ny8e|Qi&7Q(3yiWw_ne-*>)8%&AAO+m33!M#Nb;tBS=``1>ei zR%bxOa&)2ZW`C#U^^#GVyOfZ$j>7JWPwskKLuw|w{5zxveLUrevGtpB8|OwES(G(Y zhzPG&f1fxy`Zh-7W2E>H2R(5xuQ#*9KTIC%juK>Wm#t|{df@U8o+HdV0k5xt}$4JTyMx!_-O z?IRHHPcHyxmty|WKHQHcz>{ejlpbOboAcgR>E`Lp*@K@4cgwLfcG5(m*z7TL%CXtA z6B*`6lz7x{?^&-*m71OTWtb83UWFbOvC}7j<>~fh&%|#zq%!qOaDTaviKtA#66Q?0 ztlE1#wpKpZPM-v)^C0y7=+&P2Tmlw4(ic7swNB~=-Wl`X?2(rgU=eY#<1tp52!#=$ zx^mJ`T{JsgukfyL|0Kc*u2Y*@qqbPaI@Ez_J+En+vl0M$ ze)MQJqg|!Vfw*IImmn0#fT#xf0)ROt z(Ng@@kU>mNUjm%$Qed4`(0Kperzs&-yItDIl?SIy6+tW!MURWZ`(DH&y-((QLryGl zj)@@x1k#(nK)2edOioST;YMxi&GQRDJA(O4JG*Z5i%D&rbr`YcU_{j79WePTOK?Qu zV!C<=PFD}B>nS^<*oaeWtDk*F4RlWmN9FbLDsT*wyQLlOOd*7M1sgW+39#5Yy1yke zHHqz7P$b~{@b#djuM7BoT?$I1CTYDqS=%mjc6(OlnkrFMdOK94z9sjQw>=(w$m zbC&M5w0*kEhwOBl<&s%3%Ifs`khv%s+-ZV^@ksy9Vj~S|aHNf@{B}n^#CQt~%BPbS zoiurzZXl0c)CDt@hB%zK`#;bL@Wg6abzXk@+b=8Urt?&7L**nJkRS!Pe!JjrC>Q># zb{h6qgq?Q9)OP2*8t{tWB*iO(WPbx2N))Sc7KDlQ7W|PNv^29R3-;^V%A_GITyT!9Z^q)LwmnPJ^fAJB1;2TYs zG+Y^__?@}Hw6g~D(IN~fVerJ(o#!_w8W@_&{JXjED98M8wo=v<~nJf>A2a6w)8lKGUm(9vZd@_rbcBN)P>lK zyt(k&;fj=0xMO2tg((;KgTG~?K}o+aiQ(W9>5Sk*<*`_2-SyXgUcSbjB3QbOHM6&O z^vE)qp*qc%@n`SZ_LhcnRuAD6*jIPDx<+?`F3ks`zE_(e5l?l1I~C%H6HWJ%Gb0%HGY7eQazXEIN^Jbj(gbI zqw=}2@8tV3dG)$Cbmi05lA8!|J*66~S+BZc>mOb_V3lFWsCfnst!4^X*)A&ag4T9- z|6cv;u*&B$Y3T9{=_vE)1xyEWd&qNd!!chuFVd@f^t}pxLJ=8{OsQlVVNS<-Yc@PJ zK29c(<`m~@&$L^S=2ha`bfJ+3mGiS3**btGbzb)~I_P6RZ=AUzB@}D-VyhHEpKx>m z7&nm*|KR2fKTw@k&Cs7_T+19LIj??QaXGJ>ULOA>cmYUDgy}XWpDbqHs;1|`HV60E z1t$|C$9IMs?M1`ECAW$m7N9lcy({?<_B+(zQ_syFX5JY)^KjnoZ2ttQmXD~%M@LlWcBL2b564B>jstT?8~P5q;0M9bQB2PL4D{ZstPWoM&(s^gb0yaaTbaO z#-4r;ipRLyF=bwZ*3SjF2P?221oT4FC77W8{CMeBxJyEmleCiVi@vt+6W`!8)iFB8JkFF|0Wo-$!YGnS31CyMM3nO?3S2FiC#L;6++`CSX0sq>S(Kig-qW8{ZXR^C zIp#)iM3S30SzP`yvFzF>Qi&S4Ga!C&7g|_MiAi~J{M78eB-s&0h&bU>)-(X3FmN`)7=i2F0 z3JC9ZgUlXJDp>DH(!`~*&paRU8R~f z|9-Kluz%i>orZWast@{0Yu$_^>YS6Fs&6gq!90e$i`71Q*|a{;R}grGu;-DTV0^Vz z>YpcAajZ3q#T?5_*W^nKb7aSFRcr1s(r4?Q1W;bB`6R7ChJGidMozGi7I-~=P*bxm zli9h4Gr8mk*8FD2s&R`?L_<=uW?LJu0#X}I*0?$B9Nyj6Jd+cdil0J}4yhdLG)7PQ z%uUVn3SG%FYudCvcQ-|c07Z1-H^URL6VVx=VQ&d5NYoegaS%Ra#c6#PbaVq=I*6%D!VN3ph#?NC zR+yQs$_Q!Iii3@Xj*U9);XF-)kem|uyO>h+12hX1g`pk}pcs$pT_Q@z0UzlK?H^#< z76D$vzaLX}1y0l~M_oalg`Q*!nM%6Ql2`0%+=zG<{mQvY+_hE(CG^2A9qj!PdI7j} z0oac%KX-6bXkr%uZB%@s|9*fz*5QtZ?9=Je96h4Nc}evJprQXSxV9SQ6|L?n0Dkd* zOib6Km&0ICD(FfdUA4<-j6n=k4dq zjR_kZBPo@JxiSkC1>QZ0){s4c=kiUwNV}YxnFK>>ho2cZ&!KVFf6zqFw&=lcHkCC| zHZrpeZE#&5IC8ZAM@}if2SL+Au|wQTx|`*>Xf?}oh?6B)r7;%wuujvhq-JfC>+q=t zjcM=9ZgEMjdafK(>K&fqsa;mRc5WxL5YDfnOef2x!&cQMMh8^C5v~w!+F}-#tjQ|L zgsTGgtp}C7h#7NfZ&6TUs*?X3g2|rIwd)zXG4Vj3Z_G!IXsYviY*gW z3fwL6%KFsO-G6_-q~%#%P-<1-I*=Q__72jKg?DCd1X@w@6cSW*a7rsXAoibo7L1Wo z&7W^uG&-ih9-bWCRGRQ#-svb)ms0CXy^oSnq}Q}jcWGOtLsldIX+&(i;)1I+lAFvM zU<`aZB3}96>^s}3EJbPnTBNxz$%xe+4L&T&)JP%Qw)LCHd1`JRuPBGxae{63WINUB z#-yx~d_v_MZU0X<=M~j-vd3{vuLX|}fML;@8*93z|Xfd=!gam_BAuC{HDfhqU+=snyclW;CbLMg8Vb08a&&+o| zzpqZcPOax{$DAZpCfrKPK%NwAVW60iKh_HxDhFJ7peeYMhUK%86zbfHwj@Qj#X*~l z<^-h+{4s*PK8C2o796Kti%a|Ny!^sb(y9HV;E4Q>W0M*uUlhq_X~&Z+qHAw8p`!=u zzePk}E!@8d$12iuD##XZgQJ%&g;s+vUtF#Yb?}?-`svf|v7A3VPMU2iK0b#uvz-w= z>V7|UAywPxl}yLN-oEau+`=v4BH-+x0(R~9_Gz?}*DtM!1FAbxIsDD|;^5uwg4(2= z!PTKPL`q@Pkri3~AUxxmAcJq`G75pJ6!&xb4Ns`h4G#@wa?KrVSa_Y%h0_tg#{O7G z!(Qva@otb&Z<3d0J@JUgbL&&mQ5ZD!@aK6G-FaJb0jmH40mDjF>Rm_R1N|<=>(7s@ zY0%O|YJ-^ihzHv5MZ69vAoO0}V0eBjkiorRDlq_xVLzz!- zAVT}q=K_Q?s~tdZ-E4>OKNWp=Rkk2CkP)UwEG~6((#NS+ssD=OC7{Lw-_YfhCSX5* z&^xwKGg8jg-0*^RNHVC(4Iep%At|ky?v2*a-y<$XQF1-P{lh4j;MC~@@yt4AkEopx z@g?RCT`c}Jr^1v$m0I@!n>>|&+<#|z__*ZSygTH=sx{Hk-+KZk)a~nKe{_#GbbMWl(cf{V7#Fz{?V~Tzxj1k?+rz zQ>FQt!6Pr=TnblK{y?JfHf@3q#cnS)1QW!`13XNpy?x$ya@FQyp5j96*z10-Ul2pv zx}#e2xpvO3^HMh`XPUCC%3LGK)*DlO^;g2hX4Pehw^aLQTlh%&;Bk;QEVGPNgrq9h z#Y;mq>PmRZy6;ORV8Ohvyo=Ks^CP=yt|AUITaXhnr%=ubSpf-y&vxuInM$6hUZfux%ko<5s8081O~A1EfB@isp8m zay5;vbp35&(z~V~d!ni%GeEo`GjP%=K6X@mQrL%@*`>;KqW8?!8f0mAUOA%xfnTu1 zdPy*ZdSRN@Ffhz`*}iYkZUg=U$C(m~3sK>~L3B3Vy~Rj~Q==a-vUGdVt{B`sQhb=AyLHgTZb z0;v(T50yN1N?nrRj6~!~$Z76!k65m1g&rs0RsCtjZOXAZ-8Biz#*)bbbC2=&7cmr$ zL0(&F42^SVD&)R#I2;+)T`d5AUBU1{u=XJgUxR?(U%IH->j(IVqPk~>Hw>zH$U0Mz z<_aJ5W@CxYfxUeoDbtRcs+o_{)xpeSBF(Pi2yURnC6?xq6Q!lNw@L1MW-14s1$A7PXccn4qoEdD4 z*AOd@^7E^1bSm>Ze=~OYe7qd7vrlz)K=$oCUG&&`?LBX*luZwk>;(tQ7faOur7~I; zN(?MInWYRy?cSX&d=mBmAC|+_$%or!2X1<&RTv7E9gbtlc@2E*;$>y>;*6HWb-HSN zL`FtAx(Rg1gc?C2TYjcm40xI`1_erPE0_82Oxo8<6Cn;I0w-E-zD7U=?*2lk3b-@NShku3EsFg`ZQO0zJ8U%KaZY$xsSg@E)v;Sx zhH|#{j>JTIYdfP|9j7MS!%jDc*7rznem!YuE&PTATU@NVDKwDJLFV&-x2z;BFe8FrWz;}UrK=p+A9!7YUoG$I7v)RiHK3365j4+eBDIwfA zl80x}dEo;GjQW1x3JW8iQKSD{b8p4x-ue90fV8ePr`5@?vkruSZRJj*wJw^=S^MU! z!5g3>5G}>{jg&UWM=bMOe0Y5YuJCn)0TzEY?SK=@|BX$_CyY6XmxpU)I93U9I$H>R z-ZxU>5zFmY=p&h~3%8Zo-M7JR9a3x_Yr#OSi#|OuyY2}9mw9XU! zxgg=${jf#@m`%a;y!|n~zdHw~5Hsr`ZRbo@bC7m6LEGtB-kw<&b6FN%S!TJ8)KHS6 z$D@??I`i(fH=nKAYE_w5-&n_&yn-I|-UXB+F8yV+_rMqcC%jvg|ybJhNf51At78xY{lA(_|Lp%qSEc1%V2&;s&>A-X4LeN z96PFvlM@^$hG&`Zk9I{c^OzhLurc+yWKL#4i!ONmv1*@X}Bj=-*J*nRIN zX)G%^z!go70#Bj%ZsB(!=Zt(Q!fF1AtHC+;Vc(i+O-*W?X6~YTbV#wVwNg_AZ6_IA&JyVlY zM;0fss>Q_0@?vOi@I+6Y}C@FzE!{4fF}h`-v6c1wbo0wuoDG;pzt zx9izqh>oz7#%2M4KZL94S~*$WPl}o$_I_b!%z1a_I)cgsdNT-u%y;hL)gl64GDbVU+MqwWsdhc6 zrRi24yCORhAsVy!uqvCYCGLH7QGnLkyup)jRSyjg_UhaC@@ZN2N6_B?N$Azzj!64U kSi^sxtoHAoqJJgm|H0_Ld{h5}(f{$5{M+;X-`0ELUwS~f$p8QV diff --git a/src/img/gbase-8s.jpg b/src/img/gbase-8s.jpg deleted file mode 100644 index fec08db656338cce45a1ea9eae95a198aa915a96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20769 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 diff --git a/src/img/gbase-8t.jpg b/src/img/gbase-8t.jpg deleted file mode 100644 index be35c55c8f5ac482894523d9c3913a042a9fe3e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19715 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 D=Q(3k diff --git a/src/img/hadoop-hive.jpg b/src/img/hadoop-hive.jpg deleted file mode 100644 index 842cd56b453edea899264ef61e55dfead41ce050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18889 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 F0swSCl6?RG diff --git a/src/img/hbase.jpg b/src/img/hbase.jpg deleted file mode 100644 index a32a23a9e15ba1ddc44ab4e70f3f3bef70bb7abe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15541 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

b} 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 diff --git a/src/img/hp-vertica.jpg b/src/img/hp-vertica.jpg deleted file mode 100644 index 5b7f3866f267e27f87aa402483abb7f0a14b29c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15843 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

  • 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 J|LFP7{Wm}fH%SH; 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 ZYEjpJ4W#{3qW@@W{Sy!TKX|XR{|n!0)0+SQ diff --git a/src/img/hw-elk.jpg b/src/img/hw-elk.jpg deleted file mode 100644 index baeb4e762d04a216d1fa8eedfd6c54f2e6133b26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17861 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 FzW_D074iT8 diff --git a/src/img/hw-fusioninsight-hd.jpg b/src/img/hw-fusioninsight-hd.jpg deleted file mode 100644 index df4518c2993151acfeefac159c0e3c145530dc00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16635 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 l<#-R(1 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 diff --git a/src/img/icon_close9x9_normal.png b/src/img/icon_close9x9_normal.png deleted file mode 100644 index 198afc837cb3405dc357f21aa86f49b3cf70c21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 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 diff --git a/src/img/loading.gif b/src/img/loading.gif deleted file mode 100644 index 4c3c0bf6d12c9baeb35707564191564464e2eeca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28283 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 diff --git a/src/img/postgresql.jpg b/src/img/postgresql.jpg deleted file mode 100644 index e4e8331344d843dff772504f0173d58296746616..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19071 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 T#_@mVtwP92eUWSsHxB(jh$%U8 diff --git a/src/img/sap-hana.jpg b/src/img/sap-hana.jpg deleted file mode 100644 index c4ef982a5b43bce066598325f241c11a7430a31e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21809 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 R{>!@l?@#{5-NF5de*!)8>@)xX diff --git a/src/img/sap-sybase.jpg b/src/img/sap-sybase.jpg deleted file mode 100644 index ae4f2ffe8c14e4fbd8f653b69e6426fe0228c8bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16657 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 Iy63b13mPTe?f?J) diff --git a/src/img/sql-server.jpg b/src/img/sql-server.jpg deleted file mode 100644 index 72b571e6c0148a093e108c2819d8989de25a58c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16349 zcmeIZcT`hbyDlEL1pxs;dR2Nyq$5R9z<_{s2qhvSBnU_k5Xj!ryHb@ZLWmFoO7BSD zfPl0BK}tgJi3$V=;pY49`JMBPGsbU>bMN=>T^U(xj;#5vHJ&%~oo|`XJfAsV0$evT z02%-;TmS$b(LR84Jm9fD4Dtd1Ffjp00|0=lfD5q@z$IFX)&;;z`vL$LKU@G@q+Kuk zH^Id@Y6AzyNAAb*@S2va9Zv)izfF_sz@if};&$iexJ_kfDrASmoNPD_@@}{bm5PS zmo8tSyGqZ%Nb68{9q`A6ix>a6bn)`#f4t^GIPE^*66d7tEj4}YiK@rsBd8S2xw$!Wo=_?XAg3H z?)Jjn0|NCA2n-5_g@i^%MaRU(#V4etXJlq&zk8qavA6_TiuzPmUR_gLSKrXs)ZEqG z)7#ho_rT!z#N-rqdS(`fCoHe5uB~ruZjpZe`h9SCL_R+G2QHdE|2Hh!`F|t(Z@6em zxbVlNOBXNE{R7v9KZ5@Oob}S>TZ&iM?wixO_}&n{^Vd~&y|+bQI_X7}EQlP>{KgnK zMV0Ylq<=vBC$j$;u-E@r$o>=9f8m+~JfID%fA2V_J>=he0!{jSo;EB6&vAfj7cbBT z(?wQ*E`Xv?HN!I6^(O;Bk~W0@4=%dr-~SESv42B${NIqB_%~!H{|(uxe?u1gU$PTp zwN9=*pv=nT4-imF1A3t&8&V2Uwbe{M8#)IBF&aNwEzkpq?&`7sVG0;}yw2e3msflh zvnrkjRy&KhnB*og#J;jHAk)!x4w&{DwP_=B5!&u{FUVl!4^poR_;iA-JL0qqm$dIX znfUbaf@4dt%4ZDwc9YM>o_2iSxnVRJ=%uKlt-9>s1RZ27ZEBwI!q+vrb*XCma1#XiWy_=`tgWUuC)NOa+mJFdQ)6jKxxQJH%PW#voDz>{;M13l(C>lYKv*`+dV_c zHK-Et-Q+rxQOQ*@bHyFOe!pRD{?E2)Z#1yaF9vEi92am2ZjY-XNb35E4L?m4yebtw6;wf>3jLe+fik|E)nfyyKkp>rZ4%vDgrYmRMD>~`*NTz zJ7;QM?;L5fz08iXCDGJV-^ zW{G5WAwEmtG$O@PFa2cvr0uFzm5@(-rlytS)(HFPu#X^Fo`s$~)GH`RJZy1Yu43_M zUMqGfB6r_|$k&dtZV(;+ZhrB_r&+l%%6XPsJd5$&%^Z51o!C9nXK+y$X_SHBW|UFW z%6Wssf;D@}pWbT7Q$jR9!=J&M{r2z7aBlyY~eNIpjW4?$@Y1nE^^ue_>-`otY8&n)~|w-#3@mi4^n}WC{gh zEi)*Qp2%s1TIRXaOJMILW`M#cA{>O?5@`o1c2t#4cGMBhz>>=J zYNe)7Vpyfuo|u@acUQlCs@TyhfBmihV|h|q_@4vH7Z%CC@Zg@*=mputuN|yf90Vac zSRbML-jp0g4Kq_$U*?a3mG(_r5?6O?8Ajyg4$ypa4vF-)+;7NsBCvGHcTk{AJI#zO zgIA{JejudeT@&rPM9}Uzz#G>)lD9dO!XJ(}IR`A?6Ik!AifLCO zV=8};gTLaO+EEDC;w@+4DT$7$-w2isoP1=7K{Zr!q=CQ`ar$^HAX#(nTZ~XGcu}u< z-q8VcPpqjiL1F}BXP%I0Fz#n=W0CF`rf(o^;WhX17j|J+k1ZD}W0jZdCB}_*HfdwC z1+`P%Z-t{4A=Uj?iroF(WU<7BdkwdZS#U2a)%ZN;T!keYtDCLd>stOC^72b?=5f+_ zQ9Ch=7Uh4f@3;Kf&T)t?{;R7;KWkK)noRs13Yspd_bC+d+>k|c2K-4cGDd+f5pB#OF;ZrWwzrHDp{}kt z%6$bJgRfVAOO+ke0upU*cf%mdT+xDFbw2_yjDDXzY>;s4yYBak+{2(AogJOVF>QA zxUI#OD6Hh>G=|#fqNt@C*9FUzb#}^gNfmpEagvIW%Ffa72lg$gKvL*rsQ~1jkIOT$8S#MYd+b_9+g4_d#UHVkU<@b zSTsHPsX7DyI#$;ryyP7g9e;1(V$vOI@?TjO+$KF=E!@vree?CHWQFYwYm9Bw&zw}I zSQKw#(^HaBNzG-A-l-?lfxPlxGFEG8e^HPnrZ1_X;xHY=`%AzwMgJOIw+NuOdx>06v zmKIC3+0EzqfAaMvkLtKyk-c<>vfrTi_m+Nmgjv3?;Kd7(J-#+08*xZK`{bO@?CogH%Vyz@r}%!=;UGz{uD=hC)L2lsnCBK4o}sP~ zulNpb!xiVt?$N#dTb(iCmYT6j&v;)s`K7$c`*QWXq1m$MjXPa8ko5kx35ze9O)wpQ z=LaqA&964jrI_xJlH9fY!C~|U&^t-Rl0Yc~bEtWSbGdnjHuFJD(8e>82~u&94un{vBp5QvCvuWDCsFE+rff-WJQ6&jQ>lvxoW!z1rw}j2njB3U z?Ge-<+O#cq%=CFmQkgeB%j}`&0AkBaE%&8S<{@J6gYlf%^}6YR!oPI6=6c%YNc<+U zMOtziL`vk&IlwK3g^tCbRm!rvFKe*HQf^NN6UC-L{0!56 zb*K`Cb|5j8jC(c zkhRR2IZVK>p!L!YmR3EEz`1uGgl>=581pAy?#pP zm52G1)HeMJ(2*c1yjB*%1@|I&TE$M)QGEg|c!|Gmk(FHB@j|bsPvkOtkNR0yAh-fF zzVI4Ml`oZHJ9MfcMq*lL$oJDMG<&`KiniXaw`|dCw~f`L)#zyYXW>a`tH6nTkNQk{ zWt7J0nB#z#! zqS~Q1DW#BT5?~f{4&eG7W_ERWNs++9594*gcf>DTn3k2-dR)lhqjS5i5*<$1<>eD% zbJ)siD5V~$8&#tuBdD*eKWQ0=GuLE- zj9ncJb=r(irkBXGMg7F8$GHzDWEHfyTu8k8_?2wi0?F^K5?)YmxtFy}wl+1qQx!jZ zorkB&m~G==FjuK&ronP}Wnv&G)MVV6ZPh@c@;hbw9ZnQ^I_r*RNP~uMotvib~h22gPk0;?=B`_{v3z&5Sqz7@n z^ZkIVCFkQ=;qYSvl-$aRJ@JXd5R6$xt4jJ0!^)gaUnwt}5I(ehOzW9Ux6CwXdcIF@ zSU6vsxeC+v!BiwEDg|mMwT*yXFXg#j-q!~Ke{L7or?%%7GERpKvICx6xOW-w-!2!< z|0QKilU#s^#3(icoy_UbieFDIG_&oyTEPqoZKSp0j`bIh^j_q_KLuXp8AuR^^ z4A(P_(l$fory0v?NQY;P}UUP_o~6F>j{3ho1ZM#YTPoUkjcOb=_-I9`Jp0^@I%%KGcOtFwELB zUVd~$_ty$UB#~^%q%{#&Q!%KlsIJu@OsKro=}L}FCWWX9SDm!PRgg3mxL)JqdI>gy z?F`l3OY3oH(`YTB>F0Q->8MG!bAZ9|upkq$qkHcL=H2tAX?AkrQb#o0uq%S+Oz;l) z`kg#sl7npLlOZjw5uG>O->O6hJzv=Sur00U_+H_X=_DvNw%t*bBfBv%-C|?YJGiTy2`($pItyv%J zl08mb6v$nB-*993SIV6}*A3Yg;UQN`o&u6ws6|?t?cKhKq2pIg;xb(7s0_DB{`VdJaTGf&x;OJSMHinP)u-f>~{=u4&u;IYgXE_+1jtd{J~bkeaQfrxBAW zNOpa34sga+o5u5dNggw@D0%$2v0tORajegBLx~qAOLr(k!|(UQ2V0HH^GvoE6qy?kO^g7E8a9Z}h zGb^5Ew(5T+Z<*R>-6Jpk4aOqS`)Y`2&*UxL9d=Ds-VQp0)3B0WoBRn^;n&eo{^Y7X zl1a-D^(WTSFL8to6*sz;x;C&Dtrzf^nYCa$tc$ZqrsAC6$dPn0Yi2nqCYhG6feXaL z<77wIG*3ebL#OcmFBI2gLLuFq@;edakZm}`M@a{D0_{dbW8 z6bQ7m+x&?eLx(+@CxWB2^hw733v5KL=$Ec7B(qewNfFuXUUh1KuOsy2u*eHJgRW7k zE-DBJS&<#CdmiDiTIG2;syKa>)NN1~TKnotnV2Q3q|wL3jB<7A9y`R~x>tDs{%TjA zhKo>;B;_=o9Lv>vOjXkEU8>$;R=ShV;u$mei6DvBMoKFax617*oYijFvVxSCExF>W z63}3-xJ*YAh*6#WAfl~MFhcMg&?(ii^j=W5?kvAuGGeswdWW|Hj_U#O91wfJlBgp* zr6URjGihDM3-~xsysUfo8*yzG2A>V=RTa2$pz4WsLg5N{$yy!9zZE@V*o z+K8nMA)laJmb0TTaMe&L_3FR^necjOlo7R(p+GYY&F=+!rjlA+c2!cf;yB}DX1Xc1 zCfg}=DDj4t@(-~Xq_n1Sf!r^d1(I)YDD|q*#@=qy_>a7$d86j`~tiIoHBe;eQXWY#ioP) z)1$>U5GjMPsk*Sf{KDP)=YUHlB#sSYM;u})_Z-04dKsTsnlL~WgPAS2w^fn1O&dnD z#VfS5KW$~5==V+t_bX#Rt_55geA_QCV&FqxV7Qp#X5eQF&HGGB5}*!G&9|r)Z`6s| z3^~+(w!X#XHp+_`2x!Z#+d1)f@GdJ*q@}U|8ss3D;b9P6mfIk-AYm*Kr=oxk9ZG38X#|^j>Idw@l zI^tS=!hUZDYpWBUrY@NGLdc~jzzTA@W&L=C)-ki{y_z4z-@4!O*57$0qgm%_kZDxY zAtq_$SAUq$(ohiH#ax0n)n#A#*bJS2dzwqy?J-DX2C62^ z%-+akq}fztm))siK}zEGiuW`*2;q}N_|t!->g*p*8jd?1es3CO1R zT*9yCzIbI<4$Fb@viVuL@ETRDb2kV=ng+yz3Pzl~TqkJu$L!o?<(`1y3j+>%=UGAz zQ{|dfCcOAwQu@!TTYXQt;SZ);>1f8czI2q*etGir zmg$Rk3feoN?(G{ljpw(I9hTO=moJ_>w7QpOy!EtfxvZ~5v94?yYJO;ai{r|&Pl&0M zjEbD*y#4%Eac_JUuQyw_Wxm)86ut3#DT(4luMOMdSnI4Ucu#*#X}-x}^uZ)&G8KVCbzhT944m0R#eggi^78a*rEC zT?w!Vz4Da)k;=V_q&g#w!w86MakYh-Nq zc$sq>^exgLncD~nsuMqUG0j((GWAb~7$}-FeED72c@Fr~`6j79^|!($&l??otxvVy z4O>nIgQqLxv$|<_nSRfUZ#zxGy~-YnHe?xdPRQ}>aB5&yCPf=-UXM5(Nji|2Z}*bG zJk~LEF|TGEC9dIR`f=;_Z5l>dKJWBCCUY;{!Dc!-^U>Ld8ClEpaYJX`={09;nkN(< z^+&Q(7*Dj_xc8(<{wkxe;@%&N7cJ?t$btC7J2656olVU08CV^D!`^+|lHcQH-A)r1 zMe@rwg1=UaBqm|Voq@ZetIkn(O7{}Nz3R%=f+7*zGs?W#pv$Xs(S+DR$d03cvT@ha zJb4v*z!zc0PS;@U=2{K>?0K4D*De~2_JB(k4Pa5x7BQo?k z0}&X7yz2iej21dy8Py~6oId+Ou^<*k>TpxP^JecPR)Mx67>EYN*DO4BcvAa?Slm;4 zblD;VHiJr<(X4BGr%?IJ&Q7<>jlF3l|N7;#m_VCw}&Y2d-=h=t-&e%>+q1C*?o@nx{X2P z%i!zl>XdaJ4UPWAPo$YVz3#!oglM%(Cze2YaL>uI%bf+WODF#HLo^t?W ztqehzW{fl^o%GwRR(?BZvh{A+95m?5h=$JNafi5)o8DGIGHI9HK^e46-Uz{DXT9Wz?@@D`q%EM2{|Bf!&VHcG3Fi4E>>c0Q z=b7?jVLL4^p3$o)1((E;YKvw-Kj*?s(ah>eBM3>yEbZSA-KFg;nk#(JkTnRqyv>=tpl}J${$k>b@+-3A( zg>^p~t6Z^pmm7ldmfc&+>bI!R3D-HiA<&Eb_PJR*{1S#KSwq}`h`U?et$1X?+QRoCwubi*)J*r9a?sev5G@T8 zLxsZ*?>10+nFKmLDbIT0L~I)EQ#PMF(CQE~hBRf3vi@yCDwO%y6`I7@4qtaWIQ6o>&ir+00sbmP|+ z?kD}7worC+-e~w&NSakmUU{t?&y*k1e0P}d(`-v+ChzQTCl)Z>>9-akQ&3-ixqeW# zf@&gGszcj(1#zWg)kz3fNFA9rI0uaHzdo?;SSjg3%)(bMp%PsR@dY=@3M5N>fA2nnTn#xJpPJmNvW#Jn>0twzl#$(S>ZUMHoAfGq=~wEn z5BRvNpMuL*fv+-vCwz$uE^{;@|)A=9zw0R$8e zo%&???Kz3tC~*!bVaucj5znlm*ReVT&xi9z@I?Hv2)|Co6vLm^lIaKv7q_Y0uFCE`r@N6w{uJvUhYa&5g3&t@?Z}1Jg^z*BY!HH0Xd4Qm> ziioB(GfE5OyP6b|+w6lf*q<;l6B{q%Ef_TSE&En9IF*wg1g0%BOuHU6Ebr6eEw@p! zsCZdX#1NQK*G(u|x6W)=sTk&PAKR`?fsuFdr-f`AHlU;UmqplHMAU1zvT$R{;K)K3 zf$kjepnXDT6e9O>mabAVm0hM_bFr51D{YL`QWs4XTH-ixx|8w>yUnwRl#zMI?*u zolLns08p#USgz>@at~raU;GmMT8tDY-0I7YTAJ1tYt6a~XV(u&XMeVapN3G_$c*@o z+0^BZoyBD*k?xLKp>Cg8>;#CSL+XfWH47}o&A>VgCfbKwy-;ABD(cDy5Tkk}6SB0% zr`#-J6XhsA18q#|xQ)u5u9CG8xyR?@bj?_tr4mqV{nrs^gf&Z>&i@%uY!L`EvT_9;umOd%J-9YIGiB4=K~RNgOz zi8HC0(&k5s0$5<{XhETREVXx(y%VB?E{DlO6E z6O>+hGpC3Ll;PBJ)3ZOL1Pv8jS)xr#a#EG*lecPLw7vtWUy~O{a!(d2XNxD|hMW9O zfs#$?_vO7E>^E{DL%H#1vAQ0qvx!uO8>bLY1RYf|qQ9eNy30v|rmX`sT$X6v5viqE zG7o~85!|Cbl1$r5VWV9~wxRNc!NssxOX3151odn<4N}#5_ruU(^=DBCjG`(b-zh!m z`!1m}MqCA|0bH;`4RO(9tUi`h1x@$u)pByyU2_(<+H%>nwEooWYYvj?+XXs7Bsj5Y zV1}uUVzSb*&|d}G#Mu5_#G!ZL<19qHrb4enRTL}aqsB!rEMLpy9B{SwuXq52slM3n zaQfAwi{3SjDZUvRRUcx6^N6G#)MpTiMezXglr&o}94NtCm-nhx zOl@a;%{L)oI@ABIDrT?Cwmr5A%xDVBlfRPT%Eb^|Wg+G7JTTCJoUfePuSmllrLvO1 zR0g$E$%p~Ob;|uyornQ2(RBY$Fl+mDxEj`*B0vy|E94Hi+i`9hKywrz6efpWfRK7Kr>D*4!c%Jxx89XrN`{P`-}PX3|9~H03x~h`e6Wxc^p-p zM5zmEL(&XXZgiZ5EM;1AO7r`w?J5){(qhy(!1Wvu*}+Lwq&y_w$G_LQOKfrcUc1i( z7a~LOyTV77iPq%!Pa7bc!Z5mcO89cP>1u86-P{&#~ZyVM~ zEw@lB2sT^AZeS2&uZ%GP*5Xa+ose>l7)<(I#VW?vXnI2yBP7r=xvaL>lwLItXSE zGTx;!vHN_Xen=p*yyD@->rcNeTE~`bn4^rW#jLxe*cah$uZ0fP%(L%hN*HzbKzBZh<-AY~Qs+P-IWNDGFjK zmDw}+ggKUA#yd9%79@Yrrz1fQoMyNloZ+8@u(F+<0UNck`2)tCx|F{suBef ziC60yy#)6r9>pG<8Ga2tDC|bi&-IsiFn-#61%e7ng!8Wb@Q5b~nGmN|LXmGKext*K zoa6^8{|I3hi7SgwTD5k$jj->r?y}0`0D0FL4%`LS0f9O`Pq*}Y7fcy8MM5i+Bpds3 ztDMY{{0~JWOpS8jW8P9>#=yBbNuaU*sQ2>$DkI$J3>9EDOQ1goxEH=IU?K`OkRtnT zJ8g!lMQL%k7r}(?kyVyvDk}o3*x<&bj)c8$4XA$J)n6Mn!Bi0vur=1;d!6U-O}k-V z{?vNmlq+_9Utr~R%Q2a6 z3Pf5gq1vAiYFJ7sZf zqqOv2I)hD1#6R7~_E_eJ`XZf;^3{O;6Oq0~2evZ4k)fvvKgQNGJS>Xh^Z3InGBxic zOKFT-p><7f)$lp#6dLpDrsz|S5 z7~f4cfUQ+Z_ct9ExddZO&$O_!C)H&wA;x{*-^lEF*6u#) zpmaIOF(=8=t3|ZI=cB{cnaVHa-}z<)mabG@d+3S4ej=5h@_?99wl)Lhh3C*}*-rTR zXM>JH!jGu^<#x`U(%h?2`&lwT%o3>xJ_y?}a14UAX{0TilM5{D{@D_I+_E{Ig-wT^qFN5C?LOw13aunlSU>KG}!3_N1 z7(?6Op<%8U`5)6eq~Go=uPtz0aQtZ3(- zmWP)yr~4vtP}`djO-vik*(A5a#~{?(h+Y^em^#6|hSe@O68t0QeP7r5k;a?tKW7Pa{pt{UJh z>TGCd)TMXHZ|lvcCeLNjwqXTc&k9T!Byh^v##B!E8JycNoys(ER+gq5!cE0Ct8#GU zr=Iw9MkF*z2(1f1w-E!t=ySkljdQ@JO5AH7iJn=tQ}S*V2s}+uq>#@Nh|kYb_AjPW z6LkTB5>@v{$$?cxtzlKIKPygk8z+d_2j=je}0*4vxduvSSbS1>p*$n0x{YJRle&;hW8rjl#(yM&wj}`6KG0p7cjAB!a8qX&yluCJ;WmIu{!x*Y#dB)c-D&ylS z4=MngW`=Ch-7K6$?ADQF9!_Y<(f+A>XVnOgHtErOXQe)^W=nFO%W^w80h(%Y2URgS z{0sb(K3c{E&l~)~LL}Ly#?M$U-c=5-LZ>OrE+_Zm-;pas<>#vfPe1PtT`RIsw%)%w zm91UO6$Y(ruwDJ>?YtmfV&&JW?D3GP-c2iGp zMPQx9i2Jeayb+_#Rh@-A8xfqO;4UE{a?MhEE}==w>B9m!__5QIh9qRiBbD4XB?pJO zU~B2`_Bw@MKnsr~0yEqiWnZw}$#;D0*<~3GdR2-4dosUm#MZNKw6bAb&7-xOC%&5? zT1;CM7UQwZE2D9)I1r(OhoOPv*wC7v*@S%x$M)eA`PZp7jXGeBA@eOAz9k0t*Ejpb z=-k}aWuaaZVw&qzE%H;SO@y>Qa6!nwcR?@Ir>Y&kYEIrmy~Yw942G^DwL>*j=~&{B zHYzgBlXIEsla;72@5zv7I9uEL{9Tk;DCwJf!r|_S+EN z@LkHgn9&}pOraS`A*NO)IR6|F$n%+qgSi50uQmDXoT>g`A|XTHV{go^j1?Q{tnrMc z8%I2HzLRZQy_UX-#$wg0ag^i8GV{}^%!gH!@uRfUZ0W^@yuc2K4_U^C!cKPxB`=d? zmKJ+bBNuBpBMB^5$PEq?MZBn;Gt>q2#yJ4T#Zt809KM3flPcdl8Og#<*W)rf-ZL$| zEwLTJ8`EdF%~WVhPi{X$@^s0~vC4`0gvtd#foPCU&dsXS-tTBlf8>3mJDy}?>oHVt z7}^ujyiO~x)pbzV{STYZsv_9o(qsgwyK~_Zv7;;3M+lWfxe&Ot7=7e?Y2qN<{eH@} z{^U8}OCY_1ysU~0BP&58-7@xZQi<)+_3%>jJ3HPx;tr9WSd1l$W?IGOsb)f;wL!6* z?VYL8W97D58yk>uLAw%b9Lki#_3Fg>TCA+bjkK}Zc?pu|^Mi0@of=v=o;aJjn@h|D ziYn|h5%)bLqUWo~we@r_^V|gx3)wzki+sE0F1BqryiJ5TMf?vMwDRpCAo0c z)yn|H`G2sadqilp?$<2K_k<7>RdOoPo#3?|rLrHN6Hm15L&O%a*AdsF59Y{nds?i^ zcQFj}a&VrqZM{{&iN_>`*k!8}tcio5P)lRX;J)Rrr8-Z8;~%Dcd{NdAylwqgf~OJ2 z!(glK>ZBJoN-o4S(-6IKMldy!)|%E1Rrx$MuQ8o1E}g0K$jIi<+7S^eE1nEgo~cT>A%P{Sxj#-tH?cqtE7};d6`b1H-}P&g zdZispvA-)I&ZAo$C}Vti(ye_;)WJccpt{!@Wy`YTtjc7S1hMSWqveYD=a^k<<7xBK zwDhA7i_+$;t1jP@@D4axrB=~(t%oSthb!}odq3oiEOO!KA3hy{BgVpRbulT`($&u#(`eI0A zkK)#X!i1die(Z^Sk>Fb&PdENh_ejjzG{z-ufpMdV^j!Sps=WQ~()QO==mCkloH|1C zWCU7RtkkK_+v^WBU<^L&?lqV+&fgs>TNJAeqi_jn;6Uih z%!2xw{a{4!FNwqKvvR5yb-LsFA|ZJ9!t(Y$KP>02+0L-AYJJUktq_w(S8$^VSGSJP z#I5=XWiO2vZ;@~1KK!aI?U_zDlQgWdWQ^)w+B}ujR=K*EW4b$NF_&Wz+OT!T97qX6ZAK$rPd2@bie2q_G6^bYe?gWPMS?n zdwsC8v4OJ?7x>!ZmqO{xrjO$pPAz3pGIPeru)r|G6A{`B9zoNpZTewFJ8A!GDyK(b z&H4`N)R}y0lr?wgcUBDNBSv;3W+V}26G zM-~LU=S)o=tSj*&@f=zY-Qs(f%327oeqrR@Sk@v<1-F{p(^u=}3A5WS{w&_B21dyY zzif(V>;re5aZ~EAu)Eu1&STlXicY;f7VCokIyEGp0?%rF;NUV!aBZvI!Mts61H#+H z()coMRy|;0aQgao^A1^cZ{`?x_4~6(U;mgtCd05PrG5+-)}epTRoG55m^ z>=tBG-m^nB%{?{VE)JX1)1+CpwXz>L){B;4S*<>;3`^a4PYaHpoP9#L>PF%EJI$ir z!tb;bnVXgc9`xJd5Gk#6E`+i|=gHbLK9eS2l^>*-`s*H=VV#%WHogwbvU?9Qn2%AA z>RR@cKFGJWxNS9oGVdBQY0vkOz?}KGI_hY)^X8&}vc;{n!ptmAq``+^}5&}afzh! zep!fN+ZTs(5|HTuY5#<32L7B~c%Ys6wV^o~yfdx(bMEirA=qGg!%Uee2V^8uf7rCd zQ8fP`(FVGSBA=~al8`i25#E&?FjA;ZZw{|@-=6FsI?)_$i)FnURfep8DoUOpFkDS; z=moRE>Bsh3y&%5cLt}hMC?_kIKAdAOFaJCzID~Ji z+r`60s@yIVn#Wl=?QM39l-LKh@2|YVR@t)ZLO|YrbJfPxK+&|Hi@}~aT_~J|W*_Yl zG)I0lf@1@5kz!j+;Xf;GXCqtu0KtqqJ8Esab6MhUlc6K(I2lhlHEYjArf0^+-0vQg zc87-rpXI-NivuaEetM(81ka@hRiL}9KTnnJYv8vu;lulZ6@lAsn7spXbJ+`(%?T?c zuXR~3ND*_{V!rOkIaj919#a13XCW?<%AkF!N1f8S^qFi(2os7%FzYaF7Kk*Eyb8Oj zB6XRxG-#PCjVkbV*1^%<4w{{easZ;iqb`tOe;o*oa^TcF~Wwly2`b1f`6QGvDG&yHKG z{Z}jJrJjB=@0sp>P>3V2Su4o&;;^eWHgzo>Uq?!Xkw(g&1}crzR)F@~^9PG3O+S-^ zxP|=Y5SPQspAgcj#1f~4myHn0wM!aO zdGlxM8xvoTiSQiTltw{^XxL&^qi%&<{@KvapZ2{7FGQ4;jq;ghTRszMjeZzuM-j~^#2}~uQMX#{% zA2tMKD;jFIk~9a{KUG#-z0!i@5M36{d!7S9mlkYdybDo_{_j&Qb6SlGq!()vC107nsMug4Kr2YV3gW?kc(-8{D+fuiRrV{ietsgS1G? zX#b5r*0l|S^PE~y=Y#|iFA$C15sOZmYxDC3qQtlfh*gBbIrqo)QvL+UeuN z@PoHQU>bu=aruVUlFrnArO3RK)8Yk)$65HGmfjDTP!%K(YY zv}E9FeOwN6fwBPa{*$(v8z9kN@!pg(qjmUdw$y4Lt2GB?iD>modDSRZO}5;qcs*OG z1?W?n6LeZBYam=I4h;-(%&@YR_4+tH`fIl>HA|-AtK`M=f7!IR*{ZQ@#tqY1aw41c zMu-xJzi;aNh1minxaN{idB3Ot%2}s|KX&g2(xGY%fthT_c zOl9OVx5qhvnGHD>CS3ln3KtPw>p3uVujYO- z`~ez82M334ew)LrEKl-bs10 zD?`LIr}id>WA#^y_euSn*Vd2Rri^u|ff3W6=`9E%PC>uEU)Sc*|HsU|ggv@}bG#qu zsfBH@snPfK^7oPH^!4$*Sn+xE(pdGtweN$8q85EaqJGlNx1Ta3i|0T$HzsB)N5ju_ zh&v}3+ia9;DG8C<8ce!!IA=*ZN`^ZvCmW5-?bw9ICTY>wO*tpyqu(Iy175+Hg+<5v zo@*^bhp-Ymct1pS?-}%#X}O~{Gaba{AW+yf8C4te=Pg|_RjuKRi^u|X81o9`j72f Iy63b13mPTe?f?J) diff --git a/src/img/sqlite.jpg b/src/img/sqlite.jpg deleted file mode 100644 index f1e2890e05d9beb684d2ac688291ef9b07dd0c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14750 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 HJN3T+fezod diff --git a/src/img/success.png b/src/img/success.png deleted file mode 100644 index cb4d375021e07611c31ba0290acc276556a86ea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9842 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 diff --git a/src/index.html b/src/index.html deleted file mode 100644 index f0a076b..0000000 --- a/src/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - 数据库连接设置 - - - - - - - - - - \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index ceb3a40..7d44dd0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,5 @@ -import i18n from '../private/i18n'; -BI.DOM.ready(() => { - const app = require('./app/app').default; - // TODO: 先采用这种方式方便前端调试 - BI.addI18n(i18n); - BI.createWidget({ - type: app, - element: 'body', - }); +import { AppXtype } from './modules/app'; +BI.createWidget({ + type: AppXtype, + element: '#wrapper', }); - diff --git a/src/less/background.less b/src/less/background.less new file mode 100644 index 0000000..85a2fb0 --- /dev/null +++ b/src/less/background.less @@ -0,0 +1,9 @@ +@import "../../node_modules/fineui/src/less/image.less"; +@import "./lib/background.less"; +@import "var"; + +.background(data-connection-background, @background-data-connection); +.background(upload-loading-icon, @icon-upload-loading); +.background(upload-fail-icon, @icon-upload-fail); +.background(upload-success-icon, @icon-upload-success); +.background(error-page-background, @background-error-page); \ No newline at end of file diff --git a/src/less/font.less b/src/less/font.less new file mode 100644 index 0000000..5d864ff --- /dev/null +++ b/src/less/font.less @@ -0,0 +1,8 @@ +@import "../../node_modules/fineui/src/less/resource/font.less"; +@import "./lib/font.less"; + +.font(dcm-link-font, @font-link); +.font(dcm-info-font, @font-link-info); +.font(dcm-test-font, @font-link-test); +.font(dcm-delete-font, @font-link-delete); +.font(dcm-back-font, @font-arrow-left); \ No newline at end of file diff --git a/src/less/index.less b/src/less/index.less index 9d67e74..75fd279 100644 --- a/src/less/index.less +++ b/src/less/index.less @@ -1,4 +1,5 @@ -@import "lib/background"; -@import "lib/color"; -@import "resource/background"; -@import "resource/font"; \ No newline at end of file +@import "../../node_modules/fineui/src/less/lib/colors.less"; +@import '../../node_modules/fineui/src/less/visual.less'; +@import "background.less"; +@import "font.less"; +@import "var.less"; \ No newline at end of file diff --git a/src/less/lib/background.less b/src/less/lib/background.less index bff78bf..0264cf7 100644 --- a/src/less/lib/background.less +++ b/src/less/lib/background.less @@ -1,6 +1,5 @@ -@background-resources: "resources.png"; -@background-warning: "warning.png"; -@background-database-selected: "database-selected.png"; -@background-loading-gif: "loading.gif"; -@background-success: "success.png"; -@background-error: "error.png"; \ No newline at end of file +@background-data-connection: "background/data-connection-tip.png"; +@icon-upload-loading: "icon/upload_loading.gif"; +@icon-upload-fail: "icon/upload_fail.png"; +@icon-upload-success: "icon/upload_success.png"; +@background-error-page: "background/error_page.png"; \ No newline at end of file diff --git a/src/less/lib/color.less b/src/less/lib/color.less deleted file mode 100644 index ca1c3a1..0000000 --- a/src/less/lib/color.less +++ /dev/null @@ -1,2 +0,0 @@ -@import "../../../node_modules/fineui/src/less/lib/colors"; -@background-color-blue-transparent: @color-bi-blue-5; \ No newline at end of file diff --git a/src/less/lib/font.less b/src/less/lib/font.less index 751359f..8007a5c 100644 --- a/src/less/lib/font.less +++ b/src/less/lib/font.less @@ -1,3 +1,5 @@ +@import '../../../node_modules/fineui/src/less/lib/font.less'; + @font-link: "e759"; @font-link-test: "e763"; @font-link-info: "e63c"; diff --git a/src/less/resource/background.less b/src/less/resource/background.less deleted file mode 100644 index ffec451..0000000 --- a/src/less/resource/background.less +++ /dev/null @@ -1,23 +0,0 @@ -@import "../lib/background"; -@import "../var"; - -.data-connection-background { - .image2xPath(@background-resources) -} - -.dcm-comfirm-icon{ - .image2xPath(@background-warning) -} -.dcm-link-more-selected{ - .image2xPath(@background-database-selected) -} - -.dcm-loading-icon{ - .image2xPath(@background-loading-gif) -} -.dcm-success-icon{ - .image2xPath(@background-success) -} -.dcm-error-icon{ - .image2xPath(@background-error) -} \ No newline at end of file diff --git a/src/less/resource/font.less b/src/less/resource/font.less deleted file mode 100644 index 9605c6f..0000000 --- a/src/less/resource/font.less +++ /dev/null @@ -1,7 +0,0 @@ -@import "../../../node_modules/fineui/src/less/image.less"; -@import "../lib/font.less"; - -.font(dcm-link-font, @font-link); -.font(dcm-info-font, @font-link-info); -.font(dcm-test-font, @font-link-test); -.font(dcm-delete-font, @font-link-delete); \ No newline at end of file diff --git a/src/less/var.less b/src/less/var.less index a324209..0bee70d 100644 --- a/src/less/var.less +++ b/src/less/var.less @@ -1,4 +1,4 @@ -@import "../../node_modules/fineui/src/less/var"; -@import '../../node_modules/fineui/src/less/visual.less'; -@imageUrl: '/img/'; -@image2xUrl: '/img/'; \ No newline at end of file +@fontUrl: '$fontUrl/'; +@fontReportUrl: '$fontReportUrl/'; +@imageUrl: '$imageUrl/'; //图片的基本地址 +@image2xUrl: '$image2xUrl/'; //2倍图片的基本地址 \ No newline at end of file diff --git a/src/lib/fineui.min.css b/src/lib/fineui.min.css deleted file mode 100644 index 77c04db..0000000 --- a/src/lib/fineui.min.css +++ /dev/null @@ -1 +0,0 @@ -/*! normalize.css v1.0.0 | MIT License | git.io/normalize */dl,h3,menu,ol,p,pre,ul{margin:1em 0}.bi-font-bold,b,strong{font-weight:700}.bi-display-tree .ztree li a:hover,.bi-list-display-tree .ztree li a:hover,.ztree li a,a{text-decoration:none}.ztree li,.ztree li span.button,a,a:active,a:focus,a:hover,div:focus,input,textarea{outline:0}.b-font,i{-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.b-font,body,i{-moz-osx-font-smoothing:grayscale}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}button,html,input,select,textarea{font-family:sans-serif}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.75em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}blockquote{margin:1em 40px}dfn{font-style:italic}mark{background:#ff0;color:#000}.base-disabled,.base-disabled .bi-input,.base-disabled .bi-textarea{color:#9ea6b2!important}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}small,sub,sup{font-size:75%}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:after,q:before{content:'';content:none}sub,sup{line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ol,nav ul{list-style:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure,form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline}button,input{line-height:normal}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#body .bi-button,.border-sizing,body .bi-button{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,a,body,div,html,img,li,ol,p,span,ul{margin:0;padding:0}input::-webkit-contacts-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;position:absolute;right:0}input::-ms-clear{display:none}input,textarea{margin:0;padding:0;border:1px solid #e8eaed}ul{list-style:disc}li{list-style-type:none}i{-webkit-font-smoothing:antialiased}.bi-theme-dark input,.bi-theme-dark textarea{border:1px solid #3a3c53}.base-disabled{cursor:not-allowed!important}.base-disabled .b-font:before{color:#d0d4da!important}.bi-theme-dark .base-disabled,.bi-theme-dark .base-disabled .bi-input,.bi-theme-dark .base-disabled .bi-textarea{color:#878d9f!important}.bi-theme-dark .base-disabled .b-font:before{color:#606479!important}.bi-focus-shadow:focus,.bi-focus-shadow:focus-within,.bi-focus-shadow:hover{border-color:#3685f2}.bi-focus-shadow.disabled:hover{border-color:#e8eaed}.bi-theme-dark .bi-focus-shadow.disabled:hover{border-color:#3a3c53}.base-invalid{cursor:default!important}.clearfix:after,.clearfix:before{content:" ";display:table;line-height:0}.clearfix:after{clear:both}.bi-background{background-color:#f7f8fa;color:#3d4d66}.bi-background .bi-input,.bi-background .bi-textarea{color:#3d4d66}.bi-theme-dark .bi-background{background-color:#191B2B;color:#d6e0dc}.bi-theme-dark .bi-background .bi-input,.bi-theme-dark .bi-background .bi-textarea{color:#d6e0dc}.bi-header-background{background-color:#F2F4F7;color:#647185}.bi-header-background .bi-input,.bi-header-background .bi-textarea{color:#647185}.bi-theme-dark .bi-header-background{background-color:#2F3149;color:#afb7c6}.bi-theme-dark .bi-header-background .bi-input,.bi-theme-dark .bi-header-background .bi-textarea{color:#afb7c6}.bi-card,.bi-card .bi-input,.bi-card .bi-textarea{color:#3d4d66}.bi-card{background-color:#fff}.bi-theme-dark .bi-card{background-color:#242640;color:#d6e0dc}.bi-theme-dark .bi-card .bi-input,.bi-theme-dark .bi-card .bi-textarea{color:#d6e0dc}.bi-disabled,.bi-disabled .bi-input,.bi-disabled .bi-textarea{color:#9ea6b2}.bi-theme-dark .bi-disabled,.bi-theme-dark .bi-disabled .bi-input,.bi-theme-dark .bi-disabled .bi-textarea{color:#878d9f}.bi-tips,.bi-tips .bi-input,.bi-tips .bi-textarea{color:#9ea6b2}.bi-border{border:1px solid #e8eaed}.bi-border.disabled{border-color:#d0d4da!important}.bi-border-top{border-top:1px solid #e8eaed}.bi-border-top.disabled{border-color:#d0d4da!important}.bi-border-right{border-right:1px solid #e8eaed}.bi-border-right.disabled{border-color:#d0d4da!important}.bi-border-bottom{border-bottom:1px solid #e8eaed}.bi-border-bottom.disabled{border-color:#d0d4da!important}.bi-border-left{border-left:1px solid #e8eaed}.bi-border-left.disabled{border-color:#d0d4da!important}.bi-theme-dark .bi-border{border:1px solid #3a3c53}.bi-theme-dark .bi-border-top{border-top:1px solid #3a3c53}.bi-theme-dark .bi-border-right{border-right:1px solid #3a3c53}.bi-theme-dark .bi-border-bottom{border-bottom:1px solid #3a3c53}.bi-theme-dark .bi-border-left{border-left:1px solid #3a3c53}.bi-split{border:1px solid #f2f4f7}.bi-split-top{border-top:1px solid #f2f4f7}.bi-split-right{border-right:1px solid #f2f4f7}.bi-split-bottom{border-bottom:1px solid #f2f4f7}.bi-split-left{border-left:1px solid #f2f4f7}.bi-theme-dark .bi-split{border:1px solid #2F3149}.bi-theme-dark .bi-split-top{border-top:1px solid #2F3149}.bi-theme-dark .bi-split-right{border-right:1px solid #2F3149}.bi-theme-dark .bi-split-bottom{border-bottom:1px solid #2F3149}.bi-theme-dark .bi-split-left{border-left:1px solid #2F3149}.bi-font-helvetica-neue{font-family:"Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Heiti,serif}.bi-font-arial{font-family:Arial,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Heiti,serif}.bi-font-PingFang{font-family:"PingFang SC","Helvetica Neue",Arial,"Hiragino Sans GB","Microsoft YaHei",Heiti,serif}.bi-font-hiragino-sans{font-family:"Hiragino Sans GB","Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",Heiti,serif}.bi-font-microsoft-yaHei{font-family:"Microsoft YaHei","Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB",Heiti,serif}.bi-font-heiti{font-family:Heiti,"Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",serif}.bi-border-radius{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-keyword-red-mark,.bi-keyword-red-mark .bi-input,.bi-keyword-red-mark .bi-textarea{color:#faaa39}.bi-high-light,.bi-high-light .bi-input,.bi-high-light .bi-textarea{color:#3685f2}.bi-error,.bi-error .bi-input,.bi-error .bi-textarea{color:#ff4949}.bi-error-background,.bi-error-background .bi-input,.bi-error-background .bi-textarea,.bi-high-light-background .bi-input,.bi-high-light-background .bi-textarea{color:#fff}.bi-high-light-background{background-color:#3685f2;color:#fff}.bi-error-background{background-color:#ff4949}.bi-high-light-border{border:1px solid #3685f2}.bi-high-light-border.disabled{border-color:#d0d4da!important}.bi-high-light-border-top{border-top:1px solid #3685f2}.bi-high-light-border-top.disabled{border-color:#d0d4da!important}.bi-high-light-border-right{border-right:1px solid #3685f2}.bi-high-light-border-right.disabled{border-color:#d0d4da!important}.bi-high-light-border-bottom{border-bottom:1px solid #3685f2}.bi-high-light-border-bottom.disabled{border-color:#d0d4da!important}.bi-high-light-border-left{border-left:1px solid #3685f2}.bi-high-light-border-left.disabled{border-color:#d0d4da!important}.bi-water-mark{color:#9ea6b2;cursor:text}.bi-water-mark .bi-input,.bi-water-mark .bi-textarea{color:#9ea6b2}.bi-theme-dark .bi-water-mark,.bi-theme-dark .bi-water-mark .bi-input,.bi-theme-dark .bi-water-mark .bi-textarea{color:#6b7084}.bi-mask,.bi-mask .bi-input,.bi-mask .bi-textarea{color:#fff}.bi-resizer{background:#232E40;opacity:.2;filter:alpha(opacity=20);z-index:1000000000!important}.bi-theme-dark .bi-resizer{background:#fff}.bi-mask{background-color:rgba(35,46,64,.2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33232e40, endColorstr=#33232e40)}.bi-theme-dark .bi-mask{color:#242640;background-color:rgba(255,255,255,.2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33ffffff, endColorstr=#33ffffff)}.bi-theme-dark .bi-mask .bi-input,.bi-theme-dark .bi-mask .bi-textarea{color:#242640}.bi-z-index-mask{background-color:rgba(35,46,64,.5);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#80232e40, endColorstr=#80232e40)}.bi-theme-dark .bi-z-index-mask{background-color:rgba(25,27,43,.8);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#cc191b2b, endColorstr=#cc191b2b)}.bi-list-item.hover,.bi-list-item:hover{color:#232e40;background-color:rgba(54,133,242,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0d3685f2, endColorstr=#0d3685f2)}.bi-list-item.hover .bi-input,.bi-list-item.hover .bi-textarea,.bi-list-item:hover .bi-input,.bi-list-item:hover .bi-textarea{color:#232e40}.bi-list-item.disabled,.bi-list-item.disabled:active,.bi-list-item.disabled:hover{background-color:transparent!important;color:#9ea6b2!important}.bi-list-item.disabled .bi-high-light,.bi-list-item.disabled .bi-input,.bi-list-item.disabled .bi-textarea,.bi-list-item.disabled:active .bi-high-light,.bi-list-item.disabled:active .bi-input,.bi-list-item.disabled:active .bi-textarea,.bi-list-item.disabled:hover .bi-high-light,.bi-list-item.disabled:hover .bi-input,.bi-list-item.disabled:hover .bi-textarea{color:#9ea6b2!important}.bi-theme-dark .bi-list-item.hover,.bi-theme-dark .bi-list-item:hover{color:#fff;background-color:rgba(54,133,242,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0d3685f2, endColorstr=#0d3685f2)}.bi-theme-dark .bi-list-item.hover .bi-input,.bi-theme-dark .bi-list-item.hover .bi-textarea,.bi-theme-dark .bi-list-item:hover .bi-input,.bi-theme-dark .bi-list-item:hover .bi-textarea{color:#fff}.bi-theme-dark .bi-list-item.disabled,.bi-theme-dark .bi-list-item.disabled:active,.bi-theme-dark .bi-list-item.disabled:hover{background-color:transparent!important;color:#878d9f!important}.bi-theme-dark .bi-list-item.disabled .bi-high-light,.bi-theme-dark .bi-list-item.disabled .bi-input,.bi-theme-dark .bi-list-item.disabled .bi-textarea,.bi-theme-dark .bi-list-item.disabled:active .bi-high-light,.bi-theme-dark .bi-list-item.disabled:active .bi-input,.bi-theme-dark .bi-list-item.disabled:active .bi-textarea,.bi-theme-dark .bi-list-item.disabled:hover .bi-high-light,.bi-theme-dark .bi-list-item.disabled:hover .bi-input,.bi-theme-dark .bi-list-item.disabled:hover .bi-textarea{color:#878d9f!important}.bi-list-item-border.active,.bi-list-item-border:active{border:1px solid #3685f2}.bi-list-item-simple.hover,.bi-list-item-simple.hover .bi-input,.bi-list-item-simple.hover .bi-textarea,.bi-list-item-simple:hover,.bi-list-item-simple:hover .bi-input,.bi-list-item-simple:hover .bi-textarea{color:#3685f2}.bi-list-item-simple.disabled,.bi-list-item-simple.disabled .bi-high-light,.bi-list-item-simple.disabled .bi-input,.bi-list-item-simple.disabled .bi-textarea,.bi-list-item-simple.disabled:active,.bi-list-item-simple.disabled:active .bi-high-light,.bi-list-item-simple.disabled:active .bi-input,.bi-list-item-simple.disabled:active .bi-textarea,.bi-list-item-simple.disabled:hover,.bi-list-item-simple.disabled:hover .bi-high-light,.bi-list-item-simple.disabled:hover .bi-input,.bi-list-item-simple.disabled:hover .bi-textarea{color:#9ea6b2!important}.bi-list-item-effect:hover,.bi-list-item-effect:hover .bi-input,.bi-list-item-effect:hover .bi-textarea{color:#232e40}.bi-list-item-effect.active,.bi-list-item-effect.active .bi-input,.bi-list-item-effect.active .bi-textarea,.bi-list-item-effect:active,.bi-list-item-effect:active .bi-input,.bi-list-item-effect:active .bi-textarea{color:#3685f2}.bi-list-item-effect.disabled,.bi-list-item-effect.disabled .bi-high-light,.bi-list-item-effect.disabled .bi-input,.bi-list-item-effect.disabled .bi-textarea,.bi-list-item-effect.disabled:active,.bi-list-item-effect.disabled:active .bi-high-light,.bi-list-item-effect.disabled:active .bi-input,.bi-list-item-effect.disabled:active .bi-textarea,.bi-list-item-effect.disabled:hover,.bi-list-item-effect.disabled:hover .bi-high-light,.bi-list-item-effect.disabled:hover .bi-input,.bi-list-item-effect.disabled:hover .bi-textarea{color:#9ea6b2!important}.bi-theme-dark .bi-list-item-effect:hover,.bi-theme-dark .bi-list-item-effect:hover .bi-input,.bi-theme-dark .bi-list-item-effect:hover .bi-textarea{color:#fff}.bi-theme-dark .bi-list-item-effect.active,.bi-theme-dark .bi-list-item-effect.active .bi-input,.bi-theme-dark .bi-list-item-effect.active .bi-textarea,.bi-theme-dark .bi-list-item-effect:active,.bi-theme-dark .bi-list-item-effect:active .bi-input,.bi-theme-dark .bi-list-item-effect:active .bi-textarea{color:#3685f2}.bi-theme-dark .bi-list-item-effect.disabled,.bi-theme-dark .bi-list-item-effect.disabled:active,.bi-theme-dark .bi-list-item-effect.disabled:hover{background-color:transparent!important;color:#878d9f!important}.bi-list-item-active.hover,.bi-list-item-active:active,.bi-list-item-active:hover{background-color:rgba(54,133,242,.06);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0f3685f2, endColorstr=#0f3685f2)}.bi-theme-dark .bi-list-item-effect.disabled .bi-high-light,.bi-theme-dark .bi-list-item-effect.disabled .bi-input,.bi-theme-dark .bi-list-item-effect.disabled .bi-textarea,.bi-theme-dark .bi-list-item-effect.disabled:active .bi-high-light,.bi-theme-dark .bi-list-item-effect.disabled:active .bi-input,.bi-theme-dark .bi-list-item-effect.disabled:active .bi-textarea,.bi-theme-dark .bi-list-item-effect.disabled:hover .bi-high-light,.bi-theme-dark .bi-list-item-effect.disabled:hover .bi-input,.bi-theme-dark .bi-list-item-effect.disabled:hover .bi-textarea{color:#878d9f!important}.bi-list-item-active.hover,.bi-list-item-active.hover .bi-input,.bi-list-item-active.hover .bi-textarea,.bi-list-item-active:hover,.bi-list-item-active:hover .bi-input,.bi-list-item-active:hover .bi-textarea{color:#232e40}.bi-list-item-active.active,.bi-list-item-active.active .bi-input,.bi-list-item-active.active .bi-textarea,.bi-list-item-active:active,.bi-list-item-active:active .bi-input,.bi-list-item-active:active .bi-textarea{color:#3685f2}.bi-list-item-active.disabled,.bi-list-item-active.disabled:active,.bi-list-item-active.disabled:hover{background-color:transparent!important;color:#9ea6b2!important}.bi-list-item-active.disabled .bi-high-light,.bi-list-item-active.disabled .bi-input,.bi-list-item-active.disabled .bi-textarea,.bi-list-item-active.disabled:active .bi-high-light,.bi-list-item-active.disabled:active .bi-input,.bi-list-item-active.disabled:active .bi-textarea,.bi-list-item-active.disabled:hover .bi-high-light,.bi-list-item-active.disabled:hover .bi-input,.bi-list-item-active.disabled:hover .bi-textarea{color:#9ea6b2!important}.bi-theme-dark .bi-list-item-active.hover,.bi-theme-dark .bi-list-item-active:hover{color:#fff;background-color:rgba(255,255,255,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0dffffff, endColorstr=#0dffffff)}.bi-theme-dark .bi-list-item-active.hover .bi-input,.bi-theme-dark .bi-list-item-active.hover .bi-textarea,.bi-theme-dark .bi-list-item-active:hover .bi-input,.bi-theme-dark .bi-list-item-active:hover .bi-textarea{color:#fff}.bi-theme-dark .bi-list-item-active.active,.bi-theme-dark .bi-list-item-active:active{color:#3685f2;background-color:rgba(255,255,255,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0dffffff, endColorstr=#0dffffff)}.bi-theme-dark .bi-list-item-active.active .bi-input,.bi-theme-dark .bi-list-item-active.active .bi-textarea,.bi-theme-dark .bi-list-item-active:active .bi-input,.bi-theme-dark .bi-list-item-active:active .bi-textarea{color:#3685f2}.bi-theme-dark .bi-list-item-active.disabled,.bi-theme-dark .bi-list-item-active.disabled:active,.bi-theme-dark .bi-list-item-active.disabled:hover{background-color:transparent!important;color:#878d9f!important}.bi-list-item-active2.active,.bi-list-item-active2.hover,.bi-list-item-active2:active,.bi-list-item-active2:hover{background-color:rgba(54,133,242,.06);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0f3685f2, endColorstr=#0f3685f2)}.bi-theme-dark .bi-list-item-active.disabled .bi-high-light,.bi-theme-dark .bi-list-item-active.disabled .bi-input,.bi-theme-dark .bi-list-item-active.disabled .bi-textarea,.bi-theme-dark .bi-list-item-active.disabled:active .bi-high-light,.bi-theme-dark .bi-list-item-active.disabled:active .bi-input,.bi-theme-dark .bi-list-item-active.disabled:active .bi-textarea,.bi-theme-dark .bi-list-item-active.disabled:hover .bi-high-light,.bi-theme-dark .bi-list-item-active.disabled:hover .bi-input,.bi-theme-dark .bi-list-item-active.disabled:hover .bi-textarea{color:#878d9f!important}.bi-list-item-active2.hover,.bi-list-item-active2.hover .bi-input,.bi-list-item-active2.hover .bi-textarea,.bi-list-item-active2:hover,.bi-list-item-active2:hover .bi-input,.bi-list-item-active2:hover .bi-textarea{color:#232e40}.bi-list-item-active2.active,.bi-list-item-active2.active .bi-input,.bi-list-item-active2.active .bi-textarea,.bi-list-item-active2:active,.bi-list-item-active2:active .bi-input,.bi-list-item-active2:active .bi-textarea{color:#3685f2}.bi-list-item-active2.disabled,.bi-list-item-active2.disabled:active,.bi-list-item-active2.disabled:hover{background-color:transparent!important;color:#9ea6b2!important}.bi-list-item-active2.disabled .bi-high-light,.bi-list-item-active2.disabled .bi-input,.bi-list-item-active2.disabled .bi-textarea,.bi-list-item-active2.disabled:active .bi-high-light,.bi-list-item-active2.disabled:active .bi-input,.bi-list-item-active2.disabled:active .bi-textarea,.bi-list-item-active2.disabled:hover .bi-high-light,.bi-list-item-active2.disabled:hover .bi-input,.bi-list-item-active2.disabled:hover .bi-textarea{color:#9ea6b2!important}.bi-theme-dark .bi-list-item-active2.hover,.bi-theme-dark .bi-list-item-active2:hover{color:#fff;background-color:rgba(54,133,242,.06);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0f3685f2, endColorstr=#0f3685f2)}.bi-theme-dark .bi-list-item-active2.hover .bi-input,.bi-theme-dark .bi-list-item-active2.hover .bi-textarea,.bi-theme-dark .bi-list-item-active2:hover .bi-input,.bi-theme-dark .bi-list-item-active2:hover .bi-textarea{color:#fff}.bi-theme-dark .bi-list-item-active2.active,.bi-theme-dark .bi-list-item-active2:active{color:#3685f2;background-color:rgba(54,133,242,.06);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0f3685f2, endColorstr=#0f3685f2)}.bi-theme-dark .bi-list-item-active2.active .bi-input,.bi-theme-dark .bi-list-item-active2.active .bi-textarea,.bi-theme-dark .bi-list-item-active2:active .bi-input,.bi-theme-dark .bi-list-item-active2:active .bi-textarea{color:#3685f2}.bi-theme-dark .bi-list-item-active2.disabled,.bi-theme-dark .bi-list-item-active2.disabled:active,.bi-theme-dark .bi-list-item-active2.disabled:hover{background-color:transparent!important;color:#878d9f!important}.bi-theme-dark .bi-list-item-active2.disabled .bi-high-light,.bi-theme-dark .bi-list-item-active2.disabled .bi-input,.bi-theme-dark .bi-list-item-active2.disabled .bi-textarea,.bi-theme-dark .bi-list-item-active2.disabled:active .bi-high-light,.bi-theme-dark .bi-list-item-active2.disabled:active .bi-input,.bi-theme-dark .bi-list-item-active2.disabled:active .bi-textarea,.bi-theme-dark .bi-list-item-active2.disabled:hover .bi-high-light,.bi-theme-dark .bi-list-item-active2.disabled:hover .bi-input,.bi-theme-dark .bi-list-item-active2.disabled:hover .bi-textarea{color:#878d9f!important}.bi-list-item-select.hover,.bi-list-item-select:hover{background-color:rgba(54,133,242,.06);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0f3685f2, endColorstr=#0f3685f2)}.bi-list-item-select.active,.bi-list-item-select:active{color:#fff;background-color:#3685f2}.bi-list-item-select.active .bi-high-light,.bi-list-item-select.active .bi-input,.bi-list-item-select.active .bi-textarea,.bi-list-item-select:active .bi-high-light,.bi-list-item-select:active .bi-input,.bi-list-item-select:active .bi-textarea{color:#fff}.bi-list-item-select.button-success.active,.bi-list-item-select.button-success:active{color:#fff;background-color:#13cd66}.bi-list-item-select.button-success.active .bi-high-light,.bi-list-item-select.button-success.active .bi-input,.bi-list-item-select.button-success.active .bi-textarea,.bi-list-item-select.button-success:active .bi-high-light,.bi-list-item-select.button-success:active .bi-input,.bi-list-item-select.button-success:active .bi-textarea{color:#fff}.bi-list-item-select.button-warning,.bi-list-item-select.button-warning .bi-high-light,.bi-list-item-select.button-warning .bi-input,.bi-list-item-select.button-warning .bi-textarea,.bi-list-item-select.button-warning.hover .bi-high-light,.bi-list-item-select.button-warning.hover .bi-input,.bi-list-item-select.button-warning.hover .bi-textarea,.bi-list-item-select.button-warning:hover .bi-high-light,.bi-list-item-select.button-warning:hover .bi-input,.bi-list-item-select.button-warning:hover .bi-textarea{color:#ff4949}.bi-list-item-select.button-success.active.bi-high-light-border,.bi-list-item-select.button-success:active.bi-high-light-border{border-color:#13cd66}.bi-list-item-select.button-warning.active.bi-high-light-border,.bi-list-item-select.button-warning.bi-high-light-border,.bi-list-item-select.button-warning.hover.bi-high-light-border,.bi-list-item-select.button-warning:active.bi-high-light-border,.bi-list-item-select.button-warning:hover.bi-high-light-border{border-color:#FF4949}.bi-list-item-select.button-warning.hover,.bi-list-item-select.button-warning:hover{color:#ff4949;background-color:#ffecec}.bi-list-item-select.button-warning.active,.bi-list-item-select.button-warning:active{color:#fff;background-color:#ff4949}.bi-list-item-select.button-warning.active .bi-high-light,.bi-list-item-select.button-warning.active .bi-input,.bi-list-item-select.button-warning.active .bi-textarea,.bi-list-item-select.button-warning:active .bi-high-light,.bi-list-item-select.button-warning:active .bi-input,.bi-list-item-select.button-warning:active .bi-textarea{color:#fff}.bi-list-item-select.disabled.active.bi-high-light-border,.bi-list-item-select.disabled.bi-high-light-border,.bi-list-item-select.disabled.hover.bi-high-light-border{border-color:#d0d4da}.bi-list-item-select.disabled{color:#9ea6b2!important;background-color:transparent!important}.bi-list-item-select.disabled .bi-high-light,.bi-list-item-select.disabled .bi-input,.bi-list-item-select.disabled .bi-textarea{color:#9ea6b2!important}.bi-list-item-select.disabled.active,.bi-list-item-select.disabled.hover{color:#fff!important;background-color:#d0d4da!important}.bi-list-item-select.disabled.active .bi-input,.bi-list-item-select.disabled.active .bi-textarea,.bi-list-item-select.disabled.hover .bi-input,.bi-list-item-select.disabled.hover .bi-textarea{color:#fff!important}.bi-list-item-select.disabled.active .bi-high-light,.bi-list-item-select.disabled.hover .bi-high-light{color:#9ea6b2!important}.bi-list-item-select2.active.bi-border,.bi-list-item-select2.hover.bi-border,.bi-list-item-select2:active.bi-border,.bi-list-item-select2:hover.bi-border{border-color:#3685f2}.bi-list-item-select2.hover,.bi-list-item-select2.hover .bi-input,.bi-list-item-select2.hover .bi-textarea,.bi-list-item-select2:hover,.bi-list-item-select2:hover .bi-input,.bi-list-item-select2:hover .bi-textarea{color:#232e40}.bi-list-item-select2:active,.bi-list-item-select2:active .bi-input,.bi-list-item-select2:active .bi-textarea{color:#3685f2}.bi-list-item-select2.active{color:#fff;background-color:#3685f2}.bi-list-item-select2.active .bi-input,.bi-list-item-select2.active .bi-textarea{color:#fff}.bi-list-item-select2.disabled,.bi-list-item-select2.disabled:active,.bi-list-item-select2.disabled:hover{background-color:transparent!important;color:#9ea6b2!important}.bi-list-item-select2.disabled .bi-high-light,.bi-list-item-select2.disabled .bi-input,.bi-list-item-select2.disabled .bi-textarea,.bi-list-item-select2.disabled:active .bi-high-light,.bi-list-item-select2.disabled:active .bi-input,.bi-list-item-select2.disabled:active .bi-textarea,.bi-list-item-select2.disabled:hover .bi-high-light,.bi-list-item-select2.disabled:hover .bi-input,.bi-list-item-select2.disabled:hover .bi-textarea{color:#9ea6b2!important}.bi-theme-dark .bi-list-item-select2.hover,.bi-theme-dark .bi-list-item-select2:hover{color:#fff;background-color:#242640}.bi-theme-dark .bi-list-item-select2.hover .bi-input,.bi-theme-dark .bi-list-item-select2.hover .bi-textarea,.bi-theme-dark .bi-list-item-select2:hover .bi-input,.bi-theme-dark .bi-list-item-select2:hover .bi-textarea{color:#fff}.bi-theme-dark .bi-list-item-select2.active,.bi-theme-dark .bi-list-item-select2:active{color:#3685f2;background-color:#242640}.bi-theme-dark .bi-list-item-select2.active .bi-input,.bi-theme-dark .bi-list-item-select2.active .bi-textarea,.bi-theme-dark .bi-list-item-select2:active .bi-input,.bi-theme-dark .bi-list-item-select2:active .bi-textarea{color:#3685f2}.bi-theme-dark .bi-list-item-select2.disabled,.bi-theme-dark .bi-list-item-select2.disabled:active,.bi-theme-dark .bi-list-item-select2.disabled:hover{background-color:transparent!important;color:#878d9f!important}.bi-theme-dark .bi-list-item-select2.disabled .bi-high-light,.bi-theme-dark .bi-list-item-select2.disabled .bi-input,.bi-theme-dark .bi-list-item-select2.disabled .bi-textarea,.bi-theme-dark .bi-list-item-select2.disabled:active .bi-high-light,.bi-theme-dark .bi-list-item-select2.disabled:active .bi-input,.bi-theme-dark .bi-list-item-select2.disabled:active .bi-textarea,.bi-theme-dark .bi-list-item-select2.disabled:hover .bi-high-light,.bi-theme-dark .bi-list-item-select2.disabled:hover .bi-input,.bi-theme-dark .bi-list-item-select2.disabled:hover .bi-textarea{color:#878d9f!important}.bi-list-item-select3.hover,.bi-list-item-select3:hover{background-color:#f7f8fa}.bi-list-item-select3.active,.bi-list-item-select3:active{color:#3685f2;background-color:#f7f8fa}.bi-list-item-select3.active .bi-input,.bi-list-item-select3.active .bi-textarea,.bi-list-item-select3:active .bi-input,.bi-list-item-select3:active .bi-textarea{color:#3685f2}.bi-list-item-select3.disabled.active,.bi-list-item-select3.disabled.hover,.bi-list-item-select3.disabled:active,.bi-list-item-select3.disabled:hover{background-color:#fff!important}.bi-theme-dark .bi-list-item-select3.hover,.bi-theme-dark .bi-list-item-select3:hover{background-color:#191B2B}.bi-theme-dark .bi-list-item-select3.active,.bi-theme-dark .bi-list-item-select3:active{color:#3685f2;background-color:#191B2B}.bi-theme-dark .bi-list-item-select3.active .bi-input,.bi-theme-dark .bi-list-item-select3.active .bi-textarea,.bi-theme-dark .bi-list-item-select3:active .bi-input,.bi-theme-dark .bi-list-item-select3:active .bi-textarea{color:#3685f2}.bi-theme-dark .bi-list-item-select3.disabled.active,.bi-theme-dark .bi-list-item-select3.disabled.hover,.bi-theme-dark .bi-list-item-select3.disabled:active,.bi-theme-dark .bi-list-item-select3.disabled:hover{background-color:#242640!important}.bi-theme-dark .bi-list-item-select.hover,.bi-theme-dark .bi-list-item-select:hover{color:#fff;background-color:rgba(255,255,255,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0dffffff, endColorstr=#0dffffff)}.bi-theme-dark .bi-list-item-select.hover .bi-input,.bi-theme-dark .bi-list-item-select.hover .bi-textarea,.bi-theme-dark .bi-list-item-select:hover .bi-input,.bi-theme-dark .bi-list-item-select:hover .bi-textarea{color:#fff}.bi-theme-dark .bi-list-item-select.active,.bi-theme-dark .bi-list-item-select:active{color:#fff;background-color:#3685f2}.bi-theme-dark .bi-list-item-select.active .bi-high-light,.bi-theme-dark .bi-list-item-select.active .bi-input,.bi-theme-dark .bi-list-item-select.active .bi-textarea,.bi-theme-dark .bi-list-item-select:active .bi-high-light,.bi-theme-dark .bi-list-item-select:active .bi-input,.bi-theme-dark .bi-list-item-select:active .bi-textarea{color:#fff}.bi-theme-dark .bi-list-item-select.disabled,.bi-theme-dark .bi-list-item-select.disabled:active,.bi-theme-dark .bi-list-item-select.disabled:hover{background-color:transparent!important;color:#878d9f!important}.bi-theme-dark .bi-list-item-select.disabled .bi-high-light,.bi-theme-dark .bi-list-item-select.disabled .bi-input,.bi-theme-dark .bi-list-item-select.disabled .bi-textarea,.bi-theme-dark .bi-list-item-select.disabled:active .bi-high-light,.bi-theme-dark .bi-list-item-select.disabled:active .bi-input,.bi-theme-dark .bi-list-item-select.disabled:active .bi-textarea,.bi-theme-dark .bi-list-item-select.disabled:hover .bi-high-light,.bi-theme-dark .bi-list-item-select.disabled:hover .bi-input,.bi-theme-dark .bi-list-item-select.disabled:hover .bi-textarea{color:#878d9f!important}.bi-list-item-none.hover,.bi-list-item-none:hover{color:inherit;background-color:transparent}.bi-list-item-none.hover .bi-input,.bi-list-item-none.hover .bi-textarea,.bi-list-item-none:hover .bi-input,.bi-list-item-none:hover .bi-textarea{color:inherit}.bi-list-item-none.active,.bi-list-item-none:active{color:inherit;background-color:transparent}.bi-list-item-none.active .bi-high-light,.bi-list-item-none.active .bi-input,.bi-list-item-none.active .bi-textarea,.bi-list-item-none:active .bi-high-light,.bi-list-item-none:active .bi-input,.bi-list-item-none:active .bi-textarea{color:inherit}.bi-list-item-none.disabled,.bi-list-item-none.disabled:active,.bi-list-item-none.disabled:hover{color:#9ea6b2!important;background-color:transparent!important}.bi-list-item-none.disabled .bi-high-light,.bi-list-item-none.disabled .bi-input,.bi-list-item-none.disabled .bi-textarea,.bi-list-item-none.disabled:active .bi-high-light,.bi-list-item-none.disabled:active .bi-input,.bi-list-item-none.disabled:active .bi-textarea,.bi-list-item-none.disabled:hover .bi-high-light,.bi-list-item-none.disabled:hover .bi-input,.bi-list-item-none.disabled:hover .bi-textarea{color:#9ea6b2!important}.bi-theme-dark .bi-list-item-none.hover,.bi-theme-dark .bi-list-item-none:hover{color:inherit;background-color:transparent}.bi-theme-dark .bi-list-item-none.hover .bi-input,.bi-theme-dark .bi-list-item-none.hover .bi-textarea,.bi-theme-dark .bi-list-item-none:hover .bi-input,.bi-theme-dark .bi-list-item-none:hover .bi-textarea{color:inherit}.bi-theme-dark .bi-list-item-none.active,.bi-theme-dark .bi-list-item-none:active{color:inherit;background-color:transparent}.bi-theme-dark .bi-list-item-none.active .bi-high-light,.bi-theme-dark .bi-list-item-none.active .bi-input,.bi-theme-dark .bi-list-item-none.active .bi-textarea,.bi-theme-dark .bi-list-item-none:active .bi-high-light,.bi-theme-dark .bi-list-item-none:active .bi-input,.bi-theme-dark .bi-list-item-none:active .bi-textarea{color:inherit}.bi-theme-dark .bi-list-item-none.disabled,.bi-theme-dark .bi-list-item-none.disabled:active,.bi-theme-dark .bi-list-item-none.disabled:hover{background-color:transparent!important;color:#878d9f!important}.bi-theme-dark .bi-list-item-none.disabled .bi-high-light,.bi-theme-dark .bi-list-item-none.disabled .bi-input,.bi-theme-dark .bi-list-item-none.disabled .bi-textarea,.bi-theme-dark .bi-list-item-none.disabled:active .bi-high-light,.bi-theme-dark .bi-list-item-none.disabled:active .bi-input,.bi-theme-dark .bi-list-item-none.disabled:active .bi-textarea,.bi-theme-dark .bi-list-item-none.disabled:hover .bi-high-light,.bi-theme-dark .bi-list-item-none.disabled:hover .bi-input,.bi-theme-dark .bi-list-item-none.disabled:hover .bi-textarea{color:#878d9f!important}.cursor-pointer{cursor:pointer}.bi-popup-view,.cursor-default{cursor:default}.cursor-move{cursor:move}.y-overflow-auto{overflow-y:auto;overflow-x:hidden}.x-overflow-auto{overflow-y:hidden;overflow-x:auto}.y-overflow-scroll{overflow-y:scroll;overflow-x:hidden}.x-overflow-scroll{overflow-y:hidden;overflow-x:scroll}.overflow-auto{overflow-x:auto;overflow-y:auto}.overflow-scroll{overflow-x:scroll;overflow-y:scroll}.bi-label,.bi-segment>.center-element,.bi-text,.bi-textarea-editor,.overflow-dot,.overflow-hidden{overflow-x:hidden;overflow-y:hidden}.td-overflow{white-space:normal;word-break:break-all}.overflow-dot{text-overflow:ellipsis;white-space:nowrap}.display-block{display:block}.display-inline{display:inline-block}.display-table{display:table}.vertical-super{vertical-align:super}.vertical-top{vertical-align:top}.horizon-center{text-align:center}.horizon-left{text-align:left}.border-sizing{-ms-box-sizing:border-box;box-sizing:border-box}.content-sizing{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;-ms-box-sizing:content-box;box-sizing:content-box}.bi-flex-center-adapt-layout{display:box;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;-o-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-flex-align:center;-ms-align-items:center;-o-align-items:center;align-items:center}.bi-flex-horizontal-layout{display:box;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;-o-flex-direction:row;flex-direction:row;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;-ms-align-items:flex-start;-ms-flex-align:start;-o-align-items:flex-start;align-items:flex-start;-webkit-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-ms-flex-wrap:nowrap;-o-flex-wrap:nowrap;flex-wrap:nowrap}.bi-flex-horizontal-layout.v-middle{-webkit-box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-ms-flex-align:center;-o-align-items:center;align-items:center}.bi-flex-horizontal-layout.v-bottom{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-moz-align-items:flex-end;-ms-align-items:flex-end;-ms-flex-align:end;-o-align-items:flex-end;align-items:flex-end}.bi-flex-horizontal-layout.v-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-ms-flex-align:stretch;-o-align-items:stretch;align-items:stretch}.bi-flex-horizontal-layout.h-stretch{-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;-o-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-ms-flex-pack:center;-o-justify-content:center;justify-content:center;-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-ms-flex-align:stretch;-o-align-items:stretch;align-items:stretch}.bi-flex-vertical-layout{display:box;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;-o-flex-direction:column;flex-direction:column;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;-ms-align-items:flex-start;-ms-flex-align:start;-o-align-items:flex-start;align-items:flex-start;-webkit-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-ms-flex-wrap:nowrap;-o-flex-wrap:nowrap;flex-wrap:nowrap}.bi-flex-vertical-layout.h-center{-webkit-box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-ms-flex-align:center;-o-align-items:center;align-items:center}.bi-flex-vertical-layout.h-right{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-moz-align-items:flex-end;-ms-align-items:flex-end;-ms-flex-align:end;-o-align-items:flex-end;align-items:flex-end}.bi-flex-vertical-layout.h-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-ms-flex-align:stretch;-o-align-items:stretch;align-items:stretch}.bi-flex-vertical-layout.v-stretch{-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;-o-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-ms-flex-pack:center;-o-justify-content:center;justify-content:center;-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-ms-flex-align:stretch;-o-align-items:stretch;align-items:stretch}.bi-flex-scrollable-center-adapt-layout .flex-scrollable-center-adapt-layout-wrapper{display:box;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;-o-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-ms-flex-pack:center;-o-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-ms-flex-align:center;-o-align-items:center;align-items:center;min-width:100%;min-height:100%;float:left}.bi-flex-scrollable-horizontal-layout .flex-scrollable-horizontal-layout-wrapper{display:box;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;-o-flex-direction:row;flex-direction:row;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-ms-flex-pack:start;-o-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:flex-start;-webkit-align-items:flex-start;-moz-align-items:flex-start;-ms-align-items:flex-start;-ms-flex-align:start;-o-align-items:flex-start;align-items:flex-start;-webkit-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-ms-flex-wrap:nowrap;-o-flex-wrap:nowrap;flex-wrap:nowrap;min-height:100%}.bi-flex-scrollable-horizontal-layout .flex-scrollable-horizontal-layout-wrapper.v-middle{-webkit-box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center}.bi-flex-scrollable-horizontal-layout .flex-scrollable-horizontal-layout-wrapper.v-bottom{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-moz-align-items:flex-end;-ms-align-items:flex-end;-o-align-items:flex-end;align-items:flex-end}.bi-flex-scrollable-horizontal-layout .flex-scrollable-horizontal-layout-wrapper.v-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-o-align-items:stretch;align-items:stretch}.bi-flex-scrollable-horizontal-layout .flex-scrollable-horizontal-layout-wrapper.h-stretch{-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;-o-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-ms-flex-pack:center;-o-justify-content:center;justify-content:center;-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-ms-flex-align:stretch;-o-align-items:stretch;align-items:stretch}.bi-flex-scrollable-vertical-layout .flex-scrollable-vertical-layout-wrapper{display:box;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;-o-flex-direction:column;flex-direction:column;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-ms-flex-pack:start;-o-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:flex-start;-webkit-align-items:flex-start;-moz-align-items:flex-start;-ms-align-items:flex-start;-ms-flex-align:start;-o-align-items:flex-start;align-items:flex-start;-webkit-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-ms-flex-wrap:nowrap;-o-flex-wrap:nowrap;flex-wrap:nowrap;min-width:100%}.bi-flex-scrollable-vertical-layout .flex-scrollable-vertical-layout-wrapper.h-center{-webkit-box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-ms-flex-align:center;-o-align-items:center;align-items:center}.bi-flex-scrollable-vertical-layout .flex-scrollable-vertical-layout-wrapper.h-right{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-moz-align-items:flex-end;-ms-align-items:flex-end;-ms-flex-align:end;-o-align-items:flex-end;align-items:flex-end}.bi-flex-scrollable-vertical-layout .flex-scrollable-vertical-layout-wrapper.h-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-ms-flex-align:stretch;-o-align-items:stretch;align-items:stretch}.bi-flex-scrollable-vertical-layout .flex-scrollable-vertical-layout-wrapper.v-stretch{-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;-o-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-ms-flex-pack:center;-o-justify-content:center;justify-content:center;-webkit-box-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;-ms-align-items:stretch;-ms-flex-align:stretch;-o-align-items:stretch;align-items:stretch}.bi-inline-center-adapt-layout:after{display:inline-block;width:0;min-height:100%;vertical-align:middle;content:' '}.bi-inline-center-adapt-layout>.inline-center-adapt-item{display:inline-block}.bi-inline-center-adapt-layout>.bi-combo.bi-combo-popup,.bi-inline-center-adapt-layout>.inline-center-adapt-item.x-icon{display:inline-block!important}.bi-inline-vertical-adapt-layout:after{display:inline-block;width:0;min-height:100%;vertical-align:middle;content:' '}.bi-inline-vertical-adapt-layout>.inline-vertical-adapt-item{display:inline-block}.bi-inline-vertical-adapt-layout>.bi-combo.bi-combo-popup,.bi-inline-vertical-adapt-layout>.inline-vertical-adapt-item.x-icon{display:inline-block!important}.bi-theme-dark{color:#d6e0dc}.bi-theme-dark .bi-input{color:#fff}.bi-icon-text-value-combo.combo-error .bi-text-trigger .select-text-label,.bi-search-text-value-combo.combo-error .bi-search-text-value-trigger .bi-text-button,.bi-text-value-combo.combo-error .bi-select-text-trigger .select-text-label{color:#ff4949}.bi-year-calendar{padding-top:5px;padding-bottom:5px}.bi-color-chooser-popup .disable-mask{opacity:.5;filter:alpha(opacity=50);background-color:#fff}.bi-color-chooser-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-color-picker-button .color-picker-button-mask{border:1px solid #232e40}.bi-theme-dark .bi-color-picker-button .color-picker-button-mask{border:1px solid #fff}.bi-color-picker-editor .color-picker-editor-display{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-color-picker-editor.disabled .auto-color-normal-background{background:url(images/2x/background/auto_color_normal_disable.png) center center no-repeat;background-size:contain}.bi-color-picker-editor.disabled .auto-color-normal-background.hack{background:url(images/1x/background/auto_color_normal_disable.png) center center no-repeat}.bi-color-picker-editor.disabled .trans-color-background{background:url(images/2x/background/trans_disable.png) center center no-repeat;background-size:contain}.bi-color-picker-editor.disabled .trans-color-background.hack{background:url(images/1x/background/trans_disable.png) center center no-repeat}.bi-farbtastic *{cursor:crosshair}.bi-farbtastic .marker{margin:-8px 0 0 -8px}.bi-bubble-combo .button-combo-triangle-wrapper{position:fixed!important;line-height:0;z-index:10000000;background-color:rgba(255,255,255,0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff, endColorstr=#00ffffff)}.bi-bubble-combo .bubble-combo-triangle-left{z-index:1;position:absolute;width:6px;height:16px;text-align:left}.bi-bubble-combo .bubble-combo-triangle-left:before{position:absolute;width:6px;height:6px;margin-left:-3px;margin-top:4px;content:"";transform:rotate(-45deg)}.bi-bubble-combo .bubble-combo-triangle-right{z-index:1;position:absolute;width:6px;height:16px;text-align:left}.bi-bubble-combo .bubble-combo-triangle-right:before{position:absolute;width:6px;height:6px;margin-left:2px;margin-top:3px;content:"";transform:rotate(135deg)}.bi-bubble-combo .bubble-combo-triangle-top{z-index:1;position:absolute;width:16px;height:6px;text-align:left}.bi-bubble-combo .bubble-combo-triangle-top:before{position:absolute;width:6px;height:6px;margin-left:4px;margin-top:-3px;content:"";transform:rotate(45deg)}.bi-bubble-combo .bubble-combo-triangle-bottom{z-index:1;position:absolute;width:16px;height:6px;text-align:left}.bi-bubble-combo .bubble-combo-triangle-bottom:before{position:absolute;width:6px;height:6px;margin-left:4px;margin-top:2px;content:"";transform:rotate(-135deg)}.bi-bubble-combo .bubble-combo-triangle-bottom:before,.bi-bubble-combo .bubble-combo-triangle-left:before,.bi-bubble-combo .bubble-combo-triangle-right:before,.bi-bubble-combo .bubble-combo-triangle-top:before{background-color:#fff;border-bottom:1px solid #f2f4f7;border-right:1px solid #f2f4f7}.bi-theme-dark .bi-bubble-combo .bubble-combo-triangle-bottom:before,.bi-theme-dark .bi-bubble-combo .bubble-combo-triangle-left:before,.bi-theme-dark .bi-bubble-combo .bubble-combo-triangle-right:before,.bi-theme-dark .bi-bubble-combo .bubble-combo-triangle-top:before{background-color:#242640;border-bottom:1px solid #2F3149;border-right:1px solid #2F3149}.bi-combo>.bi-trigger .bi-trigger-icon-button .x-icon{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-combo.bi-combo-popup{display:block!important;visibility:visible!important}#body .bi-button.button-common.disabled:after,#body .bi-button.button-error.disabled:after,#body .bi-button.button-ignore.disabled:after,#body .bi-button.button-success.disabled:after,#body .bi-button.button-warning.disabled:after,#body .bi-button.clear:after,body .bi-button.button-common.disabled:after,body .bi-button.button-error.disabled:after,body .bi-button.button-ignore.disabled:after,body .bi-button.button-success.disabled:after,body .bi-button.button-warning.disabled:after,body .bi-button.clear:after{display:none}.bi-combo.bi-combo-popup>.bi-trigger .bi-trigger-icon-button .x-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-combo.bi-combo-hover>.bi-border,.bi-combo.bi-combo-popup>.bi-border,.bi-combo:hover>.bi-border{border-color:#3685f2}.bi-combo.disabled.bi-combo-hover>.bi-border,.bi-combo.disabled:hover>.bi-border{border-color:#e8eaed}.bi-theme-dark .bi-combo.disabled.bi-combo-hover>.bi-border,.bi-theme-dark .bi-combo.disabled:hover>.bi-border{border-color:#3a3c53}.bi-search-text-value-combo .trigger-icon-button{font-size:16px}.bi-search-text-value-combo .search-text-value-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-search-text-value-combo .bi-combo.bi-combo-popup+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-search-text-value-combo .bi-combo+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-all-count-pager .row-count,.bi-segment-button{color:#3685f2}.bi-text-value-check-combo.bi-combo-popup>.bi-border,.bi-text-value-check-combo:hover>.bi-border,.bi-text-value-down-list-combo.bi-combo-popup>.bi-border,.bi-text-value-down-list-combo:hover>.bi-border{border-color:#3685f2}.bi-bubble-bar-popup-view .bar-popup-container{max-height:456px}.bi-search-editor{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-search-editor .circle-close-font,.bi-search-editor .search-font{font-size:18px}.bi-small-search-editor .bi-editor,.bi-small-search-editor .bi-editor .bi-input,.bi-small-search-editor .bi-editor .bi-label{font-size:12px}.bi-small-search-editor .close-font,.bi-small-search-editor .search-font{font-size:16px}.bi-message-title{font-size:14px;cursor:pointer}.bi-message-text{font-size:16px;-webkit-user-select:text;-khtml-user-select:text;-moz-user-select:text;-ms-user-select:text;-o-user-select:text;user-select:text}.bi-message-close,.bi-message-content{font-size:16px}.bi-message-animate{-webkit-transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;-moz-transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;-o-transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s}.bi-message-enter{opacity:1}.bi-message-leave{opacity:0;transform:translateY(-100%)}.bi-multi-list-view .bi-button-mask{opacity:.1;filter:alpha(opacity=10)}.bi-panel{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-panel .panel-title .panel-title-text{cursor:text;font-size:14px}.bi-all-count-pager .all-pager-next,.bi-all-count-pager .all-pager-prev,.bi-direction-pager .direction-pager-next,.bi-direction-pager .direction-pager-prev{font-size:16px}.bi-sortable-holder{border:1px dashed #e8eaed}.bi-half-button,.bi-pager .page-item{-webkit-border-radius:2px;-moz-border-radius:2px}.bi-pager .page-item{border-radius:2px}.bi-pane{min-height:25px}.bi-pane.loading-status{min-height:55px}.bi-pane .loading-container{background-color:rgba(247,248,250,0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00f7f8fa, endColorstr=#00f7f8fa)}.bi-loading-widget{font-size:0}.bi-loading-widget .animate-rect{background-color:rgba(54,133,242,.9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#e63685f2, endColorstr=#e63685f2);-webkit-border-radius:1.5px;-moz-border-radius:1.5px;border-radius:1.5px;-webkit-animation:loading-widget .8s infinite linear;-moz-animation:loading-widget .8s infinite linear;-ms-animation:loading-widget .8s infinite linear;-o-animation:loading-widget .8s infinite linear;animation:loading-widget .8s infinite linear}.bi-loading-widget .rect2{-webkit-animation-delay:-.2s;-moz-animation-delay:-.2s;-ms-animation-delay:-.2s;-o-animation-delay:-.2s;animation-delay:-.2s}.bi-loading-widget .rect3{-webkit-animation-delay:-.4s;-moz-animation-delay:-.4s;-ms-animation-delay:-.4s;-o-animation-delay:-.4s;animation-delay:-.4s}@-webkit-keyframes loading-widget{0%,100%{-webkit-transform:scaleY(.3);-moz-transform:scaleY(.3);-o-transform:scaleY(.3);-ms-transform:scaleY(.3);transform:scaleY(.3)}50%{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-o-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}@-moz-keyframes loading-widget{0%,100%{-webkit-transform:scaleY(.3);-moz-transform:scaleY(.3);-o-transform:scaleY(.3);-ms-transform:scaleY(.3);transform:scaleY(.3)}50%{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-o-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}@-ms-keyframes loading-widget{0%,100%{-webkit-transform:scaleY(.3);-moz-transform:scaleY(.3);-o-transform:scaleY(.3);-ms-transform:scaleY(.3);transform:scaleY(.3)}50%{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-o-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}@-o-keyframes loading-widget{0%,100%{-webkit-transform:scaleY(.3);-moz-transform:scaleY(.3);-o-transform:scaleY(.3);-ms-transform:scaleY(.3);transform:scaleY(.3)}50%{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-o-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}@keyframes loading-widget{0%,100%{-webkit-transform:scaleY(.3);-moz-transform:scaleY(.3);-o-transform:scaleY(.3);-ms-transform:scaleY(.3);transform:scaleY(.3)}50%{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-o-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}.bi-loading-widget.hack{background:url(images/1x/icon/wave_loading.gif) center center no-repeat}.bi-loading-widget.hack .animate-rect{background-color:rgba(54,133,242,0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#003685f2, endColorstr=#003685f2)}.bi-segment>.center-element{overflow:hidden;background:#fff;border-right:1px solid #3685f2;border-top:1px solid #3685f2;border-bottom:1px solid #3685f2}.bi-segment>.first-element{border-left:1px solid #3685f2;-webkit-border-radius:2px 0 0 2px;-moz-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.bi-segment>.last-element{-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.bi-segment.disabled>.center-element,.bi-segment.disabled>.first-element{border-color:#d0d4da}.bi-theme-dark .bi-segment>.center-element{overflow:hidden;overflow-x:hidden;overflow-y:hidden;background:#242640;border-right:1px solid #3a3c53;border-top:1px solid #3a3c53;border-bottom:1px solid #3a3c53}.bi-theme-dark .bi-segment>.first-element{border-left:1px solid #242640}.bi-half-button{border-radius:2px}#body .bi-button,body .bi-button{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #3685f2;background-color:#3685f2;-ms-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:middle;cursor:pointer}#body .bi-button.clear,#body .bi-button.ghost,body .bi-button.clear,body .bi-button.ghost{font-size:inherit;background-color:transparent}#body .bi-button.block,body .bi-button.block{font-size:inherit;border-width:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}#body .bi-button.clear,body .bi-button.clear{border-width:0}#body .bi-button.clear:hover,body .bi-button.clear:hover{opacity:.9;filter:alpha(opacity=90)}#body .bi-button.clear:active,body .bi-button.clear:active{opacity:.8;filter:alpha(opacity=80)}#body .bi-button.button-common,#body .bi-button.button-common .b-font:before,body .bi-button.button-common,body .bi-button.button-common .b-font:before{color:#fff}#body .bi-button.button-common.clear,#body .bi-button.button-common.clear .b-font:before,#body .bi-button.button-common.ghost,#body .bi-button.button-common.ghost .b-font:before,body .bi-button.button-common.clear,body .bi-button.button-common.clear .b-font:before,body .bi-button.button-common.ghost,body .bi-button.button-common.ghost .b-font:before{color:#3685f2}#body .bi-button.button-common.ghost:hover,body .bi-button.button-common.ghost:hover{color:#fff;background-color:#3685f2}#body .bi-button.button-common.ghost:active,body .bi-button.button-common.ghost:active{background-color:#3685f2}#body .bi-button.button-ignore,body .bi-button.button-ignore{background-color:transparent;border-color:#3685f2}#body .bi-button.button-ignore,#body .bi-button.button-ignore .b-font:before,body .bi-button.button-ignore,body .bi-button.button-ignore .b-font:before{color:#3685f2}#body .bi-button.button-ignore.clear,body .bi-button.button-ignore.clear{background-color:transparent;border-width:0}#body .bi-button.button-success,body .bi-button.button-success{background-color:#13cd66;border-color:#13cd66}#body .bi-button.button-success,#body .bi-button.button-success .b-font:before,body .bi-button.button-success,body .bi-button.button-success .b-font:before{color:#fff}#body .bi-button.button-success.clear,body .bi-button.button-success.clear{background-color:transparent;border-width:0}#body .bi-button.button-success.clear,#body .bi-button.button-success.clear .b-font:before,body .bi-button.button-success.clear,body .bi-button.button-success.clear .b-font:before{color:#13cd66}#body .bi-button.button-warning,body .bi-button.button-warning{background-color:#faaa39;border-color:#fbb03b}#body .bi-button.button-warning,#body .bi-button.button-warning .b-font:before,body .bi-button.button-warning,body .bi-button.button-warning .b-font:before{color:#fff}#body .bi-button.button-warning.clear,body .bi-button.button-warning.clear{background-color:transparent;border-width:0}#body .bi-button.button-warning.clear,#body .bi-button.button-warning.clear .b-font:before,body .bi-button.button-warning.clear,body .bi-button.button-warning.clear .b-font:before{color:#faaa39}#body .bi-button.button-error,body .bi-button.button-error{background-color:#ff4949;border-color:#FF4949}#body .bi-button.button-error,#body .bi-button.button-error .b-font:before,body .bi-button.button-error,body .bi-button.button-error .b-font:before{color:#fff}#body .bi-button.button-error.clear,body .bi-button.button-error.clear{background-color:transparent;border-width:0}#body .bi-button.button-error.clear,#body .bi-button.button-error.clear .b-font:before,body .bi-button.button-error.clear,body .bi-button.button-error.clear .b-font:before{color:#ff4949}#body .bi-button.button-common.disabled,#body .bi-button.button-common.disabled .b-font:before,#body .bi-button.button-common.disabled.base-disabled,#body .bi-button.button-common.disabled.base-disabled .b-font:before,#body .bi-button.button-common.disabled.clear,#body .bi-button.button-common.disabled.clear .b-font:before,#body .bi-button.button-error.disabled,#body .bi-button.button-error.disabled .b-font:before,#body .bi-button.button-error.disabled.base-disabled,#body .bi-button.button-error.disabled.base-disabled .b-font:before,#body .bi-button.button-error.disabled.clear,#body .bi-button.button-error.disabled.clear .b-font:before,#body .bi-button.button-ignore.disabled,#body .bi-button.button-ignore.disabled .b-font:before,#body .bi-button.button-ignore.disabled.clear,#body .bi-button.button-ignore.disabled.clear .b-font:before,#body .bi-button.button-success.disabled,#body .bi-button.button-success.disabled .b-font:before,#body .bi-button.button-success.disabled.base-disabled,#body .bi-button.button-success.disabled.base-disabled .b-font:before,#body .bi-button.button-success.disabled.clear,#body .bi-button.button-success.disabled.clear .b-font:before,#body .bi-button.button-warning.disabled,#body .bi-button.button-warning.disabled .b-font:before,#body .bi-button.button-warning.disabled.base-disabled,#body .bi-button.button-warning.disabled.base-disabled .b-font:before,#body .bi-button.button-warning.disabled.clear,#body .bi-button.button-warning.disabled.clear .b-font:before,body .bi-button.button-common.disabled,body .bi-button.button-common.disabled .b-font:before,body .bi-button.button-common.disabled.base-disabled,body .bi-button.button-common.disabled.base-disabled .b-font:before,body .bi-button.button-common.disabled.clear,body .bi-button.button-common.disabled.clear .b-font:before,body .bi-button.button-error.disabled,body .bi-button.button-error.disabled .b-font:before,body .bi-button.button-error.disabled.base-disabled,body .bi-button.button-error.disabled.base-disabled .b-font:before,body .bi-button.button-error.disabled.clear,body .bi-button.button-error.disabled.clear .b-font:before,body .bi-button.button-ignore.disabled,body .bi-button.button-ignore.disabled .b-font:before,body .bi-button.button-ignore.disabled.clear,body .bi-button.button-ignore.disabled.clear .b-font:before,body .bi-button.button-success.disabled,body .bi-button.button-success.disabled .b-font:before,body .bi-button.button-success.disabled.base-disabled,body .bi-button.button-success.disabled.base-disabled .b-font:before,body .bi-button.button-success.disabled.clear,body .bi-button.button-success.disabled.clear .b-font:before,body .bi-button.button-warning.disabled,body .bi-button.button-warning.disabled .b-font:before,body .bi-button.button-warning.disabled.base-disabled,body .bi-button.button-warning.disabled.base-disabled .b-font:before,body .bi-button.button-warning.disabled.clear,body .bi-button.button-warning.disabled.clear .b-font:before{color:#9ea6b2!important}#body .bi-button.button-common.disabled,#body .bi-button.button-common.disabled.base-disabled,#body .bi-button.button-error.disabled,#body .bi-button.button-error.disabled.base-disabled,#body .bi-button.button-success.disabled,#body .bi-button.button-success.disabled.base-disabled,#body .bi-button.button-warning.disabled,#body .bi-button.button-warning.disabled.base-disabled,body .bi-button.button-common.disabled,body .bi-button.button-common.disabled.base-disabled,body .bi-button.button-error.disabled,body .bi-button.button-error.disabled.base-disabled,body .bi-button.button-success.disabled,body .bi-button.button-success.disabled.base-disabled,body .bi-button.button-warning.disabled,body .bi-button.button-warning.disabled.base-disabled{background:#F2F4F7!important;border-color:#d0d4da!important}#body .bi-button.button-ignore.disabled,body .bi-button.button-ignore.disabled{background:#fff!important;border-color:#e8eaed!important}#body .bi-button.button-common.disabled.clear,#body .bi-button.button-error.disabled.clear,#body .bi-button.button-ignore.disabled.clear,#body .bi-button.button-success.disabled.clear,#body .bi-button.button-warning.disabled.clear,body .bi-button.button-common.disabled.clear,body .bi-button.button-error.disabled.clear,body .bi-button.button-ignore.disabled.clear,body .bi-button.button-success.disabled.clear,body .bi-button.button-warning.disabled.clear{background:0 0!important;border-width:0!important}#body .bi-button.button-common.disabled.clear:active,#body .bi-button.button-common.disabled.clear:hover,#body .bi-button.button-error.disabled.clear:active,#body .bi-button.button-error.disabled.clear:hover,#body .bi-button.button-ignore.disabled.clear:active,#body .bi-button.button-ignore.disabled.clear:hover,#body .bi-button.button-success.disabled.clear:active,#body .bi-button.button-success.disabled.clear:hover,#body .bi-button.button-warning.disabled.clear:active,#body .bi-button.button-warning.disabled.clear:hover,body .bi-button.button-common.disabled.clear:active,body .bi-button.button-common.disabled.clear:hover,body .bi-button.button-error.disabled.clear:active,body .bi-button.button-error.disabled.clear:hover,body .bi-button.button-ignore.disabled.clear:active,body .bi-button.button-ignore.disabled.clear:hover,body .bi-button.button-success.disabled.clear:active,body .bi-button.button-success.disabled.clear:hover,body .bi-button.button-warning.disabled.clear:active,body .bi-button.button-warning.disabled.clear:hover{opacity:1;filter:alpha(opacity=100)}#body .bi-button.button-common.disabled.ghost,#body .bi-button.button-error.disabled.ghost,#body .bi-button.button-ignore.disabled.ghost,#body .bi-button.button-success.disabled.ghost,#body .bi-button.button-warning.disabled.ghost,body .bi-button.button-common.disabled.ghost,body .bi-button.button-error.disabled.ghost,body .bi-button.button-ignore.disabled.ghost,body .bi-button.button-success.disabled.ghost,body .bi-button.button-warning.disabled.ghost{background:0 0!important;border-color:#3685f2!important;opacity:.5;filter:alpha(opacity=50)}#body .bi-button.button-common.disabled.ghost,#body .bi-button.button-common.disabled.ghost .b-font:before,#body .bi-button.button-error.disabled.ghost,#body .bi-button.button-error.disabled.ghost .b-font:before,#body .bi-button.button-ignore.disabled.ghost,#body .bi-button.button-ignore.disabled.ghost .b-font:before,#body .bi-button.button-success.disabled.ghost,#body .bi-button.button-success.disabled.ghost .b-font:before,#body .bi-button.button-warning.disabled.ghost,#body .bi-button.button-warning.disabled.ghost .b-font:before,body .bi-button.button-common.disabled.ghost,body .bi-button.button-common.disabled.ghost .b-font:before,body .bi-button.button-error.disabled.ghost,body .bi-button.button-error.disabled.ghost .b-font:before,body .bi-button.button-ignore.disabled.ghost,body .bi-button.button-ignore.disabled.ghost .b-font:before,body .bi-button.button-success.disabled.ghost,body .bi-button.button-success.disabled.ghost .b-font:before,body .bi-button.button-warning.disabled.ghost,body .bi-button.button-warning.disabled.ghost .b-font:before{color:#3685f2!important}.bi-basic-button.button-common:after,.bi-basic-button.button-error:after,.bi-basic-button.button-success:after,.bi-basic-button.button-warning:after{content:"";background-color:#232E40;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:block;width:100%;height:100%;position:absolute;transform:scale(1,1);opacity:0;filter:alpha(opacity=0);-webkit-transition:transform .5s ease,opacity 1s ease;-moz-transition:transform .5s ease,opacity 1s ease;-o-transition:transform .5s ease,opacity 1s ease;transition:transform .5s ease,opacity 1s ease;left:0;top:0;pointer-events:none}.bi-basic-button.button-common.hack:after,.bi-basic-button.button-error.hack:after,.bi-basic-button.button-success.hack:after,.bi-basic-button.button-warning.hack:after{content:none}.bi-basic-button.button-common:active:after,.bi-basic-button.button-error:active:after,.bi-basic-button.button-success:active:after,.bi-basic-button.button-warning:active:after{transform:scale(0,1);opacity:.1;filter:alpha(opacity=10);-webkit-transition:transform 0s;-moz-transition:transform 0s;-o-transition:transform 0s;transition:transform 0s}.bi-basic-button.button-common:hover .bi-button-mask,.bi-basic-button.button-error:hover .bi-button-mask,.bi-basic-button.button-success:hover .bi-button-mask,.bi-basic-button.button-warning:hover .bi-button-mask{opacity:.1;filter:alpha(opacity=10);background-color:#fff;-webkit-transition:opacity .3s ease;-moz-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.bi-basic-button.button-ignore:after{content:"";background-color:#3685f2;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:block;width:100%;height:100%;position:absolute;transform:scale(1,1);opacity:0;filter:alpha(opacity=0);-webkit-transition:transform .5s ease,opacity 1s ease;-moz-transition:transform .5s ease,opacity 1s ease;-o-transition:transform .5s ease,opacity 1s ease;transition:transform .5s ease,opacity 1s ease;left:0;top:0;pointer-events:none}.bi-basic-button.button-ignore.hack:after{content:none}.bi-basic-button.button-ignore:active:after{transform:scale(0,1);opacity:.1;filter:alpha(opacity=10);-webkit-transition:transform 0s;-moz-transition:transform 0s;-o-transition:transform 0s;transition:transform 0s}.bi-basic-button.button-ignore:hover{background-color:rgba(54,133,242,.05);-webkit-transition:opacity .3s ease;-moz-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.bi-basic-button .popup-content{font-size:14px}.bi-theme-dark #body .bi-button.button-common.ghost,.bi-theme-dark #body .bi-button.button-common.ghost .b-font:before,.bi-theme-dark body .bi-button.button-common.ghost,.bi-theme-dark body .bi-button.button-common.ghost .b-font:before{color:#fff;border-color:#fff}.bi-theme-dark #body .bi-button.button-common.ghost:hover,.bi-theme-dark body .bi-button.button-common.ghost:hover{color:#3d4d66;background-color:#fff}.bi-theme-dark #body .bi-button.button-common.ghost:active,.bi-theme-dark body .bi-button.button-common.ghost:active{background-color:rgba(255,255,255,.9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#e6ffffff, endColorstr=#e6ffffff)}.bi-theme-dark #body .bi-button.button-ignore:hover,.bi-theme-dark body .bi-button.button-ignore:hover{background-color:rgba(54,133,242,.05)}.bi-theme-dark #body .bi-button.button-ignore:active,.bi-theme-dark body .bi-button.button-ignore:active{background-color:rgba(54,133,242,.1)}.bi-theme-dark #body .bi-button.button-common.disabled.ghost,.bi-theme-dark body .bi-button.button-common.disabled.ghost{background:0 0!important;border-color:#fff!important;opacity:.5;filter:alpha(opacity=50)}.bi-theme-dark #body .bi-button.button-common.disabled.ghost,.bi-theme-dark #body .bi-button.button-common.disabled.ghost .b-font:before,.bi-theme-dark body .bi-button.button-common.disabled.ghost,.bi-theme-dark body .bi-button.button-common.disabled.ghost .b-font:before{color:#fff!important}.bi-single-select-icon-text-item.active .b-font:before,.bi-single-select-icon-text-item:active .b-font:before{color:#3685f2}.bi-switch{-webkit-border-radius:40px 40px 40px 40px;-moz-border-radius:40px;border-radius:40px;background-color:#d0d4da}.bi-switch.active,.bi-switch:active{background-color:#3685f2}.bi-switch .circle-button{-webkit-border-radius:9px 9px 9px 9px;-moz-border-radius:9px;border-radius:9px}.bi-switch.disabled,.bi-switch.disabled:active{background-color:#F2F4F7}.bi-theme-dark .bi-switch{background-color:#606479}.bi-theme-dark .bi-switch.active,.bi-theme-dark .bi-switch:active{background-color:#3685f2}.bi-theme-dark .bi-switch.disabled,.bi-theme-dark .bi-switch.disabled:active{background-color:#2F3149}.bi-multifile-editor .multifile-editor{text-align:right;cursor:pointer;font-size:100px;z-index:2}.bi-display-tree .ztree li a,.bi-display-tree .ztree li span,.bi-list-display-tree .ztree li a,.bi-list-display-tree .ztree li span{cursor:default!important}.bi-textarea-editor{overflow:hidden}.bi-textarea-editor .textarea-editor-content{white-space:pre-wrap;font-size:12px;line-height:21px;border:none}.x-icon.b-font{margin:auto;width:100%}.bi-checkbox .checkbox-content{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #9EA6B2}.bi-checkbox .checkbox-content:after{position:absolute;display:table;top:50%;left:20%;border:2px solid transparent;border-top:0;border-left:0;width:4px;height:8px;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(1) translate(-50%,-50%);-o-transform:rotate(45deg) scale(1) translate(-50%,-50%);-ms-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);content:''}.bi-checkbox .checkbox-content.hover,.bi-checkbox .checkbox-content:hover,.bi-checkbox.active .checkbox-content,.bi-checkbox:active .checkbox-content{border-color:#3685f2}.bi-checkbox.active .checkbox-content:after,.bi-checkbox:active .checkbox-content:after{border-color:#fff;opacity:1}.bi-checkbox.disabled .checkbox-content{background-color:#F2F4F7;border-color:#d0d4da}.bi-checkbox.disabled .checkbox-content:after{opacity:0}.bi-checkbox.disabled.active .checkbox-content{background-color:#d0d4da}.bi-checkbox.disabled.active .checkbox-content:after{opacity:1}.bi-theme-dark .bi-checkbox .checkbox-content{border-color:#878D9F}.bi-theme-dark .bi-checkbox .checkbox-content.hover,.bi-theme-dark .bi-checkbox .checkbox-content:hover,.bi-theme-dark .bi-checkbox.active .checkbox-content,.bi-theme-dark .bi-checkbox:active .checkbox-content{border-color:#3685f2}.bi-theme-dark .bi-checkbox.disabled .checkbox-content{background-color:#2F3149}.bi-theme-dark .bi-checkbox.disabled.active .checkbox-content{background-color:#606479;border-color:#606479}.bi-file{opacity:0;filter:alpha(opacity=0);z-index:2}.bi-input,.bi-textarea{border:none;outline:0;background-color:transparent;padding:0;margin:0;width:100%;height:100%}.bi-input.bi-input-focus,.bi-textarea.bi-input-focus{border:none}.bi-input.bi-input-error,.bi-textarea.bi-input-error{border:none;color:#ff4949!important}.bi-radio .radio-content{-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;border:1px solid #9EA6B2}.bi-radio .radio-content:after{content:""}.bi-radio .radio-content.hover,.bi-radio .radio-content:hover,.bi-radio.active .radio-content,.bi-radio:active .radio-content{border-color:#3685f2}.bi-radio.active .radio-content:after,.bi-radio:active .radio-content:after{width:6px;height:6px;display:table;position:absolute;top:50%;left:50%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fff;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.bi-bubble .bubble-text,.bi-toast{-webkit-border-radius:2px;-moz-border-radius:2px}.bi-radio.disabled .radio-content{background-color:#F2F4F7;border-color:#d0d4da}.bi-radio.disabled .radio-content:after{background-color:transparent}.bi-radio.disabled.active .radio-content{background-color:#d0d4da}.bi-radio.disabled.active .radio-content:after{background-color:#fff}.bi-theme-dark .bi-radio .radio-content{border-color:#878D9F}.bi-theme-dark .bi-radio .radio-content.hover,.bi-theme-dark .bi-radio .radio-content:hover,.bi-theme-dark .bi-radio.active .radio-content,.bi-theme-dark .bi-radio:active .radio-content{border-color:#3685f2}.bi-theme-dark .bi-radio.disabled .radio-content{background-color:#2F3149}.bi-theme-dark .bi-radio.disabled .radio-content.hover,.bi-theme-dark .bi-radio.disabled .radio-content:hover{border-color:#878D9F}.bi-theme-dark .bi-radio.disabled.active .radio-content{background-color:#606479;border-color:#606479}.bi-label{overflow:hidden;word-break:break-all}.bi-text{overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;word-break:break-word}.bi-bubble .bubble-text{border-radius:2px}.bi-bubble .bubble-error{background:#ffecec;color:#ff4949}.bi-theme-dark .bi-bubble .bubble-error{background:#3A2940}.bi-bubble .bubble-common{background:#eaf2fd;color:#3685f2}.bi-bubble .bubble-success{background:#e1f4e7;color:#13cd66}.bi-bubble .bubble-warning{background:#feeed7;color:#faaa39}.bi-tip{position:fixed!important}.bi-toast{color:#fff;max-width:400px;min-width:150px;border-radius:2px}.bi-toast.toast-success{background:#13cd66}.bi-toast.toast-warning{background:#faaa39}.bi-toast.toast-error{background:#ff4949}.bi-toast.toast-normal{background:#3685f2}.bi-toast .toast-icon{font-size:16px}.bi-tooltip{max-width:250px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;font-size:12px;color:#fff}.bi-tooltip.tooltip-success{background:#647185;border:1px solid #647185}.bi-tooltip.tooltip-warning{background:#ff4949;border:1px solid #FF4949}.bi-display-tree .ztree li a.curSelectedNode,.bi-list-display-tree .ztree li a.curSelectedNode{padding-top:1px;border:none;background-color:inherit;opacity:1;filter:alpha(opacity=100)}.bi-branch-tree .bi-branch-tree-view{min-width:300px}.bi-display-tree .ztree *{color:#999}.ztree li a,.ztree li span.button{cursor:pointer;display:inline-block}.ztree *{padding:0;margin:0}.ztree{margin:0;padding:5px}.ztree li{padding:0;margin:0;list-style:none;line-height:14px;text-align:left;white-space:nowrap}.ztree li ul{margin:0;padding:0 0 0 18px}.ztree li a{padding:1px 3px 0 0;margin:0;height:24px;background-color:transparent;vertical-align:top}.ztree li a:active,.ztree li a:hover{background-color:rgba(54,133,242,.06);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0f3685f2, endColorstr=#0f3685f2)}.ztree li a:active{color:#3685f2}.ztree li a.tmpTargetNode_inner,ul.tmpTargetzTree,ul.ztree.zTreeDragUL{opacity:.8;filter:alpha(opacity=80)}.ztree li a.curSelectedNode_Edit{padding-top:0;background-color:#FFE6B0;color:#000;height:16px;border:1px solid #FFB951;opacity:.8}.ztree li a.tmpTargetNode_inner{padding-top:0;background-color:#316AC5;color:#fff;height:16px;border:1px solid #316AC5}.ztree li a input.rename{height:14px;width:80px;padding:0;margin:0;font-size:12px;border:1px solid #7EC4CC}.bi-dynamic-date-combo .date-font,.bi-multi-select-combo .multi-select-trigger-icon-button,.bi-multi-select-insert-combo .multi-select-trigger-icon-button,.bi-multi-tree-combo .multi-select-trigger-icon-button,.bi-trigger .bi-trigger-icon-button{font-size:16px}.ztree li span{line-height:24px;margin-right:2px}.ztree li span.button{line-height:0;margin:0;width:16px;height:16px;vertical-align:middle;border:0;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll}.ztree li span.button.chk{width:16px;height:16px;margin:0 3px 0 0;cursor:auto}.ztree li span.button.chk.checkbox_false_disable{background-position:0 -56px}.ztree li span.button.chk.checkbox_true_disable{background-position:-14px -56px}.ztree li span.button.chk.radio_false_full{background-position:-28px 0}.ztree li span.button.chk.radio_false_full_focus{background-position:-28px -14px}.ztree li span.button.chk.radio_false_part{background-position:-28px -28px}.ztree li span.button.chk.radio_false_part_focus{background-position:-28px -42px}.ztree li span.button.chk.radio_false_disable{background-position:-28px -56px}.ztree li span.button.chk.radio_true_full{background-position:-42px 0}.ztree li span.button.chk.radio_true_full_focus{background-position:-42px -14px}.ztree li span.button.chk.radio_true_part{background-position:-42px -28px}.ztree li span.button.chk.radio_true_part_focus{background-position:-42px -42px}.ztree li span.button.chk.checkbox_true_full+a,.ztree li span.button.chk.checkbox_true_full_focus+a,.ztree li span.button.chk.checkbox_true_part+a,.ztree li span.button.chk.checkbox_true_part_focus+a{color:#3685f2}.ztree li span.button.chk.radio_true_disable{background-position:-42px -56px}.ztree li span.button.switch{width:25px;height:25px}.ztree li span.button.noline_open{background-position:-92px -72px}.ztree li span.button.noline_close{background-position:-74px -72px}.ztree li span.button.noline_docu,.ztree li span.button.root_docu{background:0 0}.ztree li span.button.ico_open{margin-right:2px;background-position:-110px -16px;vertical-align:top}.ztree li span.button.ico_close{margin-right:2px;background-position:-110px 0;vertical-align:top}.ztree li span.button.ico_docu{margin-right:2px;background-position:-110px -32px;vertical-align:top}.ztree li span.button.edit{margin-right:2px;background-position:-110px -48px;vertical-align:top}.ztree li span.button.remove{margin-right:2px;background-position:-110px -64px;vertical-align:top}.ztree li span.button.ico_loading{width:0;margin-right:2px;vertical-align:top}ul.tmpTargetzTree{background-color:#FFE6B0}span.tmpzTreeMove_arrow{width:16px;height:16px;display:inline-block;padding:0;margin:2px 0 0 1px;border:0;position:absolute;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;background-position:-110px -80px}.zTreeMask,ul.ztree.zTreeDragUL{background-color:#cfcfcf;position:absolute}ul.ztree.zTreeDragUL{margin:0;padding:0;width:auto;height:auto;overflow:hidden;border:1px dotted #00B83F}.zTreeMask{z-index:10000;opacity:0;filter:alpha(opacity=0)}.bi-select-text-trigger,.bi-small-select-text-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-popup-view{position:fixed!important;overflow-y:visible!important;overflow-x:visible!important;overflow:visible!important}.bi-popup-view .list-view-outer{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-popup-view .padding-outer{padding-top:5px;padding-bottom:5px}.bi-popup-view .list-view-shadow{-webkit-box-shadow:0 1px 5px 0 rgba(35,46,64,.2);-moz-box-shadow:0 1px 5px 0 rgba(35,46,64,.2);box-shadow:0 1px 5px 0 rgba(35,46,64,.2)}.bi-popup-view .list-view-toolbar{line-height:24px}.bi-popup-view .list-view-toolbar>.center-element{border-left:1px solid #e8eaed}.bi-popup-view .list-view-toolbar>.first-element{border-left:none}.bi-theme-dark .bi-popup-view .list-view-toolbar>.center-element{border-left:1px solid #3a3c53}.bi-theme-dark .bi-popup-view .list-view-toolbar>.first-element{border-left:none}.bi-theme-dark .list-view-shadow{-webkit-box-shadow:0 1px 5px 0 rgba(25,27,43,.8);-moz-box-shadow:0 1px 5px 0 rgba(25,27,43,.8);box-shadow:0 1px 5px 0 rgba(25,27,43,.8)}.bi-date-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-down-list-popup .bi-down-list-item .list-item-text,.bi-down-list-popup .list-group-item-text{max-width:203px}.bi-interactive-arrangement .interactive-arrangement-dragtag-line{z-index:1000000000;background-color:#faaa39}.bi-interactive-arrangement .interactive-arrangement-dragtag-icon{z-index:1000000000}.bi-interval-slider,.bi-interval-slider-label{min-height:50px}.bi-month-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-multilayer-select-level-tree .tree-view,.bi-multilayer-single-level-tree .tree-view{min-width:100%}.bi-multi-select-check-pane .multi-select-check-selected{text-decoration:underline}.bi-multi-select-combo .bi-combo.bi-combo-popup+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-multi-select-combo .bi-combo+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-multi-select-insert-combo .bi-combo.bi-combo-popup+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-multi-select-insert-combo .bi-combo+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-multi-select-trigger{-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px;border-radius:2px}.bi-multi-select-search-pane .multi-select-toolbar{color:#faaa39}.bi-multi-select-check-selected-button{z-index:1;min-width:16px;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px}.bi-multi-select-insert-list .bi-search-editor,.bi-multi-select-list .bi-search-editor{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.bi-multi-tree-check-pane .multi-tree-check-selected{color:#3685f2}.bi-multi-tree-combo .bi-combo.bi-combo-popup+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-multi-tree-combo .bi-combo+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-multi-tree-popup .popup-view-tree{min-height:170px}.bi-multi-tree-check-selected-button .trigger-check-selected{color:#3685f2;z-index:1}.bi-number-editor{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-number-editor .pull-down-font,.bi-number-editor .pull-up-font{font-size:12px}.bi-number-interval .number-interval-big-combo .bi-icon-combo-trigger .icon-combo-trigger-icon,.bi-number-interval .number-interval-small-combo .bi-icon-combo-trigger .icon-combo-trigger-icon{font-size:14px}.bi-number-interval .number-interval-small-editor{-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;-moz-border-radius-bottomleft:2px;-webkit-border-bottom-left-radius:2px;border-top-left-radius:2px;border-bottom-left-radius:2px}.bi-number-interval .number-interval-big-editor{-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;-moz-border-radius-bottomright:2px;-webkit-border-bottom-right-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px}.bi-number-interval .number-interval-big-combo{-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;-moz-border-radius-bottomleft:2px;-webkit-border-bottom-left-radius:2px;border-top-left-radius:2px;border-bottom-left-radius:2px}.bi-number-interval .number-interval-small-combo{-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;-moz-border-radius-bottomright:2px;-webkit-border-bottom-right-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px}.bi-search-multi-text-value-combo .multi-select-trigger-icon-button,.bi-single-select-combo .single-select-trigger-icon-button{font-size:16px}.bi-number-interval.number-error .bi-input{color:#ff4949!important}.bi-date-interval.time-error .bi-input,.bi-date-interval.time-error .sign-editor-text,.bi-search-multi-text-value-combo.combo-error .bi-multi-select-searcher .tip-text-style,.bi-time-interval.time-error .bi-date-time-trigger .bi-input,.bi-time-interval.time-error .bi-date-time-trigger .sign-editor-text,.bi-year-month-interval.time-error .bi-input,.bi-year-month-interval.time-error .sign-editor-text{color:#ff4949}.bi-quarter-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-single-select-combo .bi-combo.bi-combo-popup+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-single-select-combo .bi-combo+.bi-trigger-icon-button .x-icon{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);-webkit-transition:transform .3s ease;-moz-transition:transform .3s ease;-o-transition:transform .3s ease;transition:transform .3s ease}.bi-single-slider-label{min-height:50px}.bi-single-slider-normal{min-height:30px}.bi-single-slider{min-height:50px}.bi-single-slider-button .slider-button{cursor:ew-resize;border-width:2px;border-style:solid;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;background-color:#fff;height:16px;width:16px;top:6px;left:-8px}.bi-single-slider-button .slider-button.hover,.bi-single-slider-button .slider-button:hover{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;background-color:#f7f8fa;width:20px;height:20px;top:4px;left:-10px}.bi-single-slider-button .slider-button.disabled{border-color:#d0d4da}.bi-single-slider-button .slider-button.disabled.hover,.bi-single-slider-button .slider-button.disabled:hover{background-color:#f7f8fa;width:16px;height:16px;top:6px;left:-8px}body,html{height:100%}.bi-theme-dark .bi-single-slider-button .slider-button{background-color:#242640}.bi-theme-dark .bi-single-slider-button .slider-button.disabled.hover,.bi-theme-dark .bi-single-slider-button .slider-button.disabled:hover,.bi-theme-dark .bi-single-slider-button .slider-button.hover,.bi-theme-dark .bi-single-slider-button .slider-button:hover{background-color:#191B2B}.bi-slider-track .gray-track{background-color:rgba(61,77,102,.1);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#1a3d4d66, endColorstr=#1a3d4d66);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.bi-slider-track .blue-track{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.bi-slider-track .disabled-blue-track{background-color:#d0d4da;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.bi-theme-dark .bi-slider-track .gray-track{background-color:rgba(214,224,220,.1);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#1ad6e0dc, endColorstr=#1ad6e0dc);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.bi-theme-dark .bi-slider-track .disabled-blue-track{background-color:#606479;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.bi-time-trigger .show-text{background-color:rgba(255,255,255,0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff, endColorstr=#00ffffff)}.bi-time-interval .bi-date-time-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.bi-year-popup .year-popup-navigation{line-height:30px}.bi-year-popup .year-popup-navigation>.center-element{border-left:1px solid #e8eaed}.bi-year-popup .year-popup-navigation>.first-element{border-left:none}.bi-theme-dark .bi-year-popup .year-popup-navigation>.center-element{border-left:1px solid #3a3c53}.bi-theme-dark .bi-year-popup .year-popup-navigation>.first-element{border-left:none}.bi-year-trigger{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}html{overflow:hidden}body{position:absolute;width: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:400 12px "Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Heiti,"黑体",sans-serif;-webkit-font-smoothing:antialiased;text-decoration:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0}div::-webkit-scrollbar,textarea::-webkit-scrollbar{-webkit-appearance:none;background-color:rgba(61,77,102,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0d3d4d66, endColorstr=#0d3d4d66);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(61,77,102,.3);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d3d4d66, endColorstr=#4d3d4d66)}div::-webkit-scrollbar-thumb:hover,textarea::-webkit-scrollbar-thumb:hover{background-color:rgba(61,77,102,.7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#b33d4d66, endColorstr=#b33d4d66)}.bi-theme-dark div::-webkit-scrollbar,.bi-theme-dark textarea::-webkit-scrollbar{-webkit-appearance:none;background-color:rgba(255,255,255,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0dffffff, endColorstr=#0dffffff);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(255,255,255,.3);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4dffffff, endColorstr=#4dffffff)}.bi-theme-dark div::-webkit-scrollbar-thumb:hover,.bi-theme-dark textarea::-webkit-scrollbar-thumb:hover{background-color:rgba(255,255,255,.7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#b3ffffff, endColorstr=#b3ffffff)}.bi-farbtastic .wheel{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/wheel.png) center center no-repeat}.bi-farbtastic .overlay{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/mask.png) center center no-repeat}.bi-farbtastic .marker{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/marker.png) center center no-repeat}.bi-display-tree .ztree li span.button.switch.center_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_3.png) center center no-repeat}.bi-display-tree .ztree li span.button.switch.roots_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_2.png) center center no-repeat}.bi-display-tree .ztree li span.button.switch.bottom_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_4.png) center center no-repeat}.ztree li ul.line{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_1.png) 1px 0 repeat-y}.bi-theme-dark .ztree li ul.line{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_1.png) 1px 0 repeat-y}.ztree li span.button.chk.checkbox_false_full,.ztree li span.button.chk.checkbox_false_full_focus,.ztree li span.button.chk.checkbox_false_part{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_normal.png) center center no-repeat;background-size:contain}.ztree li span.button.chk.checkbox_false_part_focus{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/half_selected.png) center center no-repeat;background-size:contain}.ztree li span.button.chk.checkbox_true_full,.ztree li span.button.chk.checkbox_true_full_focus{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_active.png) center center no-repeat;background-size:contain}.ztree li span.button.chk.checkbox_true_part,.ztree li span.button.chk.checkbox_true_part_focus{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/half_selected.png) center center no-repeat;background-size:contain}.ztree.hack li span.button.chk.checkbox_false_full,.ztree.hack li span.button.chk.checkbox_false_full_focus,.ztree.hack li span.button.chk.checkbox_false_part{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_normal.png) center center no-repeat}.ztree.hack li span.button.chk.checkbox_false_part_focus{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/half_selected.png) center center no-repeat}.ztree.hack li span.button.chk.checkbox_true_full,.ztree.hack li span.button.chk.checkbox_true_full_focus{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_active.png) center center no-repeat}.ztree.hack li span.button.chk.checkbox_true_part,.ztree.hack li span.button.chk.checkbox_true_part_focus{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/half_selected.png) center center no-repeat}.ztree li span.button.root_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_1.png) center center no-repeat}.bi-theme-dark .ztree li span.button.root_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_1.png) center center no-repeat}.ztree li span.button.root_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_1.png) center center no-repeat}.bi-theme-dark .ztree li span.button.root_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_1.png) center center no-repeat}.ztree li span.button.roots_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_2.png) center center no-repeat}.bi-theme-dark .ztree li span.button.roots_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_2.png) center center no-repeat}.ztree li span.button.roots_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_2.png) center center no-repeat}.bi-theme-dark .ztree li span.button.roots_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_2.png) center center no-repeat}.ztree li span.button.center_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_3.png) center center no-repeat}.bi-theme-dark .ztree li span.button.center_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_3.png) center center no-repeat}.ztree li span.button.center_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_3.png) center center no-repeat}.bi-theme-dark .ztree li span.button.center_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_3.png) center center no-repeat}.ztree li span.button.bottom_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_4.png) center center no-repeat}.bi-theme-dark .ztree li span.button.bottom_open{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_4.png) center center no-repeat}.ztree li span.button.bottom_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_4.png) center center no-repeat}.bi-theme-dark .ztree li span.button.bottom_close{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_4.png) center center no-repeat}.ztree li span.button.roots_docu{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_2.png) center center no-repeat}.bi-theme-dark .ztree li span.button.roots_docu{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_2.png) center center no-repeat}.ztree li span.button.center_docu{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_3.png) center center no-repeat}.bi-theme-dark .ztree li span.button.center_docu{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_3.png) center center no-repeat}.ztree li span.button.bottom_docu{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_4.png) center center no-repeat}.bi-theme-dark .ztree li span.button.bottom_docu{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_4.png) center center no-repeat}.ztree li span.button.ico_loading{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/loading.gif) center center no-repeat}.base-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_1.png) repeat-y}.bi-theme-dark .base-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_1.png) repeat-y}.first-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_2.png) center center no-repeat}.bi-theme-dark .first-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_2.png) center center no-repeat}.mid-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_3.png) center center no-repeat}.bi-theme-dark .mid-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_3.png) center center no-repeat}.last-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_4.png) center center no-repeat}.bi-theme-dark .last-line-conn-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_4.png) center center no-repeat}.loading-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/loading.gif) center center no-repeat;background-size:contain}.auto-color-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/background/auto_color.png) center center no-repeat;background-size:contain}.auto-color-normal-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/background/auto_color_normal.png) center center no-repeat;background-size:contain}.auto-color-normal-disabled-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/background/auto_color_normal_disable.png) center center no-repeat;background-size:contain}.trans-color-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/background/trans_normal.png) center center no-repeat;background-size:contain}.trans-color-disabled-background{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/background/trans_disable.png) center center no-repeat;background-size:contain}.auto-color-background.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/auto_color.png) center center no-repeat}.auto-color-normal-background.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/auto_color_normal.png) center center no-repeat}.auto-color-normal-disabled-background.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/auto_color_normal_disable.png) center center no-repeat}.trans-color-background.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/trans_normal.png) center center no-repeat}.trans-color-disabled-background.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/background/trans_disable.png) center center no-repeat}@font-face{font-family:fineui;src:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/font/iconfont.eot);src:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/font/iconfont.eot?#iefix) format('embedded-opentype'),url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/font/iconfont.woff) format('woff'),url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/font/iconfont.ttf) format('truetype'),url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/font/iconfont.svg#svgFontName) format('svg')}.b-font{font-family:fineui;font-style:normal;-webkit-font-smoothing:antialiased}.close-font .b-font:before,.close-font.disabled .b-font:before,.close-h-font .b-font:before,.close-h-font.disabled .b-font:before,.close-h-font.hover .b-font:before,.close-h-font:hover .b-font:before,.close-ha-font .b-font:before,.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:before,.circle-close-font.disabled .b-font:before{content:"\e6d5";color:inherit}.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:before,.pre-page-h-font.disabled .b-font:before,.pre-page-h-font.hover .b-font:before,.pre-page-h-font:hover .b-font:before{content:"\e70d";color:inherit}.next-page-h-font .b-font:before,.next-page-h-font.disabled .b-font:before,.next-page-h-font.hover .b-font:before,.next-page-h-font:hover .b-font:before{content:"\e70c";color:inherit}.search-font .b-font:before,.search-font.disabled .b-font:before{content:"\e6dc";color:inherit}.date-font .b-font:before,.date-font.disabled .b-font:before{content:"\e733";color:inherit}.time-font .b-font:before,.time-font.disabled .b-font:before{content:"\e6b1";color:inherit}.date-change-h-font .b-font:before,.date-change-h-font.disabled .b-font:before,.date-change-h-font.hover .b-font:before,.date-change-h-font:hover .b-font:before{content:"\e72f";color:inherit}.dot-font .b-font:before,.dot-font.disabled .b-font:before,.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:before{content:"\e762";color:#fff}.dot-ha-font.hover .b-font:before,.dot-ha-font:hover .b-font:before{content:"\e762";color:#999}.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:#fff}.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,.06)}.dot-e-font.active .b-font:before,.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:before,.pull-right-font.disabled .b-font:before,.pull-right-h-font .b-font:before,.pull-right-h-font.disabled .b-font:before,.pull-right-h-font.hover .b-font:before,.pull-right-h-font:hover .b-font:before,.pull-right-ha-font .b-font:before,.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-e-font .b-font:before,.pull-right-e-font.hover .b-font:before,.pull-right-e-font:hover .b-font:before,.pull-right-ha-font.disabled .b-font:before{content:"\e70c";color:inherit}.pull-right-e-font.active .b-font:before,.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:before,.copy-font.disabled .b-font:before{content:"\e6bd";color:inherit}.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:before,.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-e-font .b-font:before,.copy-e-font.hover .b-font:before,.copy-e-font:hover .b-font:before,.copy-ha-font.disabled .b-font:before{content:"\e6bd";color:inherit}.copy-e-font.active .b-font:before,.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:before,.check-mark-font.disabled .b-font:before,.check-mark-h-font .b-font:before,.check-mark-h-font.disabled .b-font:before,.check-mark-h-font.hover .b-font:before,.check-mark-h-font:hover .b-font:before,.check-mark-ha-font .b-font:before,.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-e-font .b-font:before,.check-mark-e-font.hover .b-font:before,.check-mark-e-font:hover .b-font:before,.check-mark-ha-font.disabled .b-font:before{content:"\e6cf";color:inherit}.check-mark-e-font.active .b-font:before,.check-mark-e-font:active .b-font:before{content:"\e6cf";color:#3f8ce8}.check-mark-e-font.disabled .b-font:before{content:"\e6cf";color:inherit}.row-pre-page-h-font .b-font:before,.row-pre-page-h-font.disabled .b-font:before,.row-pre-page-h-font.hover .b-font:before,.row-pre-page-h-font:hover .b-font:before{content:"\e6d9";color:inherit}.row-next-page-h-font .b-font:before,.row-next-page-h-font.disabled .b-font:before,.row-next-page-h-font.hover .b-font:before,.row-next-page-h-font:hover .b-font:before{content:"\e6d8";color:inherit}.column-pre-page-h-font .b-font:before,.column-pre-page-h-font.disabled .b-font:before,.column-pre-page-h-font.hover .b-font:before,.column-pre-page-h-font:hover .b-font:before{content:"\e6d6";color:inherit}.column-next-page-h-font .b-font:before,.column-next-page-h-font.disabled .b-font:before,.column-next-page-h-font.hover .b-font:before,.column-next-page-h-font:hover .b-font:before{content:"\e6d7";color:inherit}.expander-right-font .b-font:before,.expander-right-font.disabled .b-font:before{content:"\e6d8";color:inherit}.expander-down-font .b-font:before,.expander-down-font.disabled .b-font:before{content:"\e6d7";color:inherit}.solid-triangle-top-font .b-font:before,.solid-triangle-top-font.disabled .b-font:before,.solid-triangle-top-font.hover .b-font:before,.solid-triangle-top-font:hover .b-font:before{content:"\e6d6";color:inherit}.solid-triangle-bottom-font .b-font:before,.solid-triangle-bottom-font.disabled .b-font:before,.solid-triangle-bottom-font.hover .b-font:before,.solid-triangle-bottom-font:hover .b-font:before{content:"\e6d7";color:inherit}.trigger-triangle-font .b-font:before,.trigger-triangle-font.disabled .b-font:before{content:"\e64e";color:inherit}.pull-up-font .b-font:before,.pull-up-font.disabled .b-font:before{content:"\e70a";color:inherit}.pull-down-font .b-font:before,.pull-down-font.disabled .b-font:before{content:"\e70b";color:inherit}.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,.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:before,.check-font.disabled .b-font:before{content:"\e6cf";color:#3685f2}.item-check-font .b-font:before{content:"\e6cf";color:#fff}.item-check-font.hover .b-font:before,.item-check-font:hover .b-font:before{content:"\e6cf";color:#999}.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:#fff}.primary-key-font .b-font:before,.primary-key-font.disabled .b-font:before,.primary-key-font.hover .b-font:before,.primary-key-font:hover .b-font:before{content:"\e740";color:inherit}.drag-tag-font .b-font:before,.drag-tag-font.disabled .b-font:before{content:"\e6d0";color:#faaa39}.less-font .b-font:before,.less-font.disabled .b-font:before{content:"\e75e";color:inherit}.less-equal-font .b-font:before,.less-equal-font.disabled .b-font:before{content:"\e761";color:inherit}.text-bold-font .b-font:before,.text-bold-font.disabled .b-font:before{content:"\e697";color:inherit}.text-italic-font .b-font:before,.text-italic-font.disabled .b-font:before{content:"\e69d";color:inherit}.text-underline-font .b-font:before,.text-underline-font.disabled .b-font:before{content:"\e69c";color:inherit}.text-color-font .b-font:before,.text-color-font.disabled .b-font:before{content:"\e698";color:inherit}.text-background-font .b-font:before,.text-background-font.disabled .b-font:before{content:"\e699";color:inherit}.text-color-underline-font .b-font:before,.text-color-underline-font.disabled .b-font:before{content:"\e69a";color:inherit}.text-align-left-font .b-font:before,.text-align-left-font.disabled .b-font:before{content:"\e6ca";color:inherit}.text-align-center-font .b-font:before,.text-align-center-font.disabled .b-font:before{content:"\e6bf";color:inherit}.text-align-right-font .b-font:before,.text-align-right-font.disabled .b-font:before{content:"\e6c8";color:inherit}.toast-error-font .b-font:before,.toast-error-font.disabled .b-font:before{content:"\e757";color:inherit}.toast-success-font .b-font:before,.toast-success-font.disabled .b-font:before{content:"\e756";color:inherit}.toast-warning-font .b-font:before,.toast-warning-font.disabled .b-font:before{content:"\e755";color:inherit}.toast-message-font .b-font:before,.toast-message-font.disabled .b-font:before{content:"\e74b";color:inherit}.text-add-tip-font .b-font:before,.text-add-tip-font.disabled .b-font:before{content:"\e6dd";color:#13cd66}.add-up-font .b-font:before,.add-up-font.disabled .b-font:before{content:"\e70a";color:inherit}.minus-down-font .b-font:before,.minus-down-font.disabled .b-font:before{content:"\e70b";color:inherit}.tree-collapse-icon-type1 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_collapse_1.png) center center no-repeat;background-size:contain}.tree-collapse-icon-type1 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_1.png) center center no-repeat}.tree-collapse-icon-type2 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_collapse_2.png) center center no-repeat;background-size:contain}.tree-collapse-icon-type2 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_2.png) center center no-repeat}.tree-collapse-icon-type3 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_collapse_3.png) center center no-repeat;background-size:contain}.tree-collapse-icon-type3 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_3.png) center center no-repeat}.tree-collapse-icon-type4 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_collapse_4.png) center center no-repeat;background-size:contain}.tree-collapse-icon-type4 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_collapse_4.png) center center no-repeat}.tree-expand-icon-type1 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_expand_1.png) center center no-repeat;background-size:contain}.tree-expand-icon-type1 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_1.png) center center no-repeat}.tree-expand-icon-type2 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_expand_2.png) center center no-repeat;background-size:contain}.tree-expand-icon-type2 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_2.png) center center no-repeat}.tree-expand-icon-type3 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_expand_3.png) center center no-repeat;background-size:contain}.tree-expand-icon-type3 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_3.png) center center no-repeat}.tree-expand-icon-type4 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_expand_4.png) center center no-repeat;background-size:contain}.tree-expand-icon-type4 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_expand_4.png) center center no-repeat}.tree-vertical-line-type2 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_vertical_line_2.png) center center no-repeat;background-size:contain}.tree-vertical-line-type2 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_2.png) center center no-repeat}.tree-vertical-line-type3 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_vertical_line_3.png) center center no-repeat;background-size:contain}.tree-vertical-line-type3 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_3.png) center center no-repeat}.tree-vertical-line-type4 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/tree_vertical_line_4.png) center center no-repeat;background-size:contain}.tree-vertical-line-type4 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/tree_vertical_line_4.png) center center no-repeat}.bi-theme-dark .tree-collapse-icon-type1 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_collapse_1.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-collapse-icon-type1 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_1.png) center center no-repeat}.bi-theme-dark .tree-collapse-icon-type2 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_collapse_2.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-collapse-icon-type2 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_2.png) center center no-repeat}.bi-theme-dark .tree-collapse-icon-type3 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_collapse_3.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-collapse-icon-type3 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_3.png) center center no-repeat}.bi-theme-dark .tree-collapse-icon-type4 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_collapse_4.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-collapse-icon-type4 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_collapse_4.png) center center no-repeat}.bi-theme-dark .tree-expand-icon-type1 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_expand_1.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-expand-icon-type1 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_1.png) center center no-repeat}.bi-theme-dark .tree-expand-icon-type2 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_expand_2.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-expand-icon-type2 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_2.png) center center no-repeat}.bi-theme-dark .tree-expand-icon-type3 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_expand_3.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-expand-icon-type3 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_3.png) center center no-repeat}.bi-theme-dark .tree-expand-icon-type4 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_expand_4.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-expand-icon-type4 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_expand_4.png) center center no-repeat}.bi-theme-dark .tree-vertical-line-type2 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_vertical_line_2.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-vertical-line-type2 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_2.png) center center no-repeat}.bi-theme-dark .tree-vertical-line-type3 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_vertical_line_3.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-vertical-line-type3 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_3.png) center center no-repeat}.bi-theme-dark .tree-vertical-line-type4 .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/dark/tree_vertical_line_4.png) center center no-repeat;background-size:contain}.bi-theme-dark .tree-vertical-line-type4 .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/dark/tree_vertical_line_4.png) center center no-repeat}.check-box-icon .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_normal.png) center center no-repeat;background-size:contain}.check-box-icon .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_normal.png) center center no-repeat}.check-box-icon.hover .x-icon,.check-box-icon:hover .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_normal.png) center center no-repeat;background-size:contain}.check-box-icon.hover .x-icon.hack,.check-box-icon:hover .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_normal.png) center center no-repeat}.check-box-icon:active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_normal.png) center center no-repeat;background-size:contain}.check-box-icon:active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_normal.png) center center no-repeat}.check-box-icon.active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_active.png) center center no-repeat;background-size:contain}.check-box-icon.active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_active.png) center center no-repeat}.check-box-icon.disabled .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_disable.png) center center no-repeat;background-size:contain}.check-box-icon.disabled .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_disable.png) center center no-repeat}.check-box-icon.disabled.active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/check_box_disable2.png) center center no-repeat;background-size:contain}.check-box-icon.disabled.active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/check_box_disable2.png) center center no-repeat}.radio-icon .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/radio_normal.png) center center no-repeat;background-size:contain}.radio-icon .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/radio_normal.png) center center no-repeat}.radio-icon.hover .x-icon,.radio-icon:hover .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/radio_normal.png) center center no-repeat;background-size:contain}.radio-icon.hover .x-icon.hack,.radio-icon:hover .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/radio_normal.png) center center no-repeat}.radio-icon:active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/radio_normal.png) center center no-repeat;background-size:contain}.radio-icon:active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/radio_normal.png) center center no-repeat}.radio-icon.active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/radio_active.png) center center no-repeat;background-size:contain}.radio-icon.active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/radio_active.png) center center no-repeat}.radio-icon.disabled .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/radio_disable.png) center center no-repeat;background-size:contain}.radio-icon.disabled .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/radio_disable.png) center center no-repeat}.radio-icon.disabled.active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/radio_disable2.png) center center no-repeat;background-size:contain}.radio-icon.disabled.active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/radio_disable2.png) center center no-repeat}.check-half-select-icon .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/half_selected.png) center center no-repeat;background-size:contain}.check-half-select-icon .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/half_selected.png) center center no-repeat}.check-half-select-icon.disabled .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/half_selected_disable.png) center center no-repeat;background-size:contain}.check-half-select-icon.disabled .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/half_selected_disable.png) center center no-repeat}.slider-icon .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/slider_normal_small.png) center center no-repeat;background-size:contain}.slider-icon .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/slider_normal_small.png) center center no-repeat}.slider-icon.hover .x-icon,.slider-icon:hover .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/slider_active_small.png) center center no-repeat;background-size:contain}.slider-icon.hover .x-icon.hack,.slider-icon:hover .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/slider_active_small.png) center center no-repeat}.slider-icon.disabled .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/slider_normal_small.png) center center no-repeat;background-size:contain}.slider-icon.disabled .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/slider_normal_small.png) center center no-repeat}.auto-color-icon .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/auto_normal.png) center center no-repeat;background-size:contain}.auto-color-icon .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/auto_normal.png) center center no-repeat}.auto-color-icon.active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/auto_select.png) center center no-repeat;background-size:contain}.auto-color-icon.active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/auto_select.png) center center no-repeat}.auto-color-icon.disabled .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/auto_disable.png) center center no-repeat;background-size:contain}.auto-color-icon.disabled .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/auto_disable.png) center center no-repeat}.trans-color-icon .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/trans_normal.png) center center no-repeat;background-size:contain}.trans-color-icon .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/trans_normal.png) center center no-repeat}.trans-color-icon.active .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/trans_select.png) center center no-repeat;background-size:contain}.trans-color-icon.active .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/trans_select.png) center center no-repeat}.trans-color-icon.disabled .x-icon{display:block;background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/2x/icon/trans_disable.png) center center no-repeat;background-size:contain}.trans-color-icon.disabled .x-icon.hack{background:url(http://fine-design-storage.oss-cn-shanghai.aliyuncs.com/fineui/2.0/images/1x/icon/trans_disable.png) center center no-repeat}.icon-size-12 .b-font{font-size:12px}.icon-size-16 .b-font{font-size:16px}.icon-size-24 .b-font{font-size:24px}.icon-size-40 .b-font{font-size:40px}.icon-size-50 .b-font{font-size:50px}.icon-size-70 .b-font{font-size:70px} \ No newline at end of file diff --git a/src/lib/fineui.min.js b/src/lib/fineui.min.js deleted file mode 100644 index b2fb00c..0000000 --- a/src/lib/fineui.min.js +++ /dev/null @@ -1,41 +0,0 @@ -/*! fineui 2019-05-17 09:51:29 */ -function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _global;_global="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,null==_global.BI&&(_global.BI={prepares:[]}),null==_global.BI.prepares&&(_global.BI.prepares=[]),function(){function a(a,b,c){switch(c.length){case 0:return a.call(b);case 1:return a.call(b,c[0]);case 2:return a.call(b,c[0],c[1]);case 3:return a.call(b,c[0],c[1],c[2])}return a.apply(b,c)}function b(a,b,c,d){for(var e=-1,f=null==a?0:a.length;++e-1}function g(a,b,c){for(var d=-1,e=null==a?0:a.length;++d-1;);return c}function z(a,b){for(var c=a.length;c--&&o(b,a[c],0)>-1;);return c}function A(a,b){for(var c=a.length,d=0;c--;)a[c]===b&&++d;return d}function B(a,b){return null==a?Ie:a[b]}function C(a){return Cg.test(a)}function D(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c}function E(a){var b=-1,c=Array(a.size);return a.forEach(function(a,d){c[++b]=[d,a]}),c}function F(a,b){return function(c){return a(b(c))}}function G(a,b){for(var c=-1,d=a.length,e=0,f=[];++c-1}function ea(a,b){var c=this.__data__,d=xa(c,a);return d<0?(++this.size,c.push([a,b])):c[d][1]=b,this}function fa(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b=b?a:b)),a}function Ea(a,b,d,e,f,g){var h,i=b&Pe,j=b&Qe,k=bℜif(d&&(h=f?d(a,e,f,g):d(a)),h!==Ie)return h;if(!Sd(a))return a;var l=si(a);if(l){if(h=xc(a),!i)return Qb(a,h)}else{var m=bi(a),n=m==uf||m==vf;if(ti(a))return Gb(a,i);if(m==zf||m==of||n&&!f){if(h=j||n?{}:yc(a),!i)return j?Tb(a,Aa(h,a)):Sb(a,za(h,a))}else{if(!Eg[m])return f?a:{};h=zc(a,m,i)}}g||(g=new oa);var o=g.get(a);if(o)return o;if(g.set(a,h),xi(a))return a.forEach(function(c){h.add(Ea(c,b,d,c,a,g))}),h;if(vi(a))return a.forEach(function(c,e){h.set(e,Ea(c,b,d,e,a,g))}),h;var p=k?j?nc:mc:j?me:le,q=l?Ie:p(a);return c(q||a,function(c,e){q&&(e=c,c=a[e]),wa(h,e,Ea(c,b,d,e,a,g))}),h}function Fa(a,b,c){if("function"!=typeof a)throw new TypeError(Le);return setTimeout(function(){a.apply(Ie,c)},b)}function Ga(a,b,c,d){var e=-1,i=f,j=!0,k=a.length,l=[],m=b.length;if(!k)return l;c&&(b=h(b,v(c))),d?(i=g,j=!1):b.length>=Ke&&(i=x,j=!1,b=new la(b));a:for(;++e0&&c(h)?b>1?Ka(h,b-1,c,d,e):i(e,h):d||(e[e.length]=h)}return e}function La(a,b){return a&&Vh(a,b,le)}function Ma(a,b){return a&&Wh(a,b,le)}function Na(a,b){return e(b,function(b){return Qd(a[b])})}function Oa(a,b){b=Eb(b,a);for(var c=0,d=b.length;null!=a&&cb}function Sa(a,b){return null!=a&&ah.call(a,b)}function Ta(a,b){return null!=a&&b in Object(a)}function Ua(a,b,c){for(var d=c?g:f,e=a[0].length,i=a.length,j=i,k=Array(i),l=1/0,m=[];j--;){var n=a[j];j&&b&&(n=h(n,v(b))),l=Ah(n.length,l),k[j]=!c&&(b||e>=120&&n.length>=120)?new la(j&&n):Ie}n=a[0];var o=-1,p=k[0];a:for(;++oe?0:e+b),c=c>e?e:c,c<0&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=Array(e);++d=Ke){var l=b?null:Zh(a);if(l)return I(l);i=!1,e=x,k=new la}else k=b?[]:j;a:for(;++d=d?a:wb(a,b,c)}function Gb(a,b){if(b)return a.slice();var c=a.length,d=kh?kh(c):new a.constructor(c);return a.copy(d),d}function Hb(a){var b=new a.constructor(a.byteLength);return new jh(b).set(new jh(a)),b}function Ib(a,b){var c=b?Hb(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.byteLength)}function Jb(a){var b=new a.constructor(a.source,cg.exec(a));return b.lastIndex=a.lastIndex,b}function Kb(a){return Rh?Object(Rh.call(a)):{}}function Lb(a,b){var c=b?Hb(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.length)}function Mb(a,b){if(a!==b){var c=a!==Ie,d=null===a,e=a===a,f=Zd(a),g=b!==Ie,h=null===b,i=b===b,j=Zd(b);if(!h&&!j&&!f&&a>b||f&&g&&i&&!h&&!j||d&&g&&i||!c&&i||!e)return 1;if(!d&&!f&&!j&&a=h)return i;var j=c[d];return i*("desc"==j?-1:1)}}return a.index-b.index}function Ob(a,b,c,d){for(var e=-1,f=a.length,g=c.length,h=-1,i=b.length,j=zh(f-g,0),k=Array(i+j),l=!d;++h1?c[e-1]:Ie,g=e>2?c[2]:Ie;for(f=a.length>3&&"function"==typeof f?(e--,f):Ie,g&&Dc(c[0],c[1],g)&&(f=e<3?Ie:f,e=1),b=Object(b);++d-1?e[f?b[g]:g]:Ie}}function ac(a,b,c,d,e,f,g,h,i,j){function k(){for(var r=arguments.length,s=Array(r),t=r;t--;)s[t]=arguments[t];if(o)var u=pc(k),v=A(s,u);if(d&&(s=Ob(s,d,e,o)),f&&(s=Pb(s,f,g,o)),r-=v,o&&r1&&s.reverse(),l&&ih))return!1;var j=f.get(a);if(j&&f.get(b))return j==b;var l=-1,m=!0,n=c&Te?new la:Ie;for(f.set(a,b),f.set(b,a);++l1?"& ":"")+b[d],b=b.join(c>2?", ":" "),a.replace($f,"{\n/* [wrapped with "+b+"] */\n")}function Bc(a){return si(a)||ri(a)||!!(ph&&a&&a[ph])}function Cc(a,b){var c=typeof a;return b=null==b?jf:b,!!b&&("number"==c||"symbol"!=c&&hg.test(a))&&a>-1&&a%1==0&&a0){if(++b>=cf)return arguments[0]}else b=0;return a.apply(Ie,arguments)}}function Uc(a){if("string"==typeof a||Zd(a))return a;var b=a+"";return"0"==b&&1/a==-hf?"-0":b}function Vc(a){if(null!=a){try{return _g.call(a)}catch(b){}try{return a+""}catch(b){}}return""}function Wc(a,b){return c(nf,function(c){var d="_."+c[0];b&c[1]&&!f(a,d)&&a.push(d)}),a.sort()}function Xc(a){if(a instanceof R)return a.clone();var b=new Q(a.__wrapped__,a.__chain__);return b.__actions__=Qb(a.__actions__),b.__index__=a.__index__,b.__values__=a.__values__,b}function Yc(a){for(var b=-1,c=null==a?0:a.length,d=0,e=[];++b0&&(c=b.apply(this,arguments)),a<=1&&(b=Ie),c}}function Bd(a,b,c){function d(b){var c=m,d=n;return m=n=Ie,s=b,p=a.apply(d,c)}function e(a){return s=a,q=setTimeout(h,b),t?d(a):p}function f(a){var c=a-r,d=a-s,e=b-c;return u?Ah(e,o-d):e}function g(a){var c=a-r,d=a-s;return r===Ie||c>=b||c<0||u&&d>=o}function h(){var a=ni();return g(a)?i(a):void(q=setTimeout(h,f(a)))}function i(a){return q=Ie,v&&m?d(a):(m=n=Ie,p)}function j(){q!==Ie&&clearTimeout(q),s=0,m=r=n=q=Ie}function k(){return q===Ie?p:i(ni())}function l(){var a=ni(),c=g(a);if(m=arguments,n=this,r=a,c){if(q===Ie)return e(r);if(u)return q=setTimeout(h,b),d(r)}return q===Ie&&(q=setTimeout(h,b)),p}var m,n,o,p,q,r,s=0,t=!1,u=!1,v=!0;if("function"!=typeof a)throw new TypeError(Le);return b=ce(b)||0,Sd(c)&&(t=!!c.leading,u="maxWait"in c,o=u?zh(ce(c.maxWait)||0,b):o,v="trailing"in c?!!c.trailing:v),l.cancel=j,l.flush=k,l}function Cd(a,b){if("function"!=typeof a||null!=b&&"function"!=typeof b)throw new TypeError(Le);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g)||f,g};return c.cache=new(Cd.Cache||fa),c}function Dd(a){if("function"!=typeof a)throw new TypeError(Le);return function(){var b=arguments;switch(b.length){case 0:return!a.call(this);case 1:return!a.call(this,b[0]);case 2:return!a.call(this,b[0],b[1]);case 3:return!a.call(this,b[0],b[1],b[2])}return!a.apply(this,b)}}function Ed(a){return Ad(2,a)}function Fd(a,b){if("function"!=typeof a)throw new TypeError(Le);return b=b===Ie?b:be(b),ub(a,b)}function Gd(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new TypeError(Le);return Sd(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),Bd(a,b,{leading:d,maxWait:b,trailing:e})}function Hd(a){return Ea(a,Re)}function Id(a){return Ea(a,Pe|Re)}function Jd(a,b){return a===b||a!==a&&b!==b}function Kd(a){return null!=a&&Rd(a.length)&&!Qd(a)}function Ld(a){return Td(a)&&Kd(a)}function Md(a){return a===!0||a===!1||Td(a)&&Qa(a)==rf}function Nd(a){if(null==a)return!0;if(Kd(a)&&(si(a)||"string"==typeof a||"function"==typeof a.splice||ti(a)||yi(a)||ri(a)))return!a.length;var b=bi(a);if(b==wf||b==Df)return!a.size;if(Ic(a))return!gb(a).length;for(var c in a)if(ah.call(a,c))return!1;return!0}function Od(a,b){return Za(a,b)}function Pd(a){return"number"==typeof a&&xh(a)}function Qd(a){if(!Sd(a))return!1;var b=Qa(a);return b==uf||b==vf||b==qf||b==Bf}function Rd(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=jf}function Sd(a){var b=typeof a;return null!=a&&("object"==b||"function"==b)}function Td(a){return null!=a&&"object"==typeof a}function Ud(a){return Wd(a)&&a!=+a}function Vd(a){return null===a}function Wd(a){return"number"==typeof a||Td(a)&&Qa(a)==xf}function Xd(a){if(!Td(a)||Qa(a)!=zf)return!1;var b=lh(a);if(null===b)return!0;var c=ah.call(b,"constructor")&&b.constructor;return"function"==typeof c&&c instanceof c&&_g.call(c)==eh}function Yd(a){return"string"==typeof a||!si(a)&&Td(a)&&Qa(a)==Ef}function Zd(a){return"symbol"==typeof a||Td(a)&&Qa(a)==Ff}function $d(a){return a===Ie}function _d(a){if(!a)return[];if(Kd(a))return Yd(a)?L(a):Qb(a);if(qh&&a[qh])return D(a[qh]());var b=bi(a),c=b==wf?E:b==Df?I:qe;return c(a)}function ae(a){if(!a)return 0===a?a:0;if(a=ce(a),a===hf||a===-hf){var b=a<0?-1:1;return b*kf}return a===a?a:0}function be(a){var b=ae(a),c=b%1;return b===b?c?b-c:b:0}function ce(a){if("number"==typeof a)return a;if(Zd(a))return lf;if(Sd(a)){var b="function"==typeof a.valueOf?a.valueOf():a;a=Sd(b)?b+"":b}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(Zf,"");var c=eg.test(a);return c||gg.test(a)?Hg(a.slice(2),c?2:8):dg.test(a)?lf:+a}function de(a){return Rb(a,me(a))}function ee(a){return null==a?"":yb(a)}function fe(a,b){var c=Th(a);return null==b?c:za(c,b)}function ge(a,b){return m(a,fb(b,3),La)}function he(a,b){return m(a,fb(b,3),Ma)}function ie(a,b,c){ -var d=null==a?Ie:Oa(a,b);return d===Ie?c:d}function je(a,b){return null!=a&&wc(a,b,Sa)}function ke(a,b){return null!=a&&wc(a,b,Ta)}function le(a){return Kd(a)?ua(a):gb(a)}function me(a){return Kd(a)?ua(a,!0):hb(a)}function ne(a,b){return oe(a,Dd(fb(b)))}function oe(a,b){if(null==a)return{};var c=h(nc(a),function(a){return[a]});return b=fb(b),qb(a,c,function(a,c){return b(a,c[0])})}function pe(a,b,c){b=Eb(b,a);var d=-1,e=b.length;for(e||(e=1,a=Ie);++db){var d=a;a=b,b=d}if(c||a%1||b%1){var e=Ch();return Ah(a+e*(b-a+Gg("1e-"+((e+"").length-1))),b)}return sb(a,b)}function te(a){return a=ee(a),a&&Uf.test(a)?a.replace(Tf,Wg):a}function ue(a,b,c){if(a=ee(a),a&&(c||b===Ie))return a.replace(Zf,"");if(!a||!(b=yb(b)))return a;var d=L(a),e=L(b),f=y(d,e),g=z(d,e)+1;return Fb(d,f,g).join("")}function ve(a){return function(){return a}}function we(a){return a}function xe(a){return fb("function"==typeof a?a:Ea(a,Pe))}function ye(a){return kb(Ea(a,Pe))}function ze(a,b,d){var e=le(b),f=Na(b,e);null!=d||Sd(b)&&(f.length||!e.length)||(d=b,b=a,a=this,f=Na(b,le(b)));var g=!(Sd(d)&&"chain"in d&&!d.chain),h=Qd(a);return c(f,function(c){var d=b[c];a[c]=d,h&&(a.prototype[c]=function(){var b=this.__chain__;if(g||b){var c=a(this.__wrapped__),e=c.__actions__=Qb(this.__actions__);return e.push({func:d,args:arguments,thisArg:a}),c.__chain__=b,c}return d.apply(a,i([this.value()],arguments))})}),a}function Ae(){return Kg._===this&&(Kg._=fh),this}function Be(){}function Ce(a){return Ec(a)?q(Uc(a)):rb(a)}function De(){return[]}function Ee(){return!1}function Fe(a){var b=++bh;return ee(a)+b}function Ge(a){return a&&a.length?Ia(a,we,Ra):Ie}function He(a){return a&&a.length?Ia(a,we,ib):Ie}var Ie,Je="4.17.5",Ke=200,Le="Expected a function",Me="__lodash_hash_undefined__",Ne=500,Oe="__lodash_placeholder__",Pe=1,Qe=2,Re=4,Se=1,Te=2,Ue=1,Ve=2,We=4,Xe=8,Ye=16,Ze=32,$e=64,_e=128,af=256,bf=512,cf=800,df=16,ef=1,ff=2,gf=3,hf=1/0,jf=9007199254740991,kf=1.7976931348623157e308,lf=NaN,mf=4294967295,nf=[["ary",_e],["bind",Ue],["bindKey",Ve],["curry",Xe],["curryRight",Ye],["flip",bf],["partial",Ze],["partialRight",$e],["rearg",af]],of="[object Arguments]",pf="[object Array]",qf="[object AsyncFunction]",rf="[object Boolean]",sf="[object Date]",tf="[object Error]",uf="[object Function]",vf="[object GeneratorFunction]",wf="[object Map]",xf="[object Number]",yf="[object Null]",zf="[object Object]",Af="[object Promise]",Bf="[object Proxy]",Cf="[object RegExp]",Df="[object Set]",Ef="[object String]",Ff="[object Symbol]",Gf="[object Undefined]",Hf="[object WeakMap]",If="[object ArrayBuffer]",Jf="[object DataView]",Kf="[object Float32Array]",Lf="[object Float64Array]",Mf="[object Int8Array]",Nf="[object Int16Array]",Of="[object Int32Array]",Pf="[object Uint8Array]",Qf="[object Uint8ClampedArray]",Rf="[object Uint16Array]",Sf="[object Uint32Array]",Tf=/[&<>"']/g,Uf=RegExp(Tf.source),Vf=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Wf=/^\w*$/,Xf=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Yf=/[\\^$.*+?()[\]{}|]/g,Zf=/^\s+|\s+$/g,$f=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,_f=/\{\n\/\* \[wrapped with (.+)\] \*/,ag=/,? & /,bg=/\\(\\)?/g,cg=/\w*$/,dg=/^[-+]0x[0-9a-f]+$/i,eg=/^0b[01]+$/i,fg=/^\[object .+?Constructor\]$/,gg=/^0o[0-7]+$/i,hg=/^(?:0|[1-9]\d*)$/,ig="\\ud800-\\udfff",jg="\\u0300-\\u036f",kg="\\ufe20-\\ufe2f",lg="\\u20d0-\\u20ff",mg=jg+kg+lg,ng="\\ufe0e\\ufe0f",og="["+ig+"]",pg="["+mg+"]",qg="\\ud83c[\\udffb-\\udfff]",rg="(?:"+pg+"|"+qg+")",sg="[^"+ig+"]",tg="(?:\\ud83c[\\udde6-\\uddff]){2}",ug="[\\ud800-\\udbff][\\udc00-\\udfff]",vg="\\u200d",wg=rg+"?",xg="["+ng+"]?",yg="(?:"+vg+"(?:"+[sg,tg,ug].join("|")+")"+xg+wg+")*",zg=xg+wg+yg,Ag="(?:"+[sg+pg+"?",pg,tg,ug,og].join("|")+")",Bg=RegExp(qg+"(?="+qg+")|"+Ag+zg,"g"),Cg=RegExp("["+vg+ig+mg+ng+"]"),Dg={};Dg[Kf]=Dg[Lf]=Dg[Mf]=Dg[Nf]=Dg[Of]=Dg[Pf]=Dg[Qf]=Dg[Rf]=Dg[Sf]=!0,Dg[of]=Dg[pf]=Dg[If]=Dg[rf]=Dg[Jf]=Dg[sf]=Dg[tf]=Dg[uf]=Dg[wf]=Dg[xf]=Dg[zf]=Dg[Cf]=Dg[Df]=Dg[Ef]=Dg[Hf]=!1;var Eg={};Eg[of]=Eg[pf]=Eg[If]=Eg[Jf]=Eg[rf]=Eg[sf]=Eg[Kf]=Eg[Lf]=Eg[Mf]=Eg[Nf]=Eg[Of]=Eg[wf]=Eg[xf]=Eg[zf]=Eg[Cf]=Eg[Df]=Eg[Ef]=Eg[Ff]=Eg[Pf]=Eg[Qf]=Eg[Rf]=Eg[Sf]=!0,Eg[tf]=Eg[uf]=Eg[Hf]=!1;var Fg={"&":"&","<":"<",">":">",'"':""","'":"'"},Gg=parseFloat,Hg=parseInt,Ig="object"==typeof global&&global&&global.Object===Object&&global,Jg="object"==typeof self&&self&&self.Object===Object&&self,Kg=Ig||Jg||Function("return this")(),Lg="object"==typeof exports&&exports&&!exports.nodeType&&exports,Mg=Lg&&"object"==typeof module&&module&&!module.nodeType&&module,Ng=Mg&&Mg.exports===Lg,Og=Ng&&Ig.process,Pg=function(){try{return Og&&Og.binding&&Og.binding("util")}catch(a){}}(),Qg=Pg&&Pg.isDate,Rg=Pg&&Pg.isMap,Sg=Pg&&Pg.isRegExp,Tg=Pg&&Pg.isSet,Ug=Pg&&Pg.isTypedArray,Vg=q("length"),Wg=r(Fg),Xg=Array.prototype,Yg=Function.prototype,Zg=Object.prototype,$g=Kg["__core-js_shared__"],_g=Yg.toString,ah=Zg.hasOwnProperty,bh=0,ch=function(){var a=/[^.]+$/.exec($g&&$g.keys&&$g.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}(),dh=Zg.toString,eh=_g.call(Object),fh=Kg._,gh=RegExp("^"+_g.call(ah).replace(Yf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),hh=Ng?Kg.Buffer:Ie,ih=Kg.Symbol,jh=Kg.Uint8Array,kh=hh?hh.allocUnsafe:Ie,lh=F(Object.getPrototypeOf,Object),mh=Object.create,nh=Zg.propertyIsEnumerable,oh=Xg.splice,ph=ih?ih.isConcatSpreadable:Ie,qh=ih?ih.iterator:Ie,rh=ih?ih.toStringTag:Ie,sh=function(){try{var a=sc(Object,"defineProperty");return a({},"",{}),a}catch(b){}}(),th=Math.ceil,uh=Math.floor,vh=Object.getOwnPropertySymbols,wh=hh?hh.isBuffer:Ie,xh=Kg.isFinite,yh=F(Object.keys,Object),zh=Math.max,Ah=Math.min,Bh=Date.now,Ch=Math.random,Dh=(Xg.reverse,sc(Kg,"DataView")),Eh=sc(Kg,"Map"),Fh=sc(Kg,"Promise"),Gh=sc(Kg,"Set"),Hh=sc(Kg,"WeakMap"),Ih=sc(Object,"create"),Jh=Hh&&new Hh,Kh={},Lh=Vc(Dh),Mh=Vc(Eh),Nh=Vc(Fh),Oh=Vc(Gh),Ph=Vc(Hh),Qh=ih?ih.prototype:Ie,Rh=Qh?Qh.valueOf:Ie,Sh=Qh?Qh.toString:Ie,Th=function(){function a(){}return function(b){if(!Sd(b))return{};if(mh)return mh(b);a.prototype=b;var c=new a;return a.prototype=Ie,c}}();O.prototype=P.prototype,O.prototype.constructor=O,Q.prototype=Th(P.prototype),Q.prototype.constructor=Q,R.prototype=Th(P.prototype),R.prototype.constructor=R,V.prototype.clear=W,V.prototype["delete"]=X,V.prototype.get=Y,V.prototype.has=Z,V.prototype.set=$,_.prototype.clear=aa,_.prototype["delete"]=ba,_.prototype.get=ca,_.prototype.has=da,_.prototype.set=ea,fa.prototype.clear=ga,fa.prototype["delete"]=ha,fa.prototype.get=ia,fa.prototype.has=ja,fa.prototype.set=ka,la.prototype.add=la.prototype.push=ma,la.prototype.has=na,oa.prototype.clear=pa,oa.prototype["delete"]=qa,oa.prototype.get=ra,oa.prototype.has=sa,oa.prototype.set=ta;var Uh=Wb(La),Vh=Xb(),Wh=Xb(!0),Xh=Jh?function(a,b){return Jh.set(a,b),a}:we,Yh=sh?function(a,b){return sh(a,"toString",{configurable:!0,enumerable:!1,value:ve(b),writable:!0})}:we,Zh=Gh&&1/I(new Gh([,-0]))[1]==hf?function(a){return new Gh(a)}:Be,$h=Jh?function(a){return Jh.get(a)}:Be,_h=vh?function(a){return null==a?[]:(a=Object(a),e(vh(a),function(b){return nh.call(a,b)}))}:De,ai=vh?function(a){for(var b=[];a;)i(b,_h(a)),a=lh(a);return b}:De,bi=Qa;(Dh&&bi(new Dh(new ArrayBuffer(1)))!=Jf||Eh&&bi(new Eh)!=wf||Fh&&bi(Fh.resolve())!=Af||Gh&&bi(new Gh)!=Df||Hh&&bi(new Hh)!=Hf)&&(bi=function(a){var b=Qa(a),c=b==zf?a.constructor:Ie,d=c?Vc(c):"";if(d)switch(d){case Lh:return Jf;case Mh:return wf;case Nh:return Af;case Oh:return Df;case Ph:return Hf}return b});var ci=Tc(Xh),di=Tc(Yh),ei=Lc(function(a){var b=[];return 46===a.charCodeAt(0)&&b.push(""),a.replace(Xf,function(a,c,d,e){b.push(d?e.replace(bg,"$1"):c||a)}),b}),fi=ub(function(a,b){return Ld(a)?Ga(a,Ka(b,1,Ld,!0)):[]}),gi=ub(function(a){var b=h(a,Db);return b.length&&b[0]===a[0]?Ua(b):[]}),hi=ub(function(a){return zb(Ka(a,1,Ld,!0))}),ii=ub(function(a,b){return Ld(a)?Ga(a,b):[]}),ji=ub(md),ki=(lc(function(a){var b=a.length,c=b?a[0]:0,d=this.__wrapped__,e=function(b){return Ca(b,a)};return!(b>1||this.__actions__.length)&&d instanceof R&&Cc(c)?(d=d.slice(c,+c+(b?1:0)),d.__actions__.push({func:qd,args:[e],thisArg:Ie}),new Q(d,this.__chain__).thru(function(a){return b&&!a.length&&a.push(Ie),a})):this.thru(e)}),Ub(function(a,b,c){ah.call(a,c)?++a[c]:Ba(a,c,1)})),li=_b(_c),mi=ub(function(a,b){if(null==a)return[];var c=b.length;return c>1&&Dc(a,b[0],b[1])?b=[]:c>2&&Dc(b[0],b[1],b[2])&&(b=[b[0]]),ob(a,Ka(b,1),[])}),ni=function(){return Kg.Date.now()},oi=ub(function(a,b,c){var d=Ue;if(c.length){var e=G(c,pc(oi));d|=Ze}return fc(a,d,b,c,e)}),pi=ub(function(a,b){return Fa(a,1,b)}),qi=ub(function(a,b,c){return Fa(a,ce(b)||0,c)});Cd.Cache=fa;var ri=Xa(function(){return arguments}())?Xa:function(a){return Td(a)&&ah.call(a,"callee")&&!nh.call(a,"callee")},si=Array.isArray,ti=wh||Ee,ui=Qg?v(Qg):Ya,vi=Rg?v(Rg):_a,wi=Sg?v(Sg):cb,xi=Tg?v(Tg):db,yi=Ug?v(Ug):eb,zi=Vb(function(a,b){Rb(b,me(b),a)}),Ai=ub(function(a,b){a=Object(a);var c=-1,d=b.length,e=d>2?b[2]:Ie;for(e&&Dc(b[0],b[1],e)&&(d=1);++c1),b}),Rb(a,nc(a),c),d&&(c=Ea(c,Pe|Qe|Re,hc));for(var e=b.length;e--;)Ab(c,b[e]);return c}),Hi=lc(function(a,b){return null==a?{}:pb(a,b)}),Ii=dc();O.assignIn=zi,O.before=Ad,O.bind=oi,O.chain=od,O.compact=Yc,O.concat=Zc,O.countBy=ki,O.create=fe,O.debounce=Bd,O.defaults=Ai,O.defaultsDeep=Bi,O.defer=pi,O.delay=qi,O.difference=fi,O.drop=$c,O.filter=td,O.flatten=bd,O.flattenDeep=cd,O.initial=fd,O.intersection=gi,O.invert=Ci,O.invertBy=Di,O.iteratee=xe,O.keys=le,O.map=vd,O.matches=ye,O.merge=Ei,O.mixin=ze,O.negate=Dd,O.omit=Gi,O.omitBy=ne,O.once=Ed,O.pick=Hi,O.range=Ii,O.reject=xd,O.rest=Fd,O.slice=hd,O.sortBy=mi,O.take=id,O.takeRight=jd,O.tap=pd,O.throttle=Gd,O.thru=qd,O.toArray=_d,O.union=hi,O.uniq=kd,O.uniqBy=ld,O.unzip=md,O.values=qe,O.without=ii,O.zip=ji,O.zipObject=nd,O.extend=zi,ze(O,O),O.clamp=re,O.clone=Hd,O.cloneDeep=Id,O.escape=te,O.every=sd,O.find=li,O.findIndex=_c,O.findKey=ge,O.findLastIndex=ad,O.findLastKey=he,O.forEach=ud,O.get=ie,O.has=je,O.head=dd,O.identity=we,O.indexOf=ed,O.isArguments=ri,O.isArray=si,O.isArrayLike=Kd,O.isBoolean=Md,O.isDate=ui,O.isEmpty=Nd,O.isEqual=Od,O.isFinite=Pd,O.isFunction=Qd,O.isNaN=Ud,O.isNull=Vd,O.isNumber=Wd,O.isObject=Sd,O.isPlainObject=Xd,O.isRegExp=wi,O.isString=Yd,O.isUndefined=$d,O.last=gd,O.max=Ge,O.min=He,O.noConflict=Ae,O.noop=Be,O.random=se,O.reduce=wd,O.result=pe,O.size=yd,O.some=zd,O.trim=ue,O.uniqueId=Fe,O.each=ud,O.first=dd,ze(O,function(){var a={};return La(O,function(b,c){ah.call(O.prototype,c)||(a[c]=b)}),a}(),{chain:!1}),O.VERSION=Je,c(["drop","take"],function(a,b){R.prototype[a]=function(c){c=c===Ie?1:zh(be(c),0);var d=this.__filtered__&&!b?new R(this):this.clone();return d.__filtered__?d.__takeCount__=Ah(c,d.__takeCount__):d.__views__.push({size:Ah(c,mf),type:a+(d.__dir__<0?"Right":"")}),d},R.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),c(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c==ef||c==gf;R.prototype[a]=function(a){var b=this.clone();return b.__iteratees__.push({iteratee:getIteratee(a,3),type:c}),b.__filtered__=b.__filtered__||d,b}}),c(["head","last"],function(a,b){var c="take"+(b?"Right":"");R.prototype[a]=function(){return this[c](1).value()[0]}}),c(["initial","tail"],function(a,b){var c="drop"+(b?"":"Right");R.prototype[a]=function(){return this.__filtered__?new R(this):this[c](1)}}),R.prototype.compact=function(){return this.filter(we)},R.prototype.find=function(a){return this.filter(a).head()},R.prototype.findLast=function(a){return this.reverse().find(a)},R.prototype.invokeMap=ub(function(a,b){return"function"==typeof a?new R(this):this.map(function(c){return Wa(c,a,b)})}),R.prototype.reject=function(a){return this.filter(Dd(getIteratee(a)))},R.prototype.slice=function(a,b){a=be(a);var c=this;return c.__filtered__&&(a>0||b<0)?new R(c):(a<0?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==Ie&&(b=be(b),c=b<0?c.dropRight(-b):c.take(b-a)),c)},R.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()},R.prototype.toArray=function(){return this.take(mf)},La(R.prototype,function(a,b){var c=/^(?:filter|find|map|reject)|While$/.test(b),d=/^(?:head|last)$/.test(b),e=O[d?"take"+("last"==b?"Right":""):b],f=d||/^find/.test(b);e&&(O.prototype[b]=function(){var b=this.__wrapped__,g=d?[1]:arguments,h=b instanceof R,j=g[0],k=h||si(b),l=function(a){var b=e.apply(O,i([a],g));return d&&m?b[0]:b};k&&c&&"function"==typeof j&&1!=j.length&&(h=k=!1);var m=this.__chain__,n=!!this.__actions__.length,o=f&&!m,p=h&&!n;if(!f&&k){b=p?b:new R(this);var q=a.apply(b,g);return q.__actions__.push({func:qd,args:[l],thisArg:Ie}),new Q(q,m)}return o&&p?a.apply(this,g):(q=this.thru(l),o?d?q.value()[0]:q.value():q)})}),c(["pop","push","shift","sort","splice","unshift"],function(a){var b=Xg[a],c=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",d=/^(?:pop|shift)$/.test(a);O.prototype[a]=function(){var a=arguments;if(d&&!this.__chain__){var e=this.value();return b.apply(si(e)?e:[],a)}return this[c](function(c){return b.apply(si(c)?c:[],a)})}}),La(R.prototype,function(a,b){var c=O[b];if(c){var d=c.name+"",e=Kh[d]||(Kh[d]=[]);e.push({name:b,func:c})}}),Kh[ac(Ie,Ve).name]=[{name:"wrapper",func:Ie}],R.prototype.clone=S,R.prototype.reverse=T,R.prototype.value=U,O.prototype.first=O.prototype.head,qh&&(O.prototype[qh]=rd),"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Kg._=O,define(function(){return O})):Mg?((Mg.exports=O)._=O,Lg._=O):Kg._=O}.call(this);var _global;_global="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,_global.BI||(_global.BI={}),!function(a){var b=function(a,b){return function(c,d,e){return a.call(b,d,c,e)}},c=function(a){return function(){return _[a].apply(_,arguments)}},d=function(a){return function(){var c=Array.prototype.slice.call(arguments,0);return c[1]=_.isFunction(c[1])?b(c[1],c[2]):c[1],_[a].apply(_,c)}};_.extend(BI,{assert:function(a,b){if(this.isFunction(b)){if(b(a))return!0;throw new Error(a+" error")}if(this.isArray(b)||(b=[b]),!this.deepContains(b,a))throw new Error(a+" error")},warn:function(a){console.warn(a)},UUID:function(){for(var a=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],b="",c=0;c<16;c++){var d=parseInt(a.length*Math.random(),10);b+=a[d]}return b},isWidget:function(a){return a instanceof BI.Widget||BI.View&&a instanceof BI.View},createWidgets:function(a,b,c){if(!BI.isArray(a))throw new Error("cannot create Widgets");return BI.isWidget(b)?(c=b,b={}):b||(b={}),BI.map(BI.flatten(a),function(a,c){return BI.createWidget(c,BI.deepClone(b))})},createItems:function(a,b,c){return b=BI.isArray(b)?b:BI.makeArray(BI.flatten(a).length,b),c=BI.isArray(c)?c:BI.makeArray(BI.flatten(a).length,c),BI.map(a,function(a,d){return BI.isArray(d)?BI.createItems(d,b,c):d instanceof BI.Widget?BI.extend({},b.shift(),c.shift(),{type:null,el:d}):b[0]instanceof BI.Widget?(c.shift(),BI.extend({},d,{el:b.shift()})):d.el instanceof BI.Widget||BI.View&&d.el instanceof BI.View?(b.shift(),BI.extend({},c.shift(),{type:null},d)):d.el?BI.extend({},c.shift(),d,{el:BI.extend({},b.shift(),d.el)}):BI.extend({},c.shift(),{el:BI.extend({},b.shift(),d)})})},packageItems:function(a,b){for(var c=b.length-1;c>=0;c--)a=BI.map(a,function(a,d){return BI.extend({},b[c],{items:[BI.extend({},b[c].el,{el:d})]})});return a},formatEL:function(a){return a&&!a.type&&a.el?a:{el:a}},stripEL:function(a){return a.type&&a||a.el||a},trans2Element:function(a){return BI.map(a,function(a,b){return b.element})}}),_.each(["where","findWhere","invoke","pluck","shuffle","sample","toArray","size"],function(a){BI[a]=c(a)}),_.each(["get","each","map","reduce","reduceRight","find","filter","reject","every","all","some","any","max","min","sortBy","groupBy","indexBy","countBy","partition","clamp"],function(a){"any"===a?BI[a]=d("some"):BI[a]=d(a)}),_.extend(BI,{count:function(a,b,c){var d;if(c)for(d=a;d=0;d--)b(d,a[d],a);return!1},backAny:function(a,b,c){b=BI.iteratee(b,c);for(var d=a.length-1;d>=0;d--)if(b(d,a[d],a))return!0;return!1},backEvery:function(a,b,c){b=BI.iteratee(b,c);for(var d=a.length-1;d>=0;d--)if(!b(d,a[d],a))return!1;return!0},backFindKey:function(a,b,c){b=BI.iteratee(b,c);for(var d,e=_.keys(a),f=e.length-1;f>=0;f--)if(d=e[f],b(a[d],d,a))return d},backFind:function(a,b,c){var d;if(d=BI.isArray(a)?BI.findLastIndex(a,b,c):BI.backFindKey(a,b,c),void 0!==d&&d!==-1)return a[d]},remove:function(a,b,c){var d=BI.isFunction(b);b=d||BI.isArray(b)?b:[b];var e;if(BI.isArray(a))for(e=0;e(2147483646-a.charAt(d).charCodeAt(0)+c.charCodeAt(0))/26)return 0;return b},int2Abc:function(a){var b=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],c=a,d="";if(0===a)return"";for(;0!==c;){var e=c%26;0===e&&(e=26),d=b[e-1]+d,c=(c-e)/26}return d}}),_.each(["first","initial","last","rest","compact","flatten","without","union","intersection","difference","zip","unzip","object","indexOf","lastIndexOf","sortedIndex","range","take","takeRight"],function(a){BI[a]=c(a)}),_.each(["findIndex","findLastIndex"],function(a){BI[a]=d(a)}),_.extend(BI,{makeArray:function(a,b){for(var c=[],d=0;d0;)BI.prepares.shift()()},has:function(a,b){return BI.isArray(b)?0!==b.length&&BI.every(b,function(b,c){return _.has(a,c)}):_.has.apply(_,arguments)},freeze:function(a){if(Object.freeze)return Object.freeze(a);if(!BI.isObject(a))throw new TypeError("Object.freeze can only be called on Objects.");return a},isKey:function(a){return BI.isNumber(a)||BI.isString(a)&&a.length>0},isCapitalEqual:function(a,b){return a=BI.isNull(a)?a:(""+a).toLowerCase(),b=BI.isNull(b)?b:(""+b).toLowerCase(),BI.isEqual(a,b)},isWidthOrHeight:function(a){return"number"==typeof a?a>=0:"string"==typeof a?/^\d{1,3}%$/.exec(a)||"auto"==a||/^\d+px$/.exec(a):void 0},isNotNull:function(a){return!BI.isNull(a)},isNull:function(a){return"undefined"==typeof a||null===a},isEmptyArray:function(a){return BI.isArray(a)&&BI.isEmpty(a)},isNotEmptyArray:function(a){return BI.isArray(a)&&!BI.isEmpty(a)},isEmptyObject:function(a){return BI.isEqual(a,{})},isNotEmptyObject:function(a){return BI.isPlainObject(a)&&!BI.isEmptyObject(a)},isEmptyString:function(a){return BI.isString(a)&&0===a.length},isNotEmptyString:function(a){return BI.isString(a)&&!BI.isEmptyString(a)},isWindow:function(a){return null!=a&&a==a.window}}),_.extend(BI,{deepClone:_.cloneDeep,deepExtend:_.merge,isDeepMatch:function(a,b){var c=BI.keys(b),d=c.length;if(null==a)return!d;for(var e=Object(a),f=0;f=0},deepContains:function(a,b){return BI.isObject(b)?BI.any(a,function(a,c){if(BI.isEqual(c,b))return!0}):BI.contains(a,b)},deepIndexOf:function(a,b){for(var c=0;c10;)c=(parseInt(c.substring(0,10))+parseInt(c.substring(10,c.length),10)).toString();c=(f*c+g)%h;for(var j="",k="",d=0;d10;)c=(parseInt(c.substring(0,10),10)+parseInt(c.substring(10,c.length),10)).toString();c=(g*c+h)%i;for(var k="",l="",d=0;de[0]?f=["y",1]:a>=d[0]&&a<=e[0]&&(a==d[0]&&(be[1]?f=["m",1]:b==e[1]&&c>e[2]&&(f=["d",1]))),f},checkDateLegal:function(a){var b=a.match(/\d+/g),c=0|b[0],d=0|b[1],e=0|b[2];if(b.length<=1)return!0;if(b.length<=2)return d>=1&&d<=12;var f=BI.Date._MD.slice(0);return f[1]=BI.isLeapYear(c)?29:28,d>=1&&d<=12&&e<=f[d-1]},parseDateTime:function(a,b){var c=BI.getDate(),d=0,e=0,f=1,g=a.split(/\W+/);if("%y%x"==b.toLowerCase()||"%y%x%d"==b.toLowerCase()){var h=4,i=2;g[0]=a.substring(0,h),g[1]=a.substring(h,h+i),g[2]=a.substring(h+i,h+2*i)}var j=b.match(/%./g),k=0,l=0,m=0,n=0,o=0;for(k=0;k29?1900:2e3);break;case"%b":case"%B":for(l=0;l<12;++l)if(BI.Date._MN[l].substr(0,g[k].length).toLowerCase()==g[k].toLowerCase()){e=l;break}break;case"%H":case"%I":case"%k":case"%l":m=parseInt(g[k],10);break;case"%P":case"%p":/pm/i.test(g[k])&&m<12?m+=12:/am/i.test(g[k])&&m>=12&&(m-=12);break;case"%M":n=parseInt(g[k],10);case"%S":o=parseInt(g[k],10)}if(isNaN(d)&&(d=c.getFullYear()),isNaN(e)&&(e=c.getMonth()),isNaN(f)&&(f=c.getDate()),isNaN(m)&&(m=c.getHours()),isNaN(n)&&(n=c.getMinutes()),isNaN(o)&&(o=c.getSeconds()),0!=d)return BI.getDate(d,e,f,m,n,o);for(d=0,e=-1,f=0,k=0;k31&&0==d?(d=parseInt(g[k],10),d<100&&(d+=d>29?1900:2e3)):0==f&&(f=g[k]);return 0==d&&(d=c.getFullYear()),e!=-1&&0!=f?BI.getDate(d,e,f,m,n,o):c},getDate:function(){var a,b=arguments.length,c=arguments;switch(b){case 0:a=new Date;break;case 1:a=new Date(c[0]);break;case 2:a=new Date(c[0],c[1]);break;case 3:a=new Date(c[0],c[1],c[2]);break;case 4:a=new Date(c[0],c[1],c[2],c[3]);break;case 5:a=new Date(c[0],c[1],c[2],c[3],c[4]);break;case 6:a=new Date(c[0],c[1],c[2],c[3],c[4],c[5]);break;case 7:a=new Date(c[0],c[1],c[2],c[3],c[4],c[5],c[6]);break;default:a=new Date}if(BI.isNotNull(BI.timeZone)&&(0===arguments.length||1===arguments.length&&BI.isNumber(arguments[0]))){var d=a.getTime(),e=6e4*(new Date).getTimezoneOffset(),f=d+e;return new Date(f+BI.timeZone)}return a},getTime:function(){var a,b=arguments.length,c=arguments;switch(b){case 0:a=new Date;break;case 1:a=new Date(c[0]);break;case 2:a=new Date(c[0],c[1]);break;case 3:a=new Date(c[0],c[1],c[2]);break;case 4:a=new Date(c[0],c[1],c[2],c[3]);break;case 5:a=new Date(c[0],c[1],c[2],c[3],c[4]);break;case 6:a=new Date(c[0],c[1],c[2],c[3],c[4],c[5]);break;case 7:a=new Date(c[0],c[1],c[2],c[3],c[4],c[5],c[6]);break;default:a=new Date}return BI.isNotNull(BI.timeZone)?a.getTime()-BI.timeZone-6e4*(new Date).getTimezoneOffset():a.getTime()}})}(),!function(){function a(){for(var a,b,c,d,e=arguments[0]||{},f=arguments.length,g=1;g0;)BI.prepares.shift()();var e,f;if(a||(a={}),BI.isWidget(c)?(d=c,c={}):c||(c={}),BI.isEmpty(a)&&BI.isEmpty(c))return BI.createWidget({type:"bi.layout"});if(BI.isWidget(a))return a;if(a.type||c.type)return e=BI.extend({},c,a),f=BI.Plugin.getWidget(e.type,e),f.listeners=(f.listeners||[]).concat([{eventName:BI.Events.MOUNT,action:function(){BI.Plugin.getObject(e.type,this)}}]),f.type===e.type?b(f):BI.createWidget(BI.extend({},a,{type:f.type},c));if(a.el&&(a.el.type||c.type))return e=BI.extend({},c,a.el),f=BI.Plugin.getWidget(e.type,e),f.listeners=(f.listeners||[]).concat([{eventName:BI.Events.MOUNT,action:function(){BI.Plugin.getObject(e.type,this)}}]),f.type===e.type?b(f):BI.createWidget(BI.extend({},a,{type:f.type},c));if(BI.isWidget(a.el))return a.el;throw new Error("无法根据item创建组件")}}(),!function(){function a(a){return function(b,c,d){var e,f=b[c];f&&f.target==b||(e=b[c]=function(){for(var a,b=e.before,c=arguments,d=b.length;d--;){if(a=b[d].advice.apply(this,c),a===!1)return!1;c=a||c}for(var f=e.method.apply(this,c),g=e.after,h=0,i=g.length;h127&&d<2048?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b},c=function(a){for(var b="",c=0,d=0,e=0,f=0;c191&&d<224?(f=a.charCodeAt(c+1),b+=String.fromCharCode((31&d)<<6|63&f),c+=2):(f=a.charCodeAt(c+1),e=a.charCodeAt(c+2),b+=String.fromCharCode((15&d)<<12|(63&f)<<6|63&e),c+=3);return b};_.extend(BI,{encode:function(c){var d,e,f,g,h,i,j,k="",l=0;for(c=b(c);l>2,h=(3&d)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k=k+a.charAt(g)+a.charAt(h)+a.charAt(i)+a.charAt(j);return k},decode:function(b){var d,e,f,g,h,i,j,k="",l=0;for(b=b.replace(/[^A-Za-z0-9\+\/\=]/g,"");l>4,e=(15&h)<<4|i>>2,f=(3&i)<<6|j,k+=String.fromCharCode(d),64!=i&&(k+=String.fromCharCode(e)),64!=j&&(k+=String.fromCharCode(f));return k=c(k)}})}(),BI.Cache={_prefix:"bi",setUsername:function(a){localStorage.setItem(BI.Cache._prefix+".username",(a+""||"").toUpperCase())},getUsername:function(){return localStorage.getItem(BI.Cache._prefix+".username")||""},_getKeyPrefix:function(){return BI.Cache.getUsername()+"."+BI.Cache._prefix+"."},_generateKey:function(a){return BI.Cache._getKeyPrefix()+(a||"")},getItem:function(a){return localStorage.getItem(BI.Cache._generateKey(a))},setItem:function(a,b){localStorage.setItem(BI.Cache._generateKey(a),b)},removeItem:function(a){localStorage.removeItem(BI.Cache._generateKey(a))},clear:function(){for(var a=localStorage.length;a>=0;a--){var b=localStorage.key(a);b&&0===b.indexOf(BI.Cache._getKeyPrefix())&&localStorage.removeItem(b)}},keys:function(){for(var a=[],b=localStorage.length;b>=0;b--){var c=localStorage.key(b);if(c){var d=BI.Cache._getKeyPrefix();0===c.indexOf(d)&&(a[a.length]=c.substring(d.length))}}return a},addCookie:function(a,b,c,d){var e=a+"="+escape(b);if(d&&d>0){var f=new Date;f.setTime(BI.getTime()+3600*d*1e3),e=e+"; expires="+f.toGMTString()}c&&(e=e+"; path="+c),document.cookie=e},getCookie:function(a){var b,c=new RegExp("(^| )"+a+"=([^;]*)(;|$)");return(b=document.cookie.match(c))?unescape(b[2]):null},deleteCookie:function(a,b){var c=new Date;c.setTime(BI.getTime()-1e4);var d=a+"=v; expires="+c.toGMTString();b&&(d=d+"; path="+b),document.cookie=d}},BI.CellSizeAndPositionManager=function(a,b,c){this._cellSizeGetter=b,this._cellCount=a,this._estimatedCellSize=c,this._cellSizeAndPositionData={},this._lastMeasuredIndex=-1},BI.CellSizeAndPositionManager.prototype={constructor:BI.CellSizeAndPositionManager,configure:function(a,b){this._cellCount=a,this._estimatedCellSize=b},getCellCount:function(){return this._cellCount},getEstimatedCellSize:function(){return this._estimatedCellSize},getLastMeasuredIndex:function(){return this._lastMeasuredIndex},getSizeAndPositionOfCell:function(a){if(!(a<0||a>=this._cellCount)){if(a>this._lastMeasuredIndex){for(var b=this.getSizeAndPositionOfLastMeasuredCell(),c=b.offset+b.size,d=this._lastMeasuredIndex+1;d<=a;d++){var e=this._cellSizeGetter(d);null==e||isNaN(e)||(this._cellSizeAndPositionData[d]={offset:c,size:e},c+=e)}this._lastMeasuredIndex=a}return this._cellSizeAndPositionData[a]}},getSizeAndPositionOfLastMeasuredCell:function(){return this._lastMeasuredIndex>=0?this._cellSizeAndPositionData[this._lastMeasuredIndex]:{offset:0,size:0}},getTotalSize:function(){var a=this.getSizeAndPositionOfLastMeasuredCell();return a.offset+a.size+(this._cellCount-this._lastMeasuredIndex-1)*this._estimatedCellSize},getUpdatedOffsetForIndex:function(a,b,c,d){var e,f=this.getSizeAndPositionOfCell(d),g=f.offset,h=g-b+f.size;switch(a){case"start":e=g;break;case"end":e=h;break;case"center":e=g-(b-f.size)/2;break;default:e=Math.max(h,Math.min(g,c))}var i=this.getTotalSize();return Math.max(0,Math.min(i-b,e))},getVisibleCellRange:function(a,b){var c=this.getTotalSize();if(0===c)return{};var d=b+a,e=this._findNearestCell(b),f=this.getSizeAndPositionOfCell(e);b=f.offset+f.size;for(var g=e;bc&&(a=d-1)}if(b>0)return b-1},_exponentialSearch:function(a,b){for(var c=1;a=a?this._binarySearch(c,0,a):this._exponentialSearch(c,a)}}},BI.ScalingCellSizeAndPositionManager=function(a,b,c,d){this._cellSizeAndPositionManager=new BI.CellSizeAndPositionManager(a,b,c),this._maxScrollSize=d||1e7},BI.ScalingCellSizeAndPositionManager.prototype={constructor:BI.ScalingCellSizeAndPositionManager,configure:function(){this._cellSizeAndPositionManager.configure.apply(this._cellSizeAndPositionManager,arguments)},getCellCount:function(){return this._cellSizeAndPositionManager.getCellCount()},getEstimatedCellSize:function(){return this._cellSizeAndPositionManager.getEstimatedCellSize()},getLastMeasuredIndex:function(){return this._cellSizeAndPositionManager.getLastMeasuredIndex()},getOffsetAdjustment:function(a,b){var c=this._cellSizeAndPositionManager.getTotalSize(),d=this.getTotalSize(),e=this._getOffsetPercentage(a,b,d);return Math.round(e*(d-c))},getSizeAndPositionOfCell:function(a){return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(a)},getSizeAndPositionOfLastMeasuredCell:function(){return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell()},getTotalSize:function(){return Math.min(this._maxScrollSize,this._cellSizeAndPositionManager.getTotalSize())},getUpdatedOffsetForIndex:function(a,b,c,d){c=this._safeOffsetToOffset(b,c);var e=this._cellSizeAndPositionManager.getUpdatedOffsetForIndex(a,b,c,d);return this._offsetToSafeOffset(b,e)},getVisibleCellRange:function(a,b){return b=this._safeOffsetToOffset(a,b),this._cellSizeAndPositionManager.getVisibleCellRange(a,b)},resetCell:function(a){this._cellSizeAndPositionManager.resetCell(a)},_getOffsetPercentage:function(a,b,c){return c<=a?0:b/(c-a)},_offsetToSafeOffset:function(a,b){var c=this._cellSizeAndPositionManager.getTotalSize(),d=this.getTotalSize();if(c===d)return b;var e=this._getOffsetPercentage(a,b,c);return Math.round(e*(d-a))},_safeOffsetToOffset:function(a,b){var c=this._cellSizeAndPositionManager.getTotalSize(),d=this.getTotalSize();if(c===d)return b;var e=this._getOffsetPercentage(a,b,d);return Math.round(e*(c-a))}},!function(){var a="YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGHGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY",b={ -19969:"DZ",19975:"WM",19988:"QJ",20048:"YL",20056:"SC",20060:"NM",20094:"QG",20127:"QJ",20167:"QC",20193:"YG",20250:"KH",20256:"ZC",20282:"SC",20285:"QJG",20291:"TD",20314:"YD",20315:"BF",20340:"NE",20375:"TD",20389:"YJ",20391:"CZ",20415:"PB",20446:"YS",20447:"SQ",20504:"TC",20608:"KG",20854:"QJ",20857:"ZC",20911:"PF",20985:"AW",21032:"PB",21048:"XQ",21049:"SC",21089:"YS",21119:"JC",21242:"SB",21273:"SC",21305:"YP",21306:"QO",21330:"ZC",21333:"SDC",21345:"QK",21378:"CA",21397:"SC",21414:"XS",21442:"SC",21477:"JG",21480:"TD",21484:"ZS",21494:"YX",21505:"YX",21512:"HG",21523:"XH",21537:"PB",21542:"PF",21549:"KH",21571:"E",21574:"DA",21588:"TD",21589:"O",21618:"ZC",21621:"KHA",21632:"ZJ",21654:"KG",21679:"LKG",21683:"KH",21710:"A",21719:"YH",21734:"WOE",21769:"A",21780:"WN",21804:"XH",21834:"A",21899:"ZD",21903:"RN",21908:"WO",21939:"ZC",21956:"SA",21964:"YA",21970:"TD",22003:"A",22031:"JG",22040:"XS",22060:"ZC",22066:"ZC",22079:"MH",22129:"XJ",22179:"XA",22237:"NJ",22244:"TD",22280:"JQ",22300:"YH",22313:"XW",22331:"YQ",22343:"YJ",22351:"PH",22395:"DC",22412:"TD",22484:"PB",22500:"PB",22534:"ZD",22549:"DH",22561:"PB",22612:"TD",22771:"KQ",22831:"HB",22841:"JG",22855:"QJ",22865:"XQ",23013:"ML",23081:"WM",23487:"SX",23558:"QJ",23561:"YW",23586:"YW",23614:"YW",23615:"SN",23631:"PB",23646:"ZS",23663:"ZT",23673:"YG",23762:"TD",23769:"ZS",23780:"QJ",23884:"QK",24055:"XH",24113:"DC",24162:"ZC",24191:"GA",24273:"QJ",24324:"NL",24377:"TD",24378:"QJ",24439:"PF",24554:"ZS",24683:"TD",24694:"WE",24733:"LK",24925:"TN",25094:"ZG",25100:"XQ",25103:"XH",25153:"PB",25170:"PB",25179:"KG",25203:"PB",25240:"ZS",25282:"FB",25303:"NA",25324:"KG",25341:"ZY",25373:"WZ",25375:"XJ",25384:"A",25457:"A",25528:"SD",25530:"SC",25552:"TD",25774:"ZC",25874:"ZC",26044:"YW",26080:"WM",26292:"PB",26333:"PB",26355:"ZY",26366:"CZ",26397:"ZC",26399:"QJ",26415:"ZS",26451:"SB",26526:"ZC",26552:"JG",26561:"TD",26588:"JG",26597:"CZ",26629:"ZS",26638:"YL",26646:"XQ",26653:"KG",26657:"XJ",26727:"HG",26894:"ZC",26937:"ZS",26946:"ZC",26999:"KJ",27099:"KJ",27449:"YQ",27481:"XS",27542:"ZS",27663:"ZS",27748:"TS",27784:"SC",27788:"ZD",27795:"TD",27812:"O",27850:"PB",27852:"MB",27895:"SL",27898:"PL",27973:"QJ",27981:"KH",27986:"HX",27994:"XJ",28044:"YC",28065:"WG",28177:"SM",28267:"QJ",28291:"KH",28337:"ZQ",28463:"TL",28548:"DC",28601:"TD",28689:"PB",28805:"JG",28820:"QG",28846:"PB",28952:"TD",28975:"ZC",29100:"A",29325:"QJ",29575:"SL",29602:"FB",30010:"TD",30044:"CX",30058:"PF",30091:"YSP",30111:"YN",30229:"XJ",30427:"SC",30465:"SX",30631:"YQ",30655:"QJ",30684:"QJG",30707:"SD",30729:"XH",30796:"LG",30917:"PB",31074:"NM",31085:"JZ",31109:"SC",31181:"ZC",31192:"MLB",31293:"JQ",31400:"YX",31584:"YJ",31896:"ZN",31909:"ZY",31995:"XJ",32321:"PF",32327:"ZY",32418:"HG",32420:"XQ",32421:"HG",32438:"LG",32473:"GJ",32488:"TD",32521:"QJ",32527:"PB",32562:"ZSQ",32564:"JZ",32735:"ZD",32793:"PB",33071:"PF",33098:"XL",33100:"YA",33152:"PB",33261:"CX",33324:"BP",33333:"TD",33406:"YA",33426:"WM",33432:"PB",33445:"JG",33486:"ZN",33493:"TS",33507:"QJ",33540:"QJ",33544:"ZC",33564:"XQ",33617:"YT",33632:"QJ",33636:"XH",33637:"YX",33694:"WG",33705:"PF",33728:"YW",33882:"SR",34067:"WM",34074:"YW",34121:"QJ",34255:"ZC",34259:"XL",34425:"JH",34430:"XH",34485:"KH",34503:"YS",34532:"HG",34552:"XS",34558:"YE",34593:"ZL",34660:"YQ",34892:"XH",34928:"SC",34999:"QJ",35048:"PB",35059:"SC",35098:"ZC",35203:"TQ",35265:"JX",35299:"JX",35782:"SZ",35828:"YS",35830:"E",35843:"TD",35895:"YG",35977:"MH",36158:"JG",36228:"QJ",36426:"XQ",36466:"DC",36710:"JC",36711:"ZYG",36767:"PB",36866:"SK",36951:"YW",37034:"YX",37063:"XH",37218:"ZC",37325:"ZC",38063:"PB",38079:"TD",38085:"QY",38107:"DC",38116:"TD",38123:"YD",38224:"HG",38241:"XTC",38271:"ZC",38415:"YE",38426:"KH",38461:"YD",38463:"AE",38466:"PB",38477:"XJ",38518:"YT",38551:"WK",38585:"ZC",38704:"XS",38739:"LJ",38761:"GJ",38808:"SQ",39048:"JG",39049:"XJ",39052:"HG",39076:"CZ",39271:"XT",39534:"TD",39552:"TD",39584:"PB",39647:"SB",39730:"LG",39748:"TPB",40109:"ZQ",40479:"ND",40516:"HG",40536:"HG",40583:"QJ",40765:"YQ",40784:"QJ",40840:"YK",40863:"QJG"},c=function(c){var d=c.charCodeAt(0);return d>40869||d<19968?c:b[d]?b[d]:a.charAt(d-19968)},d=function(a){for(var b,c=[""],d=0,e=0,f=a.length;e14){var i=g.substring(0,1);for(b=0;b0&&(this._items[0]=b,this._sinkDown(0)),a}},push:function(a){this._items[this._size++]=a,this._bubbleUp(this._size-1)},size:function(){return this._size},peek:function(){if(0!==this._size)return this._items[0]},_heapify:function(){for(var a=Math.floor((this._size+1)/2);a>=0;a--)this._sinkDown(a)},_bubbleUp:function(a){for(var b=this._items[a];a>0;){var c=Math.floor((a+1)/2)-1,d=this._items[c];if(this._comparator(d,b))return;this._items[c]=b,this._items[a]=d,a=c}},_sinkDown:function(a){for(var b=this._items[a];;){var c=2*(a+1)-1,d=2*(a+1),e=-1;if(c=0;--c)b[c]=0;return b},c=function(a){for(var b=1;b0;--d)this._heap[d]=this._heap[2*d]+this._heap[2*d+1]},BI.PrefixIntervalTree.prototype={constructor:BI.PrefixIntervalTree,set:function(b,c){var d=this._half+b;for(this._heap[d]=c,d=a(d);0!==d;d=a(d))this._heap[d]=this._heap[2*d]+this._heap[2*d+1]},get:function(a){var b=this._half+a;return this._heap[b]},getSize:function(){return this._size},sumUntil:function(b){if(0===b)return 0;for(var c=this._half+b-1,d=this._heap[c];1!==c;c=a(c))c%2===1&&(d+=this._heap[c-1]);return d},sumTo:function(a){return this.sumUntil(a+1)},sum:function(a,b){return this.sumUntil(b)-this.sumUntil(a)},greatestLowerBound:function(a){if(a<0)return-1;var b=1;if(this._heap[b]<=a)return this._size;for(;b=0;--d)c[d]=b;return new BI.PrefixIntervalTree(c)},BI.PrefixIntervalTree.empty=function(a){return BI.PrefixIntervalTree.uniform(a,0)}}(),!function(){BI.Queue=function(a){this.capacity=a,this.array=[]},BI.Queue.prototype={constructor:BI.Queue,contains:function(a){return BI.contains(this.array,a)},indexOf:function(a){return BI.contains(this.array,a)},getElementByIndex:function(a){return this.array[a]},push:function(a){this.array.push(a),this.capacity&&this.array.length>this.capacity&&this.array.shift()},pop:function(){this.array.pop()},shift:function(){this.array.shift()},unshift:function(a){this.array.unshift(a),this.capacity&&this.array.length>this.capacity&&this.array.pop()},remove:function(a){BI.remove(this.array,a)},splice:function(){this.array.splice.apply(this.array,arguments)},slice:function(){this.array.slice.apply(this.array,arguments)},size:function(){return this.array.length},each:function(a,b){var b=b||window,a=a||null;if(null!=a&&"function"==typeof a)for(var c=0;c0?{children:c}:{})},toJSON:function(a){var b=this,c=[];return BI.each((a||this.root).getChildren(),function(a,d){c.push(b._toJSON(d))}),c},_toJSONWithNode:function(a){var b=this,c=[];return BI.each(a.getChildren(),function(a,d){c.push(b._toJSONWithNode(d))}),BI.extend({id:a.id},BI.deepClone(a.get("data")),{node:a},c.length>0?{children:c}:{})},toJSONWithNode:function(a){var b=this,c=[];return BI.each((a||this.root).getChildren(),function(a,d){c.push(b._toJSONWithNode(d))}),c},search:function(a,b,c){if(!(a instanceof BI.Node))return arguments.callee.apply(this,[this.root,a,b]);var d=this,e=null;return BI.isNull(b)?null:BI.isEqual(a[c||"id"],b)?a:(BI.any(a.getChildren(),function(a,f){if(e=d.search(f,b,c),null!==e)return!0}),e)},_traverse:function(a,b){var c=[];for(c.push(a);!BI.isEmpty(c);){var d=c.shift(),e=b&&b(d);if(e===!1)break;e!==!0&&null!=d&&(c=c.concat(d.getChildren()))}},traverse:function(a){this._traverse(this.root,a)},_recursion:function(a,b,c){var d=this;return BI.every(a.getChildren(),function(a,e){var f=BI.clone(b);f.push(e.id);var g=c&&c(e,f);return g!==!1&&(g===!0||d._recursion(e,f,c))})},recursion:function(a){this._recursion(this.root,[],a)},inOrderTraverse:function(a){this._inOrderTraverse(this.root,a)},_inOrderTraverse:function(a,b){null!=a&&(this._inOrderTraverse(a.getLeft()),b&&b(a),this._inOrderTraverse(a.getRight()))},nrInOrderTraverse:function(a){for(var b=[],c=this.root;null!=c||!BI.isEmpty(b);){for(;null!=c;)b.push(c),c=c.getLeft();c=b.pop(),a&&a(c),c=c.getRight()}},preOrderTraverse:function(a){this._preOrderTraverse(this.root,a)},_preOrderTraverse:function(a,b){null!=a&&(b&&b(a),this._preOrderTraverse(a.getLeft()),this._preOrderTraverse(a.getRight()))},nrPreOrderTraverse:function(a){for(var b=[],c=this.root;null!=c||!BI.isEmpty(b);){for(;null!=c;)a&&a(c),b.push(c),c=c.getLeft();c=b.pop(),c=c.getRight()}},postOrderTraverse:function(a){this._postOrderTraverse(this.root,a)},_postOrderTraverse:function(a,b){null!=a&&(this._postOrderTraverse(a.getLeft()),this._postOrderTraverse(a.getRight()),b&&b(a))},nrPostOrderTraverse:function(a){for(var b=[],c=this.root,d=null;null!=c||!BI.isEmpty(b);){for(;null!=c;)b.push(c),c=c.getLeft();c=BI.last(b),null==c.getRight()||c.getRight()==d?(a&&a(c),c=b.pop(),d=c,c=null):c=c.getRight()}}},BI.Node=function(a){BI.isObject(a)?BI.extend(this,a):this.id=a,this.clear.apply(this,arguments)},BI.Node.prototype={constructor:BI.Node,set:function(a,b){return BI.isObject(a)?void BI.extend(this,a):void(this[a]=b)},get:function(a){return this[a]},isLeaf:function(){return BI.isEmpty(this.children)},getChildren:function(){return this.children},getChildrenLength:function(){return this.children.length},getFirstChild:function(){return BI.first(this.children)},getLastChild:function(){return BI.last(this.children)},setLeft:function(a){this.left=a},getLeft:function(){return this.left},setRight:function(a){this.right=a},getRight:function(){return this.right},setParent:function(a){this.parent=a},getParent:function(){return this.parent},getChild:function(a){return this.children[a]},getChildIndex:function(a){return BI.findIndex(this.children,function(b,c){return c.get("id")===a})},removeChild:function(a){this.removeChildByIndex(this.getChildIndex(a))},removeChildByIndex:function(a){var b=this.getChild(a-1),c=this.getChild(a+1);null!=b&&b.setRight(c||null),null!=c&&c.setLeft(b||null),this.children.splice(a,1)},removeAllChilds:function(){this.children=[]},addChild:function(a,b){var c=null;c=BI.isUndefined(b)?this.children.length-1:b-1,a.setParent(this),c>=0&&(this.getChild(c)&&this.getChild(c).setRight(a),a.setLeft(this.getChild(c))),BI.isUndefined(b)?this.children.push(a):this.children.splice(b,0,a)},equals:function(a){return this===a||this.id===a.id},clear:function(){this.parent=null,this.left=null,this.right=null,this.children=[]}},BI.extend(BI.Tree,{transformToArrayFormat:function(a,b){if(!a)return[];var c=[];if(BI.isArray(a))for(var d=0,e=a.length;d=this.x&&a<=this.x+this.w&&b>=this.y&&b<=this.y+this.h)},getPosition:function(){var a=[];return a.push(this.x+this.w/2),a.push(this.y+this.h/2),a}},BI.BehaviorFactory={createBehavior:function(a,b){var c;switch(a){case"highlight":c=BI.HighlightBehavior;break;case"redmark":c=BI.RedMarkBehavior}return new c(b)}},BI.Behavior=BI.inherit(BI.OB,{_defaultConfig:function(){return BI.extend(BI.Behavior.superclass._defaultConfig.apply(this,arguments),{rule:function(){return!0}})},_init:function(){BI.Behavior.superclass._init.apply(this,arguments)},doBehavior:function(){}}),BI.Layout=BI.inherit(BI.Widget,{props:function(){return{scrollable:null,scrollx:!1,scrolly:!1,items:[]}},render:function(){this._init4Margin(),this._init4Scroll()},_init4Margin:function(){this.options.top&&this.element.css("top",this.options.top),this.options.left&&this.element.css("left",this.options.left),this.options.bottom&&this.element.css("bottom",this.options.bottom),this.options.right&&this.element.css("right",this.options.right)},_init4Scroll:function(){switch(this.options.scrollable){case!0:this.element.css("overflow","auto");break;case!1:this.element.css("overflow","hidden")}this.options.scrollx&&this.element.css({"overflow-x":"auto","overflow-y":"hidden"}),this.options.scrolly&&this.element.css({"overflow-x":"hidden","overflow-y":"auto"})},appendFragment:function(a){this.element.append(a)},_mountChildren:function(){var a=this,b=BI.Widget._renderEngine.createFragment(),c=!1;BI.each(this._children,function(d,e){e.element!==a.element&&(b.appendChild(e.element[0]),c=!0)}),c===!0&&this.appendFragment(b)},_getChildName:function(a){return a+""},_addElement:function(a,b,c){var d,e=this;return this.hasWidget(this._getChildName(a))?d=this.getWidgetByName(this._getChildName(a)):(d=BI.createWidget(b,c),d.on(BI.Events.DESTROY,function(){BI.each(e._children,function(a,b){b===d&&(BI.remove(e._children,b),e.removeItemAt(0|a))})}),this.addWidget(this._getChildName(a),d)),d},_getOptions:function(a){return a instanceof BI.Widget&&(a=a.options),a=BI.stripEL(a),a instanceof BI.Widget&&(a=a.options),a},_compare:function(a,b){function c(a,b,e,f){if(a===b)return 0!==a||1/a===1/b;if(null==a||null==b)return a===b;var g=Object.prototype.toString.call(a);switch(g){case"[object RegExp]":case"[object String]":return""+a==""+b;case"[object Number]":return+a!==+a?+b!==+b:0===+a?1/+a===1/b:+a===+b;case"[object Date]":case"[object Boolean]":return+a===+b}var h="[object Array]"===g;if(!h){if(BI.isFunction(a)&&BI.isFunction(b))return!0;a=d._getOptions(a),b=d._getOptions(b)}e=e||[],f=f||[];for(var i=e.length;i--;)if(e[i]===a)return f[i]===b;if(e.push(a),f.push(b),h){if(i=a.length,i!==b.length)return!1;for(;i--;)if(!c(a[i],b[i],e,f))return!1}else{var j,k=_.keys(a);if(i=k.length,_.keys(b).length!==i)return!1;for(;i--;)if(j=k[i],!_.has(b,j)||!c(a[j],b[j],e,f))return!1}return e.pop(),f.pop(),!0}var d=this;return c(a,b)},_getWrapper:function(){return this.element},_addItemAt:function(a,b){for(var c=this.options.items.length;c>a;c--)this._children[this._getChildName(c)]=this._children[this._getChildName(c-1)];delete this._children[this._getChildName(a)],this.options.items.splice(a,0,b)},_removeItemAt:function(a){for(var b=a;bthis.options.items.length)){this._addItemAt(a,b);var c=this._addElement(a,b);return a>0?this._children[this._getChildName(a-1)].element.after(c.element):c.element.prependTo(this._getWrapper()),c._mount(),c}},removeItemAt:function(a){a=BI.isArray(a)?a:[a];for(var b=[],c=[],d={},e=0,f=this.options.items.length;ethis.options.items.length-1)return!1;var c=this._children[this._getChildName(a)];return c.shouldUpdate?c.shouldUpdate(this._getOptions(b))===!0:null},updateItemAt:function(a,b){if(!(a<0||a>this.options.items.length-1)){var c,d=this._children[this._getChildName(a)];if(c=d.update(this._getOptions(b)))return c;var e=this._children[this._getChildName(a)];delete this._children[this._getChildName(a)],this.options.items.splice(a,1);var f=this._addElement(a,b);this.options.items.splice(a,0,b),this._children[this._getChildName(a)]=f,a>0?this._children[this._getChildName(a-1)].element.after(f.element):f.element.prependTo(this._getWrapper()),e._destroy(),f._mount()}},addItems:function(a,b){var c=this,d=this.options,e=BI.Widget._renderEngine.createFragment(),f=[];BI.each(a,function(a,g){var h=c._addElement(d.items.length,g,b);c._children[c._getChildName(d.items.length)]=h,d.items.push(g),f.push(h),e.appendChild(h.element[0])}),this._isMounted&&(this._getWrapper().append(e),BI.each(f,function(a,b){b._mount()}))},prependItems:function(a,b){var c=this;a=a||[];for(var d=BI.Widget._renderEngine.createFragment(),e=[],f=a.length-1;f>=0;f--){this._addItemAt(0,a[f]);var g=this._addElement(0,a[f],b);c._children[c._getChildName(0)]=g,this.options.items.unshift(a[f]),e.push(g),d.appendChild(g.element[0])}this._isMounted&&(this._getWrapper().prepend(d),BI.each(e,function(a,b){b._mount()}))},getValue:function(){var a,b=this,c=[];return BI.each(this.options.items,function(d){if(a=b._children[b._getChildName(d)]){var e=a.getValue();e=BI.isArray(e)?e:[e],c=c.concat(e)}}),c},setValue:function(a){var b,c=this;BI.each(this.options.items,function(d){(b=c._children[c._getChildName(d)])&&b.setValue(a)})},setText:function(a){var b,c=this;BI.each(this.options.items,function(d){(b=c._children[c._getChildName(d)])&&b.setText(a)})},patchItem:function(a,b,c){var d=this.shouldUpdateItem(c,b);if(d===!0||null===d&&!this._compare(a,b))return this.updateItemAt(c,b)},updateChildren:function(a,b){function c(a,b,c,d){return a=k._getOptions(a),b=k._getOptions(b),BI.isKey(a.key)?a.key===b.key:c>=0?c===d:void 0}function d(a,b){var c=k._getOptions(a),d=null==c.key?k._getChildName(b):c.key;return t[d]=k._addElement(d,a)}function e(a,b,c,e){for(;c<=e;++c){var f=d(b[c],c);g(f,a,!1,c)}}function f(a,b,c){for(;b<=c;++b){var d=a[b];if(BI.isNotNull(d)){var e=k._getOptions(d),f=null==e.key?k._getChildName(b):e.key;delete k._children[k._getChildName(f)],t[f]._destroy()}}}function g(a,b,c,d){a=k._getOptions(a),b=b&&k._getOptions(b);var e=BI.isKey(a.key)?a.key:k._getChildName(d);if(b&&t[b.key]){var f,g=BI.isKey(b.key)?b.key:k._getChildName(d);f=c?t[g].element.next():t[g].element,f.length>0?f.before(t[e].element):k._getWrapper().append(t[e].element)}else k._getWrapper().append(t[e].element)}function h(a,b,d,e){var f,g;for(f=d;f<=e;++f)a[f]&&c(a[f],b)&&(g=a[f]);return g}var i,j,k=this,l=0,m=0,n=a.length-1,o=a[0],p=a[n],q=b.length-1,r=b[0],s=b[q],t={};for(BI.each(a,function(a,b){b=k._getOptions(b);var c=null==b.key?a:b.key;BI.isKey(c)&&(t[c]=k._children[k._getChildName(a)])});l<=n&&m<=q;)if(BI.isNull(o))o=a[++l];else if(BI.isNull(p))p=a[--n];else if(c(o,r,l,m))j=this.patchItem(o,r,l)||j,t[null==o.key?this._getChildName(l):o.key]=this._children[this._getChildName(l)],o=a[++l],r=b[++m];else if(c(p,s,n,q))j=this.patchItem(p,s,n)||j,t[null==p.key?this._getChildName(n):p.key]=this._children[this._getChildName(n)],p=a[--n],s=b[--q];else if(c(o,s))j=this.patchItem(o,s,l)||j,t[null==o.key?this._getChildName(l):o.key]=this._children[this._getChildName(l)],g(o,p,!0),o=a[++l],s=b[--q];else if(c(p,r))j=this.patchItem(p,r,n)||j,t[null==p.key?this._getChildName(n):p.key]=this._children[this._getChildName(n)],g(p,o),p=a[--n],r=b[++m];else{var u=h(a,r,l,n);if(BI.isNull(u)){var v=d(r);g(v,o),r=b[++m]}else BI.each(a,function(b,d){d&&c(d,r)&&(j=k.patchItem(u,r,b)||j,t[null==u.key?k._getChildName(b):u.key]=k._children[k._getChildName(b)],a[b]=void 0,g(u,o))}),r=b[++m]}return l>n?(i=BI.isNull(b[q+1])?null:b[q+1],e(i,b,m,q)):m>q&&f(a,l,n),this._children={},BI.each(b,function(a,b){var c=k._getOptions(b),d=null==c.key?k._getChildName(a):c.key;t[d]._mount(),k._children[k._getChildName(a)]=t[d]}),j},update:function(a){var b=this.options,c=a.items||[],d=this.updateChildren(b.items,c);return this.options.items=c,d},stroke:function(a){var b=this;BI.each(a,function(a,c){c&&b._addElement(a,c)})},removeWidget:function(a){var b;BI.isWidget(a)?BI.each(this._children,function(c,d){d===a&&(b=c)}):b=a,b&&this._removeItemAt(0|b)},empty:function(){BI.Layout.superclass.empty.apply(this,arguments),this.options.items=[]},destroy:function(){BI.Layout.superclass.destroy.apply(this,arguments),this.options.items=[]},populate:function(a){this.options;return a=a||[],this._isMounted?void this.update({items:a}):(this.options.items=a,void this.stroke(a))},resize:function(){}}),BI.shortcut("bi.layout",BI.Layout),BI.Plugin=BI.Plugin||{},!function(){var a,b,c={},d={},e={};BI.extend(BI.Plugin,{getWidget:function(b,d){if(a&&a(b,d),e[b])for(var f=e[b].length-1;f>=0;f--)e[b][f](d);if(c[b])for(var g,f=c[b].length-1;f>=0;f--)if(g=c[b][f](d))return g;return d},config:function(c,d){a=c,b=d},configWidget:function(a,b){e[a]||(e[a]=[]),e[a].push(b)},registerWidget:function(a,b){c[a]||(c[a]=[]),c[a].length>0&&console.log("组件已经注册过了!"),c[a].push(b)},relieveWidget:function(a){delete c[a]},getObject:function(a,c){if(b&&b(a,c),d[a])for(var e,f=0,g=d[a].length;f0&&console.log("对象已经注册过了!"),d[a].push(b)},relieveObject:function(a){delete d[a]}})}(),BI.Action=BI.inherit(BI.OB,{_defaultConfig:function(){return BI.extend(BI.Action.superclass._defaultConfig.apply(this,arguments),{src:null,tar:null})},_init:function(){BI.Action.superclass._init.apply(this,arguments)},actionPerformed:function(a,b,c){},actionBack:function(a,b,c){}}),BI.ActionFactory={createAction:function(a,b){var c;switch(a){case"show":c=BI.ShowAction}return new c(b)}},BI.ShowAction=BI.inherit(BI.Action,{_defaultConfig:function(){return BI.extend(BI.ShowAction.superclass._defaultConfig.apply(this,arguments),{})},_init:function(){BI.ShowAction.superclass._init.apply(this,arguments)},actionPerformed:function(a,b,c){b=b||this.options.tar,b.setVisible(!0),c&&c()},actionBack:function(a,b,c){a=a||this.options.tar,a.setVisible(!1),c&&c()}}),function(){function isEmpty(a){var b=""===a||null===a||void 0===a;return b}function isInvalidDate(a){return"Invalid Date"==a||"NaN"==a}function _eFormat(a,b){function c(a,b){var c=a<0?(a*=-1,"-"):"",h="",i=a>0&&a<1?"floor":"ceil",j=Math[i](Math.log(a)/Math.log(10));if(!isFinite(j))return b.replace(/#/gi,"").replace(/\.e/gi,"E");a/=Math.pow(10,j),a>0&&a<1&&(a*=10,j-=1);var k=f(j,b);k>1&&(j-=k-1,a*=Math.pow(10,k-1)),j<0&&(h="-",j*=-1);var l=e(b),m=g(a);return a*=Math.pow(10,l),a=Math.round(a),m&&(a/=10,j+="-"===h?-1:1),a/=Math.pow(10,l),a=a.toFixed(l),j=d(b,j,h),c+a+"E"+j}function d(a,b,c){if(b+="",!/e/gi.test(a))return b;for(a=a.split(/e/gi)[1];b.length1?b[1].length:0}function f(a,b){if(!/e/gi.test(b))return 0;var c,d,e=b.split(/e/gi)[0].split(".")[0],f=e.length,g=0;for(c=0;c-1)return a>=0?_numberFormat(a+"",b.substring(0,c)):_numberFormat(-a+"",b.substr(c+1));if(+a<0&&"-"!==b.charAt(0))return _numberFormat(-a+"","-"+b);var d=b.split("."),e=d[0]||"",f=d[1]||"";a=_dealNumberPrecision(a,f);var g=a.split("."),h=g[0]||"",i=g[1]||"";if(/[%‰]$/.test(b)){var j=/[%]$/.test(b)?"00":"000";i+=j,h+=i.substr(0,j.length),h=h.replace(/^0+/gi,""),i=i.substr(j.length).replace(/0+$/gi,"")}var k=_dealWithRight(i,f);k.leftPlus&&(h=parseInt(h)+1+"",h=isNaN(h)?"1":h),k=k.num;var l=_dealWithLeft(h,e);return/[0-9]/.test(l)||(l+="0"),/[0-9]/.test(k)?l+"."+k:l+k}function _dealWithRight(a,b){for(var c="",d=0,e=0,f=b.length;e4){j.leftPlus=!0;var k=c.match(/^[0-9]+/);if(k){var l=k[0],m=l.length,n=parseInt(l)+1+"";n.length>m?n=n.substr(1):(n=BI.leftPad(n,m,"0"),j.leftPlus=!1),c=c.replace(/^[0-9]+/,n)}}return j.num=c,j}function _dealWithLeft(a,b){for(var c="",d=a.length-1,e=-1,f=-1,g=b.length-1;g>=0;g--){var h=b.charAt(g),i=a.charAt(d);switch(h){case"0":isEmpty(i)&&(i="0"),f=-1,c=i+c,d--;break;case"#":f=g,c=i+c,d--;break;case",":if(!isEmpty(i)){var j=b.match(/,[#0]+/);j&&(e=j[0].length-1),c=","+c}break;default:c=h+c}}if(f>-1){var k=a.substr(0,d+1);c=c.substr(0,f)+k+c.substr(f)}if(e>0){var l=c.match(/[0-9]+,/);if(l){l=l[0];for(var m="",n=l.length-1-e;n>=0;n-=e)m=l.substr(n,e)+","+m;var o=l.substr(0,n+e);isEmpty(o)||(m=o+","+m)}c=c.replace(/[0-9]+,/,m)}return c}var _global;_global="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,_global.BI||(_global.BI={}),BI.cjkEncode=function(a){if("string"!=typeof a)return a;for(var b="",c=0;c=128||91===d||93===d?"["+d.toString(16)+"]":a.charAt(c)}return b},BI.cjkDecode=function(text){if(null==text)return"";if(!isNaN(text)||text.indexOf("[")==-1)return text;for(var newText="",i=0;ii+1){var subText=text.substring(i+1,rightIdx);subText.length>0&&(ch=String.fromCharCode(eval("0x"+subText))),i=rightIdx}}newText+=ch}return newText};var SPECIAL_TAGS={"&":"&",'"':""","<":"<",">":">"," ":" "};BI.htmlEncode=function(a){return BI.isNull(a)?"":BI.replaceAll(a+"",'&|"|<|>|\\s',function(a){return SPECIAL_TAGS[a]?SPECIAL_TAGS[a]:" "})},BI.htmlDecode=function(a){return BI.isNull(a)?"":BI.replaceAll(a+"","&|"|<|>| ",function(a){switch(a){case"&":return"&";case""":return'"';case"<":return"<";case">":return">";case" ":default:return" "}})},BI.cjkEncodeDO=function(a){if(BI.isPlainObject(a)){var b={};return _.each(a,function(a,c){"string"!=typeof a&&(a=BI.jsonEncode(a)),c=BI.cjkEncode(c),b[c]=BI.cjkEncode(a)}),b}return a},BI.jsonEncode=function(a){var b=!!{}.hasOwnProperty,c={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},d=function(a){return/["\\\x00-\x1f]/.test(a)?'"'+a.replace(/([\x00-\x1f\\"])/g,function(a,b){var d=c[b];return d?d:(d=b.charCodeAt(),"\\u00"+Math.floor(d/16).toString(16)+(d%16).toString(16))})+'"':'"'+a+'"'},e=function(a){var b,c,d,e=["["],f=a.length;for(c=0;c2?BI.Date._MN[b.getMonth()]:d<2?b.getMonth()+1:BI.leftPad(b.getMonth()+1+"",2,"0");break;case"d":c=d>1?BI.leftPad(b.getDate()+"",2,"0"):b.getDate();break;case"h":var f=b.getHours()%12;0===f&&(f=12),c=d>1?BI.leftPad(f+"",2,"0"):f;break;case"H":c=d>1?BI.leftPad(b.getHours()+"",2,"0"):b.getHours();break;case"m":c=d>1?BI.leftPad(b.getMinutes()+"",2,"0"):b.getMinutes();break;case"s":c=d>1?BI.leftPad(b.getSeconds()+"",2,"0"):b.getSeconds();break;case"a":c=b.getHours()<12?"am":"pm";break;case"z":c=BI.getTimezone(b);break;default:c=a.str}return c}if(!a)return"";var d=b.length,e="";if(d>0){for(var f=b.charAt(0),g=0,h=f,i=1;iBI.Widget._renderEngine.createElement("body").outerWidth()&&(l-=k.element.outerWidth()+15);var n=BI.Widget._renderEngine.createElement("body").outerHeight();return m+k.element.outerHeight()>n||j+k.element.outerHeight()>n?(m-=k.element.outerHeight()+15,!f.belowMouse&&(m=Math.min(m,h.top-k.element.outerHeight()-5))):!f.belowMouse&&(m=Math.max(m,j)),k.element.css({left:l<0?0:l+"px",top:m<0?0:m+"px"}),k.element.hover(function(){g.remove(b),e.element.trigger("mouseleave.title"+e.getName())}),this},add:function(a,b){return this.has(a)?this:(this.set(a,b),this)},get:function(a){return this.tooltipsManager[a]},set:function(a,b){this.tooltipsManager[a]=b},has:function(a){return null!=this.tooltipsManager[a]},remove:function(a){return this.has(a)?(this.tooltipsManager[a].destroy(),delete this.tooltipsManager[a],this):this}}),_.extend(BI,{Events:{KEYDOWN:"_KEYDOWN",BACKSPACE:"_BACKSPACE",SPACE:"_SPACE",ENTER:"_ENTER",CONFIRM:"_CONFIRM",ERROR:"_ERROR",PAUSE:"_PAUSE",DESTROY:"_DESTROY",MOUNT:"_MOUNT",UNMOUNT:"_UNMOUNT",CLEAR:"_CLEAR",ADD:"_ADD",EDITING:"_EDITING",EMPTY:"_EMPTY",VIEW:"_VIEW",RESIZE:"_RESIZE",BEFOREEDIT:"_BEFOREEDIT",AFTEREDIT:"_AFTEREDIT",STARTEDIT:"_STARTEDIT",STOPEDIT:"_STOPEDIT",CHANGE:"_CHANGE",EXPAND:"_EXPAND",COLLAPSE:"_COLLAPSE",CALLBACK:"_CALLBACK",CLICK:"_CLICK",STATECHANGE:"_STATECHANGE",BEFORESTATECHANGE:"_BEFORESTATECHANGE",INIT:"_INIT",AFTERINIT:"_AFTERINIT",SCROLL:"_SCROLL",STARTLOAD:"_STARTLOAD",AFTERLOAD:"_AFTERLOAD",BS:"beforesubmit",AS:"aftersubmit",SC:"submitcomplete",SF:"submitfailure",SS:"submitsuccess",BVW:"beforeverifywrite",AVW:"afterverifywrite",AV:"afterverify",BW:"beforewrite",AW:"afterwrite",WS:"writesuccess",WF:"writefailure",BA:"beforeappend",AA:"afterappend",BD:"beforedelete",AD:"beforedelete",UC:"unloadcheck",BTOPDF:"beforetopdf",ATOPDF:"aftertopdf",BTOEXCEL:"beforetoexcel",ATOEXCEL:"aftertoexcel",BTOWORD:"beforetoword",ATOWORD:"aftertoword",BTOIMAGE:"beforetoimage",ATOIMAGE:"aftertoimage",BTOHTML:"beforetohtml",ATOHTML:"aftertohtml",BIMEXCEL:"beforeimportexcel",AIMEXCEL:"afterimportexcel",BPDFPRINT:"beforepdfprint",APDFPRINT:"afterpdfprint",BFLASHPRINT:"beforeflashprint",AFLASHPRINT:"afterflashprint",BAPPLETPRINT:"beforeappletprint",AAPPLETPRINT:"afterappletprint",BSEVERPRINT:"beforeserverprint",ASERVERPRINT:"afterserverprint",BEMAIL:"beforeemail",AEMAIL:"afteremail"}}),_.extend(BI,{pushArray:function(a,b){for(var c=0;ce&&(d=e),c.setDate(d),c.setMonth(c.getMonth()+3*parseInt(b)),c},getQuarterStartMonth:function(a){var b=0,c=a.getMonth();return c<3&&(b=0),28&&(b=9),b},getQuarterStartDate:function(a){return BI.getDate(a.getFullYear(),BI.getQuarterStartMonth(a),1)},getQuarterEndDate:function(a){var b=BI.getQuarterStartMonth(a)+2;return BI.getDate(a.getFullYear(),b,BI.getMonthDays(a,b))},getOffsetMonth:function(a,b){var c=BI.getDate(BI.getTime(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds())),d=c.getDate(),e=BI.getMonthDays(BI.getDate(c.getFullYear(),c.getMonth()+parseInt(b),1));return d>e&&(d=e),c.setDate(d),c.setMonth(c.getMonth()+parseInt(b)),c},getWeekStartDate:function(a){var b=a.getDay(),c=BI.StartOfWeek%7;return BI.getOffsetDate(a,BI.Date._OFFSET[b=12,m=l?k-12:k,n=BI.getDayOfYear(a);0==m&&(m=12);var o=a.getMinutes(),p=a.getSeconds();j["%a"]=BI.Date._SDN[i],j["%A"]=BI.Date._DN[i],j["%b"]=BI.Date._SMN[c],j["%B"]=BI.Date._MN[c],j["%C"]=1+Math.floor(e/100),j["%d"]=d<10?"0"+d:d,j["%e"]=d,j["%H"]=k<10?"0"+k:k,j["%I"]=m<10?"0"+m:m,j["%j"]=n<100?n<10?"00"+n:"0"+n:n,j["%k"]=k+"",j["%l"]=m+"",j["%X"]=c<9?"0"+(1+c):1+c,j["%x"]=c+1,j["%M"]=o<10?"0"+o:o,j["%n"]="\n",j["%p"]=l?"PM":"AM",j["%P"]=l?"pm":"am",j["%s"]=Math.floor(a.getTime()/1e3),j["%S"]=p<10?"0"+p:p,j["%t"]="\t",j["%U"]=j["%W"]=j["%V"]=g<10?"0"+g:g,j["%u"]=i+1,j["%w"]=i,j["%y"]=f.substr(2,2),j["%Y"]=f,j["%%"]="%",j["%Q"]=h;var q=/%./g;if(BI.isKhtml=BI.isKhtml||function(){return!!_global.navigator&&/Konqueror|Safari|KHTML/i.test(navigator.userAgent)},!(b.indexOf("%Y")===-1&&b.indexOf("%y")===-1||b.indexOf("%W")===-1&&b.indexOf("%U")===-1&&b.indexOf("%V")===-1))switch(g){case 1:11===c&&(j["%y"]=parseInt(j["%y"])+1,j["%Y"]=parseInt(j["%Y"])+1);break;case 53:0===c&&(j["%y"]=parseInt(j["%y"])-1,j["%Y"]=parseInt(j["%Y"])-1)}if(!BI.isKhtml())return b.replace(q,function(a){return j[a]||a});for(var r=b.match(q),s=0;s-1?f===b?d?h.push(j):h[a]=j:d?i.push(j):i[a]=j:(k=g.indexOf(b),k>-1&&Math.floor(k/f.length)===Math.floor((k+b.length-1)/f.length)&&(f===b||b.length===f.length?d?h.push(j):h[a]=j:d?i.push(j):i[a]=j))}}),{match:h,find:i}}}),_.extend(BI,{beforeFunc:function(a,b){var c=a;return function(){return b.apply(a,arguments)!==!1&&c.apply(a,arguments)}},afterFunc:function(a){var b=sFunc;return function(){var c=b.apply(sFunc,arguments);return c!==!1&&(a.apply(sFunc,arguments),c)}}}),_.extend(BI,{add:function(a,b){function c(a,b){var c,d,e,f;try{c=a.toString().split(".")[1].length}catch(g){c=0}try{d=b.toString().split(".")[1].length}catch(g){d=0}if(f=Math.abs(c-d),e=Math.pow(10,Math.max(c,d)),f>0){var h=Math.pow(10,f);c>d?(a=Number(a.toString().replace(".","")),b=Number(b.toString().replace(".",""))*h):(a=Number(a.toString().replace(".",""))*h,b=Number(b.toString().replace(".","")))}else a=Number(a.toString().replace(".","")),b=Number(b.toString().replace(".",""));return(a+b)/e}return c(b,a)},sub:function(a,b){function c(a,b){var c,d,e,f;try{c=a.toString().split(".")[1].length}catch(g){c=0}try{d=b.toString().split(".")[1].length}catch(g){d=0}return e=Math.pow(10,Math.max(c,d)),f=c>=d?c:d,((a*e-b*e)/e).toFixed(f)}return c(a,b)},mul:function(a,b){function c(a,b){var c=0,d=a.toString(),e=b.toString();try{c+=d.split(".")[1].length}catch(f){}try{c+=e.split(".")[1].length}catch(f){}return Number(d.replace(".",""))*Number(e.replace(".",""))/Math.pow(10,c)}return c(b,a)},div:function(a,b){function c(a){var b=a.toString().split(/[eE]/),c=(b[0].split(".")[1]||"").length-+(b[1]||0);return c>0?c:0}function d(a){if(a.toString().indexOf("e")===-1)return Number(a.toString().replace(".",""));var b=c(a);return b>0?a*Math.pow(10,b):a}function e(a,b){for(var f=[],g=2;g0)return e.apply(void 0,[e(a,b),f[0]].concat(f.slice(1)));var h=d(a),i=d(b),j=c(a)+c(b),k=h*i;return k/Math.pow(10,j)}function f(a,b){for(var g=[],h=2;h0)return f.apply(void 0,[f(a,b),g[0]].concat(g.slice(1)));var i=d(a),j=d(b);return e(i/j,Math.pow(10,c(b)-c(a)))}return f(a,b)}}),_.extend(BI,{startWith:function(a,b){return a=a||"",!(null==b||""==b||0===a.length||b.length>a.length)&&a.substr(0,b.length)==b},endWith:function(a,b){return!(null==b||""==b||0===a.length||b.length>a.length)&&a.substring(a.length-b.length)==b},getQuery:function(a,b){var c=new RegExp("(^|&)"+b+"=([^&]*)(&|$)"),d=a.substr(a.indexOf("?")+1).match(c);return d?unescape(d[2]):null},appendQuery:function(a,b){if(!b)return a;var c=a;return c.indexOf("?")===-1&&(c+="?"),c.endWith("?")!==!1||(c+="&"),_.each(b,function(a,b){"string"==typeof b&&(c+=b+"="+a+"&")}),c=c.substr(0,c.length-1)},replaceAll:function(a,b,c){return a.replace(new RegExp(b,"gm"),c)},perfectStart:function(a,b){return a.startWith(b)?a:b+a},allIndexOf:function(a,b){if("string"!=typeof b)return[];for(var c=[],d=0;a.length>0;){var e=a.indexOf(b);if(e===-1)break;c.push(d+e),a=a.substring(e+b.length,a.length),d+=e+b.length}return c}}),!function(){var a={};_.extend(BI,{addI18n:function(b){BI.extend(a,b)},i18nText:function(b){var c=a[b]||BI.i18n&&BI.i18n[b]||"";c||(c=b);var d=arguments.length;if(d>1){if(!(c.indexOf("{R1}")>-1)){var e=Array.prototype.slice.call(arguments),f=1;return BI.replaceAll(c,"\\{\\s*\\}",function(){return e[f++]+""})}for(var g=1;g1?d.toString():d[0]:d,BI.isNull(d))throw new Error("value cannot be null");var f=b.cardNameCreator(d);if(!b.cardLayout.isCardExisted(f)){var g=b.cardCreator(f);b.cardLayout.addCardByName(f,g),b.afterCardCreated(f)}b.cardLayout.showCardByName(f),BI.nextTick(function(){b.afterCardShow(f),a.fireEvent(BI.ShowListener.EVENT_CHANGE,f)})}})}}),BI.ShowListener.EVENT_CHANGE="ShowListener.EVENT_CHANGE",BI.StyleLoaderManager=BI.inherit(BI.OB,{_defaultConfig:function(){return BI.extend(BI.StyleLoaderManager.superclass._defaultConfig.apply(this,arguments),{})},_init:function(){BI.StyleLoaderManager.superclass._init.apply(this,arguments),this.stylesManager={}},loadStyle:function(a,b){if(_global.document){var c=document,d=c.createElement("style");return c.getElementsByTagName("head")[0].appendChild(d),d.setAttribute("type","text/css"),d.styleSheet?d.styleSheet.cssText=b:d.appendChild(document.createTextNode(b)),this.stylesManager[a]=d,this}},get:function(a){return this.stylesManager[a]},has:function(a){return null!=this.stylesManager[a]},removeStyle:function(a){return this.has(a)?(this.stylesManager[a].parentNode.removeChild(this.stylesManager[a]),delete this.stylesManager[a],this):this}}),BI.Logic=BI.inherit(BI.OB,{createLogic:function(){return this.options||{}}}),BI.LogicFactory={Type:{Vertical:"vertical",Horizontal:"horizontal",Table:"table",HorizontalFill:"horizontal_fill"},createLogic:function(a,b){var c;switch(a){case BI.LogicFactory.Type.Vertical:c=BI.VerticalLayoutLogic;break;case BI.LogicFactory.Type.Horizontal:c=BI.HorizontalLayoutLogic;break;case BI.LogicFactory.Type.Table:c=BI.TableLayoutLogic;break;case BI.LogicFactory.Type.HorizontalFill:c=BI.HorizontalFillLayoutLogic;break;default:c=BI.Logic}return new c(b).createLogic()},createLogicTypeByDirection:function(a){switch(a){case BI.Direction.Top:case BI.Direction.Bottom:case BI.Direction.Custom:return BI.LogicFactory.Type.Vertical;case BI.Direction.Left:case BI.Direction.Right:return BI.LogicFactory.Type.Horizontal}},createLogicItemsByDirection:function(a){var b,c=Array.prototype.slice.call(arguments,1);switch(c=BI.map(c,function(a,b){return BI.isWidget(b)?{el:b,width:b.options.width,height:b.options.height}:b}),a){case BI.Direction.Bottom:b=BI.LogicFactory.Type.Vertical,c.reverse();break;case BI.Direction.Right:b=BI.LogicFactory.Type.Horizontal,c.reverse();break;case BI.Direction.Custom:c=c.slice(1)}return c}},BI.VerticalLayoutLogic=BI.inherit(BI.Logic,{_defaultConfig:function(){return BI.extend(BI.VerticalLayoutLogic.superclass._defaultConfig.apply(this,arguments),{dynamic:!1,scrollable:null,scrolly:!1,scrollx:!1,items:[],hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},createLogic:function(){var a,b=this.options;return a=b.dynamic?"bi.vertical":"bi.vtape",{type:a,scrollable:b.scrollable,scrolly:b.scrolly,scrollx:b.scrollx,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,items:b.items}},_init:function(){BI.VerticalLayoutLogic.superclass._init.apply(this,arguments)}}),BI.HorizontalLayoutLogic=BI.inherit(BI.Logic,{_defaultConfig:function(){return BI.extend(BI.HorizontalLayoutLogic.superclass._defaultConfig.apply(this,arguments),{dynamic:!1,scrollable:null,scrolly:!1,scrollx:!1,items:[],hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},createLogic:function(){var a,b=this.options;return a=b.dynamic?"bi.vertical_adapt":"bi.htape",{type:a,scrollable:b.scrollable,scrolly:b.scrolly,scrollx:b.scrollx,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,items:b.items}},_init:function(){BI.HorizontalLayoutLogic.superclass._init.apply(this,arguments)}}),BI.TableLayoutLogic=BI.inherit(BI.Logic,{_defaultConfig:function(){return BI.extend(BI.TableLayoutLogic.superclass._defaultConfig.apply(this,arguments),{dynamic:!1,scrollable:null,scrolly:!1,scrollx:!1,columns:0,rows:0,columnSize:[],rowSize:[],hgap:0,vgap:0,items:[]})},createLogic:function(){var a,b=this.options;return a=b.dynamic?"bi.table":"bi.window",{type:a,scrollable:b.scrollable,scrolly:b.scrolly,scrollx:b.scrollx,columns:b.columns,rows:b.rows,columnSize:b.columnSize,rowSize:b.rowSize,hgap:b.hgap,vgap:b.vgap,items:b.items}},_init:function(){BI.TableLayoutLogic.superclass._init.apply(this,arguments)}}),BI.HorizontalFillLayoutLogic=BI.inherit(BI.Logic,{_defaultConfig:function(){return BI.extend(BI.HorizontalFillLayoutLogic.superclass._defaultConfig.apply(this,arguments),{dynamic:!1,scrollable:null,scrolly:!1,scrollx:!1,items:[],hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},createLogic:function(){var a,b=this.options,c=[];return BI.each(b.items,function(a,b){c.push(b.width||0)}),a=b.dynamic?"bi.horizontal_adapt":"bi.htape",{type:a,columnSize:c,scrollable:b.scrollable,scrolly:b.scrolly,scrollx:b.scrollx,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,items:b.items}},_init:function(){BI.HorizontalFillLayoutLogic.superclass._init.apply(this,arguments)}}),_.extend(BI,{ajax:function(a){a||(a={});var b=a.async;a.data=BI.cjkEncodeDO(a.data||{}),$.ajax({url:a.url,type:"POST",data:a.data,async:b,error:a.error,complete:function(b,c){BI.isFunction(a.complete)&&a.complete(BI.jsonDecode(b.responseText),c)}})}}),BI.prepares.push(function(){var a,b=function(){return null==a&&(a=!(!BI.isSupportCss3||!BI.isSupportCss3("flex"))),a};BI.Plugin.registerWidget("bi.horizontal",function(a){var c=BI.isIE(),d=b(),e=c&&BI.getIEVersion()<8;return a.verticalAlign===BI.VerticalAlign.Middle&&a.horizontalAlign===BI.HorizontalAlign.Center?e?a:BI.extend(a,{type:"bi.table_adapt"}):a.verticalAlign===BI.VerticalAlign.Middle&&a.horizontalAlign===BI.HorizontalAlign.Left?e?a:BI.extend(a,{type:"bi.table_adapt"}):a.verticalAlign===BI.VerticalAlign.Top&&a.horizontalAlign===BI.HorizontalAlign.Center?e?a:BI.extend(a,{type:"bi.table_adapt"}):c?a:d?BI.extend(a,{type:"bi.flex_horizontal"}):BI.extend(a,{type:"bi.table_adapt"})}),BI.Plugin.registerWidget("bi.center_adapt",function(a){var c=BI.isIE(),d=b(),e=a.items&&a.items.length<=1;return!c&&d&&e?a.scrollable===!0||a.scrollx===!0||a.scrolly===!0?BI.extend(a,{type:"bi.flex_scrollable_center_adapt"}):BI.extend(a,{type:"bi.flex_center_adapt"}):e?BI.extend(a,{type:"bi.inline_center_adapt"}):a}),BI.Plugin.registerWidget("bi.vertical_adapt",function(a){var c=BI.isIE(),d=b();return!c&&d?a.scrollable===!0||a.scrollx===!0||a.scrolly===!0?BI.extend({},a,{type:"bi.flex_scrollable_vertical_center_adapt"}):BI.extend(a,{type:"bi.flex_vertical_center_adapt"}):BI.extend(a,{type:"bi.inline_vertical_adapt"})}),BI.Plugin.registerWidget("bi.horizontal_adapt",function(a){return a.items&&a.items.length<=1?BI.extend(a,{type:"bi.horizontal_auto"}):a}),BI.Plugin.registerWidget("bi.float_center_adapt",function(a){return!BI.isIE()&&b()?a.scrollable===!0||a.scrollx===!0||a.scrolly===!0?BI.extend({},a,{type:"bi.flex_scrollable_center_adapt"}):BI.extend(a,{type:"bi.flex_center_adapt"}):BI.extend(a,{type:"bi.inline_center_adapt"})}),BI.Plugin.registerWidget("bi.flex_horizontal",function(a){if(a.scrollable===!0||a.scrolly===!0)return BI.extend({},a,{type:"bi.flex_scrollable_horizontal"})}),BI.Plugin.registerWidget("bi.flex_vertical",function(a){if(a.scrollable===!0||a.scrollx===!0)return BI.extend({},a,{type:"bi.flex_scrollable_vertical"})}),BI.Plugin.registerWidget("bi.flex_horizontal_adapt",function(a){if(a.scrollable===!0||a.scrollx===!0)return BI.extend({},a,{type:"bi.flex_scrollable_horizontal_adapt"})}),BI.Plugin.registerWidget("bi.flex_vertical_adapt",function(a){if(a.scrollable===!0||a.scrolly===!0)return BI.extend({},a,{type:"bi.flex_scrollable_vertical_adapt"})}),BI.Plugin.registerWidget("bi.flex_horizontal_center_adapt",function(a){if(a.scrollable===!0||a.scrollx===!0)return BI.extend({},a,{type:"bi.flex_scrollable_horizontal_adapt"})}),BI.Plugin.registerWidget("bi.flex_vertical_center_adapt",function(a){if(a.scrollable===!0||a.scrolly===!0)return BI.extend({},a,{type:"bi.flex_scrollable_vertical_adapt"})}),BI.Plugin.registerWidget("bi.flex_center_adapt",function(a){if(a.scrollable===!0||a.scrolly===!0||a.scrollx===!0)return BI.extend({},a,{type:"bi.flex_scrollable_center_adapt"})}),BI.Plugin.registerWidget("bi.radio",function(a){return BI.isIE()&&BI.getIEVersion()<9?BI.extend(a,{type:"bi.image_radio"}):a}),BI.Plugin.registerWidget("bi.checkbox",function(a){return BI.isIE()&&BI.getIEVersion()<9?BI.extend(a,{type:"bi.image_checkbox"}):a}),BI.Plugin.registerWidget("bi.half_icon_button",function(a){return BI.isIE()&&BI.getIEVersion()<9?a:BI.extend(a,{type:"bi.half_button"})})}),!function(){var a=_global.document&&_global.document.attachEvent,b=!1;if(_global.document&&!a){var c=function(){var a=_global.requestAnimationFrame||_global.mozRequestAnimationFrame||_global.webkitRequestAnimationFrame||function(a){return _global.setTimeout(a,20)};return function(b){return a(b)}}(),d=function(){var a=_global.cancelAnimationFrame||_global.mozCancelAnimationFrame||_global.webkitCancelAnimationFrame||_global.clearTimeout;return function(b){return a(b)}}(),e=function(a){var b=a.__resizeTriggers__,c=b.firstElementChild,d=b.lastElementChild,e=c.firstElementChild;d.scrollLeft=d.scrollWidth,d.scrollTop=d.scrollHeight,e.style.width=c.offsetWidth+1+"px",e.style.height=c.offsetHeight+1+"px",c.scrollLeft=c.scrollWidth,c.scrollTop=c.scrollHeight},f=function(a){return a.offsetWidth!==a.__resizeLast__.width||a.offsetHeight!==a.__resizeLast__.height},g=function(a){var b=this;e(this),this.__resizeRAF__&&d(this.__resizeRAF__),this.__resizeRAF__=c(function(){f(b)&&(b.__resizeLast__.width=b.offsetWidth,b.__resizeLast__.height=b.offsetHeight,b.__resizeListeners__.forEach(function(c){c.call(b,a)}))})},h=!1,i="animation",j="",k="animationstart",l="Webkit Moz O ms".split(" "),m="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),n="",o=document.createElement("fakeelement");if(void 0!==o.style.animationName&&(h=!0),h===!1)for(var p=0;p div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',c=document.head||document.getElementsByTagName("head")[0],d=document.createElement("style");d.type="text/css",d.styleSheet?d.styleSheet.cssText=a:d.appendChild(document.createTextNode(a)),c.appendChild(d),b=!0}},u=function(b,c){a?b.attachEvent("onresize",c):(b.__resizeTriggers__||("static"===getComputedStyle(b).position&&(b.style.position="relative"),t(),b.__resizeLast__={},b.__resizeListeners__=[],(b.__resizeTriggers__=document.createElement("div")).className="resize-triggers",b.__resizeTriggers__.innerHTML='

    ',b.appendChild(b.__resizeTriggers__),e(b),b.addEventListener("scroll",g,!0),k&&b.__resizeTriggers__.addEventListener(k,function(a){a.animationName===q&&e(b)})),b.__resizeListeners__.push(c))},v=function(b,c){a?b.detachEvent("onresize",c):(b.__resizeListeners__.splice(b.__resizeListeners__.indexOf(c),1),b.__resizeListeners__.length||(b.removeEventListener("scroll",g),b.__resizeTriggers__=!b.removeChild(b.__resizeTriggers__)))};BI.ResizeDetector={addResizeListener:function(a,b){return u(a.element[0],b),function(){v(a.element[0],b)}},removeResizeListener:function(a,b){v(a.element[0],b)}}}(),!function(){BI.DOM={},BI.extend(BI.DOM,{ready:function(a){BI.Widget._renderEngine.createElement(document).ready(a)}}),BI.extend(BI.DOM,{patchProps:function(a,b){var c=jQuery._data(a[0]),d=c.events;BI.each(d,function(a,c){BI.each(c,function(c,d){b.on(a+(d.namespace?"."+d.namespace:""),d)})});var e=a.children(),f=b.children();if(e.length!==f.length)throw new Error("不匹配");BI.each(e,function(a,b){BI.DOM.patchProps(jQuery(b),jQuery(f[a]))}),BI.each(a.data("__widgets"),function(a,c){c.element=b})},hang:function(a){if(!BI.isEmpty(a)){var b=BI.Widget._renderEngine.createFragment();return BI.each(a,function(a,c){c instanceof BI.Widget&&(c=c.element),c instanceof $&&c[0]&&b.appendChild(c[0])}),b}},isExist:function(a){return BI.Widget._renderEngine.createElement("body").find(a.element).length>0},preloadImages:function(a,b){function c(){d++,d>=a.length&&b()}var d=0,e=[];BI.each(a,function(a,b){e[a]=new Image,e[a].src=b,e[a].onload=function(){c()},e[a].onerror=function(){c()}})},getTextSizeWidth:function(a,b){var c=BI.Widget._renderEngine.createElement("").addClass("text-width-span").appendTo("body");null==b&&(b=12),b+="px",c.css("font-size",b).text(a);var d=c.width();return c.remove(),d},getTextSizeHeight:function(a,b){var c=BI.Widget._renderEngine.createElement("").addClass("text-width-span").appendTo("body");null==b&&(b=12),b+="px",c.css("font-size",b).text(a);var d=c.height();return c.remove(),d},getScrollWidth:function(){if(BI.isNull(this._scrollWidth)||0===this._scrollWidth){var a=BI.Widget._renderEngine.createElement("
    ").width(50).height(50).css({position:"absolute",top:"-9999px",overflow:"scroll"}).appendTo("body");this._scrollWidth=a[0].offsetWidth-a[0].clientWidth,a.destroy()}return this._scrollWidth},getImage:function(a,b,c){var d=document.createElement("canvas"),e=2;BI.Widget._renderEngine.createElement("body").append(d);var f=BI.DOM.getTextSizeWidth(a,12)+4;d.width=f*e,d.height=16*e;var g=d.getContext("2d");g.font=12*e+"px Georgia",g.fillStyle=b||"#3685f2",g.textBaseline="middle",g.fillText(a,2*e,9*e),BI.Widget._renderEngine.createElement(d).destroy();var h=c||"rgba(54, 133, 242, 0.1)";return{width:f,height:16,src:d.toDataURL("image/png"),style:"background-color: "+h+";vertical-align: middle; margin: 0 1px; width:"+f+"px;height: 16px; max-width:"+f+"px;max-height: 16px; min-width:"+f+"px;min-height: 16px",param:a}}}),BI.extend(BI.DOM,{isColor:function(a){return a&&(this.isRGBColor(a)||this.isHexColor(a))},isRGBColor:function(a){return!!a&&"rgb"===a.substr(0,3)},isHexColor:function(a){return!!a&&("#"===a[0]&&7===a.length)},isDarkColor:function(a){if(!a||!this.isHexColor(a))return!1;var b=this.rgb2json(this.hex2rgb(a)),c=Math.round(.299*b.r+.587*b.g+.114*b.b);return c<192},getContrastColor:function(a){return a&&this.isColor(a)?this.isDarkColor(a)?"#ffffff":"#1a1a1a":""},rgb2hex:function(a){if(!a||"rgb"!=a.substr(0,3))return"";var b=a.match(/\d+(\.\d+)?/g),c=BI.parseInt(b[0]),d=BI.parseInt(b[1]),e=BI.parseInt(b[2]),f="#"+this.int2hex(c)+this.int2hex(d)+this.int2hex(e);return f},rgb2json:function(a){if(!a)return{};if(!this.isRGBColor(a))return{};var b=a.match(/\d+(\.\d+)?/g);return{r:BI.parseInt(b[0]),g:BI.parseInt(b[1]),b:BI.parseInt(b[2])}},rgba2json:function(a){if(!a)return{};var b=a.match(/\d+(\.\d+)?/g);return{r:BI.parseInt(b[0]),g:BI.parseInt(b[1]),b:BI.parseInt(b[2]),a:BI.parseFloat(b[3])}},json2rgb:function(a){return BI.isKey(a.r)&&BI.isKey(a.g)&&BI.isKey(a.b)?"rgb("+a.r+","+a.g+","+a.b+")":""},json2rgba:function(a){return BI.isKey(a.r)&&BI.isKey(a.g)&&BI.isKey(a.b)?"rgba("+a.r+","+a.g+","+a.b+","+a.a+")":""},int2hex:function(a){var b=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return b[a>>>4]+""+b[15&a]},hex2rgb:function(a){if(!a)return"";if(!this.isHexColor(a))return a;var b,c="rgb(";return 7===a.length?b=[BI.parseInt("0x"+a.substring(1,3)),BI.parseInt("0x"+a.substring(3,5)),BI.parseInt("0x"+a.substring(5,7))]:4===a.length&&(b=[BI.parseInt("0x"+a.substring(1,2)),BI.parseInt("0x"+a.substring(2,3)),BI.parseInt("0x"+a.substring(3,4))]),c+=b[0]+",",c+=b[1]+",",c+=b[2]+")"},rgba2rgb:function(a,b){if(BI.isNull(b)&&(b=1),"rgba"!=a.substr(0,4))return"";var c=a.match(/\d+(\.\d+)?/g);if(c.length<4)return"";var d=BI.parseFloat(c[0]),e=BI.parseFloat(c[1]),f=BI.parseFloat(c[2]),g=BI.parseFloat(c[3]);return"rgb("+Math.floor(255*(b*(1-g))+d*g)+","+Math.floor(255*(b*(1-g))+e*g)+","+Math.floor(255*(b*(1-g))+f*g)+")"}}),BI.extend(BI.DOM,{getLeftPosition:function(a,b,c){return{left:a.element.offset().left-b.element.outerWidth()-(c||0)}},getRightPosition:function(a,b,c){var d=a.element;return{left:d.offset().left+d.outerWidth()+(c||0)}},getTopPosition:function(a,b,c){return{top:a.element.offset().top-b.element.outerHeight()-(c||0)}},getBottomPosition:function(a,b,c){var d=a.element;return{top:d.offset().top+d.outerHeight()+(c||0)}},isLeftSpaceEnough:function(a,b,c){return BI.DOM.getLeftPosition(a,b,c).left>=0},isRightSpaceEnough:function(a,b,c){var d=b.element.bounds(),e=BI.Widget._renderEngine.createElement("body").bounds();return BI.DOM.getRightPosition(a,b,c).left+d.width<=e.width},isTopSpaceEnough:function(a,b,c){return BI.DOM.getTopPosition(a,b,c).top>=0},isBottomSpaceEnough:function(a,b,c){var d=b.element.bounds(),e=BI.Widget._renderEngine.createElement("body").bounds();return BI.DOM.getBottomPosition(a,b,c).top+d.height<=e.height},isRightSpaceLarger:function(a){var b=BI.Widget._renderEngine.createElement("body").bounds();return b.width-a.element.offset().left-a.element.bounds().width>=a.element.offset().left},isBottomSpaceLarger:function(a){var b=BI.Widget._renderEngine.createElement("body").bounds();return b.height-a.element.offset().top-a.element.bounds().height>=a.element.offset().top},getLeftAlignPosition:function(a,b,c){var d=b.element.bounds(),e=BI.Widget._renderEngine.createElement("body").bounds(),f=a.element.offset().left+c;return f+d.width>e.width&&(f=e.width-d.width),f<0&&(f=0),{left:f}},getLeftAdaptPosition:function(a,b,c){return BI.DOM.isLeftSpaceEnough(a,b,c)?BI.DOM.getLeftPosition(a,b,c):{left:0}},getRightAlignPosition:function(a,b,c){var d=a.element.bounds(),e=b.element.bounds(),f=a.element.offset().left+d.width-e.width-c;return f<0&&(f=0),{left:f}},getRightAdaptPosition:function(a,b,c){return BI.DOM.isRightSpaceEnough(a,b,c)?BI.DOM.getRightPosition(a,b,c):{left:BI.Widget._renderEngine.createElement("body").bounds().width-b.element.bounds().width}},getTopAlignPosition:function(a,b,c,d){var e,f,g=a.element.offset(),h=a.element.bounds(),i=b.element.bounds(),j=BI.Widget._renderEngine.createElement("body").bounds();return BI.DOM.isBottomSpaceEnough(a,b,-1*h.height+c)?e=g.top+c:d?(e=g.top+c,f=j.height-e):(e=j.height-i.height,ef.height?{top:0,adaptHeight:f.height-c}:{top:0}},getBottomAlignPosition:function(a,b,c,d){var e,f,g=a.element.offset(),h=a.element.bounds(),i=b.element.bounds(),j=BI.Widget._renderEngine.createElement("body").bounds();return BI.DOM.isTopSpaceEnough(a,b,-1*h.height+c)?e=g.top+h.height-i.height-c:d?(e=0,f=g.top+h.height-c):(e=0,i.height+c>j.height&&(f=j.height-c)),e<0&&(e=0),f?{top:e,adaptHeight:f}:{top:e}},getBottomAdaptPosition:function(a,b,c,d){var e=a.element.offset(),f=a.element.bounds(),g=b.element.bounds(),h=BI.Widget._renderEngine.createElement("body").bounds();return BI.DOM.isBottomSpaceEnough(a,b,c)?BI.DOM.getBottomPosition(a,b,c):d?{top:e.top+f.height+c,adaptHeight:h.height-e.top-f.height-c}:g.height+c>h.height?{top:c,adaptHeight:h.height-c}:{top:h.height-g.height-c}},getCenterAdaptPosition:function(a,b){var c,d=a.element.offset(),e=a.element.bounds(),f=b.element.bounds(),g=BI.Widget._renderEngine.createElement("body").bounds();return c=d.left+e.width/2+f.width/2>g.width?g.width-f.width:d.left+e.width/2-f.width/2,c<0&&(c=0),{left:c}},getMiddleAdaptPosition:function(a,b){var c,d=a.element.offset(),e=a.element.bounds(),f=b.element.bounds(),g=BI.Widget._renderEngine.createElement("body").bounds();return c=d.top+e.height/2+f.height/2>g.height?g.height-f.height:d.top+e.height/2-f.height/2,c<0&&(c=0),{top:c}},getComboPositionByDirections:function(a,b,c,d,e,f){c||(c=0),d||(d=0);var g,h,i,j,k,l=[],m=[],n=!1,o=!1,p=!1,q=f[0];for(g=0;g0&&b-1 in a)))}function d(a){var b=xa[a]={};return ia.each(a.match(ka)||[],function(a,c){ -b[c]=!0}),b}function e(a,c,d,e){if(ia.acceptData(a)){var f,g,h=ia.expando,i="string"==typeof c,j=a.nodeType,k=j?ia.cache:a,l=j?a[h]:a[h]&&h;if(l&&k[l]&&(e||k[l].data)||!i||d!==b)return l||(j?a[h]=l=_.pop()||ia.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=ia.noop)),"object"!=typeof c&&"function"!=typeof c||(e?k[l]=ia.extend(k[l],c):k[l].data=ia.extend(k[l].data,c)),f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[ia.camelCase(c)]=d),i?(g=f[c],null==g&&(g=f[ia.camelCase(c)])):g=f,g}}function f(a,b,c){if(ia.acceptData(a)){var d,e,f,g=a.nodeType,i=g?ia.cache:a,j=g?a[ia.expando]:ia.expando;if(i[j]){if(b&&(f=c?i[j]:i[j].data)){ia.isArray(b)?b=b.concat(ia.map(b,ia.camelCase)):b in f?b=[b]:(b=ia.camelCase(b),b=b in f?[b]:b.split(" "));for(d=0,e=b.length;d=0===c})}function m(a){var b=Ua.split("|"),c=a.createDocumentFragment();if(c.createElement)for(;b.length;)c.createElement(b.pop());return c}function n(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function o(a){var b=a.getAttributeNode("type");return a.type=(b&&b.specified)+"/"+a.type,a}function p(a){var b=eb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function q(a,b){for(var c,d=0;null!=(c=a[d]);d++)ia._data(c,"globalEval",!b||ia._data(b[d],"globalEval"))}function r(a,b){if(1===b.nodeType&&ia.hasData(a)){var c,d,e,f=ia._data(a),g=ia._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").css("cssText","display:block !important")).appendTo(b.documentElement),b=(jb[0].contentWindow||jb[0].contentDocument).document,b.write(""),b.close(),c=C(a,b),jb.detach()),ub[a]=c),c}function C(a,b){var c=ia(b.createElement(a)).appendTo(b.body),d=ia.css(c[0],"display");return c.remove(),d}function D(a,b,c,d){var e;if(ia.isArray(b))ia.each(b,function(b,e){c||Ab.test(a)?d(a,e):D(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==ia.type(b))d(a,b);else for(e in b)D(a+"["+e+"]",b[e],c,d)}function E(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(ka)||[];if(ia.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function F(a,b,c,d){function e(h){var i;return f[h]=!0,ia.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===Rb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function G(a,c){var d,e,f=ia.ajaxSettings.flatOptions||{};for(e in c)c[e]!==b&&((f[e]?a:d||(d={}))[e]=c[e]);return d&&ia.extend(!0,a,d),a}function H(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(h in k)h in d&&(c[k[h]]=d[h]);for(;"*"===j[0];)j.shift(),f===b&&(f=a.mimeType||c.getResponseHeader("Content-Type"));if(f)for(h in i)if(i[h]&&i[h].test(f)){j.unshift(h);break}if(j[0]in d)g=j[0];else{for(h in d){if(!j[0]||a.converters[h+" "+j[0]]){g=h;break}e||(e=h)}g=g||e}if(g)return g!==j[0]&&j.unshift(g),d[g]}function I(a,b){var c,d,e,f,g={},h=0,i=a.dataTypes.slice(),j=i[0];if(a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i[1])for(e in a.converters)g[e.toLowerCase()]=a.converters[e];for(;d=i[++h];)if("*"!==d){if("*"!==j&&j!==d){if(e=g[j+" "+d]||g["* "+d],!e)for(c in g)if(f=c.split(" "),f[1]===d&&(e=g[j+" "+f[0]]||g["* "+f[0]])){e===!0?e=g[c]:g[c]!==!0&&(d=f[0],i.splice(h--,0,d));break}if(e!==!0)if(e&&a["throws"])b=e(b);else try{b=e(b)}catch(k){return{state:"parsererror",error:e?k:"No conversion from "+j+" to "+d}}}j=d}return{state:"success",data:b}}function J(){try{return new a.XMLHttpRequest}catch(b){}}function K(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function L(){return setTimeout(function(){$b=b}),$b=ia.now()}function M(a,b){ia.each(b,function(b,c){for(var d=(ec[b]||[]).concat(ec["*"]),e=0,f=d.length;e)[^>]*|#([\w-]*))$/,na=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,oa=/^[\],:{}\s]*$/,pa=/(?:^|:|,)(?:\s*\[)+/g,qa=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,ra=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,sa=/^-ms-/,ta=/-([\da-z])/gi,ua=function(a,b){return b.toUpperCase()},va=function(a){(W.addEventListener||"load"===a.type||"complete"===W.readyState)&&(wa(),ia.ready())},wa=function(){W.addEventListener?(W.removeEventListener("DOMContentLoaded",va,!1),a.removeEventListener("load",va,!1)):(W.detachEvent("onreadystatechange",va),a.detachEvent("onload",va))};ia.fn=ia.prototype={jquery:aa,constructor:ia,init:function(a,c,d){var e,f;if(!a)return this;if("string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:ma.exec(a),!e||!e[1]&&c)return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a);if(e[1]){if(c=c instanceof ia?c[0]:c,ia.merge(this,ia.parseHTML(e[1],c&&c.nodeType?c.ownerDocument||c:W,!0)),na.test(e[1])&&ia.isPlainObject(c))for(e in c)ia.isFunction(this[e])?this[e](c[e]):this.attr(e,c[e]);return this}if(f=W.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return d.find(a);this.length=1,this[0]=f}return this.context=W,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):ia.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),ia.makeArray(a,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return da.call(this)},get:function(a){return null==a?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a){var b=ia.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return ia.each(this,a,b)},ready:function(a){return ia.ready.promise().done(a),this},slice:function(){return this.pushStack(da.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0||(T.resolveWith(W,[ia]),ia.fn.trigger&&ia(W).trigger("ready").off("ready"))}},isFunction:function(a){return"function"===ia.type(a)},isArray:Array.isArray||function(a){return"array"===ia.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return null==a?String(a):"object"==typeof a||"function"==typeof a?$[fa.call(a)]||"object":typeof a},isPlainObject:function(a){if(!a||"object"!==ia.type(a)||a.nodeType||ia.isWindow(a))return!1;try{if(a.constructor&&!ga.call(a,"constructor")&&!ga.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||ga.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||W;var d=na.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=ia.buildFragment([a],b,e),e&&ia(e).remove(),ia.merge([],d.childNodes))},parseJSON:function(b){return a.JSON&&a.JSON.parse?a.JSON.parse(b):null===b?b:"string"==typeof b&&(b=ia.trim(b),b&&oa.test(b.replace(qa,"@").replace(ra,"]").replace(pa,"")))?new Function("return "+b)():void ia.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||"string"!=typeof c)return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return d&&d.documentElement&&!d.getElementsByTagName("parsererror").length||ia.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&ia.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(sa,"ms-").replace(ta,ua)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;f-1;)j.splice(d,1),c&&(d<=g&&g--,d<=h&&h--)}),this},has:function(a){return a?ia.inArray(a,j)>-1:!(!j||!j.length)},empty:function(){return j=[],this},disable:function(){return j=k=e=b,this},disabled:function(){return!j},lock:function(){return k=b,e||m.disable(),this},locked:function(){return!k},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],!j||f&&!k||(c?k.push(b):l(b)),this},fire:function(){return m.fireWith(this,arguments),this},fired:function(){return!!f}};return m},ia.extend({Deferred:function(a){var b=[["resolve","done",ia.Callbacks("once memory"),"resolved"],["reject","fail",ia.Callbacks("once memory"),"rejected"],["notify","progress",ia.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return ia.Deferred(function(c){ia.each(b,function(b,f){var g=f[0],h=ia.isFunction(a[b])&&a[b];e[f[1]](function(){var a=h&&h.apply(this,arguments);a&&ia.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g+"With"](this===d?c.promise():this,h?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?ia.extend(a,d):d}},e={};return d.pipe=d.then,ia.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=da.call(arguments),g=f.length,h=1!==g||a&&ia.isFunction(a.promise)?g:0,i=1===h?a:ia.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?da.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=new Array(g),c=new Array(g),d=new Array(g);e
    a",c=l.getElementsByTagName("*"),d=l.getElementsByTagName("a")[0],!c||!d||!c.length)return{};f=W.createElement("select"),h=f.appendChild(W.createElement("option")),e=l.getElementsByTagName("input")[0],d.style.cssText="top:1px;float:left;opacity:.5",b={getSetAttribute:"t"!==l.className,leadingWhitespace:3===l.firstChild.nodeType,tbody:!l.getElementsByTagName("tbody").length,htmlSerialize:!!l.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:"/a"===d.getAttribute("href"),opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:!!e.value,optSelected:h.selected,enctype:!!W.createElement("form").enctype,html5Clone:"<:nav>"!==W.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===W.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},e.checked=!0,b.noCloneChecked=e.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!h.disabled;try{delete l.test}catch(m){b.deleteExpando=!1}e=W.createElement("input"),e.setAttribute("value",""),b.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),b.radioValue="t"===e.value,e.setAttribute("checked","t"),e.setAttribute("name","t"),g=W.createDocumentFragment(),g.appendChild(e),b.appendChecked=e.checked,b.checkClone=g.cloneNode(!0).cloneNode(!0).lastChild.checked,l.attachEvent&&(l.attachEvent("onclick",function(){b.noCloneEvent=!1}),l.cloneNode(!0).click());for(k in{submit:!0,change:!0,focusin:!0})l.setAttribute(i="on"+k,"t"),b[k+"Bubbles"]=i in a||l.attributes[i].expando===!1;return l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",b.clearCloneStyle="content-box"===l.style.backgroundClip,ia(function(){var c,d,e,f="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",g=W.getElementsByTagName("body")[0];g&&(c=W.createElement("div"),c.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",g.appendChild(c).appendChild(l),l.innerHTML="
    t
    ",e=l.getElementsByTagName("td"),e[0].style.cssText="padding:0;margin:0;border:0;display:none",j=0===e[0].offsetHeight,e[0].style.display="",e[1].style.display="none",b.reliableHiddenOffsets=j&&0===e[0].offsetHeight,l.innerHTML="",l.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=4===l.offsetWidth,b.doesNotIncludeMarginInBodyOffset=1!==g.offsetTop,a.getComputedStyle&&(b.pixelPosition="1%"!==(a.getComputedStyle(l,null)||{}).top,b.boxSizingReliable="4px"===(a.getComputedStyle(l,null)||{width:"4px"}).width,d=l.appendChild(W.createElement("div")),d.style.cssText=l.style.cssText=f,d.style.marginRight=d.style.width="0",l.style.width="1px",b.reliableMarginRight=!parseFloat((a.getComputedStyle(d,null)||{}).marginRight)),typeof l.style.zoom!==V&&(l.innerHTML="",l.style.cssText=f+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=3===l.offsetWidth,l.style.display="block",l.innerHTML="
    ",l.firstChild.style.width="5px",b.shrinkWrapBlocks=3!==l.offsetWidth,b.inlineBlockNeedsLayout&&(g.style.zoom=1)),g.removeChild(c),c=l=e=d=null)}),c=f=g=h=d=e=null,b}();var ya=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,za=/([A-Z])/g;ia.extend({cache:{},expando:"jQuery"+(aa+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?ia.cache[a[ia.expando]]:a[ia.expando],!!a&&!h(a)},data:function(a,b,c){return e(a,b,c)},removeData:function(a,b){return f(a,b)},_data:function(a,b,c){return e(a,b,c,!0)},_removeData:function(a,b){return f(a,b,!0)},acceptData:function(a){if(a.nodeType&&1!==a.nodeType&&9!==a.nodeType)return!1;var b=a.nodeName&&ia.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),ia.fn.extend({data:function(a,c){var d,e,f=this[0],h=0,i=null;if(a===b){if(this.length&&(i=ia.data(f),1===f.nodeType&&!ia._data(f,"parsedAttrs"))){for(d=f.attributes;h1,null,!0)},removeData:function(a){return this.each(function(){ia.removeData(this,a)})}}),ia.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=ia._data(a,b),c&&(!d||ia.isArray(c)?d=ia._data(a,b,ia.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=ia.queue(a,b),d=c.length,e=c.shift(),f=ia._queueHooks(a,b),g=function(){ia.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),f.cur=e,e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return ia._data(a,c)||ia._data(a,c,{empty:ia.Callbacks("once memory").add(function(){ia._removeData(a,b+"queue"),ia._removeData(a,c)})})}}),ia.fn.extend({queue:function(a,c){var d=2;return"string"!=typeof a&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){ia.removeAttr(this,a)})},prop:function(a,b){return ia.access(this,ia.prop,a,b,arguments.length>1)},removeProp:function(a){return a=ia.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g=0,h=this.length,i="string"==typeof a&&a;if(ia.isFunction(a))return this.each(function(b){ia(this).addClass(a.call(this,b,this.className))});if(i)for(b=(a||"").match(ka)||[];g=0;)d=d.replace(" "+e+" "," ");c.className=a?ia.trim(d):""}return this},toggleClass:function(a,b){var c=typeof a,d="boolean"==typeof b;return ia.isFunction(a)?this.each(function(c){ia(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if("string"===c)for(var e,f=0,g=ia(this),h=b,i=a.match(ka)||[];e=i[f++];)h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e);else c!==V&&"boolean"!==c||(this.className&&ia._data(this,"__className__",this.className),this.className=this.className||a===!1?"":ia._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];{if(arguments.length)return e=ia.isFunction(a),this.each(function(c){var f,g=ia(this);1===this.nodeType&&(f=e?a.call(this,c,g.val()):a,null==f?f="":"number"==typeof f?f+="":ia.isArray(f)&&(f=ia.map(f,function(a){return null==a?"":a+""})),d=ia.valHooks[this.type]||ia.valHooks[this.nodeName.toLowerCase()],d&&"set"in d&&d.set(this,f,"value")!==b||(this.value=f))});if(f)return d=ia.valHooks[f.type]||ia.valHooks[f.nodeName.toLowerCase()],d&&"get"in d&&(c=d.get(f,"value"))!==b?c:(c=f.value,"string"==typeof c?c.replace(Da,""):null==c?"":c)}}}),ia.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||e<0,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i=0}),c.length||(a.selectedIndex=-1),c}}},attr:function(a,c,d){var e,f,g,h=a.nodeType;if(a&&3!==h&&8!==h&&2!==h)return typeof a.getAttribute===V?ia.prop(a,c,d):(f=1!==h||!ia.isXMLDoc(a),f&&(c=c.toLowerCase(),e=ia.attrHooks[c]||(Ga.test(c)?Ba:Aa)),d===b?e&&f&&"get"in e&&null!==(g=e.get(a,c))?g:(typeof a.getAttribute!==V&&(g=a.getAttribute(c)),null==g?b:g):null!==d?e&&f&&"set"in e&&(g=e.set(a,d,c))!==b?g:(a.setAttribute(c,d+""),d):void ia.removeAttr(a,c))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(ka);if(f&&1===a.nodeType)for(;c=f[e++];)d=ia.propFix[c]||c,Ga.test(c)?!Ia&&Ha.test(c)?a[ia.camelCase("default-"+c)]=a[d]=!1:a[d]=!1:ia.attr(a,c,""),a.removeAttribute(Ia?c:d)},attrHooks:{type:{set:function(a,b){if(!ia.support.radioValue&&"radio"===b&&ia.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(a&&3!==h&&8!==h&&2!==h)return g=1!==h||!ia.isXMLDoc(a),g&&(c=ia.propFix[c]||c,f=ia.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&null!==(e=f.get(a,c))?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):Ea.test(a.nodeName)||Fa.test(a.nodeName)&&a.href?0:b}}}}),Ba={get:function(a,c){var d=ia.prop(a,c),e="boolean"==typeof d&&a.getAttribute(c),f="boolean"==typeof d?Ja&&Ia?null!=e:Ha.test(c)?a[ia.camelCase("default-"+c)]:!!e:a.getAttributeNode(c);return f&&f.value!==!1?c.toLowerCase():b},set:function(a,b,c){return b===!1?ia.removeAttr(a,c):Ja&&Ia||!Ha.test(c)?a.setAttribute(!Ia&&ia.propFix[c]||c,c):a[ia.camelCase("default-"+c)]=a[c]=!0,c}},Ja&&Ia||(ia.attrHooks.value={get:function(a,c){var d=a.getAttributeNode(c); -return ia.nodeName(a,"input")?a.defaultValue:d&&d.specified?d.value:b},set:function(a,b,c){return ia.nodeName(a,"input")?void(a.defaultValue=b):Aa&&Aa.set(a,b,c)}}),Ia||(Aa=ia.valHooks.button={get:function(a,c){var d=a.getAttributeNode(c);return d&&("id"===c||"name"===c||"coords"===c?""!==d.value:d.specified)?d.value:b},set:function(a,c,d){var e=a.getAttributeNode(d);return e||a.setAttributeNode(e=a.ownerDocument.createAttribute(d)),e.value=c+="","value"===d||c===a.getAttribute(d)?c:b}},ia.attrHooks.contenteditable={get:Aa.get,set:function(a,b,c){Aa.set(a,""!==b&&b,c)}},ia.each(["width","height"],function(a,b){ia.attrHooks[b]=ia.extend(ia.attrHooks[b],{set:function(a,c){if(""===c)return a.setAttribute(b,"auto"),c}})})),ia.support.hrefNormalized||(ia.each(["href","src","width","height"],function(a,c){ia.attrHooks[c]=ia.extend(ia.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return null==d?b:d}})}),ia.each(["href","src"],function(a,b){ia.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}})),ia.support.style||(ia.attrHooks.style={get:function(a){return a.style.cssText||b},set:function(a,b){return a.style.cssText=b+""}}),ia.support.optSelected||(ia.propHooks.selected=ia.extend(ia.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),ia.support.enctype||(ia.propFix.enctype="encoding"),ia.support.checkOn||ia.each(["radio","checkbox"],function(){ia.valHooks[this]={get:function(a){return null===a.getAttribute("value")?"on":a.value}}}),ia.each(["radio","checkbox"],function(){ia.valHooks[this]=ia.extend(ia.valHooks[this],{set:function(a,b){if(ia.isArray(b))return a.checked=ia.inArray(ia(a).val(),b)>=0}})});var Ka=/^(?:input|select|textarea)$/i,La=/^key/,Ma=/^(?:mouse|contextmenu)|click/,Na=/^(?:focusinfocus|focusoutblur)$/,Oa=/^([^.]*)(?:\.(.+)|)$/;ia.event={global:{},add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r=ia._data(a);if(r){for(d.handler&&(j=d,d=j.handler,f=j.selector),d.guid||(d.guid=ia.guid++),(h=r.events)||(h=r.events={}),(l=r.handle)||(l=r.handle=function(a){return typeof ia===V||a&&ia.event.triggered===a.type?b:ia.event.dispatch.apply(l.elem,arguments)},l.elem=a),c=(c||"").match(ka)||[""],i=c.length;i--;)g=Oa.exec(c[i])||[],o=q=g[1],p=(g[2]||"").split(".").sort(),k=ia.event.special[o]||{},o=(f?k.delegateType:k.bindType)||o,k=ia.event.special[o]||{},m=ia.extend({type:o,origType:q,data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&ia.expr.match.needsContext.test(f),namespace:p.join(".")},j),(n=h[o])||(n=h[o]=[],n.delegateCount=0,k.setup&&k.setup.call(a,e,p,l)!==!1||(a.addEventListener?a.addEventListener(o,l,!1):a.attachEvent&&a.attachEvent("on"+o,l))),k.add&&(k.add.call(a,m),m.handler.guid||(m.handler.guid=d.guid)),f?n.splice(n.delegateCount++,0,m):n.push(m),ia.event.global[o]=!0;a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ia.hasData(a)&&ia._data(a);if(q&&(k=q.events)){for(b=(b||"").match(ka)||[""],j=b.length;j--;)if(h=Oa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=ia.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=k[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;f--;)g=m[f],!e&&p!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||ia.removeEvent(a,n,q.handle),delete k[n])}else for(n in k)ia.event.remove(a,n+b[j],c,d,!0);ia.isEmptyObject(k)&&(delete q.handle,ia._removeData(a,"events"))}},trigger:function(c,d,e,f){var g,h,i,j,k,l,m,n=[e||W],o=ga.call(c,"type")?c.type:c,p=ga.call(c,"namespace")?c.namespace.split("."):[];if(i=l=e=e||W,3!==e.nodeType&&8!==e.nodeType&&!Na.test(o+ia.event.triggered)&&(o.indexOf(".")>=0&&(p=o.split("."),o=p.shift(),p.sort()),h=o.indexOf(":")<0&&"on"+o,c=c[ia.expando]?c:new ia.Event(o,"object"==typeof c&&c),c.isTrigger=!0,c.namespace=p.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,c.result=b,c.target||(c.target=e),d=null==d?[c]:ia.makeArray(d,[c]),k=ia.event.special[o]||{},f||!k.trigger||k.trigger.apply(e,d)!==!1)){if(!f&&!k.noBubble&&!ia.isWindow(e)){for(j=k.delegateType||o,Na.test(j+o)||(i=i.parentNode);i;i=i.parentNode)n.push(i),l=i;l===(e.ownerDocument||W)&&n.push(l.defaultView||l.parentWindow||a)}for(m=0;(i=n[m++])&&!c.isPropagationStopped();)c.type=m>1?j:k.bindType||o,g=(ia._data(i,"events")||{})[c.type]&&ia._data(i,"handle"),g&&g.apply(i,d),g=h&&i[h],g&&ia.acceptData(i)&&g.apply&&g.apply(i,d)===!1&&c.preventDefault();if(c.type=o,!f&&!c.isDefaultPrevented()&&(!k._default||k._default.apply(e.ownerDocument,d)===!1)&&("click"!==o||!ia.nodeName(e,"a"))&&ia.acceptData(e)&&h&&e[o]&&!ia.isWindow(e)){l=e[h],l&&(e[h]=null),ia.event.triggered=o;try{e[o]()}catch(q){}ia.event.triggered=b,l&&(e[h]=l)}return c.result}},dispatch:function(a){a=ia.event.fix(a);var c,d,e,f,g,h=[],i=da.call(arguments),j=(ia._data(this,"events")||{})[a.type]||[],k=ia.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){for(h=ia.event.handlers.call(this,a,j),c=0;(f=h[c++])&&!a.isPropagationStopped();)for(a.currentTarget=f.elem,g=0;(e=f.handlers[g++])&&!a.isImmediatePropagationStopped();)if(!a.namespace_re||a.namespace_re.test(e.namespace)){a.handleObj=e,a.data=e.data;var l=(ia.event.special[e.origType]||{}).handle||e.handler;l.apply&&(d=l.apply(f.elem,i)),d!==b&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation())}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,c){var d,e,f,g,h=[],i=c.delegateCount,j=a.target;if(i&&j.nodeType&&(!a.button||"click"!==a.type))for(;j!=this;j=j.parentNode||this)if(1===j.nodeType&&(j.disabled!==!0||"click"!==a.type)){for(f=[],g=0;g=0:ia.find(d,this,null,[j]).length),f[d]&&f.push(e);f.length&&h.push({elem:j,handlers:f})}return iy.cacheLength&&delete a[b.shift()],a[c]=d}}function e(a){return a[N]=!0,a}function f(a){var b=F.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}}function g(a,b,c,d){var e,f,g,h,i,j,k,n,o,p;if((b?b.ownerDocument||b:O)!==F&&E(b),b=b||F,c=c||[],!a||"string"!=typeof a)return c;if(1!==(h=b.nodeType)&&9!==h)return[];if(!H&&!d){if(e=pa.exec(a))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&L(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return Z.apply(c,$.call(b.getElementsByTagName(a),0)),c;if((g=e[3])&&P.getByClassName&&b.getElementsByClassName)return Z.apply(c,$.call(b.getElementsByClassName(g),0)),c}if(P.qsa&&!I.test(a)){if(k=!0,n=N,o=b,p=9===h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=l(a),(k=b.getAttribute("id"))?n=k.replace(sa,"\\$&"):b.setAttribute("id",n),n="[id='"+n+"'] ",i=j.length;i--;)j[i]=n+m(j[i]);o=na.test(a)&&b.parentNode||b,p=j.join(",")}if(p)try{return Z.apply(c,$.call(o.querySelectorAll(p),0)),c}catch(q){}finally{k||b.removeAttribute("id")}}}return u(a.replace(ga,"$1"),b,c,d)}function h(a,b){var c=b&&a,d=c&&(~b.sourceIndex||W)-(~a.sourceIndex||W);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function i(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function j(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function k(a){return e(function(b){return b=+b,e(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function l(a,b){var c,d,e,f,h,i,j,k=T[a+" "];if(k)return b?0:k.slice(0);for(h=a,i=[],j=y.preFilter;h;){c&&!(d=ha.exec(h))||(d&&(h=h.slice(d[0].length)||h),i.push(e=[])),c=!1,(d=ja.exec(h))&&(c=d.shift(),e.push({value:c,type:d[0].replace(ga," ")}),h=h.slice(c.length));for(f in y.filter)!(d=ma[f].exec(h))||j[f]&&!(d=j[f](d))||(c=d.shift(),e.push({value:c,type:f,matches:d}),h=h.slice(c.length));if(!c)break}return b?h.length:h?g.error(a):T(a,i).slice(0)}function m(a){for(var b=0,c=a.length,d="";b1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function p(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h-1&&(e[j]=!(g[j]=l))}}else s=p(s===g?s.splice(o,s.length):s),f?f(null,g,s,i):Z.apply(g,s)})}function r(a){for(var b,c,d,e=a.length,f=y.relative[a[0].type],g=f||y.relative[" "],h=f?1:0,i=n(function(a){return a===b},g,!0),j=n(function(a){return _.call(b,a)>-1},g,!0),k=[function(a,c,d){return!f&&(d||c!==D)||((b=c).nodeType?i(a,c,d):j(a,c,d))}];h1&&o(k),h>1&&m(a.slice(0,h-1)).replace(ga,"$1"),c,h0,f=a.length>0,h=function(e,h,i,j,k){var l,m,n,o=[],q=0,r="0",s=e&&[],t=null!=k,u=D,v=e||f&&y.find.TAG("*",k&&h.parentNode||h),w=Q+=null==u?1:Math.random()||.1;for(t&&(D=h!==F&&h,x=c);null!=(l=v[r]);r++){if(f&&l){for(m=0;n=a[m++];)if(n(l,h,i)){j.push(l);break}t&&(Q=w,x=++c)}d&&((l=!n&&l)&&q--,e&&s.push(l))}if(q+=r,d&&r!==q){for(m=0;n=b[m++];)n(s,o,h,i);if(e){if(q>0)for(;r--;)s[r]||o[r]||(o[r]=Y.call(j));o=p(o)}Z.apply(j,o),t&&!e&&o.length>0&&q+b.length>1&&g.uniqueSort(j)}return t&&(Q=w,D=u),s};return d?e(h):h}function t(a,b,c){for(var d=0,e=b.length;d2&&"ID"===(g=f[0]).type&&9===b.nodeType&&!H&&y.relative[f[1].type]){if(b=y.find.ID(g.matches[0].replace(ua,va),b)[0],!b)return c;a=a.slice(f.shift().value.length)}for(e=ma.needsContext.test(a)?0:f.length;e--&&(g=f[e],!y.relative[h=g.type]);)if((i=y.find[h])&&(d=i(g.matches[0].replace(ua,va),na.test(f[0].type)&&b.parentNode||b))){if(f.splice(e,1),a=d.length&&m(f),!a)return Z.apply(c,$.call(d,0)),c;break}}return B(a,j)(d,b,H,c,na.test(a)),c}function v(){}var w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+-new Date,O=a.document,P={},Q=0,R=0,S=d(),T=d(),U=d(),V=typeof b,W=1<<31,X=[],Y=X.pop,Z=X.push,$=X.slice,_=X.indexOf||function(a){for(var b=0,c=this.length;b+~])"+aa+"*"),ka=new RegExp(fa),la=new RegExp("^"+ca+"$"),ma={ID:new RegExp("^#("+ba+")"),CLASS:new RegExp("^\\.("+ba+")"),NAME:new RegExp("^\\[name=['\"]?("+ba+")['\"]?\\]"),TAG:new RegExp("^("+ba.replace("w","w*")+")"),ATTR:new RegExp("^"+ea),PSEUDO:new RegExp("^"+fa),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+aa+"*(even|odd|(([+-]|)(\\d*)n|)"+aa+"*(?:([+-]|)"+aa+"*(\\d+)|))"+aa+"*\\)|)","i"),needsContext:new RegExp("^"+aa+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+aa+"*((?:-\\d)?\\d*)"+aa+"*\\)|)(?=[^-]|$)","i")},na=/[\x20\t\r\n\f]*[+~]/,oa=/^[^{]+\{\s*\[native code/,pa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,qa=/^(?:input|select|textarea|button)$/i,ra=/^h\d$/i,sa=/'|\\/g,ta=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,ua=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,va=function(a,b){var c="0x"+b-65536;return c!==c?b:c<0?String.fromCharCode(c+65536):String.fromCharCode(c>>10|55296,1023&c|56320)};try{$.call(O.documentElement.childNodes,0)[0].nodeType}catch(wa){$=function(a){for(var b,c=[];b=this[a++];)c.push(b);return c}}A=g.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},E=g.setDocument=function(a){var d=a?a.ownerDocument||a:O;return d!==F&&9===d.nodeType&&d.documentElement?(F=d,G=d.documentElement,H=A(d),P.tagNameNoComments=f(function(a){return a.appendChild(d.createComment("")),!a.getElementsByTagName("*").length}),P.attributes=f(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return"boolean"!==b&&"string"!==b}),P.getByClassName=f(function(a){return a.innerHTML="",!(!a.getElementsByClassName||!a.getElementsByClassName("e").length)&&(a.lastChild.className="e",2===a.getElementsByClassName("e").length)}),P.getByName=f(function(a){a.id=N+0,a.innerHTML="
    ",G.insertBefore(a,G.firstChild);var b=d.getElementsByName&&d.getElementsByName(N).length===2+d.getElementsByName(N+0).length;return P.getIdNotName=!d.getElementById(N),G.removeChild(a),b}),y.attrHandle=f(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==V&&"#"===a.firstChild.getAttribute("href")})?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},P.getIdNotName?(y.find.ID=function(a,b){if(typeof b.getElementById!==V&&!H){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},y.filter.ID=function(a){var b=a.replace(ua,va);return function(a){return a.getAttribute("id")===b}}):(y.find.ID=function(a,c){if(typeof c.getElementById!==V&&!H){var d=c.getElementById(a);return d?d.id===a||typeof d.getAttributeNode!==V&&d.getAttributeNode("id").value===a?[d]:b:[]}},y.filter.ID=function(a){var b=a.replace(ua,va);return function(a){var c=typeof a.getAttributeNode!==V&&a.getAttributeNode("id");return c&&c.value===b}}),y.find.TAG=P.tagNameNoComments?function(a,b){if(typeof b.getElementsByTagName!==V)return b.getElementsByTagName(a)}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},y.find.NAME=P.getByName&&function(a,b){if(typeof b.getElementsByName!==V)return b.getElementsByName(name)},y.find.CLASS=P.getByClassName&&function(a,b){if(typeof b.getElementsByClassName!==V&&!H)return b.getElementsByClassName(a)},J=[],I=[":focus"],(P.qsa=c(d.querySelectorAll))&&(f(function(a){a.innerHTML="",a.querySelectorAll("[selected]").length||I.push("\\["+aa+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||I.push(":checked")}),f(function(a){a.innerHTML="",a.querySelectorAll("[i^='']").length&&I.push("[*^$]="+aa+"*(?:\"\"|'')"),a.querySelectorAll(":enabled").length||I.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),I.push(",.*:")})),(P.matchesSelector=c(K=G.matchesSelector||G.mozMatchesSelector||G.webkitMatchesSelector||G.oMatchesSelector||G.msMatchesSelector))&&f(function(a){P.disconnectedMatch=K.call(a,"div"),K.call(a,"[s!='']:x"),J.push("!=",fa)}),I=new RegExp(I.join("|")),J=new RegExp(J.join("|")),L=c(G.contains)||G.compareDocumentPosition?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},M=G.compareDocumentPosition?function(a,b){var c;return a===b?(C=!0,0):(c=b.compareDocumentPosition&&a.compareDocumentPosition&&a.compareDocumentPosition(b))?1&c||a.parentNode&&11===a.parentNode.nodeType?a===d||L(O,a)?-1:b===d||L(O,b)?1:0:4&c?-1:1:a.compareDocumentPosition?-1:1}:function(a,b){var c,e=0,f=a.parentNode,g=b.parentNode,i=[a],j=[b];if(a===b)return C=!0,0;if(!f||!g)return a===d?-1:b===d?1:f?-1:g?1:0;if(f===g)return h(a,b);for(c=a;c=c.parentNode;)i.unshift(c);for(c=b;c=c.parentNode;)j.unshift(c);for(;i[e]===j[e];)e++;return e?h(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},C=!1,[0,0].sort(M),P.detectDuplicates=C,F):F},g.matches=function(a,b){return g(a,null,null,b)},g.matchesSelector=function(a,b){if((a.ownerDocument||a)!==F&&E(a),b=b.replace(ta,"='$1']"),P.matchesSelector&&!H&&(!J||!J.test(b))&&!I.test(b))try{var c=K.call(a,b);if(c||P.disconnectedMatch||a.document&&11!==a.document.nodeType)return c}catch(d){}return g(b,F,null,[a]).length>0},g.contains=function(a,b){return(a.ownerDocument||a)!==F&&E(a),L(a,b)},g.attr=function(a,b){var c;return(a.ownerDocument||a)!==F&&E(a),H||(b=b.toLowerCase()),(c=y.attrHandle[b])?c(a):H||P.attributes?a.getAttribute(b):((c=a.getAttributeNode(b))||a.getAttribute(b))&&a[b]===!0?b:c&&c.specified?c.value:null},g.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},g.uniqueSort=function(a){var b,c=[],d=1,e=0;if(C=!P.detectDuplicates,a.sort(M),C){for(;b=a[d];d++)b===a[d-1]&&(e=c.push(d));for(;e--;)a.splice(c[e],1)}return a},z=g.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=z(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d];d++)c+=z(b);return c},y=g.selectors={cacheLength:50,createPseudo:e,match:ma,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ua,va),a[3]=(a[4]||a[5]||"").replace(ua,va),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||g.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&g.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return ma.CHILD.test(a[0])?null:(a[4]?a[2]=a[4]:c&&ka.test(c)&&(b=l(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){return"*"===a?function(){return!0}:(a=a.replace(ua,va).toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=S[a+" "];return b||(b=new RegExp("(^|"+aa+")"+a+"("+aa+"|$)"))&&S(a,function(a){return b.test(a.className||typeof a.getAttribute!==V&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=g.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===Q&&j[1],m=j[0]===Q&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[Q,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===Q)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[Q,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,d=y.pseudos[a]||y.setFilters[a.toLowerCase()]||g.error("unsupported pseudo: "+a);return d[N]?d(b):d.length>1?(c=[a,a,"",b],y.setFilters.hasOwnProperty(a.toLowerCase())?e(function(a,c){for(var e,f=d(a,b),g=f.length;g--;)e=_.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:e(function(a){var b=[],c=[],d=B(a.replace(ga,"$1"));return d[N]?e(function(a,b,c,e){for(var f,g=d(a,null,e,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:e(function(a){return function(b){return g(a,b).length>0}}),contains:e(function(a){return function(b){return(b.textContent||b.innerText||z(b)).indexOf(a)>-1}}),lang:e(function(a){return la.test(a||"")||g.error("unsupported lang: "+a),a=a.replace(ua,va).toLowerCase(),function(b){var c;do if(c=H?b.getAttribute("xml:lang")||b.getAttribute("lang"):b.lang)return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===G},focus:function(a){return a===F.activeElement&&(!F.hasFocus||F.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeName>"@"||3===a.nodeType||4===a.nodeType)return!1;return!0},parent:function(a){return!y.pseudos.empty(a)},header:function(a){return ra.test(a.nodeName)},input:function(a){return qa.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||b.toLowerCase()===a.type)},first:k(function(){return[0]}),last:k(function(a,b){return[b-1]}),eq:k(function(a,b,c){return[c<0?c+b:c]}),even:k(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:k(function(a,b,c){for(var d=c<0?c+b:c;++d1?ia.unique(c):c),c.selector=(this.selector?this.selector+" ":"")+a,c},has:function(a){var b,c=ia(a,this),d=c.length;return this.filter(function(){for(b=0;b=0:ia.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=Sa.test(a)||"string"!=typeof a?ia(a,b||this.context):0;d-1:ia.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}return this.pushStack(f.length>1?ia.unique(f):f)},index:function(a){return a?"string"==typeof a?ia.inArray(this[0],ia(a)):ia.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){var c="string"==typeof a?ia(a,b):ia.makeArray(a&&a.nodeType?[a]:a),d=ia.merge(this.get(),c);return this.pushStack(ia.unique(d))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),ia.fn.andSelf=ia.fn.addBack,ia.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return ia.dir(a,"parentNode")},parentsUntil:function(a,b,c){return ia.dir(a,"parentNode",c)},next:function(a){return k(a,"nextSibling")},prev:function(a){return k(a,"previousSibling")},nextAll:function(a){return ia.dir(a,"nextSibling")},prevAll:function(a){return ia.dir(a,"previousSibling")},nextUntil:function(a,b,c){return ia.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return ia.dir(a,"previousSibling",c); -},siblings:function(a){return ia.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return ia.sibling(a.firstChild)},contents:function(a){return ia.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:ia.merge([],a.childNodes)}},function(a,b){ia.fn[a]=function(c,d){var e=ia.map(this,b,c);return Pa.test(a)||(d=c),d&&"string"==typeof d&&(e=ia.filter(d,e)),e=this.length>1&&!Ta[a]?ia.unique(e):e,this.length>1&&Qa.test(a)&&(e=e.reverse()),this.pushStack(e)}}),ia.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),1===b.length?ia.find.matchesSelector(b[0],a)?[b[0]]:[]:ia.find.matches(a,b)},dir:function(a,c,d){for(var e=[],f=a[c];f&&9!==f.nodeType&&(d===b||1!==f.nodeType||!ia(f).is(d));)1===f.nodeType&&e.push(f),f=f[c];return e},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}});var Ua="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Va=/ jQuery\d+="(?:null|\d+)"/g,Wa=new RegExp("<(?:"+Ua+")[\\s/>]","i"),Xa=/^\s+/,Ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Za=/<([\w:]+)/,$a=/\s*$/g,gb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:ia.support.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},hb=m(W),ib=hb.appendChild(W.createElement("div"));gb.optgroup=gb.option,gb.tbody=gb.tfoot=gb.colgroup=gb.caption=gb.thead,gb.th=gb.td,ia.fn.extend({text:function(a){return ia.access(this,function(a){return a===b?ia.text(this):this.empty().append((this[0]&&this[0].ownerDocument||W).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(ia.isFunction(a))return this.each(function(b){ia(this).wrapAll(a.call(this,b))});if(this[0]){var b=ia(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return ia.isFunction(a)?this.each(function(b){ia(this).wrapInner(a.call(this,b))}):this.each(function(){var b=ia(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=ia.isFunction(a);return this.each(function(c){ia(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){ia.nodeName(this,"body")||ia(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||this.insertBefore(a,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,!1,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=0;null!=(c=this[d]);d++)(!a||ia.filter(a,[c]).length>0)&&(b||1!==c.nodeType||ia.cleanData(t(c)),c.parentNode&&(b&&ia.contains(c.ownerDocument,c)&&q(t(c,"script")),c.parentNode.removeChild(c)));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){for(1===a.nodeType&&ia.cleanData(t(a,!1));a.firstChild;)a.removeChild(a.firstChild);a.options&&ia.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return ia.clone(this,a,b)})},html:function(a){return ia.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return 1===c.nodeType?c.innerHTML.replace(Va,""):b;if("string"==typeof a&&!ab.test(a)&&(ia.support.htmlSerialize||!Wa.test(a))&&(ia.support.leadingWhitespace||!Xa.test(a))&&!gb[(Za.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ya,"<$1>");try{for(;d")?f=a.cloneNode(!0):(ib.innerHTML=a.outerHTML,ib.removeChild(f=ib.firstChild)),!(ia.support.noCloneEvent&&ia.support.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||ia.isXMLDoc(a)))for(d=t(f),h=t(a),g=0;null!=(e=h[g]);++g)d[g]&&s(e,d[g]);if(b)if(c)for(h=h||t(a),d=d||t(f),g=0;null!=(e=h[g]);g++)r(e,d[g]);else r(a,f);return d=t(f,"script"),d.length>0&&q(d,!i&&t(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,l=a.length,n=m(b),o=[],p=0;p")+k[2],e=k[0];e--;)h=h.lastChild;if(!ia.support.leadingWhitespace&&Xa.test(f)&&o.push(b.createTextNode(Xa.exec(f)[0])),!ia.support.tbody)for(f="table"!==i||$a.test(f)?""!==k[1]||$a.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;e--;)ia.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j);for(ia.merge(o,h.childNodes),h.textContent="";h.firstChild;)h.removeChild(h.firstChild);h=n.lastChild}else o.push(b.createTextNode(f));for(h&&n.removeChild(h),ia.support.appendChecked||ia.grep(t(o,"input"),u),p=0;f=o[p++];)if((!d||ia.inArray(f,d)===-1)&&(g=ia.contains(f.ownerDocument,f),h=t(n.appendChild(f),"script"),g&&q(h),c))for(e=0;f=h[e++];)db.test(f.type||"")&&c.push(f);return h=null,n},cleanData:function(a,b){for(var c,d,e,f,g=0,h=ia.expando,i=ia.cache,j=ia.support.deleteExpando,k=ia.event.special;null!=(c=a[g]);g++)if((b||ia.acceptData(c))&&(e=c[h],f=e&&i[e])){if(f.events)for(d in f.events)k[d]?ia.event.remove(c,d):ia.removeEvent(c,d,f.handle);i[e]&&(delete i[e],j?delete c[h]:typeof c.removeAttribute!==V?c.removeAttribute(h):c[h]=null,_.push(e))}}});var jb,kb,lb,mb=/alpha\([^)]*\)/i,nb=/opacity\s*=\s*([^)]*)/,ob=/^(top|right|bottom|left)$/,pb=/^(none|table(?!-c[ea]).+)/,qb=/^margin/,rb=new RegExp("^("+ja+")(.*)$","i"),sb=new RegExp("^("+ja+")(?!px)[a-z%]+$","i"),tb=new RegExp("^([+-])=("+ja+")","i"),ub={BODY:"block"},vb={position:"absolute",visibility:"hidden",display:"block"},wb={letterSpacing:0,fontWeight:400},xb=["Top","Right","Bottom","Left"],yb=["Webkit","O","Moz","ms"];ia.fn.extend({css:function(a,c){return ia.access(this,function(a,c,d){var e,f,g={},h=0;if(ia.isArray(c)){for(f=kb(a),e=c.length;h1)},show:function(){return x(this,!0)},hide:function(){return x(this)},toggle:function(a){var b="boolean"==typeof a;return this.each(function(){(b?a:w(this))?ia(this).show():ia(this).hide()})}}),ia.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=lb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":ia.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var f,g,h,i=ia.camelCase(c),j=a.style;if(c=ia.cssProps[i]||(ia.cssProps[i]=v(j,i)),h=ia.cssHooks[c]||ia.cssHooks[i],d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];if(g=typeof d,"string"===g&&(f=tb.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(ia.css(a,c)),g="number"),!(null==d||"number"===g&&isNaN(d)||("number"!==g||ia.cssNumber[i]||(d+="px"),ia.support.clearCloneStyle||""!==d||0!==c.indexOf("background")||(j[c]="inherit"),h&&"set"in h&&(d=h.set(a,d,e))===b)))try{j[c]=d}catch(k){}}},css:function(a,c,d,e){var f,g,h,i=ia.camelCase(c);return c=ia.cssProps[i]||(ia.cssProps[i]=v(a.style,i)),h=ia.cssHooks[c]||ia.cssHooks[i],h&&"get"in h&&(g=h.get(a,!0,d)),g===b&&(g=lb(a,c,e)),"normal"===g&&c in wb&&(g=wb[c]),""===d||d?(f=parseFloat(g),d===!0||ia.isNumeric(f)?f||0:g):g},swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e}}),a.getComputedStyle?(kb=function(b){return a.getComputedStyle(b,null)},lb=function(a,c,d){var e,f,g,h=d||kb(a),i=h?h.getPropertyValue(c)||h[c]:b,j=a.style;return h&&(""!==i||ia.contains(a.ownerDocument,a)||(i=ia.style(a,c)),sb.test(i)&&qb.test(c)&&(e=j.width,f=j.minWidth,g=j.maxWidth,j.minWidth=j.maxWidth=j.width=i,i=h.width,j.width=e,j.minWidth=f,j.maxWidth=g)),i}):W.documentElement.currentStyle&&(kb=function(a){return a.currentStyle},lb=function(a,c,d){var e,f,g,h=d||kb(a),i=h?h[c]:b,j=a.style;return null==i&&j&&j[c]&&(i=j[c]),sb.test(i)&&!ob.test(c)&&(e=j.left,f=a.runtimeStyle,g=f&&f.left,g&&(f.left=a.currentStyle.left),j.left="fontSize"===c?"1em":i,i=j.pixelLeft+"px",j.left=e,g&&(f.left=g)),""===i?"auto":i}),ia.each(["height","width"],function(a,b){ia.cssHooks[b]={get:function(a,c,d){if(c)return 0===a.offsetWidth&&pb.test(ia.css(a,"display"))?ia.swap(a,vb,function(){return A(a,b,d)}):A(a,b,d)},set:function(a,c,d){var e=d&&kb(a);return y(a,c,d?z(a,b,d,ia.support.boxSizing&&"border-box"===ia.css(a,"boxSizing",!1,e),e):0)}}}),ia.support.opacity||(ia.cssHooks.opacity={get:function(a,b){return nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=ia.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===ia.trim(f.replace(mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=mb.test(f)?f.replace(mb,e):f+" "+e)}}),ia(function(){ia.support.reliableMarginRight||(ia.cssHooks.marginRight={get:function(a,b){if(b)return ia.swap(a,{display:"inline-block"},lb,[a,"marginRight"])}}),!ia.support.pixelPosition&&ia.fn.position&&ia.each(["top","left"],function(a,b){ia.cssHooks[b]={get:function(a,c){if(c)return c=lb(a,b),sb.test(c)?ia(a).position()[b]+"px":c}}})}),ia.expr&&ia.expr.filters&&(ia.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!ia.support.reliableHiddenOffsets&&"none"===(a.style&&a.style.display||ia.css(a,"display"))},ia.expr.filters.visible=function(a){return!ia.expr.filters.hidden(a)}),ia.each({margin:"",padding:"",border:"Width"},function(a,b){ia.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+xb[d]+b]=f[d]||f[d-2]||f[0];return e}},qb.test(a)||(ia.cssHooks[a+b].set=y)});var zb=/%20/g,Ab=/\[\]$/,Bb=/\r?\n/g,Cb=/^(?:submit|button|image|reset|file)$/i,Db=/^(?:input|select|textarea|keygen)/i;ia.fn.extend({serialize:function(){return ia.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=ia.prop(this,"elements");return a?ia.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!ia(this).is(":disabled")&&Db.test(this.nodeName)&&!Cb.test(a)&&(this.checked||!bb.test(a))}).map(function(a,b){var c=ia(this).val();return null==c?null:ia.isArray(c)?ia.map(c,function(a){return{name:b.name,value:a.replace(Bb,"\r\n")}}):{name:b.name,value:c.replace(Bb,"\r\n")}}).get()}}),ia.param=function(a,c){var d,e=[],f=function(a,b){b=ia.isFunction(b)?b():null==b?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(c===b&&(c=ia.ajaxSettings&&ia.ajaxSettings.traditional),ia.isArray(a)||a.jquery&&!ia.isPlainObject(a))ia.each(a,function(){f(this.name,this.value)});else for(d in a)D(d,a[d],c,f);return e.join("&").replace(zb,"+")},ia.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){ia.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),ia.fn.hover=function(a,b){return this.mouseenter(a).mouseleave(b||a)};var Eb,Fb,Gb=ia.now(),Hb=/\?/,Ib=/#.*$/,Jb=/([?&])_=[^&]*/,Kb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Lb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mb=/^(?:GET|HEAD)$/,Nb=/^\/\//,Ob=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Pb=ia.fn.load,Qb={},Rb={},Sb="*/".concat("*");try{Fb=X.href}catch(Tb){Fb=W.createElement("a"),Fb.href="",Fb=Fb.href}Eb=Ob.exec(Fb.toLowerCase())||[],ia.fn.load=function(a,c,d){if("string"!=typeof a&&Pb)return Pb.apply(this,arguments);var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),ia.isFunction(c)?(d=c,c=b):c&&"object"==typeof c&&(g="POST"),h.length>0&&ia.ajax({url:a,type:g,dataType:"html",data:c}).done(function(a){f=arguments,h.html(e?ia("
    ").append(ia.parseHTML(a)).find(e):a)}).complete(d&&function(a,b){h.each(d,f||[a.responseText,b,a])}),this},ia.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){ia.fn[b]=function(a){return this.on(b,a)}}),ia.each(["get","post"],function(a,c){ia[c]=function(a,d,e,f){return ia.isFunction(d)&&(f=f||e,e=d,d=b),ia.ajax({url:a,type:c,dataType:f,data:d,success:e})}}),ia.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Fb,type:"GET",isLocal:Lb.test(Eb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Sb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":ia.parseJSON,"text xml":ia.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?G(G(a,ia.ajaxSettings),b):G(ia.ajaxSettings,a)},ajaxPrefilter:E(Qb),ajaxTransport:E(Rb),ajax:function(a,c){function d(a,c,d,e){var f,l,s,t,v,x=c;2!==u&&(u=2,i&&clearTimeout(i),k=b,h=e||"",w.readyState=a>0?4:0,d&&(t=H(m,w,d)),a>=200&&a<300||304===a?(m.ifModified&&(v=w.getResponseHeader("Last-Modified"),v&&(ia.lastModified[g]=v),v=w.getResponseHeader("etag"),v&&(ia.etag[g]=v)),204===a?(f=!0,x="nocontent"):304===a?(f=!0,x="notmodified"):(f=I(m,t),x=f.state,l=f.data,s=f.error,f=!s)):(s=x,!a&&x||(x="error",a<0&&(a=0))),w.status=a,w.statusText=(c||x)+"",f?p.resolveWith(n,[l,x,w]):p.rejectWith(n,[w,x,s]),w.statusCode(r),r=b,j&&o.trigger(f?"ajaxSuccess":"ajaxError",[w,m,f?l:s]),q.fireWith(n,[w,x]),j&&(o.trigger("ajaxComplete",[w,m]),--ia.active||ia.event.trigger("ajaxStop")))}"object"==typeof a&&(c=a,a=b),c=c||{};var e,f,g,h,i,j,k,l,m=ia.ajaxSetup({},c),n=m.context||m,o=m.context&&(n.nodeType||n.jquery)?ia(n):ia.event,p=ia.Deferred(),q=ia.Callbacks("once memory"),r=m.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!l)for(l={};b=Kb.exec(h);)l[b[1].toLowerCase()]=b[2];b=l[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?h:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(m.mimeType=a),this},statusCode:function(a){var b;if(a)if(u<2)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return k&&k.abort(b),d(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,m.url=((a||m.url||Fb)+"").replace(Ib,"").replace(Nb,Eb[1]+"//"),m.type=c.method||c.type||m.method||m.type,m.dataTypes=ia.trim(m.dataType||"*").toLowerCase().match(ka)||[""],null==m.crossDomain&&(e=Ob.exec(m.url.toLowerCase()),m.crossDomain=!(!e||e[1]===Eb[1]&&e[2]===Eb[2]&&(e[3]||("http:"===e[1]?80:443))==(Eb[3]||("http:"===Eb[1]?80:443)))),m.data&&m.processData&&"string"!=typeof m.data&&(m.data=ia.param(m.data,m.traditional)),F(Qb,m,c,w),2===u)return w;j=m.global,j&&0===ia.active++&&ia.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!Mb.test(m.type),g=m.url,m.hasContent||(m.data&&(g=m.url+=(Hb.test(g)?"&":"?")+m.data,delete m.data),m.cache===!1&&(m.url=Jb.test(g)?g.replace(Jb,"$1_="+Gb++):g+(Hb.test(g)?"&":"?")+"_="+Gb++)),m.ifModified&&(ia.lastModified[g]&&w.setRequestHeader("If-Modified-Since",ia.lastModified[g]),ia.etag[g]&&w.setRequestHeader("If-None-Match",ia.etag[g])),(m.data&&m.hasContent&&m.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",m.contentType),w.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+Sb+"; q=0.01":""):m.accepts["*"]);for(f in m.headers)w.setRequestHeader(f,m.headers[f]);if(m.beforeSend&&(m.beforeSend.call(n,w,m)===!1||2===u))return w.abort();v="abort";for(f in{success:1,error:1,complete:1})w[f](m[f]);if(k=F(Rb,m,c,w)){w.readyState=1,j&&o.trigger("ajaxSend",[w,m]),m.async&&m.timeout>0&&(i=setTimeout(function(){w.abort("timeout")},m.timeout));try{u=1,k.send(s,d)}catch(x){if(!(u<2))throw x;d(-1,x)}}else d(-1,"No Transport");return w},getScript:function(a,c){return ia.get(a,b,c,"script")},getJSON:function(a,b,c){return ia.get(a,b,c,"json")}}),ia.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return ia.globalEval(a),a}}}),ia.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),ia.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=W.head||ia("head")[0]||W.documentElement;return{send:function(b,e){c=W.createElement("script"),c.async=!0,a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,b){(b||!c.readyState||/loaded|complete/.test(c.readyState))&&(c.onload=c.onreadystatechange=null,c.parentNode&&c.parentNode.removeChild(c),c=null,b||e(200,"success"))},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(b,!0)}}}});var Ub=[],Vb=/(=)\?(?=&|$)|\?\?/;ia.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Ub.pop()||ia.expando+"_"+Gb++;return this[a]=!0,a}}),ia.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.jsonp!==!1&&(Vb.test(c.url)?"url":"string"==typeof c.data&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vb.test(c.data)&&"data");if(i||"jsonp"===c.dataTypes[0])return f=c.jsonpCallback=ia.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,i?c[i]=c[i].replace(Vb,"$1"+f):c.jsonp!==!1&&(c.url+=(Hb.test(c.url)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||ia.error(f+" was not called"),h[0]},c.dataTypes[0]="json",g=a[f],a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,Ub.push(f)),h&&ia.isFunction(g)&&g(h[0]),h=g=b}),"script"});var Wb,Xb,Yb=0,Zb=a.ActiveXObject&&function(){var a;for(a in Wb)Wb[a](b,!0)};ia.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&J()||K()}:J,Xb=ia.ajaxSettings.xhr(),ia.support.cors=!!Xb&&"withCredentials"in Xb,Xb=ia.support.ajax=!!Xb,Xb&&ia.ajaxTransport(function(c){if(!c.crossDomain||ia.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();if(c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async),c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),c.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l;try{if(d&&(e||4===i.readyState))if(d=b,g&&(i.onreadystatechange=ia.noop,Zb&&delete Wb[g]),e)4!==i.readyState&&i.abort();else{l={},h=i.status,j=i.getAllResponseHeaders(),"string"==typeof i.responseText&&(l.text=i.responseText);try{k=i.statusText}catch(m){k=""}h||!c.isLocal||c.crossDomain?1223===h&&(h=204):h=l.text?200:404}}catch(n){e||f(-1,n)}l&&f(h,k,l,j)},c.async?4===i.readyState?setTimeout(d):(g=++Yb,Zb&&(Wb||(Wb={},ia(a).unload(Zb)),Wb[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(b,!0)}}}});var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+ja+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[P],ec={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=bc.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){if(c=+f[2],d=f[3]||(ia.cssNumber[a]?"":"px"),"px"!==d&&h){h=ia.css(e.elem,a,!0)||c||1;do i=i||".5",h/=i,ia.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&1!==i&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};ia.Animation=ia.extend(N,{tweener:function(a,b){ia.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;d-1,l={},m={};k?(m=g.position(),e=m.top,f=m.left):(e=parseFloat(i)||0,f=parseFloat(j)||0),ia.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(l.top=b.top-h.top+e),null!=b.left&&(l.left=b.left-h.left+f),"using"in b?b.using.call(a,l):g.css(l)}},ia.fn.extend({position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===ia.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),ia.nodeName(a[0],"html")||(c=a.offset()),c.top+=ia.css(a[0],"borderTopWidth",!0),c.left+=ia.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-ia.css(d,"marginTop",!0),left:b.left-c.left-ia.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||W.documentElement;a&&!ia.nodeName(a,"html")&&"static"===ia.css(a,"position");)a=a.offsetParent;return a||W.documentElement})}}),ia.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);ia.fn[a]=function(e){return ia.access(this,function(a,e,f){var g=S(a);return f===b?g?c in g?g[c]:g.document.documentElement[e]:a[e]:void(g?g.scrollTo(d?ia(g).scrollLeft():f,d?f:ia(g).scrollTop()):a[e]=f)},a,e,arguments.length,null)}}),ia.each({Height:"height",Width:"width"},function(a,c){ia.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){ia.fn[e]=function(e,f){var g=arguments.length&&(d||"boolean"!=typeof e),h=d||(e===!0||f===!0?"margin":"border");return ia.access(this,function(c,d,e){var f;return ia.isWindow(c)?c.document.documentElement["client"+a]:9===c.nodeType?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?ia.css(c,d,h):ia.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=ia,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return ia})}(window),$.extend($.Event.prototype,{stopEvent:function(){this.stopPropagation(),this.preventDefault()}}),jQuery&&(!function(a){a.fn.insets||(a.fn.insets=function(){var a=this.padding(),b=this.border();return{top:a.top,bottom:a.bottom+b.bottom+b.top,left:a.left,right:a.right+b.right+b.left}}),a.fn.bounds||(a.fn.bounds=function(a){var b={hasIgnoredBounds:!0};return a?(isNaN(a.x)||(b.left=a.x),isNaN(a.y)||(b.top=a.y),null!=a.width&&(b.width=a.width-(this.outerWidth(!0)-this.width()),b.width=b.width>=0?b.width:a.width),null!=a.height&&(b.height=a.height-(this.outerHeight(!0)-this.height()),b.height=b.height>=0?b.height:a.height),this.css(b),this):(b=this.position(),{x:b.left,y:b.top,width:this.outerWidth(),height:this.outerHeight()})})}(jQuery),BI.extend(jQuery.fn,{destroy:function(){this.remove(),BI.isIE()===!0&&(this[0].outerHTML="")},__textKeywordMarked__:function(a,b,c){if(!BI.isKey(b)||(a+"").length>100)return this.html(BI.htmlEncode(a));b+="",b=BI.toUpperCase(b);var d=(a||"")+"";for(c=(c||BI.makeFirstPY(a))+"",null!=c&&(c=BI.toUpperCase(c)),this.empty();;){var e=BI.toUpperCase(d).indexOf(b),f=null;if(null!=c&&(f=c.indexOf(b),f>=0&&(f%=a.length)),e>=0)this.append(BI.htmlEncode(d.substr(0,e))),this.append($("").addClass("bi-keyword-red-mark").html(BI.htmlEncode(d.substr(e,b.length)))),d=d.substr(e+b.length),null!=c&&(c=c.substr(e+b.length));else{if(!(null!=f&&f>=0&&Math.floor(f/a.length)===Math.floor((f+b.length-1)/a.length))){this.append(BI.htmlEncode(d));break}this.append(BI.htmlEncode(d.substr(0,f))),this.append($("").addClass("bi-keyword-red-mark").html(BI.htmlEncode(d.substr(f,b.length)))),null!=c&&(c=c.substr(f+b.length)),d=d.substr(f+b.length)}}return this},getDomHeight:function(a){var b=$(this).clone();b.appendTo($(a||"body"));var c=b.height();return b.remove(),c},hasVerticalScroll:function(){return this.height()>0&&this[0].clientWidth0&&this[0].clientHeightb.left+c||a.pageYb.top+d)},__hasZIndexMask__:function(a){return a&&null!=this.zIndexMask[a]},__buildZIndexMask__:function(a,b){this.zIndexMask=this.zIndexMask||{},this.indexMask=this.indexMask||[];var c=BI.createWidget({type:"bi.center_adapt",cls:"bi-z-index-mask",items:b});return c.element.css({ -"z-index":a}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:c,left:0,right:0,top:0,bottom:0}]}),this.indexMask.push(c),a&&(this.zIndexMask[a]=c),c.element},__releaseZIndexMask__:function(a){if(a&&this.zIndexMask[a])return BI.remove(this.indexMask,this.zIndexMask[a]),void this.zIndexMask[a].destroy();this.indexMask=this.indexMask||[];var b=this.indexMask.pop();b&&b.destroy()}})),_.extend(BI,{$import:function(){function a(a,c){var d=$("head script, body script");$.each(d,function(c,d){d.src.indexOf(a)!=-1&&(b[a]=!0)});var e=$("head link");$.each(e,function(d,e){e.href.indexOf(a)!=-1&&c&&(b[a]=!1,$(e).remove())})}var b={};return function(c,d,e){if(a(c,e),b[c]!==!0)if("css"===d){var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.href=c;var g=document.getElementsByTagName("head")[0];g.appendChild(f),b[c]=!0}else $.ajax({url:c,dataType:"script",async:!1,cache:!0,complete:function(a,d){"success"==d&&(b[c]=!0)}})}}()}),Number.prototype.toFixed&&"0.000"===8e-5.toFixed(3)&&"0"!==.9.toFixed(0)&&"1.25"===1.255.toFixed(2)&&"1000000000000000128"===(0xde0b6b3a7640080).toFixed(0)||!function(){function a(a,b){for(var c=-1;++c=0;)c+=h[b],h[b]=Math.floor(c/a),c=c%a*f}function c(){for(var a=g,b="";--a>=0;)if(""!==b||0===a||0!==h[a]){var c=String(h[a]);""===b?b=c:b+="0000000".slice(0,7-c.length)+c}return b}function d(a,b,c){return 0===b?c:b%2===1?d(a,b-1,c*a):d(a*a,b/2,c)}function e(a){for(var b=0;a>=4096;)b+=12,a/=4096;for(;a>=2;)b+=1,a/=2;return b}var f,g,h;f=1e7,g=6,h=[0,0,0,0,0,0],Number.prototype.toFixed=function(f){var g,h,i,j,k,l,m,n;if(g=Number(f),g=g!==g?0:Math.floor(g),g<0||g>20)throw new RangeError("Number.toFixed called with invalid number of decimals");if(h=Number(this),h!==h)return"NaN";if(h<=-1e21||h>1e21)return String(h);if(i="",h<0&&(i="-",h=-h),j="0",h>1e-21)if(k=e(h*d(2,69,1))-69,l=k<0?h*d(2,-k,1):h/d(2,k,1),l*=4503599627370496,k=52-k,k>0){for(a(0,l),m=g;m>=7;)a(1e7,0),m-=7;for(a(d(10,m,1),0),m=k-1;m>=23;)b(1<<23),m-=23;b(1<0?(n=j.length,j=n<=g?i+"0.0000000000000000000".slice(0,g-n+2)+j:i+j.slice(0,n-g)+"."+j.slice(n-g)):j=i+j,j}}(),_.extend(BI,{MAX:0x1000000000000000,MIN:-0x1000000000000000,EVENT_RESPONSE_TIME:200,zIndex_layer:1e5,zIndex_popover:1e6,zIndex_popup:1e7,zIndex_masker:1e8,zIndex_tip:1e9,emptyStr:"",emptyFn:function(){},empty:null,Key:{48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/"},KeyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},Status:{SUCCESS:1,WRONG:2,START:3,END:4,WAITING:5,READY:6,RUNNING:7,OUTOFBOUNDS:8,NULL:-1},Direction:{Top:"top",Bottom:"bottom",Left:"left",Right:"right",Custom:"custom"},Axis:{Vertical:"vertical",Horizontal:"horizontal"},Selection:{Default:-2,None:-1,Single:0,Multi:1,All:2},HorizontalAlign:{Left:"left",Right:"right",Center:"center",Stretch:"stretch"},VerticalAlign:{Middle:"middle",Top:"top",Bottom:"bottom",Stretch:"stretch"},StartOfWeek:1}),BI.version="2.0",BI.AbsoluteCenterLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.AbsoluteCenterLayout.superclass.props.apply(this,arguments),{baseCls:"bi-absolute-center-layout",hgap:0,lgap:0,rgap:0,vgap:0,tgap:0,bgap:0})},render:function(){BI.AbsoluteCenterLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.AbsoluteCenterLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"absolute",left:c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0),right:c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0),top:c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0),bottom:c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0),margin:"auto"}),d},resize:function(){},populate:function(a){BI.AbsoluteCenterLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.absolute_center_adapt",BI.AbsoluteCenterLayout),BI.AbsoluteHorizontalLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.AbsoluteHorizontalLayout.superclass.props.apply(this,arguments),{baseCls:"bi-absolute-horizontal-layout",hgap:0,lgap:0,rgap:0,vgap:0,tgap:0,bgap:0})},render:function(){BI.AbsoluteHorizontalLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.AbsoluteHorizontalLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"absolute",left:c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0),right:c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0),margin:"auto"}),c.vgap+c.tgap+(b.vgap||0)+(b.tgap||0)!==0&&d.element.css("top",c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)),c.vgap+c.bgap+(b.vgap||0)+(b.bgap||0)!==0&&d.element.css("bottom",c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)),d},resize:function(){},populate:function(a){BI.AbsoluteHorizontalLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.absolute_horizontal_adapt",BI.AbsoluteHorizontalLayout),BI.AbsoluteVerticalLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.AbsoluteVerticalLayout.superclass.props.apply(this,arguments),{baseCls:"bi-absolute-vertical-layout",hgap:0,lgap:0,rgap:0,vgap:0,tgap:0,bgap:0})},render:function(){BI.AbsoluteVerticalLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.AbsoluteVerticalLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"absolute",left:b.lgap,right:b.rgap,top:c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0),bottom:c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0),margin:"auto"}),c.hgap+c.lgap+(b.hgap||0)+(b.lgap||0)!==0&&d.element.css("left",c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)),c.hgap+c.rgap+(b.hgap||0)+(b.rgap||0)!==0&&d.element.css("right",c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)),d},resize:function(){},populate:function(a){BI.AbsoluteVerticalLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.absolute_vertical_adapt",BI.AbsoluteVerticalLayout),BI.CenterAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.CenterAdaptLayout.superclass.props.apply(this,arguments),{baseCls:"bi-center-adapt-layout",horizontalAlign:BI.HorizontalAlign.Center,columnSize:[],scrollx:!1,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){var a=this.options,b=this;return BI.CenterAdaptLayout.superclass.render.apply(this,arguments),{type:"bi.horizontal",verticalAlign:BI.VerticalAlign.Middle,horizontalAlign:a.horizontalAlign,columnSize:a.columnSize,scrollx:a.scrollx,items:a.items,ref:function(a){b.layout=a},hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}},resize:function(){},populate:function(a){this.layout.populate.apply(this,arguments)}}),BI.shortcut("bi.center_adapt",BI.CenterAdaptLayout),BI.HorizontalAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.HorizontalAdaptLayout.superclass.props.apply(this,arguments),{baseCls:"bi-horizontal-adapt-layout",verticalAlign:BI.VerticalAlign.Top,horizontalAlign:BI.HorizontalAlign.Center,columnSize:[],scrollx:!1,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){var a=this,b=this.options;return BI.HorizontalAdaptLayout.superclass.render.apply(this,arguments),{type:"bi.horizontal",verticalAlign:BI.VerticalAlign.Top,horizontalAlign:b.horizontalAlign,columnSize:b.columnSize,items:b.items,scrollx:b.scrollx,ref:function(b){a.layout=b},hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap}},resize:function(){},populate:function(a){this.layout.populate.apply(this,arguments)}}),BI.shortcut("bi.horizontal_adapt",BI.HorizontalAdaptLayout),BI.LeftRightVerticalAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.LeftRightVerticalAdaptLayout.superclass.props.apply(this,arguments),{baseCls:"bi-left-right-vertical-adapt-layout",items:{},llgap:0,lrgap:0,lhgap:0,rlgap:0,rrgap:0,rhgap:0})},render:function(){var a=this.options;BI.LeftRightVerticalAdaptLayout.superclass.render.apply(this,arguments);var b=[];return"left"in a.items&&b.push({type:"bi.left",items:[{el:{type:"bi.vertical_adapt",height:"100%",items:a.items.left,hgap:a.lhgap,lgap:a.llgap,rgap:a.lrgap}}]}),"right"in a.items&&b.push({type:"bi.right",items:[{el:{type:"bi.vertical_adapt",height:"100%",items:a.items.right,textAlign:"right",hgap:a.rhgap,lgap:a.rlgap,rgap:a.rrgap}}]}),b},resize:function(){},addItem:function(){throw new Error("cannot be added")},populate:function(a){BI.LeftRightVerticalAdaptLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.left_right_vertical_adapt",BI.LeftRightVerticalAdaptLayout),BI.LeftVerticalAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.LeftRightVerticalAdaptLayout.superclass.props.apply(this,arguments),{baseCls:"bi-left-vertical-adapt-layout",items:[],lgap:0,rgap:0,hgap:0})},render:function(){var a=this.options,b=this;return BI.LeftVerticalAdaptLayout.superclass.render.apply(this,arguments),{type:"bi.left",ref:function(a){b.layout=a},items:[{el:{type:"bi.vertical_adapt",height:"100%",items:a.items,lgap:a.lgap,hgap:a.hgap,rgap:a.rgap}}]}},resize:function(){},addItem:function(){throw new Error("cannot be added")},populate:function(a){this.layout.populate.apply(this,arguments)}}),BI.shortcut("bi.left_vertical_adapt",BI.LeftVerticalAdaptLayout),BI.RightVerticalAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.RightVerticalAdaptLayout.superclass.props.apply(this,arguments),{baseCls:"bi-right-vertical-adapt-layout",items:[],lgap:0,rgap:0,hgap:0})},render:function(){var a=this.options,b=this;return BI.RightVerticalAdaptLayout.superclass.render.apply(this,arguments),{type:"bi.right",ref:function(a){b.layout=a},items:[{el:{type:"bi.vertical_adapt",height:"100%",textAlign:"right",items:a.items,lgap:a.lgap,hgap:a.hgap,rgap:a.rgap}}]}},resize:function(){},addItem:function(){throw new Error("cannot be added")},populate:function(a){this.layout.populate.apply(this,arguments)}}),BI.shortcut("bi.right_vertical_adapt",BI.RightVerticalAdaptLayout),BI.TableAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.TableAdaptLayout.superclass.props.apply(this,arguments),{baseCls:"bi-table-center-adapt-layout",columnSize:[],verticalAlign:BI.VerticalAlign.Top,horizontalAlign:BI.HorizontalAlign.Left,scrollx:!0,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){var a=this.options;BI.TableAdaptLayout.superclass.render.apply(this,arguments),this.$table=BI.Widget._renderEngine.createElement("
    ").css({position:"relative",display:"table",height:a.verticalAlign===BI.VerticalAlign.Middle?"100%":"auto",width:a.horizontalAlign===BI.HorizontalAlign.Center?"100%":"auto","white-space":"nowrap"}),this.populate(this.options.items)},_addElement:function(a,b){var c,d=this.options,e=d.columnSize[a]<=1?100*d.columnSize[a]+"%":d.columnSize[a];if(this.hasWidget(this._getChildName(a)))c=this.getWidgetByName(this._getChildName(a)),c.element.width(e);else{var f=BI.createWidget(b);f.element.css({position:"relative",top:"0",left:"0",margin:"0px auto"}),c=BI.createWidget({type:"bi.default",width:e,items:[f]}),this.addWidget(this._getChildName(a),c)}return c.element.css({"max-width":d.columnSize[a]<=1?e:e+"px"}),0===a&&c.element.addClass("first-element"),c.element.css({position:"relative",display:"table-cell","vertical-align":d.verticalAlign,margin:"0",padding:"0",height:"100%"}),d.vgap+d.tgap+(b.tgap||0)+(b.vgap||0)!==0&&f.element.css({"margin-top":d.vgap+d.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),d.hgap+d.lgap+(b.lgap||0)+(b.hgap||0)!==0&&f.element.css({"margin-left":(0===a?d.hgap:0)+d.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)!==0&&f.element.css({"margin-right":d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)!==0&&f.element.css({"margin-bottom":d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),c},appendFragment:function(a){this.$table.append(a),this.element.append(this.$table)},resize:function(){},populate:function(a){BI.TableAdaptLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.table_adapt",BI.TableAdaptLayout),BI.VerticalAdaptLayout=BI.inherit(BI.Layout,{props:{baseCls:"bi-vertical-adapt-layout",horizontalAlign:BI.HorizontalAlign.Left,columnSize:[],scrollx:!1,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0},render:function(){var a=this,b=this.options;return BI.VerticalAdaptLayout.superclass.render.apply(this,arguments),{type:"bi.horizontal",verticalAlign:BI.VerticalAlign.Middle,horizontalAlign:b.horizontalAlign,columnSize:b.columnSize,items:b.items,scrollx:b.scrollx,ref:function(b){a.layout=b},hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap}},resize:function(){},populate:function(a){this.layout.populate.apply(this,arguments)}}),BI.shortcut("bi.vertical_adapt",BI.VerticalAdaptLayout),BI.HorizontalAutoLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.HorizontalAutoLayout.superclass.props.apply(this,arguments),{baseCls:"bi-horizon-auto-layout",hgap:0,lgap:0,rgap:0,vgap:0,tgap:0,bgap:0})},render:function(){BI.HorizontalAutoLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.HorizontalAutoLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative",margin:"0px auto"}),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":(0===a?c.vgap:0)+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},resize:function(){},populate:function(a){BI.HorizontalAutoLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.horizontal_auto",BI.HorizontalAutoLayout),BI.FloatHorizontalLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FloatHorizontalLayout.superclass.props.apply(this,arguments),{baseCls:"bi-float-horizontal-adapt-layout",items:[],hgap:0,vgap:0,tgap:0,bgap:0,lgap:0,rgap:0})},render:function(){BI.FloatHorizontalLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},resize:function(){},mounted:function(){var a=this,b=this.left.element.width(),c=this.left.element.height();this.left.element.width(b).height(c).css("float","none"),BI.remove(this._children,function(b,c){c===a.container&&delete a._children[b]}),BI.createWidget({type:"bi.horizontal_auto",element:this,items:[this.left]})},_addElement:function(a,b){var c=this.options;return this.left=BI.createWidget({type:"bi.vertical",items:[b],hgap:c.hgap,vgap:c.vgap,tgap:c.tgap,bgap:c.bgap,lgap:c.lgap,rgap:c.rgap}),this.container=BI.createWidget({type:"bi.left",element:this,items:[this.left]}),this.left},populate:function(a){BI.HorizontalAutoLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.horizontal_float",BI.FloatHorizontalLayout),BI.InlineCenterAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.InlineLayout.superclass.props.apply(this,arguments),{baseCls:"bi-inline-center-adapt-layout",hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.InlineCenterAdaptLayout.superclass.render.apply(this,arguments),this.element.css({whiteSpace:"nowrap",textAlign:"center"}),this.populate(this.options.items)},_addElement:function(a,b,c){var d=this.options,e=BI.InlineVerticalAdaptLayout.superclass._addElement.apply(this,arguments);return e.element.css({position:"relative","vertical-align":"middle"}),e.element.addClass("inline-center-adapt-item"),d.vgap+d.tgap+(b.tgap||0)+(b.vgap||0)!==0&&e.element.css({"margin-top":d.vgap+d.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),d.hgap+d.lgap+(b.lgap||0)+(b.hgap||0)!==0&&e.element.css({"margin-left":(0===a?d.hgap:0)+d.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)!==0&&e.element.css({"margin-right":d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)!==0&&e.element.css({"margin-bottom":d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),e},resize:function(){this.stroke(this.options.items)},addItem:function(a){throw new Error("不能添加元素")},stroke:function(a){var b=this;BI.each(a,function(c,d){d&&b._addElement(c,d,a.length)})},populate:function(a){BI.InlineCenterAdaptLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.inline_center_adapt",BI.InlineCenterAdaptLayout),BI.InlineVerticalAdaptLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.InlineLayout.superclass.props.apply(this,arguments),{baseCls:"bi-inline-vertical-adapt-layout",hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,textAlign:"left"})},render:function(){BI.InlineVerticalAdaptLayout.superclass.render.apply(this,arguments);var a=this.options;this.element.css({whiteSpace:"nowrap",textAlign:a.textAlign}),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.InlineVerticalAdaptLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative","vertical-align":"middle"}),d.element.addClass("inline-vertical-adapt-item"),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":(0===a?c.hgap:0)+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},resize:function(){this.stroke(this.options.items)},populate:function(a){BI.InlineVerticalAdaptLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.inline_vertical_adapt",BI.InlineVerticalAdaptLayout),BI.FlexCenterLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexCenterLayout.superclass.props.apply(this,arguments),{baseCls:"bi-flex-center-adapt-layout"})},render:function(){BI.FlexCenterLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=(this.options,BI.FlexCenterLayout.superclass._addElement.apply(this,arguments));return c.element.css({position:"relative","flex-shrink":"0"}),c},resize:function(){},populate:function(a){BI.FlexCenterLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.flex_center_adapt",BI.FlexCenterLayout),BI.FlexHorizontalCenter=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexHorizontalCenter.superclass.props.apply(this,arguments),{baseCls:"bi-flex-horizontal-center-adapt-layout",verticalAlign:BI.VerticalAlign.Top,rowSize:[],scrolly:!1,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){var a=this,b=this.options;return{type:"bi.flex_vertical",ref:function(b){a.wrapper=b},horizontalAlign:BI.HorizontalAlign.Center,verticalAlign:b.verticalAlign,rowSize:b.rowSize,scrollx:b.scrollx,scrolly:b.scrolly,scrollable:b.scrollable,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,items:b.items}},resize:function(){},update:function(a){return this.wrapper.update(a)},populate:function(a){this.wrapper.populate(a)}}),BI.shortcut("bi.flex_horizontal_adapt",BI.FlexHorizontalCenter),BI.shortcut("bi.flex_horizontal_center_adapt",BI.FlexHorizontalCenter),BI.FlexHorizontalLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexHorizontalLayout.superclass.props.apply(this,arguments),{baseCls:"bi-flex-horizontal-layout",verticalAlign:BI.VerticalAlign.Top,horizontalAlign:BI.HorizontalAlign.Left,columnSize:[],scrollx:!0,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.FlexHorizontalLayout.superclass.render.apply(this,arguments);var a=this.options;this.element.addClass("v-"+a.verticalAlign).addClass("h-"+a.horizontalAlign),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.FlexHorizontalLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative","flex-shrink":"0"}),c.columnSize[a]>0&&d.element.width(c.columnSize[a]),"fill"===c.columnSize[a]&&d.element.css("flex","1"),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":(0===a?c.hgap:0)+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},resize:function(){},populate:function(a){BI.FlexHorizontalLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.flex_horizontal",BI.FlexHorizontalLayout),BI.FlexVerticalCenter=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexVerticalCenter.superclass.props.apply(this,arguments),{baseCls:"bi-flex-vertical-center-adapt-layout",horizontalAlign:BI.HorizontalAlign.Left,columnSize:[],scrollx:!1,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){var a=this,b=this.options;return{type:"bi.flex_horizontal",ref:function(b){a.wrapper=b},verticalAlign:BI.VerticalAlign.Middle,horizontalAlign:b.horizontalAlign,columnSize:b.columnSize,scrollx:b.scrollx,scrolly:b.scrolly,scrollable:b.scrollable,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,items:b.items}},resize:function(){},update:function(a){return this.wrapper.update(a)},populate:function(a){this.wrapper.populate(a)}}),BI.shortcut("bi.flex_vertical_adapt",BI.FlexVerticalCenter),BI.shortcut("bi.flex_vertical_center_adapt",BI.FlexVerticalCenter),BI.FlexVerticalLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexVerticalLayout.superclass.props.apply(this,arguments),{baseCls:"bi-flex-vertical-layout",horizontalAlign:BI.HorizontalAlign.Left,verticalAlign:BI.VerticalAlign.Top,rowSize:[],scrolly:!0,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.FlexVerticalLayout.superclass.render.apply(this,arguments);var a=this.options;this.element.addClass("h-"+a.horizontalAlign).addClass("v-"+a.verticalAlign),this.populate(this.options.items)},_addElement:function(a,b){var c=BI.FlexVerticalLayout.superclass._addElement.apply(this,arguments),d=this.options;return c.element.css({position:"relative","flex-shrink":"0"}),d.rowSize[a]>0&&c.element.height(d.rowSize[a]),"fill"===d.rowSize[a]&&c.element.css("flex","1"),d.vgap+d.tgap+(b.tgap||0)+(b.vgap||0)!==0&&c.element.css({"margin-top":(0===a?d.vgap:0)+d.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),d.hgap+d.lgap+(b.lgap||0)+(b.hgap||0)!==0&&c.element.css({"margin-left":d.hgap+d.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)!==0&&c.element.css({"margin-right":d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)!==0&&c.element.css({"margin-bottom":d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),c},resize:function(){},populate:function(a){BI.FlexVerticalLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.flex_vertical",BI.FlexVerticalLayout),BI.FlexWrapperCenterLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexWrapperCenterLayout.superclass.props.apply(this,arguments),{baseCls:"bi-flex-scrollable-center-adapt-layout clearfix",scrollable:!0})},render:function(){BI.FlexWrapperCenterLayout.superclass.render.apply(this,arguments),this.$wrapper=BI.Widget._renderEngine.createElement("
    ").addClass("flex-scrollable-center-adapt-layout-wrapper"),this.populate(this.options.items)},_addElement:function(a,b){var c=(this.options,BI.FlexWrapperCenterLayout.superclass._addElement.apply(this,arguments));return c.element.css({position:"relative"}),c},appendFragment:function(a){this.$wrapper.append(a),this.element.append(this.$wrapper)},_getWrapper:function(){return this.$wrapper},resize:function(){},populate:function(a){BI.FlexWrapperCenterLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.flex_scrollable_center_adapt",BI.FlexWrapperCenterLayout),BI.FlexWrapperHorizontalCenter=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexWrapperHorizontalCenter.superclass.props.apply(this,arguments),{baseCls:"bi-flex-scrollable-vertical-center-adapt-layout clearfix",verticalAlign:BI.VerticalAlign.Top,rowSize:[],scrollable:!0,scrolly:!1,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){var a=this,b=this.options;return{type:"bi.flex_scrollable_vertical",ref:function(b){a.wrapper=b},horizontalAlign:BI.HorizontalAlign.Center,verticalAlign:b.verticalAlign,rowSize:b.rowSize,scrollx:b.scrollx,scrolly:b.scrolly,scrollable:b.scrollable,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,items:b.items}},update:function(a){return this.wrapper.update(a)},populate:function(a){this.wrapper.populate(a)}}),BI.shortcut("bi.flex_scrollable_horizontal_adapt",BI.FlexWrapperHorizontalCenter),BI.shortcut("bi.flex_scrollable_horizontal_center_adapt",BI.FlexWrapperHorizontalCenter),BI.FlexWrapperHorizontalLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexWrapperHorizontalLayout.superclass.props.apply(this,arguments),{baseCls:"bi-flex-scrollable-horizontal-layout clearfix",verticalAlign:BI.VerticalAlign.Top,horizontalAlign:BI.HorizontalAlign.Left,columnSize:[],scrollable:null,scrollx:!0,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.FlexWrapperHorizontalLayout.superclass.render.apply(this,arguments);var a=this.options;this.$wrapper=BI.Widget._renderEngine.createElement("
    ").addClass("flex-scrollable-horizontal-layout-wrapper v-"+a.verticalAlign).addClass("h-"+a.horizontalAlign),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.FlexWrapperHorizontalLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative"}),c.columnSize[a]>0&&d.element.width(c.columnSize[a]),"fill"===c.columnSize[a]&&d.element.css("flex","1"),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":(0===a?c.hgap:0)+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},appendFragment:function(a){this.$wrapper.append(a),this.element.append(this.$wrapper)},_getWrapper:function(){return this.$wrapper},resize:function(){},populate:function(a){BI.FlexWrapperHorizontalLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.flex_scrollable_horizontal",BI.FlexWrapperHorizontalLayout),BI.FlexWrapperVerticalCenter=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexWrapperVerticalCenter.superclass.props.apply(this,arguments),{baseCls:"bi-flex-scrollable-vertical-center-adapt-layout clearfix",horizontalAlign:BI.HorizontalAlign.Left,columnSize:[],scrollx:!1,scrollable:!0,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){var a=this,b=this.options;return{type:"bi.flex_scrollable_horizontal",ref:function(b){a.wrapper=b},verticalAlign:BI.VerticalAlign.Middle,horizontalAlign:b.horizontalAlign,columnSize:b.columnSize,scrollx:b.scrollx,scrolly:b.scrolly,scrollable:b.scrollable,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,items:b.items}},update:function(a){return this.wrapper.update(a)},populate:function(a){this.wrapper.populate(a)}}),BI.shortcut("bi.flex_scrollable_vertical_adapt",BI.FlexWrapperVerticalCenter),BI.shortcut("bi.flex_scrollable_vertical_center_adapt",BI.FlexWrapperVerticalCenter),BI.FlexWrapperVerticalLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FlexWrapperVerticalLayout.superclass.props.apply(this,arguments),{baseCls:"bi-flex-scrollable-vertical-layout clearfix",horizontalAlign:BI.HorizontalAlign.Left,verticalAlign:BI.VerticalAlign.Top,rowSize:[],scrollable:null,scrolly:!0,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.FlexWrapperVerticalLayout.superclass.render.apply(this,arguments);var a=this.options;this.$wrapper=BI.Widget._renderEngine.createElement("
    ").addClass("flex-scrollable-vertical-layout-wrapper h-"+a.horizontalAlign).addClass("v-"+a.verticalAlign),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.FlexWrapperVerticalLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative"}),c.rowSize[a]>0&&d.element.height(c.rowSize[a]),"fill"===c.rowSize[a]&&d.element.css("flex","1"),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":(0===a?c.vgap:0)+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},appendFragment:function(a){this.$wrapper.append(a),this.element.append(this.$wrapper)},_getWrapper:function(){return this.$wrapper},resize:function(){},populate:function(a){BI.FlexWrapperVerticalLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.flex_scrollable_vertical",BI.FlexWrapperVerticalLayout),BI.AbsoluteLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.AbsoluteLayout.superclass.props.apply(this,arguments),{baseCls:"bi-absolute-layout",hgap:null,vgap:null,lgap:null,rgap:null,tgap:null,bgap:null})},render:function(){BI.AbsoluteLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.AbsoluteLayout.superclass._addElement.apply(this,arguments),e=0,f=0,g=0,h=0;return BI.isNotNull(b.left)&&(d.element.css({left:b.left}),e+=b.left),BI.isNotNull(b.right)&&(d.element.css({right:b.right}),f+=b.right),BI.isNotNull(b.top)&&(d.element.css({top:b.top}),g+=b.top),BI.isNotNull(b.bottom)&&(d.element.css({bottom:b.bottom}),h+=b.bottom),BI.isNotNull(c.hgap)&&(e+=c.hgap,d.element.css({left:e}),f+=c.hgap,d.element.css({right:f})),BI.isNotNull(c.vgap)&&(g+=c.vgap,d.element.css({top:g}),h+=c.vgap,d.element.css({bottom:h})),BI.isNotNull(c.lgap)&&(e+=c.lgap,d.element.css({left:e})),BI.isNotNull(c.rgap)&&(f+=c.rgap,d.element.css({right:f})),BI.isNotNull(c.tgap)&&(g+=c.tgap,d.element.css({top:g})),BI.isNotNull(c.bgap)&&(h+=c.bgap,d.element.css({bottom:h})),BI.isNotNull(b.width)&&d.element.css({width:b.width}),BI.isNotNull(b.height)&&d.element.css({height:b.height}),d.element.css({position:"absolute"}),d},resize:function(){this.stroke(this.options.items)},stroke:function(a){this.options.items=a||[];var b=this;BI.each(a,function(a,c){if(c){if(!BI.isWidget(c)&&!c.el)throw new Error("el must be exist");b._addElement(a,c)}})},populate:function(a){BI.AbsoluteLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.absolute",BI.AbsoluteLayout), -BI.AdaptiveLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.AdaptiveLayout.superclass.props.apply(this,arguments),{baseCls:"bi-adaptive-layout",hgap:null,vgap:null,lgap:null,rgap:null,tgap:null,bgap:null})},render:function(){BI.AdaptiveLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.AdaptiveLayout.superclass._addElement.apply(this,arguments);d.element.css({position:"relative"});var e=0,f=0,g=0,h=0;return BI.isNotNull(b.left)&&d.element.css({"margin-left":b.left}),BI.isNotNull(b.right)&&d.element.css({"margin-right":b.right}),BI.isNotNull(b.top)&&d.element.css({"margin-top":b.top}),BI.isNotNull(b.bottom)&&d.element.css({"margin-bottom":b.bottom}),BI.isNotNull(c.hgap)&&(e+=c.hgap,d.element.css({left:e}),f+=c.hgap,d.element.css({right:f})),BI.isNotNull(c.vgap)&&(g+=c.vgap,d.element.css({top:g}),h+=c.vgap,d.element.css({bottom:h})),BI.isNotNull(c.lgap)&&(e+=c.lgap,d.element.css({left:e})),BI.isNotNull(c.rgap)&&(f+=c.rgap,d.element.css({right:f})),BI.isNotNull(c.tgap)&&(g+=c.tgap,d.element.css({top:g})),BI.isNotNull(c.bgap)&&(h+=c.bgap,d.element.css({bottom:h})),BI.isNotNull(b.width)&&d.element.css({width:b.width}),BI.isNotNull(b.height)&&d.element.css({height:b.height}),d},resize:function(){this.stroke(this.options.items)},populate:function(a){BI.AbsoluteLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.adaptive",BI.AdaptiveLayout),BI.BorderLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.BorderLayout.superclass.props.apply(this,arguments),{baseCls:"bi-border-layout",items:{}})},render:function(){BI.BorderLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},resize:function(){this.stroke(this.options.items)},addItem:function(a){throw new Error("cannot be added")},stroke:function(a){var b,c=0,d=0,e=0,f=0;if("north"in a&&(b=a.north,null!=b)){if(b.el){if(!this.hasWidget(this.getName()+"north")){var g=BI.createWidget(b);this.addWidget(this.getName()+"north",g)}this.getWidgetByName(this.getName()+"north").element.height(b.height).css({position:"absolute",top:b.top||0,left:b.left||0,right:b.right||0,bottom:"initial"})}c=(b.height||0)+(b.top||0)+(b.bottom||0)}if("south"in a&&(b=a.south,null!=b)){if(b.el){if(!this.hasWidget(this.getName()+"south")){var g=BI.createWidget(b);this.addWidget(this.getName()+"south",g)}this.getWidgetByName(this.getName()+"south").element.height(b.height).css({position:"absolute",bottom:b.bottom||0,left:b.left||0,right:b.right||0,top:"initial"})}d=(b.height||0)+(b.top||0)+(b.bottom||0)}if("west"in a&&(b=a.west,null!=b)){if(b.el){if(!this.hasWidget(this.getName()+"west")){var g=BI.createWidget(b);this.addWidget(this.getName()+"west",g)}this.getWidgetByName(this.getName()+"west").element.width(b.width).css({position:"absolute",left:b.left||0,top:c,bottom:d,right:"initial"})}e=(b.width||0)+(b.left||0)+(b.right||0)}if("east"in a&&(b=a.east,null!=b)){if(b.el){if(!this.hasWidget(this.getName()+"east")){var g=BI.createWidget(b);this.addWidget(this.getName()+"east",g)}this.getWidgetByName(this.getName()+"east").element.width(b.width).css({position:"absolute",right:b.right||0,top:c,bottom:d,left:"initial"})}f=(b.width||0)+(b.left||0)+(b.right||0)}if("center"in a&&(b=a.center,null!=b)){if(!this.hasWidget(this.getName()+"center")){var g=BI.createWidget(b);this.addWidget(this.getName()+"center",g)}this.getWidgetByName(this.getName()+"center").element.css({position:"absolute",top:c,bottom:d,left:e,right:f})}},update:function(a){},populate:function(a){BI.BorderLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.border",BI.BorderLayout),BI.CardLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.CardLayout.superclass.props.apply(this,arguments),{baseCls:"bi-card-layout",items:[]})},render:function(){BI.CardLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},resize:function(){},stroke:function(a){var b=this,c=this.options;this.showIndex=void 0,BI.each(a,function(a,d){if(d){if(b.hasWidget(d.cardName))var e=b.getWidgetByName(d.cardName);else{var e=BI.createWidget(d);e.on(BI.Events.DESTROY,function(){var a=BI.findIndex(c.items,function(a,b){return b.cardName==d.cardName});a>-1&&c.items.splice(a,1)}),b.addWidget(d.cardName,e)}e.element.css({position:"absolute",top:"0",right:"0",bottom:"0",left:"0"}),e.setVisible(!1)}})},update:function(){},empty:function(){BI.CardLayout.superclass.empty.apply(this,arguments),this.options.items=[]},populate:function(a){BI.CardLayout.superclass.populate.apply(this,arguments),this._mount(),this.options.defaultShowName&&this.showCardByName(this.options.defaultShowName)},isCardExisted:function(a){return BI.some(this.options.items,function(b,c){return c.cardName==a&&c.el})},getCardByName:function(a){if(!this.isCardExisted(a))throw new Error("cardName is not exist");return this._children[a]},_deleteCardByName:function(a){delete this._children[a];var b=BI.findIndex(this.options.items,function(b,c){return c.cardName==a});b>-1&&this.options.items.splice(b,1)},deleteCardByName:function(a){if(!this.isCardExisted(a))throw new Error("cardName is not exist");var b=this._children[a];this._deleteCardByName(a),b&&b._destroy()},addCardByName:function(a,b){if(this.isCardExisted(a))throw new Error("cardName is already exist");var c=BI.createWidget(b,this);return c.element.css({position:"relative",top:"0",left:"0",width:"100%",height:"100%"}).appendTo(this.element),c.invisible(),this.addWidget(a,c),this.options.items.push({el:b,cardName:a}),c},showCardByName:function(a,b,c){var d=this,e=this.isCardExisted(a);null!=this.showIndex&&(this.lastShowIndex=this.showIndex),this.showIndex=a;var f=!1;BI.each(this.options.items,function(g,h){var i=d._children[h.cardName];i&&(a!=h.cardName?!f&&!e&&BI.Action&&b instanceof BI.Action?(b.actionBack(i),f=!0):i.invisible():BI.Action&&b instanceof BI.Action?b.actionPerformed(void 0,i,c):(i.visible(),c&&c()))})},showLastCard:function(){var a=this;this.showIndex=this.lastShowIndex,BI.each(this.options.items,function(b,c){a._children[c.cardName].setVisible(a.showIndex==b)})},setDefaultShowName:function(a){return this.options.defaultShowName=a,this},getDefaultShowName:function(){return this.options.defaultShowName},getAllCardNames:function(){return BI.map(this.options.items,function(a,b){return b.cardName})},getShowingCard:function(){if(BI.isKey(this.showIndex))return this.getWidgetByName(this.showIndex)},deleteAllCard:function(){var a=this;BI.each(this.getAllCardNames(),function(b,c){a.deleteCardByName(c)})},hideAllCard:function(){var a=this;BI.each(this.options.items,function(b,c){a._children[c.cardName].invisible()})},isAllCardHide:function(){var a=this,b=!0;return BI.some(this.options.items,function(c,d){if(a._children[d.cardName].isVisible())return b=!1,!1}),b},removeWidget:function(a){var b;BI.isWidget(a)?BI.each(this._children,function(c,d){d===a&&(b=c)}):b=a,b&&this._deleteCardByName(b)}}),BI.shortcut("bi.card",BI.CardLayout),BI.DefaultLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.DefaultLayout.superclass.props.apply(this,arguments),{hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,items:[]})},render:function(){BI.DefaultLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.DefaultLayout.superclass._addElement.apply(this,arguments);return c.vgap+c.tgap+(b.tgap||0)!==0&&d.element.css({"margin-top":c.vgap+c.tgap+(b.tgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)!==0&&d.element.css({"margin-left":c.hgap+c.lgap+(b.lgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+"px"}),d},resize:function(){},populate:function(a){BI.DefaultLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.default",BI.DefaultLayout),BI.DivisionLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.DivisionLayout.superclass.props.apply(this,arguments),{baseCls:"bi-division-layout",columns:null,rows:null,items:[]})},render:function(){BI.DivisionLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},resize:function(){this.stroke(this.opitons.items)},addItem:function(a){throw new Error("cannot be added")},stroke:function(a){function b(a,b,c){0===b&&a.addClass("first-row"),0===c&&a.addClass("first-col"),a.addClass(BI.isOdd(b+1)?"odd-row":"even-row"),a.addClass(BI.isOdd(c+1)?"odd-col":"even-col"),a.addClass("center-element")}function c(a,b,c){var d="";0===b&&(d+=" first-row"),0===c&&(d+=" first-col"),d+=BI.isOdd(b+1)?" odd-row":" even-row",d+=BI.isOdd(c+1)?" odd-col":" even-col",a.cls=(a.cls||"")+d+" center-element"}function d(a,d,e){a instanceof BI.Widget?b(a.element,d,e):a.el instanceof BI.Widget?b(a.el.element,d,e):a.el?c(a.el,d,e):c(a,d,e)}var e=this.options,f=e.rows||e.items.length,g=e.columns||0|(e.items[0]&&e.items[0].length),h=BI.makeArray(f),i={},j={};BI.each(h,function(a){h[a]=BI.makeArray(g)}),BI.each(a,function(a,b){return BI.isArray(b)?void BI.each(b,function(c,d){i[a]=(i[a]||0)+b.width,j[c]=(j[c]||0)+b.height,h[a][c]=d}):(i[b.row]=(i[b.row]||0)+b.width,j[b.column]=(j[b.column]||0)+b.height,void(h[b.row][b.column]=b))});for(var k=0;k0){var p=this.getWidgetByName(this.getName()+k+"_"+(m-1));p.element.css({right:100-o+"%"})}m==e.columns-1&&n.element.css({right:"0%"}),d(n,k,m),l+=h[k][m].width}for(var m=0;m0){var p=this.getWidgetByName(this.getName()+(k-1)+"_"+m);p.element.css({bottom:100-r+"%"})}k==e.rows-1&&n.element.css({bottom:"0%"}),q+=h[k][m].height}},update:function(){},populate:function(a){BI.DivisionLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.division",BI.DivisionLayout),BI.FloatLeftLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FloatLeftLayout.superclass.props.apply(this,arguments),{baseCls:"bi-float-left-layout clearfix",hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.FloatLeftLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.FloatLeftLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative","float":"left"}),BI.isNotNull(b.left)&&d.element.css({left:b.left}),BI.isNotNull(b.right)&&d.element.css({right:b.right}),BI.isNotNull(b.top)&&d.element.css({top:b.top}),BI.isNotNull(b.bottom)&&d.element.css({bottom:b.bottom}),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":(0===a?c.hgap:0)+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},resize:function(){this.stroke(this.options.items)},populate:function(a){BI.FloatLeftLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.left",BI.FloatLeftLayout),BI.FloatRightLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.FloatRightLayout.superclass.props.apply(this,arguments),{baseCls:"bi-float-right-layout clearfix",hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.FloatRightLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.FloatRightLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative","float":"right"}),BI.isNotNull(b.left)&&d.element.css({left:b.left}),BI.isNotNull(b.right)&&d.element.css({right:b.right}),BI.isNotNull(b.top)&&d.element.css({top:b.top}),BI.isNotNull(b.bottom)&&d.element.css({bottom:b.bottom}),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":(0===a?c.hgap:0)+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},resize:function(){this.stroke(this.options.items)},populate:function(a){BI.FloatRightLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.right",BI.FloatRightLayout),BI.GridLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.GridLayout.superclass.props.apply(this,arguments),{baseCls:"bi-grid-layout",columns:null,rows:null,items:[]})},render:function(){BI.GridLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},resize:function(){},addItem:function(){throw new Error("cannot be added")},stroke:function(a){function b(a,b,c){0===b&&a.addClass("first-row"),0===c&&a.addClass("first-col"),a.addClass(BI.isOdd(b+1)?"odd-row":"even-row"),a.addClass(BI.isOdd(c+1)?"odd-col":"even-col"),a.addClass("center-element")}function c(a,b,c){var d="";0===b&&(d+=" first-row"),0===c&&(d+=" first-col"),d+=BI.isOdd(b+1)?" odd-row":" even-row",d+=BI.isOdd(c+1)?" odd-col":" even-col",a.cls=(a.cls||"")+d+" center-element"}function d(a,d,e){a instanceof BI.Widget?b(a.element,d,e):a.el instanceof BI.Widget?b(a.el.element,d,e):a.el?c(a.el,d,e):c(a,d,e)}for(var e=this.options,f=e.rows||e.items.length,g=e.columns||0|(e.items[0]&&e.items[0].length),h=100/g,i=100/f,j=[],k=0;k").attr({cellspacing:0,cellpadding:0}).css({position:"relative","white-space":"nowrap",height:a.verticalAlign===BI.VerticalAlign.Middle?"100%":"auto",width:a.horizontalAlign===BI.HorizontalAlign.Center||a.horizontalAlign===BI.HorizontalAlign.Stretch?"100%":"auto","border-spacing":"0px",border:"none","border-collapse":"separate"}),this.$tr=BI.Widget._renderEngine.createElement("
    "),this.$tr.appendTo(this.$table),this.populate(this.options.items)},_addElement:function(a,b){var c,d=this.options,e=d.columnSize[a]<=1?100*d.columnSize[a]+"%":d.columnSize[a];if(this.hasWidget(this._getChildName(a)))c=this.getWidgetByName(this._getChildName(a)),c.element.attr("width",e);else{var f=BI.createWidget(b);f.element.css({position:"relative",margin:"0px auto"}),c=BI.createWidget({type:"bi.default",tagName:"td",attributes:{width:e},items:[f]}),this.addWidget(this._getChildName(a),c)}return c.element.css({"max-width":d.columnSize[a]<=1?e:e+"px"}),0===a&&c.element.addClass("first-element"),c.element.css({position:"relative","vertical-align":d.verticalAlign,margin:"0",padding:"0",border:"none"}),d.vgap+d.tgap+(b.tgap||0)+(b.vgap||0)!==0&&f.element.css({"margin-top":d.vgap+d.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),d.hgap+d.lgap+(b.lgap||0)+(b.hgap||0)!==0&&f.element.css({"margin-left":(0===a?d.hgap:0)+d.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)!==0&&f.element.css({"margin-right":d.hgap+d.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)!==0&&f.element.css({"margin-bottom":d.vgap+d.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),c},appendFragment:function(a){this.$tr.append(a),this.element.append(this.$table)},resize:function(){},_getWrapper:function(){return this.$tr},populate:function(a){BI.HorizontalLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.horizontal",BI.HorizontalLayout),BI.HorizontalCellLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.HorizontalCellLayout.superclass.props.apply(this,arguments),{baseCls:"bi-horizontal-cell-layout",scrollable:!0,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.HorizontalCellLayout.superclass.render.apply(this,arguments),this.element.css({display:"table","vertical-align":"top"}),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.HorizontalCellLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative",display:"table-cell","vertical-align":"middle"}),c.hgap+c.lgap>0&&d.element.css({"margin-left":c.hgap+c.lgap+"px"}),c.hgap+c.rgap>0&&d.element.css({"margin-right":c.hgap+c.rgap+"px"}),c.vgap+c.tgap>0&&d.element.css({"margin-top":c.vgap+c.tgap+"px"}),c.vgap+c.bgap>0&&d.element.css({"margin-bottom":c.vgap+c.bgap+"px"}),d},resize:function(){},populate:function(a){BI.HorizontalCellLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.horizontal_cell",BI.HorizontalCellLayout),BI.InlineLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.InlineLayout.superclass.props.apply(this,arguments),{baseCls:"bi-inline-layout",hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0})},render:function(){BI.InlineLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.InlineLayout.superclass._addElement.apply(this,arguments);return d.element.css({position:"relative",display:"inline-block","*display":"inline","*zoom":1}),c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-top":c.vgap+c.tgap+(b.tgap||0)+(b.vgap||0)+"px"}),c.hgap+c.lgap+(b.lgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-left":(0===a?c.hgap:0)+c.lgap+(b.lgap||0)+(b.hgap||0)+"px"}),c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)!==0&&d.element.css({"margin-right":c.hgap+c.rgap+(b.rgap||0)+(b.hgap||0)+"px"}),c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)!==0&&d.element.css({"margin-bottom":c.vgap+c.bgap+(b.bgap||0)+(b.vgap||0)+"px"}),d},resize:function(){this.stroke(this.options.items)},populate:function(a){BI.InlineLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.inline",BI.InlineLayout),BI.LatticeLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.LatticeLayout.superclass.props.apply(this,arguments),{baseCls:"bi-lattice-layout clearfix"})},render:function(){BI.LatticeLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},_addElement:function(a,b){var c=this.options,d=BI.LatticeLayout.superclass._addElement.apply(this,arguments);if(c.columnSize&&c.columnSize[a])var e=c.columnSize[a]/BI.sum(c.columnSize)*100+"%";else var e=1/this.options.items.length*100+"%";return d.element.css({position:"relative","float":"left",width:e}),d},addItem:function(a){var b=BI.LatticeLayout.superclass.addItem.apply(this,arguments);return this.resize(),b},addItemAt:function(a){var b=BI.LatticeLayout.superclass.addItemAt.apply(this,arguments);return this.resize(),b},resize:function(){this.stroke(this.options.items)},populate:function(a){BI.LatticeLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.lattice",BI.LatticeLayout),BI.TableLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.TableLayout.superclass.props.apply(this,arguments),{baseCls:"bi-table-layout",scrolly:!0,columnSize:[200,200,"fill"],rowSize:30,hgap:0,vgap:0,items:[[{el:{text:"label1"}},{el:{text:"label2"}},{el:{text:"label3"}}]]})},render:function(){BI.TableLayout.superclass.render.apply(this,arguments),this.rows=0,this.populate(this.options.items)},_addElement:function(a,b){function c(a,b,c){0===b&&a.addClass("first-row"),0===c&&a.addClass("first-col"),a.addClass(BI.isOdd(b+1)?"odd-row":"even-row"),a.addClass(BI.isOdd(c+1)?"odd-col":"even-col"),a.addClass("center-element")}function d(a,b,c){var d="";0===b&&(d+=" first-row"),0===c&&(d+=" first-col"),d+=BI.isOdd(b+1)?" odd-row":" even-row",d+=BI.isOdd(c+1)?" odd-col":" even-col",a.cls=(a.cls||"")+d+" center-element"}function e(a,b,e){a instanceof BI.Widget?c(a.element,b,e):a.el instanceof BI.Widget?c(a.el.element,b,e):a.el?d(a.el,b,e):d(a,b,e)}var f,g,h=this.options,i=[],j=0,k=0;for(f=0;ff;g--){if(!BI.isNumber(h.columnSize[g]))throw new Error("item with fill can only be one");e(b[g],this.rows,g),i.push(BI.extend({top:0,bottom:0,right:h.columnSize[g]<=1?100*k+"%":k,width:h.columnSize[g]<=1?100*h.columnSize[g]+"%":h.columnSize[g]},b[g])),k+=h.columnSize[g]+(h.columnSize[g]<1?0:h.hgap)}f>=0&&f0&&this.getWidgetByName(this.getName()+(this.rows-1)).element.css({"margin-bottom":h.vgap}),l.element.css({position:"relative"}),this.addWidget(this.getName()+this.rows++,l),l},resize:function(){},addItem:function(a){if(!BI.isArray(a))throw new Error("item must be array");return BI.TableLayout.superclass.addItem.apply(this,arguments)},update:function(){},populate:function(a){BI.TableLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.table",BI.TableLayout),BI.HTapeLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.HTapeLayout.superclass.props.apply(this,arguments),{baseCls:"bi-h-tape-layout",hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,items:[{width:100,el:{type:"bi.button",text:"button1"}},{width:"fill",el:{type:"bi.button",text:"button2"}},{width:200,el:{type:"bi.button",text:"button3"}}]})},render:function(){BI.HTapeLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},resize:function(){this.stroke(this.options.items)},addItem:function(a){throw new Error("cannot be added")},stroke:function(a){var b=this,c=this.options;a=BI.compact(a),BI.each(a,function(a,d){if(b.hasWidget(b.getName()+a+""))e=b.getWidgetByName(b.getName()+a+"");else{var e=BI.createWidget(d);b.addWidget(b.getName()+a+"",e)}e.element.css({position:"absolute",top:(d.vgap||0)+(d.tgap||0)+c.vgap+c.tgap+"px",bottom:(d.bgap||0)+(d.vgap||0)+c.vgap+c.bgap+"px"})});var d={},e={};d[0]=0,e[a.length-1]=0,BI.any(a,function(e,f){var g=b.getWidgetByName(b.getName()+e+"");if(BI.isNull(d[e])&&(d[e]=d[e-1]+a[e-1].width+(a[e-1].lgap||0)+2*(a[e-1].hgap||0)+c.hgap+c.lgap+c.rgap),f.width<1&&f.width>=0?g.element.css({left:100*d[e]+"%",width:100*f.width+"%"}):g.element.css({left:d[e]+(f.lgap||0)+(f.hgap||0)+c.hgap+c.lgap+"px",width:BI.isNumber(f.width)?f.width:""}),!BI.isNumber(f.width))return!0}),BI.backAny(a,function(d,f){var g=b.getWidgetByName(b.getName()+d+"");if(BI.isNull(e[d])&&(e[d]=e[d+1]+a[d+1].width+(a[d+1].rgap||0)+2*(a[d+1].hgap||0)+c.hgap+c.lgap+c.rgap),f.width<1&&f.width>=0?g.element.css({right:100*e[d]+"%",width:100*f.width+"%"}):g.element.css({right:e[d]+(f.rgap||0)+(f.hgap||0)+c.hgap+c.rgap+"px",width:BI.isNumber(f.width)?f.width:""}),!BI.isNumber(f.width))return!0})},update:function(){var a;return BI.each(this._children,function(b,c){a=c.update()||a}),a},populate:function(a){BI.HTapeLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.htape",BI.HTapeLayout),BI.VTapeLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.VTapeLayout.superclass.props.apply(this,arguments),{baseCls:"bi-v-tape-layout",hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,items:[{height:100,el:{type:"bi.button",text:"button1"}},{height:"fill",el:{type:"bi.button",text:"button2"}},{height:200,el:{type:"bi.button",text:"button3"}}]})},render:function(){BI.VTapeLayout.superclass.render.apply(this,arguments),this.populate(this.options.items)},resize:function(){this.stroke(this.options.items)},addItem:function(a){throw new Error("cannot be added")},stroke:function(a){var b=this,c=this.options;a=BI.compact(a),BI.each(a,function(a,d){if(b.hasWidget(b.getName()+a+""))e=b.getWidgetByName(b.getName()+a+"");else{var e=BI.createWidget(d);b.addWidget(b.getName()+a+"",e)}e.element.css({position:"absolute",left:(d.lgap||0)+(d.hgap||0)+c.hgap+c.lgap+"px",right:+(d.hgap||0)+(d.rgap||0)+c.hgap+c.rgap+"px"})});var d={},e={};d[0]=0,e[a.length-1]=0,BI.any(a,function(e,f){var g=b.getWidgetByName(b.getName()+e+"");if(BI.isNull(d[e])&&(d[e]=d[e-1]+a[e-1].height+(a[e-1].tgap||0)+2*(a[e-1].vgap||0)+c.vgap+c.tgap+c.bgap),f.height<1&&f.height>=0?g.element.css({top:100*d[e]+"%",height:100*f.height+"%"}):g.element.css({top:d[e]+(f.vgap||0)+(f.tgap||0)+c.vgap+c.tgap+"px",height:BI.isNumber(f.height)?f.height:""}),!BI.isNumber(f.height))return!0}),BI.backAny(a,function(d,f){var g=b.getWidgetByName(b.getName()+d+"");if(BI.isNull(e[d])&&(e[d]=e[d+1]+a[d+1].height+(a[d+1].bgap||0)+2*(a[d+1].vgap||0)+c.vgap+c.tgap+c.bgap),f.height<1&&f.height>=0?g.element.css({bottom:100*e[d]+"%",height:100*f.height+"%"}):g.element.css({bottom:e[d]+(f.vgap||0)+(f.bgap||0)+c.vgap+c.bgap+"px",height:BI.isNumber(f.height)?f.height:""}),!BI.isNumber(f.height))return!0})},update:function(){},populate:function(a){BI.VTapeLayout.superclass.populate.apply(this,arguments),this._mount()}}),BI.shortcut("bi.vtape",BI.VTapeLayout),BI.TdLayout=BI.inherit(BI.Layout,{props:function(){return BI.extend(BI.TdLayout.superclass.props.apply(this,arguments),{baseCls:"bi-td-layout",columnSize:[200,200,200],hgap:0,vgap:0,items:[[{el:{text:"label1"}},{el:{text:"label2"}},{el:{text:"label3"}}]]})},render:function(){BI.TdLayout.superclass.render.apply(this,arguments),this.$table=BI.Widget._renderEngine.createElement("
    ").attr({cellspacing:0,cellpadding:0}).css({position:"relative",width:"100%",height:"100%","border-spacing":"0px",border:"none","border-collapse":"separate"}),this.rows=0,this.populate(this.options.items)},_addElement:function(a,b){function c(a,b,c){0===b&&a.addClass("first-row"),0===c&&a.addClass("first-col"),a.addClass(BI.isOdd(b+1)?"odd-row":"even-row"),a.addClass(BI.isOdd(c+1)?"odd-col":"even-col"),a.addClass("center-element")}function d(a,b,c){var d="";0===b&&(d+=" first-row"),0===c&&(d+=" first-col"),d+=BI.isOdd(b+1)?" odd-row":" even-row",d+=BI.isOdd(c+1)?" odd-col":" even-col",a.cls=(a.cls||"")+d+" center-element"}function e(a,b,e){a instanceof BI.Widget?c(a.element,b,e):a.el instanceof BI.Widget?c(a.el.element,b,e):a.el?d(a.el,b,e):d(a,b,e)}for(var f=this.options,g=BI.createWidget({type:"bi.default",tagName:"tr"}),h=0;h=0;f--){for(var g=0;g=0;g--){for(var f=0;f-1)return a.splice(c,1)}}function i(a){if(!X.test(a)){var b=a.split(".");return function(a){for(var c=0;cva&&qa[d].watcher.id>a.id;)d--;qa.splice(d+1,0,{watcher:a,options:b})}else qa.push({watcher:a,options:b});ta||(ta=!0,Y(v))}}function x(a){ya.clear(),y(a,ya)}function y(a,b){var c=void 0,d=void 0,e=_.isArray(a);if(e||_.isObject(a)){if(a.__ob__){var f=a.__ob__.dep.id;if(b.has(f))return;b.add(f)}if(e)for(c=a.length;c--;)y(a[c],b);else for(d=_.keys(a),c=d.length;c--;)y(a[d[c]],b)}}function z(a){for(var b="",c=0,d=a.length;c 0 Then","\t\t["+a+'] = [$vbsetter](Me, [$accessors],"'+a+'")',"\tEnd If","\tOn Error Goto 0","\tEnd Property"));for(a in c)f[a]||(f[a]=!0,e.push("\tPublic ["+a+"]"));e.push("\tPublic [hasOwnProperty]"),e.push("End Class");var g=e.join("\r\n"),h=ja[g];h||(h=d("VBClass"),window.parseVB("Class "+h+g),window.parseVB(["Function "+h+"Factory(acc, vbm)","\tDim o","\tSet o = (New "+h+")(acc, vbm)","\tSet "+h+"Factory = o","End Function"].join("\r\n")),ja[g]=h);var i=window[h+"Factory"](b,ka);return i}}var la,ma=ga,na=_.keys(da),oa={shouldConvert:!0},pa=function(){function a(b){if(_classCallCheck(this,a),this.value=b,this.dep=new aa,this.vmCount=0,_.isArray(b)){var c=S?m:n;c(b,da,na),this.model=this.observeArray(b)}else this.model=this.walk(b);V?this.model.__ob__=this:l(this.model,"__ob__",this)}return a.prototype.walk=function(a){return q(a,this)},a.prototype.observeArray=function(a){for(var b=0,c=a.length;b=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var a=h.length;a;)this.addEventListener(h[--a],b,!1);else this.onmousewheel=b},teardown:function(){if(this.removeEventListener)for(var a=h.length;a;)this.removeEventListener(h[--a],b,!1);else this.onmousewheel=null},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),BI.Pane=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Pane.superclass._defaultConfig.apply(this,arguments),{_baseCls:"bi-pane",tipText:BI.i18nText("BI-No_Selected_Item"),overlap:!0,onLoaded:BI.emptyFn})},_assertTip:function(){var a=this.options;this._tipText||(this._tipText=BI.createWidget({type:"bi.label",cls:"bi-tips",text:a.tipText,height:25}),BI.createWidget({type:"bi.absolute_center_adapt",element:this,items:[this._tipText]}))},loading:function(){var a=this,b=this.options,c=BI.createWidget({type:"bi.horizontal",cls:"bi-loading-widget"+(BI.isIE()&&BI.getIEVersion()<10?" hack":""),height:30,width:30,hgap:5,vgap:2.5,items:[{type:"bi.layout",cls:"animate-rect rect1",height:25,width:3},{type:"bi.layout",cls:"animate-rect rect2",height:25,width:3},{type:"bi.layout",cls:"animate-rect rect3",height:25,width:3}]});this.setTipVisible(!1),b.overlap===!0?(BI.Layers.has(this.getName())||BI.createWidget({type:"bi.absolute_center_adapt",cls:"loading-container",items:[{el:c}],element:BI.Layers.make(this.getName(),this)}),BI.Layers.show(a.getName())):BI.isNull(this._loading)&&(this._loading=c,this._loading.element.css("zIndex",1),BI.createWidget({type:"bi.absolute_center_adapt",element:this,cls:"loading-container",items:[{el:this._loading,left:0,right:0,top:0}]})),this.element.addClass("loading-status")},loaded:function(){var a=this,b=this.options;BI.Layers.remove(a.getName()),this._loading&&this._loading.destroy(),this._loading&&(this._loading=null),b.onLoaded(),a.fireEvent(BI.Pane.EVENT_LOADED),this.element.removeClass("loading-status")},check:function(){this.setTipVisible(BI.isEmpty(this.options.items))},setTipVisible:function(a){a===!0?(this._assertTip(),this._tipText.setVisible(!0)):this._tipText&&this._tipText.setVisible(!1)},populate:function(a){this.options.items=a||[],this.check()},empty:function(){}}),BI.Pane.EVENT_LOADED="EVENT_LOADED",BI.Single=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.Single.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{_baseCls:(a._baseCls||"")+" bi-single",readonly:!1,title:null,warningTitle:null,tipType:null,value:null,belowMouse:!1})},_showToolTip:function(a,b){b||(b={});var c=this.options,d=this.getTipType()||(this.isEnabled()?"success":"warning"),e="success"===d?this.getTitle():this.getWarningTitle()||this.getTitle();BI.isKey(e)&&(BI.Tooltips.show(a,this.getName(),e,d,this,b),c.action&&BI.Actions.runAction(c.action,"hover",c,this),BI.Actions.runGlobalAction("hover",c,this))},_hideTooltip:function(){var a=this,b=BI.Tooltips.get(this.getName());BI.isNotNull(b)&&b.element.fadeOut(200,function(){BI.Tooltips.remove(a.getName())})},_init:function(){BI.Single.superclass._init.apply(this,arguments);var a=this.options;(BI.isKey(a.title)||BI.isKey(a.warningTitle)||BI.isFunction(a.title)||BI.isFunction(a.warningTitle))&&this.enableHover({belowMouse:a.belowMouse,container:a.container})},_clearTimeOut:function(){BI.isNotNull(this.showTimeout)&&(clearTimeout(this.showTimeout),this.showTimeout=null),BI.isNotNull(this.hideTimeout)&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)},enableHover:function(a){a||(a={});var b=this;this._hoverBinded||(this.element.on("mouseenter.title"+this.getName(),function(c){b._e=c,"warning"===b.getTipType()||BI.isKey(b.getWarningTitle())&&!b.isEnabled()?b.showTimeout=BI.delay(function(){BI.isNotNull(b.showTimeout)&&b._showToolTip(b._e||c,a)},200):("success"===b.getTipType()||b.isEnabled())&&(b.showTimeout=BI.delay(function(){BI.isNotNull(b.showTimeout)&&b._showToolTip(b._e||c,a)},500))}),this.element.on("mousemove.title"+this.getName(),function(c){b._e=c,BI.isNotNull(b.showTimeout)&&(clearTimeout(b.showTimeout),b.showTimeout=null),BI.isNull(b.hideTimeout)&&(b.hideTimeout=BI.delay(function(){BI.isNotNull(b.hideTimeout)&&b._hideTooltip()},500)),b.showTimeout=BI.delay(function(){BI.isNotNull(b.showTimeout)&&(BI.isNotNull(b.hideTimeout)&&(clearTimeout(b.hideTimeout),b.hideTimeout=null),b._showToolTip(b._e||c,a))},500)}),this.element.on("mouseleave.title"+this.getName(),function(a){b._e=null,b._clearTimeOut(),b._hideTooltip()}),this._hoverBinded=!0)},disabledHover:function(){this._clearTimeOut(),this._hideTooltip(),this.element.unbind("mouseenter.title"+this.getName()).unbind("mousemove.title"+this.getName()).unbind("mouseleave.title"+this.getName()),this._hoverBinded=!1},populate:function(a){this.items=a||[]},setTitle:function(a,b){this.options.title=a,BI.isKey(a)||BI.isFunction(a)?this.enableHover(b):this.disabledHover()},setWarningTitle:function(a,b){this.options.warningTitle=a,BI.isKey(a)||BI.isFunction(a)?this.enableHover(b):this.disabledHover()},getTipType:function(){return this.options.tipType},isReadOnly:function(){return!!this.options.readonly},getTitle:function(){var a=this.options.title;return BI.isFunction(a)?a():a},getWarningTitle:function(){var a=this.options.warningTitle;return BI.isFunction(a)?a():a},setValue:function(a){this.options.readonly||(this.options.value=a)},getValue:function(){return this.options.value},_unMount:function(){BI.Single.superclass._unMount.apply(this,arguments),BI.Tooltips.remove(this.getName())}}),BI.Text=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Text.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text",textAlign:"left",whiteSpace:"normal",lineHeight:null,handler:null,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,text:"",py:"",highLight:!1})},render:function(){var a=this,b=this.options;b.hgap+b.lgap>0&&this.element.css({"padding-left":b.hgap+b.lgap+"px"}),b.hgap+b.rgap>0&&this.element.css({"padding-right":b.hgap+b.rgap+"px"}),b.vgap+b.tgap>0&&this.element.css({"padding-top":b.vgap+b.tgap+"px"}),b.vgap+b.bgap>0&&this.element.css({"padding-bottom":b.vgap+b.bgap+"px"}),BI.isNumber(b.height)&&this.element.css({lineHeight:b.height+"px"}),BI.isNumber(b.lineHeight)&&this.element.css({lineHeight:b.lineHeight+"px"}),BI.isWidthOrHeight(b.maxWidth)&&this.element.css({maxWidth:b.maxWidth}),this.element.css({textAlign:b.textAlign,whiteSpace:b.whiteSpace,textOverflow:"nowrap"===b.whiteSpace?"ellipsis":"",overflow:"nowrap"===b.whiteSpace?"":"auto"}),b.handler?(this.text=BI.createWidget({type:"bi.layout",tagName:"span"}),this.text.element.click(function(){b.handler(a.getValue())}),BI.createWidget({type:"bi.default",element:this,items:[this.text]})):this.text=this;var c=this._getShowText();BI.isKey(c)?this.setText(c):BI.isKey(b.value)&&this.setText(b.value),BI.isKey(b.keyword)&&this.text.element.__textKeywordMarked__(c,b.keyword,b.py),b.highLight&&this.doHighLight()},_getShowText:function(){var a=this.options;return BI.isFunction(a.text)?a.text():a.text},doRedMark:function(a){var b=this.options;b.keyword=a,this.text.element.__textKeywordMarked__(this._getShowText()||b.value,a,b.py)},unRedMark:function(){var a=this.options;a.keyword="",this.text.element.__textKeywordMarked__(this._getShowText()||a.value,"",a.py)},doHighLight:function(){this.text.element.addClass("bi-high-light")},unHighLight:function(){this.text.element.removeClass("bi-high-light")},setValue:function(a){BI.Text.superclass.setValue.apply(this,arguments),this.isReadOnly()||this.setText(a)},setStyle:function(a){this.text.element.css(a)},setText:function(a){return BI.Text.superclass.setText.apply(this,arguments),this.options.text=BI.isNotNull(a)?a:"",BI.isIE9Below()?void this.text.element.html(BI.htmlEncode(this._getShowText())):void(/\s/.test(a)?this.text.element[0].innerHTML=BI.htmlEncode(this._getShowText()):this.text.element[0].textContent=this._getShowText())}}),BI.shortcut("bi.text",BI.Text),BI.BasicButton=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.BasicButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{_baseCls:(a._baseCls||"")+" bi-basic-button"+(a.invalid?"":" cursor-pointer"),value:"",text:"",stopEvent:!1,stopPropagation:!1,selected:!1,once:!1,forceSelected:!1,forceNotSelected:!1,disableSelected:!1,shadow:!1,isShadowShowingOnSelected:!1,trigger:null,handler:BI.emptyFn,bubble:null})},_init:function(){BI.BasicButton.superclass._init.apply(this,arguments);var a=this.options;a.selected===!0&&BI.nextTick(BI.bind(function(){this.setSelected(a.selected)},this)),BI.nextTick(BI.bind(this.bindEvent,this)),a.shadow&&this._createShadow(),a.level&&this.element.addClass("button-"+a.level)},_createShadow:function(){var a=this,b=this.options,c=function(){a.$mask||(a.$mask=BI.createWidget(BI.isObject(b.shadow)?b.shadow:{},{type:"bi.layout", -cls:"bi-button-mask"}),a.$mask.invisible(),BI.createWidget({type:"bi.absolute",element:a,items:[{el:a.$mask,left:0,right:0,top:0,bottom:0}]}))};this.element.mouseup(function(){a._hover||b.isShadowShowingOnSelected||(c(),a.$mask.invisible())}),this.element.on("mouseenter."+this.getName(),function(d){a.element.__isMouseInBounds__(d)&&(!a.isEnabled()||a._hover||!b.isShadowShowingOnSelected&&a.isSelected()||(c(),a.$mask.visible()))}),this.element.on("mousemove."+this.getName(),function(b){a.element.__isMouseInBounds__(b)||a.isEnabled()&&!a._hover&&(c(),a.$mask.invisible())}),this.element.on("mouseleave."+this.getName(),function(){a.isEnabled()&&!a._hover&&(c(),a.$mask.invisible())})},bindEvent:function(){function a(a){e.stopEvent&&a.stopEvent(),e.stopPropagation&&a.stopPropagation()}function b(b){if(a(b),!(!d.isEnabled()||d.isOnce()&&d.isSelected())){if(BI.isKey(e.bubble)||BI.isFunction(e.bubble)){if(BI.isNull(d.combo)){var f;BI.createWidget({type:"bi.absolute",element:d,items:[{el:{type:"bi.bubble_combo",trigger:"",ref:function(){d.combo=this},el:{type:"bi.layout",height:"100%"},popup:{type:"bi.text_bubble_bar_popup_view",text:c(),ref:function(){f=this},listeners:[{eventName:BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON,action:function(a){d.combo.hideView(),a&&h.apply(d,arguments)}}]},listeners:[{eventName:BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW,action:function(){f.populate(c())}}]},left:0,right:0,bottom:0,top:0}]})}return void(d.combo.isViewVisible()?d.combo.hideView():d.combo.showView())}h.apply(d,arguments)}}function c(){var a=d.options.bubble;return BI.isFunction(a)?a():a}var d=this,e=this.options,f=this.handle();if(f){f=f.element;var g=(e.trigger||"").split(",");BI.each(g,function(c,g){switch(g){case"mouseup":var h=!1;f.mousedown(function(){h=!0}),f.mouseup(function(c){h===!0&&b(c),h=!1,a(c)});break;case"mousedown":var h=!1,i=!1;f.mousedown(function(c){BI.Widget._renderEngine.createElement(document).bind("mouseup."+d.getName(),function(a){!BI.DOM.isExist(d)||f.__isMouseInBounds__(a)||h!==!0||i||d._trigger(),h=!1,BI.Widget._renderEngine.createElement(document).unbind("mouseup."+d.getName())}),h!==!0&&(d.isSelected()?i=!0:b(c),h=!0,a(c))}),f.mouseup(function(a){BI.DOM.isExist(d)&&h===!0&&i===!0&&b(a),h=!1,i=!1,BI.Widget._renderEngine.createElement(document).unbind("mouseup."+d.getName())});break;case"dblclick":f.dblclick(b);break;case"lclick":var j,h=!1;f.mousedown(function(b){BI.Widget._renderEngine.createElement(document).bind("mouseup."+d.getName(),function(a){j&&clearInterval(j),j=null,h=!1,BI.Widget._renderEngine.createElement(document).unbind("mouseup."+d.getName())}),h!==!0&&(!d.isEnabled()||d.isOnce()&&d.isSelected()||(j=setInterval(function(){d.isEnabled()&&d.doClick()},180),h=!0,a(b)))});break;default:(e.stopEvent||e.stopPropagation)&&f.mousedown(function(b){a(b)}),f.click(b)}});var h=BI.debounce(this._doClick,BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1})}},_trigger:function(a){var b=this.options;if(this.isEnabled()&&(this.isDisableSelected()||(this.isForceSelected()?this.setSelected(!0):this.isForceNotSelected()?this.setSelected(!1):this.setSelected(!this.isSelected())),this.isValid())){b.handler.call(this,this.getValue(),this,a);var c=this.getValue();this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,c,this,a),this.fireEvent(BI.BasicButton.EVENT_CHANGE,c,this),b.action&&BI.Actions.runAction(b.action,"click",b,this),BI.Actions.runGlobalAction("click",b,this)}},_doClick:function(a){this.isValid()&&this.beforeClick(a),this._trigger(a),this.isValid()&&this.doClick(a)},beforeClick:function(){},doClick:function(){},handle:function(){return this},hover:function(){this._hover=!0,this.handle().element.addClass("hover"),this.options.shadow&&this.$mask&&this.$mask.setVisible(!0)},dishover:function(){this._hover=!1,this.handle().element.removeClass("hover"),this.options.shadow&&this.$mask&&this.$mask.setVisible(!1)},setSelected:function(a){var b=this.options;b.selected=a,a?this.handle().element.addClass("active"):this.handle().element.removeClass("active"),b.shadow&&!b.isShadowShowingOnSelected&&this.$mask&&this.$mask.setVisible(!1)},isSelected:function(){return this.options.selected},isOnce:function(){return this.options.once},isForceSelected:function(){return this.options.forceSelected},isForceNotSelected:function(){return this.options.forceNotSelected},isDisableSelected:function(){return this.options.disableSelected},setText:function(a){this.options.text=a},getText:function(){return this.options.text},_setEnable:function(a){BI.BasicButton.superclass._setEnable.apply(this,arguments),a===!0?this.element.removeClass("base-disabled disabled"):a===!1&&this.element.addClass("base-disabled disabled"),a||this.options.shadow&&this.$mask&&this.$mask.setVisible(!1)},empty:function(){BI.Widget._renderEngine.createElement(document).unbind("mouseup."+this.getName()),BI.BasicButton.superclass.empty.apply(this,arguments)},destroy:function(){BI.BasicButton.superclass.destroy.apply(this,arguments)}}),BI.BasicButton.EVENT_CHANGE="BasicButton.EVENT_CHANGE",BI.NodeButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.NodeButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{_baseCls:(a._baseCls||"")+" bi-node",open:!1})},_init:function(){BI.NodeButton.superclass._init.apply(this,arguments);var a=this;BI.nextTick(function(){a.setOpened(a.isOpened())})},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments),this.setOpened(!this.isOpened())},isOnce:function(){return!1},isOpened:function(){return!!this.options.open},setOpened:function(a){this.options.open=!!a},triggerCollapse:function(){this.isOpened()&&(this.setOpened(!1),this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.COLLAPSE,this.getValue(),this))},triggerExpand:function(){this.isOpened()||(this.setOpened(!0),this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,this.getValue(),this))}}),BI.Tip=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Link.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{_baseCls:(a._baseCls||"")+" bi-tip",zIndex:BI.zIndex_tip})},_init:function(){BI.Tip.superclass._init.apply(this,arguments),this.element.css({zIndex:this.options.zIndex})}}),BI.ButtonGroup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ButtonGroup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-button-group",behaviors:{},items:[],value:"",chooseType:BI.Selection.Single,layouts:[{type:"bi.center",hgap:0,vgap:0}]})},_init:function(){BI.ButtonGroup.superclass._init.apply(this,arguments);var a=this.options,b={};BI.each(a.behaviors,function(a,c){b[a]=BI.BehaviorFactory.createBehavior(a,{rule:c})}),this.behaviors=b,this.populate(a.items),(BI.isKey(a.value)||BI.isNotEmptyArray(a.value))&&this.setValue(a.value)},_createBtns:function(a){this.options;return BI.createWidgets(BI.createItems(a,{type:"bi.text_button"}))},_btnsCreator:function(a){var b=this,c=Array.prototype.slice.call(arguments),d=this.options,e=this._createBtns(a);return c[0]=e,BI.each(this.behaviors,function(a,b){b.doBehavior.apply(b,c)}),BI.each(e,function(a,c){c.on(BI.Controller.EVENT_CHANGE,function(a,e,f){if(a===BI.Events.CLICK){switch(d.chooseType){case BI.ButtonGroup.CHOOSE_TYPE_SINGLE:b.setValue(c.getValue());break;case BI.ButtonGroup.CHOOSE_TYPE_NONE:b.setValue([])}b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b.fireEvent(BI.ButtonGroup.EVENT_CHANGE,e,f)}else b.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),c.on(BI.Events.DESTROY,function(){BI.remove(b.buttons,c)})}),e},_packageBtns:function(a){for(var b=this.options,c=b.layouts.length-1;c>0;c--)a=BI.map(a,function(a,d){return BI.extend({},b.layouts[c],{items:[BI.extend({},b.layouts[c].el,{el:d})]})});return a},_packageSimpleItems:function(a){var b=this.options;return BI.map(b.items,function(b,c){return BI.stripEL(c)===c?a[b]:BI.extend({},c,{el:a[b]})})},_packageItems:function(a,b){return BI.createItems(BI.makeArrayByArray(a,{}),BI.clone(b))},_packageLayout:function(a){for(var b=this.options,c=BI.deepClone(b.layouts[0]),d=BI.formatEL(c).el;d&&d.items&&!BI.isEmpty(d.items);)d=BI.formatEL(d.items[0]).el;return d.items=a,c},_isSimpleLayout:function(){var a=this.options;return 1===a.layouts.length&&!BI.isArray(a.items[0])},doBehavior:function(){var a=Array.prototype.slice.call(arguments);a.unshift(this.buttons),BI.each(this.behaviors,function(b,c){c.doBehavior.apply(c,a)})},prependItems:function(a){var b=(this.options,this._btnsCreator.apply(this,arguments));return this.buttons=BI.concat(b,this.buttons),this._isSimpleLayout()&&this.layouts&&this.layouts.prependItems?void this.layouts.prependItems(b):(a=this._packageItems(a,this._packageBtns(b)),void this.layouts.prependItems(this._packageLayout(a).items))},addItems:function(a){var b=(this.options,this._btnsCreator.apply(this,arguments));return this.buttons=BI.concat(this.buttons,b),this._isSimpleLayout()&&this.layouts&&this.layouts.addItems?void this.layouts.addItems(b):(a=this._packageItems(a,this._packageBtns(b)),void this.layouts.addItems(this._packageLayout(a).items))},removeItemAt:function(a){BI.removeAt(this.buttons,a),this.layouts.removeItemAt(a)},removeItems:function(a){a=BI.isArray(a)?a:[a];var b=[];BI.each(this.buttons,function(c,d){BI.deepContains(a,d.getValue())&&b.push(c)}),BI.removeAt(this.buttons,b),this.layouts.removeItemAt(b)},populate:function(a){a=a||[],this.empty(),this.options.items=a,this.buttons=this._btnsCreator.apply(this,arguments),a=this._isSimpleLayout()?this._packageSimpleItems(this.buttons):this._packageItems(a,this._packageBtns(this.buttons)),this.layouts=BI.createWidget(BI.extend({element:this},this._packageLayout(a)))},setNotSelectedValue:function(a){a=BI.isArray(a)?a:[a],BI.each(this.buttons,function(b,c){BI.deepContains(a,c.getValue())?c.setSelected&&c.setSelected(!1):c.setSelected&&c.setSelected(!0)})},setEnabledValue:function(a){a=BI.isArray(a)?a:[a],BI.each(this.buttons,function(b,c){BI.deepContains(a,c.getValue())?c.setEnable(!0):c.setEnable(!1)})},setValue:function(a){a=BI.isArray(a)?a:[a],BI.each(this.buttons,function(b,c){BI.deepContains(a,c.getValue())?c.setSelected&&c.setSelected(!0):c.setSelected&&c.setSelected(!1)})},getNotSelectedValue:function(){var a=[];return BI.each(this.buttons,function(b,c){!c.isEnabled()||c.isSelected&&c.isSelected()||a.push(c.getValue())}),a},getValue:function(){var a=[];return BI.each(this.buttons,function(b,c){c.isEnabled()&&c.isSelected&&c.isSelected()&&a.push(c.getValue())}),a},getAllButtons:function(){return this.buttons},getAllLeaves:function(){return this.buttons},getSelectedButtons:function(){var a=[];return BI.each(this.buttons,function(b,c){c.isSelected&&c.isSelected()&&a.push(c)}),a},getNotSelectedButtons:function(){var a=[];return BI.each(this.buttons,function(b,c){c.isSelected&&!c.isSelected()&&a.push(c)}),a},getIndexByValue:function(a){var b=-1;return BI.any(this.buttons,function(c,d){if(d.isEnabled()&&d.getValue()===a)return b=c,!0}),b},getNodeById:function(a){var b;return BI.any(this.buttons,function(c,d){if(d.isEnabled()&&d.options.id===a)return b=d,!0}),b},getNodeByValue:function(a){var b;return BI.any(this.buttons,function(c,d){if(d.isEnabled()&&d.getValue()===a)return b=d,!0}),b},empty:function(){BI.ButtonGroup.superclass.empty.apply(this,arguments),this.options.items=[]},destroy:function(){BI.ButtonGroup.superclass.destroy.apply(this,arguments),this.options.items=[]}}),BI.extend(BI.ButtonGroup,{CHOOSE_TYPE_SINGLE:BI.Selection.Single,CHOOSE_TYPE_MULTI:BI.Selection.Multi,CHOOSE_TYPE_ALL:BI.Selection.All,CHOOSE_TYPE_NONE:BI.Selection.None,CHOOSE_TYPE_DEFAULT:BI.Selection.Default}),BI.ButtonGroup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.button_group",BI.ButtonGroup),BI.ButtonTree=BI.inherit(BI.ButtonGroup,{_defaultConfig:function(){return BI.extend(BI.ButtonTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-button-tree"})},_init:function(){BI.ButtonTree.superclass._init.apply(this,arguments)},setNotSelectedValue:function(a){a=BI.isArray(a)?a:[a],BI.each(this.buttons,function(b,c){return BI.isFunction(c.setSelected)?void(BI.deepContains(a,c.getValue())?c.setSelected(!1):c.setSelected(!0)):void c.setNotSelectedValue(a)})},setEnabledValue:function(a){a=BI.isArray(a)?a:[a],BI.each(this.buttons,function(b,c){return BI.isFunction(c.setEnabledValue)?void c.setEnabledValue(a):void(BI.deepContains(a,c.getValue())?c.setEnable(!0):c.setEnable(!1))})},setValue:function(a){a=BI.isArray(a)?a:[a],BI.each(this.buttons,function(b,c){return BI.isFunction(c.setSelected)?void(BI.deepContains(a,c.getValue())?c.setSelected(!0):c.setSelected(!1)):void c.setValue(a)})},getNotSelectedValue:function(){var a=[];return BI.each(this.buttons,function(b,c){return c.isEnabled()&&!BI.isFunction(c.setSelected)?void(a=BI.concat(a,c.getNotSelectedValue())):void(c.isEnabled()&&c.isSelected&&!c.isSelected()&&a.push(c.getValue()))}),a},getValue:function(){var a=[];return BI.each(this.buttons,function(b,c){return c.isEnabled()&&!BI.isFunction(c.setSelected)?void(a=BI.concat(a,c.getValue())):void(c.isEnabled()&&c.isSelected&&c.isSelected()&&a.push(c.getValue()))}),a},getSelectedButtons:function(){var a=[];return BI.each(this.buttons,function(b,c){return c.isEnabled()&&!BI.isFunction(c.setSelected)?void(a=a.concat(c.getSelectedButtons())):void(c.isSelected&&c.isSelected()&&a.push(c))}),a},getNotSelectedButtons:function(){var a=[];return BI.each(this.buttons,function(b,c){return c.isEnabled()&&!BI.isFunction(c.setSelected)?void(a=a.concat(c.getNotSelectedButtons())):void(c.isSelected&&!c.isSelected()&&a.push(c))}),a},getAllLeaves:function(){var a=[];return BI.each(this.buttons,function(b,c){return c.isEnabled()&&!BI.isFunction(c.setSelected)?void(a=a.concat(c.getAllLeaves())):void(c.isEnabled()&&a.push(c))}),a},getIndexByValue:function(a){var b=-1;return BI.any(this.buttons,function(c,d){var e=d.getValue();if(d.isEnabled()&&(e===a||BI.contains(e,a)))return b=c,!0}),b},getNodeById:function(a){var b;return BI.any(this.buttons,function(c,d){if(d.isEnabled()){if(d.attr("id")===a)return b=d,!0;if(BI.isFunction(d.getNodeById)&&(b=d.getNodeById(a)))return!0}}),b},getNodeByValue:function(a){var b;return BI.any(this.buttons,function(c,d){if(d.isEnabled())if(BI.isFunction(d.getNodeByValue)){if(b=d.getNodeByValue(a))return!0}else if(d.attr("value")===a)return b=d,!0}),b}}),BI.ButtonTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.button_tree",BI.ButtonTree),BI.TreeView=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.TreeView.superclass._defaultConfig.apply(this,arguments),{_baseCls:"bi-tree",paras:{selectedValues:{}},itemsCreator:BI.emptyFn})},_init:function(){BI.TreeView.superclass._init.apply(this,arguments);var a=this.options;this._stop=!1,this._createTree(),this.tip=BI.createWidget({type:"bi.loading_bar",invisible:!0,handler:BI.bind(this._loadMore,this)}),BI.createWidget({type:"bi.vertical",scrollable:!0,scrolly:!1,element:this,items:[this.tip]}),BI.isNotNull(a.value)&&this.setSelectedValue(a.value),BI.isIE9Below&&BI.isIE9Below()&&this.element.addClass("hack")},_createTree:function(){this.id="bi-tree"+BI.UUID(),this.nodes&&this.nodes.destroy(),this.tree&&this.tree.destroy(),this.tree=BI.createWidget({type:"bi.layout",element:"
      "}),BI.createWidget({type:"bi.default",element:this.element,items:[this.tree]})},_selectTreeNode:function(a,b){this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,b,this),this.fireEvent(BI.TreeView.EVENT_CHANGE,b,this)},_configSetting:function(){function a(a,b,c){var d=c.checked,e=c.getCheckStatus();e.half===!0&&e.checked===!0&&(d=!1),l.nodes.checkNode(c,!d,!0,!0)}function b(a,b){var c=l._getParentValues(b);b.times=b.times||1;var d="id="+b.id+"×="+b.times++ +"&parentValues= "+_global.encodeURIComponent(BI.jsonEncode(c))+"&checkState="+_global.encodeURIComponent(BI.jsonEncode(b.getCheckStatus()));return"&"+d}function c(a,b){return b.isAjaxing?(BI.Msg.toast("Please Wait。","warning"),!1):(b.children||(b.times=1,f(b,"refresh")),!0)}function d(a,b,c,d){if(c.halfCheck=!1,d&&0!==d.length&&!/^[\s,\S]*<\/html>$/gi.test(d)&&!l._stop){var e=l.nodes,g=c.count||0;c.children.length>g?(c.count=c.children.length,BI.delay(function(){f(c)},n)):(e.updateNode(c),e.selectNode(c.children[0]))}}function e(a,b,c,d,e,f){l.nodes;BI.Msg.toast("Error!","warning")}function f(a,b){var c=l.nodes;"refresh"==b&&c.updateNode(a),c.reAsyncChildNodes(a,b,!0)}function g(a,b){function c(a){BI.each(a,function(a,b){b.halfCheck===!0&&(b.halfCheck=!1,c(b.children))})}if(b.halfCheck=!1,b.checked===!0){c(b.children);var d=l.nodes,e=d.getSelectedNodes();$.each(e,function(a,b){b.halfCheck=!1})}var f=b.getCheckStatus();f.half===!0&&f.checked===!0&&(b.checked=!1)}function h(a,b,c){l._selectTreeNode(b,c)}function i(a,b,c){c.halfCheck=!1}function j(a,b,c){}var k=this.options.paras,l=this,m={async:{enable:!0,url:b,autoParam:["id","name"],otherParam:BI.cjkEncodeDO(k)},check:{enable:!0},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},view:{showIcon:!1,expandSpeed:"",nameIsHTML:!0,dblClickExpand:!1},callback:{beforeExpand:c,onAsyncSuccess:d,onAsyncError:e,beforeCheck:g,onCheck:h,onExpand:i,onCollapse:j,onClick:a}},n=100;return m},_getParentValues:function(a){if(!a.getParentNode())return[];var b=a.getParentNode(),c=this._getParentValues(b);return c=c.concat([this._getNodeValue(b)])},_getNodeValue:function(a){return null==a.value?BI.replaceAll(a.text.replace(/<[^>]+>/g,"")," "," "):a.value},_getHalfSelectedValues:function(a,b){var c=this,d=b.getCheckStatus();if(d.checked!==!1||d.half!==!1){if(BI.isNotEmptyArray(b.children)&&d.half===!0){var e=b.children;return void BI.each(e,function(b,d){c._getHalfSelectedValues(a,d)})}var f=b.parentValues||c._getParentValues(b),g=f.concat(this._getNodeValue(b));if(BI.isNotEmptyArray(b.children)||d.half===!1)return void this._buildTree(a,g);var h=BI.deepClone(this.options.paras.selectedValues),i=this._getTree(h,g);this._addTreeNode(a,f,this._getNodeValue(b),i)}},_getTree:function(a,b){var c=a;return BI.any(b,function(a,b){return null==c[b]||void(c=c[b])}),c},_addTreeNode:function(a,b,c,d){var e=a;BI.each(b,function(a,b){null==e[b]&&(e[b]={}),e=e[b]}),e[c]=d},_buildTree:function(a,b){var c=a;BI.each(b,function(a,b){null==c[b]&&(c[b]={}),c=c[b]})},_getSelectedValues:function(){function a(a){BI.each(a,function(a,d){var e=d.getCheckStatus();if(e.checked===!0||e.half===!0)if(e.half===!0)b._getHalfSelectedValues(c,d);else{var f=d.parentValues||b._getParentValues(d),g=f.concat([b._getNodeValue(d)]);b._buildTree(c,g)}})}var b=this,c={},d=this.nodes.getNodes();return a(d),c},_dealWidthNodes:function(a){var b=this.options,c=BI.Tree.arrayFormat(a);return BI.each(c,function(a,c){c.title=c.title||c.text||c.value,c.isParent=c.isParent||c.parent,BI.isKey(b.paras.keyword)?c.text=$("
      ").__textKeywordMarked__(c.text,b.paras.keyword,c.py).html():c.text=BI.htmlEncode(c.text+"")}),a},_loadMore:function(){var a=this,b=this.options;this.tip.setLoading();var c=BI.extend({},b.paras,{times:++this.times});b.itemsCreator(c,function(b){if(a._stop!==!0){var c=!!b.hasNext,d=b.items||[];c?a.tip.setLoaded():a.tip.setEnd(),d.length>0&&a.nodes.addNodes(null,a._dealWidthNodes(d))}})},_initTree:function(a){var b=this,c=this.options;b.fireEvent(BI.Events.INIT),this.times=1;var d=this.tree;d.empty(),this.loading(),this.tip.setVisible(!1);var e=function(c){b._stop!==!0&&(b.nodes=$.fn.zTree.init(d.element,a,c))},f=BI.extend({},c.paras,{times:1});c.itemsCreator(f,function(a){if(b._stop!==!0){var c=!!a.hasNext,d=a.items||[];d.length>0&&e(b._dealWidthNodes(d)),b.setTipVisible(d.length<=0),b.loaded(),c?b.tip.setLoaded():b.tip.invisible(),1===f.times&&b.fireEvent(BI.Events.AFTERINIT)}})},initTree:function(a,b){var b=b||{async:{enable:!1},check:{enable:!1},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},view:{showIcon:!1,expandSpeed:"",nameIsHTML:!0},callback:{}};this.nodes=$.fn.zTree.init(this.tree.element,b,a)},start:function(){this._stop=!1},stop:function(){this._stop=!0},stroke:function(a){delete this.options.keyword,BI.extend(this.options.paras,a);var b=this._configSetting();this._createTree(),this.start(),this._initTree(b)},populate:function(){this.stroke.apply(this,arguments)},hasChecked:function(){var a=this.nodes;return a.getCheckedNodes(!0).length>0},checkAll:function(a){function b(a){BI.each(a,function(a,c){c.halfCheck=!1,b(c.children)})}this.nodes&&(BI.each(this.nodes.getNodes(),function(a,c){c.halfCheck=!1,b(c.children)}),this.nodes.checkAllNodes(a))},expandAll:function(a){this.nodes&&this.nodes.expandAll(a)},setValue:function(a,b){this.checkAll(!1),this.updateValue(a,b),this.refresh()},setSelectedValue:function(a){this.options.paras.selectedValues=BI.deepClone(a||{})},updateValue:function(a,b){if(this.nodes){b||(b="value");var c=this.nodes;BI.each(a,function(a,d){var e=c.getNodesByParam(b,a,null);BI.each(e,function(a,b){BI.extend(b,{checked:!0},d),c.updateNode(b)})})}},refresh:function(){this.nodes&&this.nodes.refresh()},getValue:function(){return this.nodes?this._getSelectedValues():null},destroyed:function(){this.stop(),this.nodes&&this.nodes.destroy()}}),BI.extend(BI.TreeView,{REQ_TYPE_INIT_DATA:1,REQ_TYPE_ADJUST_DATA:2,REQ_TYPE_SELECT_DATA:3,REQ_TYPE_GET_SELECTED_DATA:4}),BI.TreeView.EVENT_CHANGE="EVENT_CHANGE",BI.TreeView.EVENT_INIT=BI.Events.INIT,BI.TreeView.EVENT_AFTERINIT=BI.Events.AFTERINIT,BI.shortcut("bi.tree_view",BI.TreeView),BI.AsyncTree=BI.inherit(BI.TreeView,{_defaultConfig:function(){return BI.extend(BI.AsyncTree.superclass._defaultConfig.apply(this,arguments),{})},_init:function(){BI.AsyncTree.superclass._init.apply(this,arguments)},_configSetting:function(){function a(a,b,c){var d=$.fn.zTree.getZTreeObj(b),e=c.checked,f=c.getCheckStatus();f.half===!0&&f.checked===!0&&(e=!1),d.checkNode(c,!e,!0,!0)}function b(a,b){function c(a){BI.each(a,function(a,b){b.halfCheck===!0&&(b.halfCheck=!1,c(b.children))})}if(b.halfCheck=!1,b.checked===!0){c(b.children);var d=$.fn.zTree.getZTreeObj(a),e=d.getSelectedNodes();BI.each(e,function(a,b){b.halfCheck=!1})}var f=b.getCheckStatus();f.half===!0&&f.checked===!0&&(b.checked=!1)}function c(a,b){h._beforeExpandNode(a,b)}function d(a,b,c){h._selectTreeNode(b,c)}function e(a,b,c){c.halfCheck=!1}function f(a,b,c){c.halfCheck=!1}var g=this.options.paras,h=this,i={async:{enable:!1,otherParam:BI.cjkEncodeDO(g)},check:{enable:!0},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},view:{showIcon:!1,expandSpeed:"",nameIsHTML:!0,dblClickExpand:!1},callback:{beforeCheck:b,onCheck:d,beforeExpand:c,onExpand:e,onCollapse:f,onClick:a}};return i},_selectTreeNode:function(a,b){var c=this,d=(this.options,BI.deepClone(b.parentValues||c._getParentValues(b))),e=this._getNodeValue(b);if(b.checked===!0);else{var f=b,g=this._getTree(this.options.paras.selectedValues,d);for(BI.isNotNull(g[e])&&delete g[e];null!=f&&BI.isEmpty(g);)d=d.slice(0,d.length-1),f=f.getParentNode(),null!=f&&(g=this._getTree(this.options.paras.selectedValues,d),e=this._getNodeValue(f),delete g[e])}BI.AsyncTree.superclass._selectTreeNode.apply(c,arguments)},_beforeExpandNode:function(a,b){function c(a,c){d.nodes.addNodes(b,a),c===!0&&BI.delay(function(){i++,g.times=i,e.itemsCreator(g,h)},100)}var d=this,e=this.options,f=b.parentValues||d._getParentValues(b),g=BI.extend({},e.paras,{id:b.id,times:1,parentValues:f.concat(this._getNodeValue(b)),checkState:b.getCheckStatus()}),h=function(a){var b=a.items||[];b.length>0&&c(d._dealWidthNodes(b),!!a.hasNext)},i=1;b.children||setTimeout(function(){e.itemsCreator(g,h)},17)},_join:function(a,b){function c(a,b,f){BI.each(b,function(g,h){BI.isNull(f[g])?d._addTreeNode(e,a,g,h):BI.isEmpty(f[g])?d._addTreeNode(e,a,g,{}):c(a.concat([g]),b[g],f[g])})}var d=this,e={};return c([],a,b),c([],b,a),e},hasChecked:function(){return!BI.isEmpty(this.options.paras.selectedValues)||BI.AsyncTree.superclass.hasChecked.apply(this,arguments)},getValue:function(){if(!this.nodes)return{};var a=this._getSelectedValues();return BI.isEmpty(a)?BI.deepClone(this.options.paras.selectedValues):BI.isEmpty(this.options.paras.selectedValues)?a:this._join(a,this.options.paras.selectedValues)},stroke:function(a){delete this.options.keyword,BI.extend(this.options.paras,a);var b=this._configSetting();this._initTree(b)}}),BI.shortcut("bi.async_tree",BI.AsyncTree),BI.PartTree=BI.inherit(BI.AsyncTree,{_defaultConfig:function(){return BI.extend(BI.PartTree.superclass._defaultConfig.apply(this,arguments),{})},_init:function(){BI.PartTree.superclass._init.apply(this,arguments)},_loadMore:function(){var a=this,b=this.options,c=BI.extend({},b.paras,{type:BI.TreeView.REQ_TYPE_INIT_DATA,times:++this.times});this.tip.setLoading(),b.itemsCreator(c,function(c){var d=!!c.hasNext,e=c.items||[];b.paras.lastSearchValue=c.lastSearchValue,a._stop!==!0&&(d?a.tip.setLoaded():a.tip.setEnd(),e.length>0&&a.nodes.addNodes(null,a._dealWidthNodes(e)))})},_selectTreeNode:function(a,b){var c=this,d=this.options,e=BI.deepClone(b.parentValues||c._getParentValues(b)),f=this._getNodeValue(b);if(b.checked===!0)this._buildTree(c.options.paras.selectedValues,BI.concat(e,f)),d.itemsCreator({type:BI.TreeView.REQ_TYPE_ADJUST_DATA,selectedValues:c.options.paras.selectedValues},function(a){c.options.paras.selectedValues=a,BI.AsyncTree.superclass._selectTreeNode.apply(c,arguments)});else{for(var g=this.options.paras.selectedValues,h=e.concat(f),i=0,j=h.length;i0?d._dealWidthNodes(g):[]),d.setTipVisible(g.length<=0),d.loaded(),f?d.tip.setLoaded():d.tip.invisible(),d.fireEvent(BI.Events.AFTERINIT)}};BI.delay(function(){e.itemsCreator(g,h)},100)},getValue:function(){var a=(this.options,BI.PartTree.superclass.getValue.apply(this,arguments));return a},stroke:function(a){var b=this.options;delete b.paras.keyword,BI.extend(b.paras,a),delete b.paras.lastSearchValue;var c=this._configSetting();this._initTree(c,b.paras.keyword)}}),BI.shortcut("bi.part_tree",BI.PartTree),BI.ListTreeView=BI.inherit(BI.TreeView,{_constants:{SPLIT:"<|>"},_defaultConfig:function(){return BI.extend(BI.ListTreeView.superclass._defaultConfig.apply(this,arguments),{})},_init:function(){BI.ListTreeView.superclass._init.apply(this,arguments);var a=this.options;this.storeValue=a.value||{}},_configSetting:function(){function a(a,b,d){var e=$.fn.zTree.getZTreeObj(b),f=d.checked;c._checkValue(d,!f),e.checkNode(d,!f,!0,!0)}function b(a,b,d){c._selectTreeNode(b,d)}var c=(this.options.paras,this),d={async:{enable:!1},check:{enable:!0,chkboxType:{Y:"",N:""}},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},view:{showIcon:!1,expandSpeed:"",nameIsHTML:!0,dblClickExpand:!1},callback:{onCheck:b,onClick:a}};return d},_selectTreeNode:function(a,b){this._checkValue(b,b.checked),BI.ListTreeView.superclass._selectTreeNode.apply(this,arguments)},_transArrayToMap:function(a){var b=this,c={};return BI.each(a,function(a,d){var e=d.join(b._constants.SPLIT);c[e]=!0}),c},_transMapToArray:function(a){var b=this,c=[];return BI.each(a,function(a){var d=a.split(b._constants.SPLIT);c.push(d)}),c},_checkValue:function(a,b){var c=BI.concat(this._getParentValues(a),this._getNodeValue(a)).join(this._constants.SPLIT);b?this.storeValue[c]=!0:delete this.storeValue[c]},setSelectedValue:function(a){this.options.paras.selectedValues=a||[],this.storeValue=this._transArrayToMap(a)},getValue:function(){return this._transMapToArray(this.storeValue)}}),BI.shortcut("bi.list_tree_view",BI.ListTreeView),BI.ListAsyncTree=BI.inherit(BI.ListTreeView,{_defaultConfig:function(){return BI.extend(BI.ListAsyncTree.superclass._defaultConfig.apply(this,arguments),{})},_init:function(){BI.ListAsyncTree.superclass._init.apply(this,arguments)},_configSetting:function(){function a(a,b){b.half=!1}function b(a,b,c){var d=$.fn.zTree.getZTreeObj(b),e=c.checked;f._checkValue(c,!e),d.checkNode(c,!e,!0,!0)}function c(a,b){f._beforeExpandNode(a,b)}function d(a,b,c){f._selectTreeNode(b,c)}var e=this.options.paras,f=this,g={async:{enable:!1,otherParam:BI.cjkEncodeDO(e)},check:{enable:!0,chkboxType:{Y:"",N:""}},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},view:{showIcon:!1,expandSpeed:"",nameIsHTML:!0,dblClickExpand:!1},callback:{onCheck:d,beforeExpand:c,beforeCheck:a,onClick:b}};return g},_beforeExpandNode:function(a,b){function c(a,c){d.nodes.addNodes(b,a),c===!0&&BI.delay(function(){i++,g.times=i,e.itemsCreator(g,h)},100)}var d=this,e=this.options,f=b.parentValues||d._getParentValues(b),g=BI.extend({},e.paras,{id:b.id,times:1,parentValues:f.concat(this._getNodeValue(b))}),h=function(a){var b=a.items||[];b.length>0&&c(d._dealWidthNodes(b),!!a.hasNext)},i=1;b.children||setTimeout(function(){e.itemsCreator(g,h)},17)},hasChecked:function(){return!BI.isEmpty(this.options.paras.selectedValues)||BI.ListAsyncTree.superclass.hasChecked.apply(this,arguments)},stroke:function(a){delete this.options.keyword,BI.extend(this.options.paras,a);var b=this._configSetting();this._initTree(b)}}),BI.shortcut("bi.list_async_tree",BI.ListAsyncTree),BI.ListPartTree=BI.inherit(BI.ListAsyncTree,{_defaultConfig:function(){return BI.extend(BI.ListPartTree.superclass._defaultConfig.apply(this,arguments),{})},_init:function(){BI.ListPartTree.superclass._init.apply(this,arguments)},_loadMore:function(){var a=this,b=this.options,c=BI.extend({},b.paras,{type:BI.TreeView.REQ_TYPE_INIT_DATA,times:++this.times});this.tip.setLoading(),b.itemsCreator(c,function(c){var d=!!c.hasNext,e=c.items||[];b.paras.lastSearchValue=c.lastSearchValue,a._stop!==!0&&(d?a.tip.setLoaded():a.tip.setEnd(),e.length>0&&a.nodes.addNodes(null,a._dealWidthNodes(e)))})},_initTree:function(a,b){function c(b){d._stop!==!0&&(d.nodes=$.fn.zTree.init(f.element,a,b))}var d=this,e=this.options;this.times=1;var f=this.tree;f.empty(),d.tip.setVisible(!1),this.loading();var g=BI.extend({},e.paras,{type:BI.TreeView.REQ_TYPE_INIT_DATA,times:this.times}),h=function(a){if(d._stop!==!0&&b==e.paras.keyword){var f=!!a.hasNext,g=a.items||[];e.paras.lastSearchValue=a.lastSearchValue,c(g.length>0?d._dealWidthNodes(g):[]),d.setTipVisible(g.length<=0),d.loaded(),f?d.tip.setLoaded():d.tip.invisible(),d.fireEvent(BI.Events.AFTERINIT)}};BI.delay(function(){e.itemsCreator(g,h)},100)},stroke:function(a){var b=this.options;delete b.paras.keyword,BI.extend(b.paras,a),delete b.paras.lastSearchValue;var c=this._configSetting();this._initTree(c,b.paras.keyword)}}),BI.shortcut("bi.list_part_tree",BI.ListPartTree),BI.prepares.push(function(){BI.Resizers=new BI.ResizeController,BI.Layers=new BI.LayerController,BI.Maskers=new BI.MaskersController,BI.Bubbles=new BI.BubblesController,BI.Tooltips=new BI.TooltipsController,BI.Popovers=new BI.PopoverController,BI.Broadcasts=new BI.BroadcastController,BI.StyleLoaders=new BI.StyleLoaderManager}),BI.CollectionView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.CollectionView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-collection",overflowX:!0,overflowY:!0,cellSizeAndPositionGetter:BI.emptyFn,horizontalOverscanSize:0, -verticalOverscanSize:0,scrollLeft:0,scrollTop:0,items:[]})},_init:function(){BI.CollectionView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.renderedCells=[],this.renderedKeys=[],this.renderRange={},this._scrollLock=!1,this._debounceRelease=BI.debounce(function(){a._scrollLock=!1},1e3/60),this.container=BI.createWidget({type:"bi.absolute"}),this.element.scroll(function(){a._scrollLock!==!0&&(b.scrollLeft=a.element.scrollLeft(),b.scrollTop=a.element.scrollTop(),a._calculateChildrenToRender(),a.fireEvent(BI.CollectionView.EVENT_SCROLL,{scrollLeft:b.scrollLeft,scrollTop:b.scrollTop}))}),BI.createWidget({type:"bi.vertical",element:this,scrollable:b.overflowX===!0&&b.overflowY===!0,scrolly:b.overflowX===!1&&b.overflowY===!0,scrollx:b.overflowX===!0&&b.overflowY===!1,items:[this.container]}),b.items.length>0&&(this._calculateSizeAndPositionData(),this._populate())},mounted:function(){var a=this.options;0===a.scrollLeft&&0===a.scrollTop||(this.element.scrollTop(a.scrollTop),this.element.scrollLeft(a.scrollLeft))},_calculateSizeAndPositionData:function(){for(var a=this.options,b=[],c=new BI.SectionManager,d=0,e=0,f=0,g=a.items.length;f0&&h>0){if(f>=this.renderRange.minY&&h<=this.renderRange.maxY&&e>=this.renderRange.minX&&g<=this.renderRange.maxX)return;for(var i=this._cellRenderers(h-f,g-e,e,f),j=[],k={},l={},m={},n={},o=0,p=i.length;o=0?(q.width!==this.renderedCells[A]._width&&(this.renderedCells[A]._width=q.width,this.renderedCells[A].el.setWidth(q.width)),q.height!==this.renderedCells[A]._height&&(this.renderedCells[A]._height=q.height,this.renderedCells[A].el.setHeight(q.height)),this.renderedCells[A]._left!==q.x&&this.renderedCells[A].el.element.css("left",q.x+"px"),this.renderedCells[A]._top!==q.y&&this.renderedCells[A].el.element.css("top",q.y+"px"),j.push(z=this.renderedCells[A])):(z=BI.createWidget(BI.extend({type:"bi.label",width:q.width,height:q.height},b.items[q.index],{cls:(b.items[q.index].cls||"")+" container-cell"+(0===q.y?" first-row":"")+(0===q.x?" first-col":""),_left:q.x,_top:q.y})),j.push({el:z,left:q.x,top:q.y,_left:q.x,_top:q.y,_width:q.width,_height:q.height}));for(var B=0|s[q.y],C=0|s[q.y+q.height],D=B;D<=C;D++){var E=n[D];x(t,E),y(u,E),t[E]=Math.min(t[E],q.x),u[E]=Math.max(u[E],q.x+q.width)}for(var F=0|r[q.x],G=0|r[q.x+q.width],D=F;D<=G;D++){var H=m[D];x(v,H),y(w,H),v[H]=Math.min(v[H],q.y),w[H]=Math.max(w[H],q.y+q.height)}k[q.index]=[q.index,o],l[o]=z}var I={},J={},K=[];BI.each(k,function(b,c){a.renderedKeys[b]?I[b]=c:J[b]=c}),BI.each(this.renderedKeys,function(a,b){I[a]||J[a]||K.push(b[1])}),BI.each(K,function(b,c){a.renderedCells[c].el._destroy()});var L=[];BI.each(J,function(a,b){L.push(j[b[1]])}),this.container.addItems(L),this.container._children=l,this.container.attr("items",j),this.renderedCells=j,this.renderedKeys=k;var M=BI.min(t),N=BI.max(u),O=BI.max(v),P=BI.min(w);this.renderRange={minX:M,minY:O,maxX:N,maxY:P}}},_getMaxScrollLeft:function(){return Math.max(0,this._width-this.options.width+(this.options.overflowX?BI.DOM.getScrollWidth():0))},_getMaxScrollTop:function(){return Math.max(0,this._height-this.options.height+(this.options.overflowY?BI.DOM.getScrollWidth():0))},_populate:function(a){var b=this.options;if(this._reRange(),a&&a!==this.options.items&&(this.options.items=a,this._calculateSizeAndPositionData()),b.items.length>0){this.container.setWidth(this._width),this.container.setHeight(this._height),this._calculateChildrenToRender();try{this.element.scrollTop(b.scrollTop),this.element.scrollLeft(b.scrollLeft)}catch(c){}}},setScrollLeft:function(a){this.options.scrollLeft!==a&&(this._scrollLock=!0,this.options.scrollLeft=BI.clamp(a||0,0,this._getMaxScrollLeft()),this._debounceRelease(),this._calculateChildrenToRender(),this.element.scrollLeft(this.options.scrollLeft))},setScrollTop:function(a){this.options.scrollTop!==a&&(this._scrollLock=!0,this.options.scrollTop=BI.clamp(a||0,0,this._getMaxScrollTop()),this._debounceRelease(),this._calculateChildrenToRender(),this.element.scrollTop(this.options.scrollTop))},setOverflowX:function(a){var b=this;this.options.overflowX!==!!a&&(this.options.overflowX=!!a,BI.nextTick(function(){b.element.css({overflowX:a?"auto":"hidden"})}))},setOverflowY:function(a){var b=this;this.options.overflowY!==!!a&&(this.options.overflowY=!!a,BI.nextTick(function(){b.element.css({overflowY:a?"auto":"hidden"})}))},getScrollLeft:function(){return this.options.scrollLeft},getScrollTop:function(){return this.options.scrollTop},getMaxScrollLeft:function(){return this._getMaxScrollLeft()},getMaxScrollTop:function(){return this._getMaxScrollTop()},_reRange:function(){this.renderRange={}},_clearChildren:function(){this.container._children={},this.container.attr("items",[])},restore:function(){BI.each(this.renderedCells,function(a,b){b.el._destroy()}),this._clearChildren(),this.renderedCells=[],this.renderedKeys=[],this.renderRange={},this._scrollLock=!1},populate:function(a){a&&a!==this.options.items&&this.restore(),this._populate(a)}}),BI.CollectionView.EVENT_SCROLL="EVENT_SCROLL",BI.shortcut("bi.collection_view",BI.CollectionView),BI.Combo=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.Combo.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-combo",trigger:"click",toggle:!0,direction:"bottom",container:null,isDefaultInit:!1,destroyWhenHide:!1,isNeedAdjustHeight:!0,isNeedAdjustWidth:!0,stopEvent:!1,stopPropagation:!1,adjustLength:0,adjustXOffset:0,adjustYOffset:0,hideChecker:BI.emptyFn,offsetStyle:"left",el:{},popup:{},comboClass:"bi-combo-popup",hoverClass:"bi-combo-hover"})},_init:function(){BI.Combo.superclass._init.apply(this,arguments);var a=this,b=this.options;this._initCombo(),this._initPullDownAction(),this.combo.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.isEnabled()&&a.isValid()&&(b===BI.Events.EXPAND&&a._popupView(),b===BI.Events.COLLAPSE&&a._hideView(),b===BI.Events.EXPAND&&(a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.fireEvent(BI.Combo.EVENT_EXPAND)),b===BI.Events.COLLAPSE&&(a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.isViewVisible()&&a.fireEvent(BI.Combo.EVENT_COLLAPSE)),b===BI.Events.CLICK&&a.fireEvent(BI.Combo.EVENT_TRIGGER_CHANGE,d))}),a.element.on("mouseenter."+a.getName(),function(c){a.isEnabled()&&a.isValid()&&a.combo.isEnabled()&&a.combo.isValid()&&a.element.addClass(b.hoverClass)}),a.element.on("mouseleave."+a.getName(),function(c){a.isEnabled()&&a.isValid()&&a.combo.isEnabled()&&a.combo.isValid()&&a.element.removeClass(b.hoverClass)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[{el:this.combo}]}),b.isDefaultInit&&this._assertPopupView(),BI.Resizers.add(this.getName(),BI.bind(function(){this.isViewVisible()&&this._hideView()},this))},_toggle:function(){this._assertPopupViewRender(),this.popupView.isVisible()?this._hideView():this.isEnabled()&&this._popupView()},_initPullDownAction:function(){function a(){b.isEnabled()&&b.isValid()&&b.combo.isEnabled()&&b.combo.isValid()&&c.toggle===!0&&(b._hideView(),b.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.COLLAPSE,"",b.combo),b.fireEvent(BI.Combo.EVENT_COLLAPSE)),b.popupView&&b.popupView.element.off("mouseenter."+b.getName()).off("mouseleave."+b.getName()),f=!1}var b=this,c=this.options,d=(this.options.trigger||"").split(","),e=function(a){c.stopEvent&&a.stopEvent(),c.stopPropagation&&a.stopPropagation()},f=!1;BI.each(d,function(d,g){switch(g){case"hover":b.element.on("mouseenter."+b.getName(),function(a){b.isEnabled()&&b.isValid()&&b.combo.isEnabled()&&b.combo.isValid()&&(b._popupView(),b.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,"",b.combo),b.fireEvent(BI.Combo.EVENT_EXPAND))}),b.element.on("mouseleave."+b.getName(),function(c){b.popupView&&(b.popupView.element.on("mouseenter."+b.getName(),function(c){f=!0,b.popupView.element.on("mouseleave."+b.getName(),function(b){a()}),b.popupView.element.off("mouseenter."+b.getName())}),BI.defer(function(){f||a()},50))});break;case"click":var h=BI.debounce(function(a){b.combo.element.__isMouseInBounds__(a)&&b.isEnabled()&&b.isValid()&&b.combo.isEnabled()&&b.combo.isValid()&&(c.toggle?b._toggle():b._popupView(),b.isViewVisible()?(b.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,"",b.combo),b.fireEvent(BI.Combo.EVENT_EXPAND)):(b.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.COLLAPSE,"",b.combo),b.fireEvent(BI.Combo.EVENT_COLLAPSE)))},BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1});b.element.off(g+"."+b.getName()).on(g+"."+b.getName(),function(a){h(a),e(a)});break;case"click-hover":var h=BI.debounce(function(a){b.combo.element.__isMouseInBounds__(a)&&b.isEnabled()&&b.isValid()&&b.combo.isEnabled()&&b.combo.isValid()&&(b._popupView(),b.isViewVisible()&&(b.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,"",b.combo),b.fireEvent(BI.Combo.EVENT_EXPAND)))},BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1});b.element.off("click."+b.getName()).on("click."+b.getName(),function(a){h(a),e(a)}),b.element.on("mouseleave."+b.getName(),function(c){b.popupView&&(b.popupView.element.on("mouseenter."+b.getName(),function(c){f=!0,b.popupView.element.on("mouseleave."+b.getName(),function(b){a()}),b.popupView.element.off("mouseenter."+b.getName())}),BI.defer(function(){f||a()},50))})}})},_initCombo:function(){this.combo=BI.createWidget(this.options.el,{value:this.options.value})},_assertPopupView:function(){var a=this,b=this.options;null==this.popupView&&(this.popupView=BI.createWidget(this.options.popup,{type:"bi.popup_view",value:b.value},this),this.popupView.on(BI.Controller.EVENT_CHANGE,function(b,c,d){b===BI.Events.CLICK&&(a.combo.setValue(a.getValue()),a.fireEvent(BI.Combo.EVENT_CHANGE,c,d)),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popupView.setVisible(!1),BI.nextTick(function(){a.fireEvent(BI.Combo.EVENT_AFTER_INIT)}))},_assertPopupViewRender:function(){this._assertPopupView(),this._rendered||(BI.createWidget({type:"bi.vertical",scrolly:!1,element:this.options.container||this,items:[{el:this.popupView}]}),this._rendered=!0)},_hideIf:function(a){if(!(this.element.find(a.target).length>0||this.popupView&&this.popupView.element.find(a.target).length>0||"CodeMirror-cursor"===a.target.className||BI.Widget._renderEngine.createElement(a.target).closest(".CodeMirror-hints").length>0)){var b=this.options.hideChecker.apply(this,[a]);b!==!1&&this._hideView()}},_hideView:function(){this.fireEvent(BI.Combo.EVENT_BEFORE_HIDEVIEW),this.options.destroyWhenHide===!0?(this.popupView&&this.popupView.destroy(),this.popupView=null,this._rendered=!1):this.popupView&&this.popupView.invisible(),this.element.removeClass(this.options.comboClass),BI.Widget._renderEngine.createElement(document).unbind("mousedown."+this.getName()).unbind("mousewheel."+this.getName()),this.fireEvent(BI.Combo.EVENT_AFTER_HIDEVIEW)},_popupView:function(a){this._assertPopupViewRender(),this.fireEvent(BI.Combo.EVENT_BEFORE_POPUPVIEW),this.popupView.visible(),this.adjustWidth(a),this.adjustHeight(a),this.element.addClass(this.options.comboClass),BI.Widget._renderEngine.createElement(document).unbind("mousedown."+this.getName()).unbind("mousewheel."+this.getName()),BI.Widget._renderEngine.createElement(document).bind("mousedown."+this.getName(),BI.bind(this._hideIf,this)).bind("mousewheel."+this.getName(),BI.bind(this._hideIf,this)),this.fireEvent(BI.Combo.EVENT_AFTER_POPUPVIEW)},adjustWidth:function(a){var b=this.options;if(this.popupView&&b.isNeedAdjustWidth===!0){this.resetListWidth("");var c=this.popupView.element.outerWidth(),d=this.element.outerWidth()||b.width;c>d+80?d+=80:c>d&&(d=c),this.resetListWidth(d<100?100:d)}},adjustHeight:function(a){var b=this.options,c={};if(this.popupView){var d=this.popupView.isVisible();this.popupView.visible();var e=BI.isNotNull(a)?{element:{offset:function(){return{left:a.pageX,top:a.pageY}},bounds:function(){return{x:a.offsetX,y:a.offsetY,width:0,height:24}},outerWidth:function(){return 0},outerHeight:function(){return 24}}}:this.combo;switch(b.direction){case"bottom":case"bottom,right":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset,b.adjustYOffset||b.adjustLength,b.isNeedAdjustHeight,["bottom","top","right","left"],b.offsetStyle);break;case"top":case"top,right":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset,b.adjustYOffset||b.adjustLength,b.isNeedAdjustHeight,["top","bottom","right","left"],b.offsetStyle);break;case"left":case"left,bottom":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset||b.adjustLength,b.adjustYOffset,b.isNeedAdjustHeight,["left","right","bottom","top"],b.offsetStyle);break;case"right":case"right,bottom":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset||b.adjustLength,b.adjustYOffset,b.isNeedAdjustHeight,["right","left","bottom","top"],b.offsetStyle);break;case"top,left":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset,b.adjustYOffset||b.adjustLength,b.isNeedAdjustHeight,["top","bottom","left","right"],b.offsetStyle);break;case"bottom,left":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset,b.adjustYOffset||b.adjustLength,b.isNeedAdjustHeight,["bottom","top","left","right"],b.offsetStyle);break;case"left,top":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset||b.adjustLength,b.adjustYOffset,b.isNeedAdjustHeight,["left","right","top","bottom"],b.offsetStyle);break;case"right,top":c=BI.DOM.getComboPosition(e,this.popupView,b.adjustXOffset||b.adjustLength,b.adjustYOffset,b.isNeedAdjustHeight,["right","left","top","bottom"],b.offsetStyle);break;case"top,custom":case"custom,top":c=BI.DOM.getTopAdaptPosition(e,this.popupView,b.adjustYOffset||b.adjustLength,b.isNeedAdjustHeight);break;case"custom,bottom":case"bottom,custom":c=BI.DOM.getBottomAdaptPosition(e,this.popupView,b.adjustYOffset||b.adjustLength,b.isNeedAdjustHeight);break;case"left,custom":case"custom,left":c=BI.DOM.getLeftAdaptPosition(e,this.popupView,b.adjustXOffset||b.adjustLength),delete c.top,delete c.adaptHeight;break;case"custom,right":case"right,custom":c=BI.DOM.getRightAdaptPosition(e,this.popupView,b.adjustXOffset||b.adjustLength),delete c.top,delete c.adaptHeight}"adaptHeight"in c&&this.resetListHeight(c.adaptHeight),"left"in c&&this.popupView.element.css({left:c.left}),"top"in c&&this.popupView.element.css({top:c.top}),this.position=c,this.popupView.setVisible(d)}},resetListHeight:function(a){this._assertPopupView(),this.popupView.resetHeight&&this.popupView.resetHeight(a)},resetListWidth:function(a){this._assertPopupView(),this.popupView.resetWidth&&this.popupView.resetWidth(a)},populate:function(a){this._assertPopupView(),this.popupView.populate.apply(this.popupView,arguments),this.combo.populate.apply(this.combo,arguments)},_setEnable:function(a){BI.Combo.superclass._setEnable.apply(this,arguments),a===!0?this.element.removeClass("base-disabled disabled"):a===!1&&this.element.addClass("base-disabled disabled"),!a&&this.element.removeClass(this.options.hoverClass),!a&&this.isViewVisible()&&this._hideView()},setValue:function(a){this.combo.setValue(a),BI.isNull(this.popupView)?this.options.popup.value=a:this.popupView.setValue(a)},getValue:function(){return BI.isNull(this.popupView)?this.options.popup.value:this.popupView.getValue()},isViewVisible:function(){return this.isEnabled()&&this.combo.isEnabled()&&!!this.popupView&&this.popupView.isVisible()},showView:function(a){this.isEnabled()&&this.combo.isEnabled()&&!this.isViewVisible()&&this._popupView(a)},hideView:function(){this._hideView()},getView:function(){return this.popupView},getPopupPosition:function(){return this.position},toggle:function(){this._toggle()},destroy:function(){BI.Widget._renderEngine.createElement(document).unbind("mousedown."+this.getName()).unbind("mousewheel."+this.getName()).unbind("mouseenter."+this.getName()).unbind("mousemove."+this.getName()).unbind("mouseleave."+this.getName()),BI.Resizers.remove(this.getName()),BI.Combo.superclass.destroy.apply(this,arguments)}}),BI.Combo.EVENT_TRIGGER_CHANGE="EVENT_TRIGGER_CHANGE",BI.Combo.EVENT_CHANGE="EVENT_CHANGE",BI.Combo.EVENT_EXPAND="EVENT_EXPAND",BI.Combo.EVENT_COLLAPSE="EVENT_COLLAPSE",BI.Combo.EVENT_AFTER_INIT="EVENT_AFTER_INIT",BI.Combo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.Combo.EVENT_AFTER_POPUPVIEW="EVENT_AFTER_POPUPVIEW",BI.Combo.EVENT_BEFORE_HIDEVIEW="EVENT_BEFORE_HIDEVIEW",BI.Combo.EVENT_AFTER_HIDEVIEW="EVENT_AFTER_HIDEVIEW",BI.shortcut("bi.combo",BI.Combo),BI.Expander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Expander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-expander",trigger:"click",toggle:!0,isDefaultInit:!1,el:{},popup:{},expanderClass:"bi-expander-popup",hoverClass:"bi-expander-hover"})},_init:function(){BI.Expander.superclass._init.apply(this,arguments);var a=this,b=this.options;this._expanded=!!b.el.open,this._initExpander(),this._initPullDownAction(),this.expander.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.isEnabled()&&a.isValid()&&(b===BI.Events.EXPAND&&a._popupView(),b===BI.Events.COLLAPSE&&a._hideView(),b===BI.Events.EXPAND&&(a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.fireEvent(BI.Expander.EVENT_EXPAND)),b===BI.Events.COLLAPSE&&(a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.isViewVisible()&&a.fireEvent(BI.Expander.EVENT_COLLAPSE)),b===BI.Events.CLICK&&a.fireEvent(BI.Expander.EVENT_TRIGGER_CHANGE,c,d))}),this.element.hover(function(){a.isEnabled()&&a.isValid()&&a.expander.isEnabled()&&a.expander.isValid()&&a.element.addClass(b.hoverClass)},function(){a.isEnabled()&&a.isValid()&&a.expander.isEnabled()&&a.expander.isValid()&&a.element.removeClass(b.hoverClass)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[{el:this.expander}]}),b.isDefaultInit&&this._assertPopupView(),this.expander.isOpened()===!0&&this._popupView()},_toggle:function(){this._assertPopupViewRender(),this.popupView.isVisible()?this._hideView():this.isEnabled()&&this._popupView()},_initPullDownAction:function(){var a=this,b=this.options,c=this.options.trigger.split(",");BI.each(c,function(c,d){switch(d){case"hover":a.element[d](function(b){a.isEnabled()&&a.isValid()&&a.expander.isEnabled()&&a.expander.isValid()&&(a._popupView(),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,"",a.expander),a.fireEvent(BI.Expander.EVENT_EXPAND))},function(){a.isEnabled()&&a.isValid()&&a.expander.isEnabled()&&a.expander.isValid()&&b.toggle&&(a._hideView(),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.COLLAPSE,"",a.expander),a.fireEvent(BI.Expander.EVENT_COLLAPSE))});break;case"click":d&&a.element.off(d+"."+a.getName()).on(d+"."+a.getName(),BI.debounce(function(c){a.expander.element.__isMouseInBounds__(c)&&a.isEnabled()&&a.isValid()&&a.expander.isEnabled()&&a.expander.isValid()&&(b.toggle?a._toggle():a._popupView(),a.isExpanded()?(a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,"",a.expander),a.fireEvent(BI.Expander.EVENT_EXPAND)):(a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.COLLAPSE,"",a.expander),a.fireEvent(BI.Expander.EVENT_COLLAPSE)))},BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1}))}})},_initExpander:function(){this.expander=BI.createWidget(this.options.el)},_assertPopupView:function(){var a=this,b=this.options;null==this.popupView&&(this.popupView=BI.createWidget(this.options.popup,{type:"bi.button_group",cls:"expander-popup",layouts:[{type:"bi.vertical",hgap:0,vgap:0}],value:b.value},this),this.popupView.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.Expander.EVENT_CHANGE,c,d)}),this.popupView.setVisible(this.isExpanded()),BI.nextTick(function(){a.fireEvent(BI.Expander.EVENT_AFTER_INIT)}))},_assertPopupViewRender:function(){this._assertPopupView(),this._rendered||(BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[{el:this.popupView}]}),this._rendered=!0)},_hideView:function(){this.fireEvent(BI.Expander.EVENT_BEFORE_HIDEVIEW),this._expanded=!1,this.expander.setOpened(!1),this.popupView&&this.popupView.invisible(),this.element.removeClass(this.options.expanderClass),this.fireEvent(BI.Expander.EVENT_AFTER_HIDEVIEW)},_popupView:function(){this._assertPopupViewRender(),this.fireEvent(BI.Expander.EVENT_BEFORE_POPUPVIEW),this._expanded=!0,this.expander.setOpened(!0),this.popupView.visible(),this.element.addClass(this.options.expanderClass),this.fireEvent(BI.Expander.EVENT_AFTER_POPUPVIEW)},populate:function(a){this.popupView&&this.popupView.populate.apply(this.popupView,arguments),this.expander.populate.apply(this.expander,arguments)},_setEnable:function(a){BI.Expander.superclass._setEnable.apply(this,arguments),!a&&this.element.removeClass(this.options.hoverClass),!a&&this.isViewVisible()&&this._hideView()},setValue:function(a){this.expander.setValue(a),BI.isNull(this.popupView)?this.options.popup.value=a:this.popupView.setValue(a)},getValue:function(){return BI.isNull(this.popupView)?this.options.popup.value:this.popupView.getValue()},isViewVisible:function(){return this.isEnabled()&&this.expander.isEnabled()&&!!this.popupView&&this.popupView.isVisible()},isExpanded:function(){return this._expanded},showView:function(){this.isEnabled()&&this.expander.isEnabled()&&this._popupView()},hideView:function(){this._hideView()},getView:function(){return this.popupView},getAllLeaves:function(){return this.popupView&&this.popupView.getAllLeaves()},getNodeById:function(a){return this.expander.options.id===a?this.expander:this.popupView&&this.popupView.getNodeById(a)},getNodeByValue:function(a){return this.expander.getValue()===a?this.expander:this.popupView&&this.popupView.getNodeByValue(a)},destroy:function(){BI.Expander.superclass.destroy.apply(this,arguments)}}),BI.Expander.EVENT_EXPAND="EVENT_EXPAND",BI.Expander.EVENT_COLLAPSE="EVENT_COLLAPSE",BI.Expander.EVENT_TRIGGER_CHANGE="EVENT_TRIGGER_CHANGE",BI.Expander.EVENT_CHANGE="EVENT_CHANGE",BI.Expander.EVENT_AFTER_INIT="EVENT_AFTER_INIT",BI.Expander.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.Expander.EVENT_AFTER_POPUPVIEW="EVENT_AFTER_POPUPVIEW",BI.Expander.EVENT_BEFORE_HIDEVIEW="EVENT_BEFORE_HIDEVIEW",BI.Expander.EVENT_AFTER_HIDEVIEW="EVENT_AFTER_HIDEVIEW",BI.shortcut("bi.expander",BI.Expander),BI.ComboGroup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ComboGroup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-combo-group bi-list-item",trigger:"click,hover",direction:"right",adjustLength:0,isDefaultInit:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:{type:"bi.text_button",text:"",value:""},children:[],popup:{el:{type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]}}})},_init:function(){BI.ComboGroup.superclass._init.apply(this,arguments),this._populate(this.options.el)},_populate:function(a){var b=this,c=this.options,d=c.children;if(BI.isEmpty(d))throw new Error("ComboGroup构造错误");BI.each(d,function(a,b){var d=BI.formatEL(b).el.children;b=BI.formatEL(b).el,BI.isEmpty(d)||(b.el=BI.clone(b),b.children=d,b.type="bi.combo_group",b.action=c.action,b.height=c.height,b.direction=c.direction,b.isDefaultInit=c.isDefaultInit,b.isNeedAdjustHeight=c.isNeedAdjustHeight,b.isNeedAdjustWidth=c.isNeedAdjustWidth,b.adjustLength=c.adjustLength,b.popup=c.popup)}),this.combo=BI.createWidget({type:"bi.combo",element:this,container:c.container,height:c.height,trigger:c.trigger,direction:c.direction,isDefaultInit:c.isDefaultInit,isNeedAdjustWidth:c.isNeedAdjustWidth,isNeedAdjustHeight:c.isNeedAdjustHeight,adjustLength:c.adjustLength,el:a,popup:BI.extend({},c.popup,{el:BI.extend({items:d},c.popup.el)})}),this.combo.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.ComboGroup.EVENT_CHANGE,d)})},getValue:function(){return this.combo.getValue()},setValue:function(a){this.combo.setValue(a)}}),BI.ComboGroup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.combo_group",BI.ComboGroup),BI.VirtualGroup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.VirtualGroup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-virtual-group",items:[],layouts:[{type:"bi.center",hgap:0,vgap:0}]})},render:function(){var a=this.options;this.populate(a.items),BI.isKey(a.value)&&this.setValue(a.value)},_packageBtns:function(a){for(var b=this.options,c=this.buttonMap={},d=b.layouts.length-1;d>0;d--)a=BI.map(a,function(a,e){var f=BI.stripEL(e);return BI.extend({},b.layouts[d],{items:[BI.extend({},b.layouts[d].el,{el:BI.extend({ref:function(a){BI.isKey(c[f.value])&&(c[f.value]=a)}},f)})]})});return a},_packageLayout:function(a){for(var b=this.options,c=BI.deepClone(b.layouts[0]),d=BI.formatEL(c).el;d&&d.items&&!BI.isEmpty(d.items);)d=BI.formatEL(d.items[0]).el;return d.items=a,c},addItems:function(a){this.layouts.addItems(a)},prependItems:function(a){this.layouts.prependItems(a)},setValue:function(a){a=BI.isArray(a)?a:[a],BI.each(this.buttonMap,function(b,c){c&&(a.deepContains(b)?c.setSelected&&c.setSelected(!0):c.setSelected&&c.setSelected(!1))})},getNotSelectedValue:function(){var a=[];return BI.each(this.buttonMap,function(b,c){c&&(!c.isEnabled()||c.isSelected&&c.isSelected()||a.push(c.getValue()))}),a},getValue:function(){var a=[];return BI.each(this.buttonMap,function(b,c){c&&c.isEnabled()&&c.isSelected&&c.isSelected()&&a.push(c.getValue())}),a},populate:function(a){a=a||[],this.options.items=a,a=this._packageBtns(a),this.layouts?this.layouts.populate(a):this.layouts=BI.createWidget(BI.extend({element:this},this._packageLayout(a)))}}),BI.VirtualGroup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.virtual_group",BI.VirtualGroup),BI.Loader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Loader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-loader",direction:"top",isDefaultInit:!0,logic:{dynamic:!0,scrolly:!0},el:{type:"bi.button_group"},items:[],itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn,count:!1,prev:!1,next:{},hasPrev:BI.emptyFn,hasNext:BI.emptyFn})},_prevLoad:function(){var a=this,b=this.options;this.prev.setLoading(),b.itemsCreator.apply(this,[{times:--this.times},function(){a.prev.setLoaded(),a.prependItems.apply(a,arguments)}])},_nextLoad:function(){var a=this,b=this.options;this.next.setLoading(),b.itemsCreator.apply(this,[{times:++this.times},function(){a.next.setLoaded(),a.addItems.apply(a,arguments)}])},_init:function(){BI.Loader.superclass._init.apply(this,arguments);var a=this,b=this.options;b.itemsCreator===!1&&(b.prev=!1,b.next=!1),b.prev!==!1&&(this.prev=BI.createWidget(BI.extend({type:"bi.loading_bar"},b.prev)),this.prev.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a._prevLoad()})),this.button_group=BI.createWidget(b.el,{type:"bi.button_group",chooseType:0,items:b.items,behaviors:{},layouts:[{type:"bi.vertical"}]}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.Loader.EVENT_CHANGE,d)}),b.next!==!1&&(this.next=BI.createWidget(BI.extend({type:"bi.loading_bar"},b.next)),this.next.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a._nextLoad()})),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(b.direction),BI.extend({scrolly:!0},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(b.direction,this.prev,this.button_group,this.next)})))),b.isDefaultInit&&BI.isEmpty(b.items)&&BI.nextTick(BI.bind(function(){b.isDefaultInit&&BI.isEmpty(b.items)&&this._populate()},this)),BI.isNotEmptyArray(b.items)&&this._populate(b.items)},hasPrev:function(){var a=this.options;return BI.isNumber(a.count)?this.count0&&f.push(c),BI.Maskers.show(a.getName()),a.popupView.populate.apply(a.popupView,f),b.isAutoSync&&b.adapter&&b.adapter.getValue&&a.popupView.setValue(b.adapter.getValue()),a.popupView.loaded&&a.popupView.loaded(),a.fireEvent(BI.Searcher.EVENT_SEARCHING)}})}},setAdapter:function(a){this.options.adapter=a,BI.Maskers.remove(this.getName())},doSearch:function(){this.isSearching()&&this._search()},stopSearch:function(){this._stopSearch();try{this.editor.blur()}catch(a){if(!this.editor.blur)throw new Error("editor没有实现blur方法")}finally{this.editor.setValue("")}},isSearching:function(){return this._isSearching},isViewVisible:function(){return this.editor.isEnabled()&&BI.Maskers.isVisible(this.getName())},getView:function(){return this.popupView},hasMatched:function(){return this._assertPopupView(),this.popupView.hasMatched()},adjustHeight:function(){BI.Maskers.has(this.getName())&&BI.Maskers.get(this.getName()).isVisible()&&BI.Maskers.show(this.getName())},adjustView:function(){this.isViewVisible()&&BI.Maskers.show(this.getName())},setValue:function(a){BI.isNull(this.popupView)?this.options.popup.value=a:this.popupView.setValue(a)},getKeyword:function(){return this.editor.getValue()},getKeywords:function(){return this.editor.getKeywords()},getValue:function(){var a=this.options;return a.isAutoSync&&a.adapter&&a.adapter.getValue?a.adapter.getValue():this.isSearching()?this.popupView.getValue():a.adapter&&a.adapter.getValue?a.adapter.getValue():BI.isNull(this.popupView)?a.popup.value:this.popupView.getValue()},populate:function(a,b,c){var d=this.options;this._assertPopupView(),this.popupView.populate.apply(this.popupView,arguments),d.isAutoSync&&d.adapter&&d.adapter.getValue&&this.popupView.setValue(d.adapter.getValue())},empty:function(){this.popupView&&this.popupView.empty()},destroy:function(){BI.Maskers.remove(this.getName()),BI.Searcher.superclass.destroy.apply(this,arguments)}}),BI.Searcher.EVENT_CHANGE="EVENT_CHANGE",BI.Searcher.EVENT_START="EVENT_START",BI.Searcher.EVENT_STOP="EVENT_STOP",BI.Searcher.EVENT_PAUSE="EVENT_PAUSE",BI.Searcher.EVENT_SEARCHING="EVENT_SEARCHING",BI.Searcher.EVENT_AFTER_INIT="EVENT_AFTER_INIT",BI.shortcut("bi.searcher",BI.Searcher),BI.Switcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Switcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-switcher",direction:BI.Direction.Top,trigger:"click",toggle:!0,el:{},popup:{},adapter:null,masker:{},switcherClass:"bi-switcher-popup",hoverClass:"bi-switcher-hover"})},_init:function(){BI.Switcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this._initSwitcher(),this._initPullDownAction(),this.switcher.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.isEnabled()&&a.isValid()&&(b===BI.Events.EXPAND&&a._popupView(),b===BI.Events.COLLAPSE&&a._hideView(),b===BI.Events.EXPAND&&(a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.fireEvent(BI.Switcher.EVENT_EXPAND)),b===BI.Events.COLLAPSE&&(a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.isViewVisible()&&a.fireEvent(BI.Switcher.EVENT_COLLAPSE)),b===BI.Events.CLICK&&a.fireEvent(BI.Switcher.EVENT_TRIGGER_CHANGE,c,d))}),this.element.hover(function(){a.isEnabled()&&a.switcher.isEnabled()&&a.element.addClass(b.hoverClass)},function(){a.isEnabled()&&a.switcher.isEnabled()&&a.element.removeClass(b.hoverClass)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[{el:this.switcher}]}),b.isDefaultInit&&this._assertPopupView()},_toggle:function(){this._assertPopupView(),this.isExpanded()?this._hideView():this.isEnabled()&&this._popupView()},_initPullDownAction:function(){var a=this,b=this.options,c=this.options.trigger.split(",");BI.each(c,function(c,d){switch(d){case"hover":a.element[d](function(b){a.isEnabled()&&a.switcher.isEnabled()&&(a._popupView(),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,"",a.switcher),a.fireEvent(BI.Switcher.EVENT_EXPAND))},function(){a.isEnabled()&&a.switcher.isEnabled()&&b.toggle&&(a._hideView(),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.COLLAPSE,"",a.switcher),a.fireEvent(BI.Switcher.EVENT_COLLAPSE))});break;default:d&&a.element.off(d+"."+a.getName()).on(d+"."+a.getName(),BI.debounce(function(c){a.switcher.element.__isMouseInBounds__(c)&&a.isEnabled()&&a.switcher.isEnabled()&&(b.toggle?a._toggle():a._popupView(),a.isExpanded()?(a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EXPAND,"",a.switcher),a.fireEvent(BI.Switcher.EVENT_EXPAND)):(a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.COLLAPSE,"",a.switcher),a.fireEvent(BI.Switcher.EVENT_COLLAPSE)))},BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1}))}})},_initSwitcher:function(){this.switcher=BI.createWidget(this.options.el,{value:this.options.value})},_assertPopupView:function(){var a=this,b=this.options;this._created||(this.popupView=BI.createWidget(b.popup,{type:"bi.button_group",element:b.adapter&&BI.Maskers.create(this.getName(),b.adapter,BI.extend({container:this},b.masker)),cls:"switcher-popup",layouts:[{type:"bi.vertical",hgap:0,vgap:0}],value:b.value},this),this.popupView.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.Switcher.EVENT_CHANGE,c,d)}),b.direction===BI.Direction.Custom||b.adapter||BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[{el:this.popupView}]}),this._created=!0,BI.nextTick(function(){a.fireEvent(BI.Switcher.EVENT_AFTER_INIT)}))},_hideView:function(){this.fireEvent(BI.Switcher.EVENT_BEFORE_HIDEVIEW);var a=this,b=this.options;b.adapter?BI.Maskers.hide(a.getName()):a.popupView&&a.popupView.setVisible(!1),BI.nextTick(function(){b.adapter?BI.Maskers.hide(a.getName()):a.popupView&&a.popupView.setVisible(!1),a.element.removeClass(b.switcherClass),a.fireEvent(BI.Switcher.EVENT_AFTER_HIDEVIEW)})},_popupView:function(){var a=this,b=this.options;this._assertPopupView(),this.fireEvent(BI.Switcher.EVENT_BEFORE_POPUPVIEW),b.adapter?BI.Maskers.show(this.getName()):a.popupView.setVisible(!0),BI.nextTick(function(c){b.adapter?BI.Maskers.show(c):a.popupView.setVisible(!0),a.element.addClass(b.switcherClass),a.fireEvent(BI.Switcher.EVENT_AFTER_POPUPVIEW)},this.getName())},populate:function(a){this._assertPopupView(),this.popupView.populate.apply(this.popupView,arguments),this.switcher.populate.apply(this.switcher,arguments)},_setEnable:function(a){BI.Switcher.superclass._setEnable.apply(this,arguments),!a&&this.isViewVisible()&&this._hideView()},setValue:function(a){this.switcher.setValue(a),BI.isNull(this.popupView)?this.options.popup.value=a:this.popupView.setValue(a)},getValue:function(){return BI.isNull(this.popupView)?this.options.popup.value:this.popupView.getValue()},setAdapter:function(a){this.options.adapter=a,BI.Maskers.remove(this.getName())},isViewVisible:function(){return this.isEnabled()&&this.switcher.isEnabled()&&(this.options.adapter?BI.Maskers.isVisible(this.getName()):this.popupView&&this.popupView.isVisible())},isExpanded:function(){return this.isViewVisible()},showView:function(){this.isEnabled()&&this.switcher.isEnabled()&&this._popupView()},hideView:function(){this._hideView()},getView:function(){return this.popupView},adjustView:function(){this.isViewVisible()&&BI.Maskers.show(this.getName())},getAllLeaves:function(){return this.popupView&&this.popupView.getAllLeaves()},getNodeById:function(a){return this.switcher.attr("id")===a?this.switcher:this.popupView&&this.popupView.getNodeById(a)},getNodeByValue:function(a){return this.switcher.getValue()===a?this.switcher:this.popupView&&this.popupView.getNodeByValue(a)},empty:function(){this.popupView&&this.popupView.empty()},destroy:function(){BI.Switcher.superclass.destroy.apply(this,arguments)}}),BI.Switcher.EVENT_EXPAND="EVENT_EXPAND",BI.Switcher.EVENT_COLLAPSE="EVENT_COLLAPSE",BI.Switcher.EVENT_TRIGGER_CHANGE="EVENT_TRIGGER_CHANGE",BI.Switcher.EVENT_CHANGE="EVENT_CHANGE",BI.Switcher.EVENT_AFTER_INIT="EVENT_AFTER_INIT",BI.Switcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.Switcher.EVENT_AFTER_POPUPVIEW="EVENT_AFTER_POPUPVIEW",BI.Switcher.EVENT_BEFORE_HIDEVIEW="EVENT_BEFORE_HIDEVIEW",BI.Switcher.EVENT_AFTER_HIDEVIEW="EVENT_AFTER_HIDEVIEW",BI.shortcut("bi.switcher",BI.Switcher),BI.Tab=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Tab.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tab",direction:"top",single:!1,logic:{dynamic:!1},showIndex:!1,tab:!1,cardCreator:function(a){return BI.createWidget()}})},render:function(){var a=this,b=this.options;BI.isObject(b.tab)&&(this.tab=BI.createWidget(this.options.tab,{type:"bi.button_group"}),this.tab.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})),this.cardMap={},this.layout=BI.createWidget({type:"bi.card"}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(b.direction),BI.extend({},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(b.direction,this.tab,this.layout)}))));var c=new BI.ShowListener({eventObj:this.tab,cardLayout:this.layout,cardCreator:function(c){var d=b.cardCreator.apply(a,arguments);return a.cardMap[c]=d,d},afterCardShow:function(b){a._deleteOtherCards(b),a.curr=b}});c.on(BI.ShowListener.EVENT_CHANGE,function(b){a.fireEvent(BI.Tab.EVENT_CHANGE,b,a)})},_deleteOtherCards:function(a){var b=this,c=this.options;c.single===!0&&BI.each(this.cardMap,function(c,d){c!==a+""&&(b.layout.deleteCardByName(c),delete b.cardMap[c])})},_assertCard:function(a){if(!this.layout.isCardExisted(a)){var b=this.options.cardCreator(a);this.cardMap[a]=b,this.layout.addCardByName(a,b)}},mounted:function(){var a=this.options;a.showIndex!==!1&&this.setSelect(a.showIndex)},setSelect:function(a){this.tab&&this.tab.setValue(a),this._assertCard(a),this.layout.showCardByName(a),this._deleteOtherCards(a),this.curr!==a&&(this.curr=a)},removeTab:function(a){var b=this;this.options;BI.any(this.cardMap,function(c,d){if(BI.isEqual(c,a+""))return b.layout.deleteCardByName(c),delete b.cardMap[c],!0})},getSelect:function(){return this.curr},getSelectedTab:function(){return this.layout.getShowingCard()},getTab:function(a){return this._assertCard(a),this.layout.getCardByName(a)},setValue:function(a){var b=this.layout.getShowingCard();b&&b.setValue(a)},getValue:function(){var a=this.layout.getShowingCard();if(a)return a.getValue()},populate:function(){var a=this.layout.getShowingCard();if(a)return a.populate&&a.populate.apply(a,arguments)},empty:function(){this.layout.deleteAllCard(),this.cardMap={}},destroy:function(){this.cardMap={},BI.Tab.superclass.destroy.apply(this,arguments)}}),BI.Tab.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.tab",BI.Tab),BI.EL=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.EL.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-el",el:{},layout:{}})},_init:function(){BI.EL.superclass._init.apply(this,arguments);var a=this,b=this.options;this.ele=BI.createWidget(b.el),BI.createWidget(b.layout,{type:"bi.adaptive",element:this,items:[this.ele]}),this.ele.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},setValue:function(a){this.ele.setValue(a)},getValue:function(){return this.ele.getValue()},populate:function(){this.ele.populate.apply(this,arguments)}}),BI.shortcut("bi.el",BI.EL),BI.Msg=function(){var a,b,c,d=[];return{alert:function(a,b,c){this._show(!1,a,b,c)},confirm:function(a,b,c){this._show(!0,a,b,c)},prompt:function(a,b,c,d,e){},toast:function(a,b,c){b=b||{},c=c||BI.Widget._renderEngine.createElement("body");var e=b.level||"normal",f=!!BI.isNull(b.autoClose)||b.autoClose,g=BI.createWidget({type:"bi.toast",cls:"bi-message-animate bi-message-leave",level:e,autoClose:f,text:a,listeners:[{eventName:BI.Toast.EVENT_DESTORY,action:function(){BI.remove(d,g.element);var a=10;BI.each(d,function(b,c){c.css({top:a}),a+=c.outerHeight()+10})}}]}),h=10;BI.each(d,function(a,b){h+=b.outerHeight()+10}),BI.createWidget({type:"bi.absolute",element:c,items:[{el:g,left:"50%",top:h}]}),d.push(g.element),g.element.css({"margin-left":-1*g.element.outerWidth()/2}),g.element.removeClass("bi-message-leave").addClass("bi-message-enter"),f&&BI.delay(function(){g.element.removeClass("bi-message-enter").addClass("bi-message-leave"),g.destroy()},5e3)},_show:function(d,e,f,g){b=BI.Widget._renderEngine.createElement('
      ').css({position:"absolute",zIndex:BI.zIndex_tip-2,top:0,left:0,right:0,bottom:0,opacity:.5}).appendTo("body"),c=BI.Widget._renderEngine.createElement('
      ').css({position:"absolute",zIndex:BI.zIndex_tip-1,top:0,left:0,right:0,bottom:0}).appendTo("body");var h=function(){a.destroy(),b.remove()},i=[];d===!0&&i.push({el:{type:"bi.button",text:BI.i18nText("BI-Basic_Cancel"),level:"ignore",handler:function(){h(),BI.isFunction(g)&&g.apply(null,[!1])}}}),i.push({el:{type:"bi.button",text:BI.i18nText("BI-Basic_OK"),handler:function(){h(),BI.isFunction(g)&&g.apply(null,[!0])}}});var j={element:c,type:"bi.center_adapt",items:[{type:"bi.border",cls:"bi-card",items:{north:{el:{type:"bi.border",cls:"bi-message-title bi-background",items:{center:{el:{type:"bi.label",cls:"bi-font-bold",text:e||BI.i18nText("BI-Basic_Prompt"),textAlign:"left",hgap:20,height:40}},east:{el:{type:"bi.icon_button",cls:"bi-message-close close-font",handler:function(){h(),BI.isFunction(g)&&g.apply(null,[!1])}},width:60}}},height:40},center:{el:{type:"bi.label",vgap:10,hgap:20,whiteSpace:"normal",text:f}},south:{el:{type:"bi.absolute",items:[{el:{type:"bi.right_vertical_adapt",lgap:10,items:i},top:0,left:20,right:20,bottom:0}]},height:44}},width:450,height:200}]};a=BI.createWidget(j)}}}(),BI.GridView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.GridView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-grid-view",overflowX:!0,overflowY:!0,overscanColumnCount:0,overscanRowCount:0,rowHeightGetter:BI.emptyFn,columnWidthGetter:BI.emptyFn,scrollLeft:0,scrollTop:0,items:[]})},_init:function(){BI.GridView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.renderedCells=[],this.renderedKeys=[],this.renderRange={},this._scrollLock=!1,this._debounceRelease=BI.debounce(function(){a._scrollLock=!1},1e3/60),this.container=BI.createWidget({type:"bi.absolute"}),this.element.scroll(function(){a._scrollLock!==!0&&(b.scrollLeft=a.element.scrollLeft(),b.scrollTop=a.element.scrollTop(),a._calculateChildrenToRender(),a.fireEvent(BI.GridView.EVENT_SCROLL,{scrollLeft:b.scrollLeft,scrollTop:b.scrollTop}))}),BI.createWidget({type:"bi.vertical",element:this,scrollable:b.overflowX===!0&&b.overflowY===!0,scrolly:b.overflowX===!1&&b.overflowY===!0,scrollx:b.overflowX===!0&&b.overflowY===!1,items:[this.container]}),b.items.length>0&&this._populate()},mounted:function(){var a=this.options;0===a.scrollLeft&&0===a.scrollTop||(this.element.scrollTop(a.scrollTop),this.element.scrollLeft(a.scrollLeft))},_getOverscanIndices:function(a,b,c,d){return{overscanStartIndex:Math.max(0,c-b),overscanStopIndex:Math.min(a-1,d+b)}},_calculateChildrenToRender:function(){var a=this,b=this.options,c=b.width,d=b.height,e=BI.clamp(b.scrollLeft,0,this._getMaxScrollLeft()),f=BI.clamp(b.scrollTop,0,this._getMaxScrollTop()),g=b.overscanColumnCount,h=b.overscanRowCount;if(d>0&&c>0){var i=this._columnSizeAndPositionManager.getVisibleCellRange(c,e),j=this._rowSizeAndPositionManager.getVisibleCellRange(d,f);if(BI.isEmpty(i)||BI.isEmpty(j))return;var k=this._columnSizeAndPositionManager.getOffsetAdjustment(c,e),l=this._rowSizeAndPositionManager.getOffsetAdjustment(d,f);this._renderedColumnStartIndex=i.start,this._renderedColumnStopIndex=i.stop,this._renderedRowStartIndex=j.start,this._renderedRowStopIndex=j.stop;var m=this._getOverscanIndices(this.columnCount,g,this._renderedColumnStartIndex,this._renderedColumnStopIndex),n=this._getOverscanIndices(this.rowCount,h,this._renderedRowStartIndex,this._renderedRowStopIndex),o=m.overscanStartIndex,p=m.overscanStopIndex,q=n.overscanStartIndex,r=n.overscanStopIndex,s=this._rowSizeAndPositionManager.getSizeAndPositionOfCell(q),t=this._columnSizeAndPositionManager.getSizeAndPositionOfCell(o),u=this._rowSizeAndPositionManager.getSizeAndPositionOfCell(r),v=this._columnSizeAndPositionManager.getSizeAndPositionOfCell(p),w=s.offset+l,x=t.offset+k,y=u.offset+l+u.size,z=v.offset+k+v.size;if(w>=this.renderRange.minY&&y<=this.renderRange.maxY&&x>=this.renderRange.minX&&z<=this.renderRange.maxX)return;for(var A=[],B={},C={},D=this._getMaxScrollLeft(),E=this._getMaxScrollTop(),F=0,G=0,H=0,I=q;I<=r;I++)for(var J=this._rowSizeAndPositionManager.getSizeAndPositionOfCell(I),K=o;K<=p;K++){var L,M=I+"-"+K,N=this._columnSizeAndPositionManager.getSizeAndPositionOfCell(K),O=this.renderedKeys[M]&&this.renderedKeys[M][2];O>=0?(N.size!==this.renderedCells[O]._width&&(this.renderedCells[O]._width=N.size,this.renderedCells[O].el.setWidth(N.size)),J.size!==this.renderedCells[O]._height&&(this.renderedCells[O]._height=J.size,this.renderedCells[O].el.setHeight(J.size)),this.renderedCells[O]._left!==N.offset+k&&this.renderedCells[O].el.element.css("left",N.offset+k+"px"),this.renderedCells[O]._top!==J.offset+l&&this.renderedCells[O].el.element.css("top",J.offset+l+"px"),A.push(L=this.renderedCells[O])):(L=BI.createWidget(BI.extend({type:"bi.label",width:N.size,height:J.size},b.items[I][K],{cls:(b.items[I][K].cls||"")+" grid-cell"+(0===I?" first-row":"")+(0===K?" first-col":""),_rowIndex:I,_columnIndex:K,_left:N.offset+k,_top:J.offset+l})),A.push({el:L,left:N.offset+k,top:J.offset+l,_left:N.offset+k,_top:J.offset+l,_width:N.size,_height:J.size})),D=Math.min(D,N.offset+k),F=Math.max(F,N.offset+k+N.size),E=Math.min(E,J.offset+l),G=Math.max(G,J.offset+l+J.size),B[M]=[I,K,H],C[H]=L,H++}var P={},Q={},R=[];BI.each(B,function(b,c){a.renderedKeys[b]?P[b]=c:Q[b]=c}),BI.each(this.renderedKeys,function(a,b){P[a]||Q[a]||R.push(b[2])}),BI.each(R,function(b,c){a.renderedCells[c].el._destroy()});var S=[];BI.each(Q,function(a,b){S.push(A[b[2]])}),this.container.addItems(S),this.container._children=C,this.container.attr("items",A),this.renderedCells=A,this.renderedKeys=B,this.renderRange={minX:D,minY:E,maxX:F,maxY:G}}},_getRealMaxScrollLeft:function(){var a=this.options,b=0;return BI.count(0,this.columnCount,function(c){b+=a.columnWidthGetter(c)}),Math.max(0,b-this.options.width+(this.options.overflowX?BI.DOM.getScrollWidth():0))},_getMaxScrollLeft:function(){return Math.max(0,this._columnSizeAndPositionManager.getTotalSize()-this.options.width+(this.options.overflowX?BI.DOM.getScrollWidth():0))},_getMaxScrollTop:function(){return Math.max(0,this._rowSizeAndPositionManager.getTotalSize()-this.options.height+(this.options.overflowY?BI.DOM.getScrollWidth():0))},_populate:function(a){var b=this.options;this._reRange(),this.columnCount=0,this.rowCount=0,a&&a!==this.options.items&&(this.options.items=a),BI.isNumber(b.columnCount)?this.columnCount=b.columnCount:b.items.length>0&&(this.columnCount=b.items[0].length),BI.isNumber(b.rowCount)?this.rowCount=b.rowCount:this.rowCount=b.items.length,this.container.setWidth(this.columnCount*b.estimatedColumnSize),this.container.setHeight(this.rowCount*b.estimatedRowSize),this._columnSizeAndPositionManager=new BI.ScalingCellSizeAndPositionManager(this.columnCount,b.columnWidthGetter,b.estimatedColumnSize),this._rowSizeAndPositionManager=new BI.ScalingCellSizeAndPositionManager(this.rowCount,b.rowHeightGetter,b.estimatedRowSize),this._calculateChildrenToRender();try{this.element.scrollTop(b.scrollTop),this.element.scrollLeft(b.scrollLeft)}catch(c){}},setScrollLeft:function(a){this.options.scrollLeft!==a&&(this._scrollLock=!0,this.options.scrollLeft=BI.clamp(a||0,0,this._getRealMaxScrollLeft()),this._debounceRelease(),this._calculateChildrenToRender(),this.element.scrollLeft(this.options.scrollLeft))},setScrollTop:function(a){this.options.scrollTop!==a&&(this._scrollLock=!0,this.options.scrollTop=BI.clamp(a||0,0,this._getMaxScrollTop()),this._debounceRelease(),this._calculateChildrenToRender(),this.element.scrollTop(this.options.scrollTop))},setColumnCount:function(a){this.options.columnCount=a},setRowCount:function(a){this.options.rowCount=a},setOverflowX:function(a){var b=this;this.options.overflowX!==!!a&&(this.options.overflowX=!!a,BI.nextTick(function(){b.element.css({overflowX:a?"auto":"hidden"})}))},setOverflowY:function(a){var b=this;this.options.overflowY!==!!a&&(this.options.overflowY=!!a,BI.nextTick(function(){b.element.css({overflowY:a?"auto":"hidden"})}))},getScrollLeft:function(){return this.options.scrollLeft},getScrollTop:function(){return this.options.scrollTop},getMaxScrollLeft:function(){return this._getMaxScrollLeft()},getMaxScrollTop:function(){return this._getMaxScrollTop()},setEstimatedColumnSize:function(a){this.options.estimatedColumnSize=a},setEstimatedRowSize:function(a){this.options.estimatedRowSize=a},_reRange:function(){this.renderRange={}},_clearChildren:function(){this.container._children={},this.container.attr("items",[])},restore:function(){BI.each(this.renderedCells,function(a,b){b.el._destroy()}),this._clearChildren(),this.renderedCells=[],this.renderedKeys=[],this.renderRange={},this._scrollLock=!1},populate:function(a){a&&a!==this.options.items&&this.restore(),this._populate(a)}}),BI.GridView.EVENT_SCROLL="EVENT_SCROLL",BI.shortcut("bi.grid_view",BI.GridView),BI.Popover=BI.inherit(BI.Widget,{_constant:{SIZE:{SMALL:"small",NORMAL:"normal",BIG:"big"},HEADER_HEIGHT:40},_defaultConfig:function(){return BI.extend(BI.Popover.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-popover bi-card",size:"normal",logic:{dynamic:!1},header:null,body:null,footer:null,closable:!0})},render:function(){var a=this,b=this.options;this.startX=0,this.startY=0,this.tracker=new BI.MouseMoveTracker(function(b,c){var d=(a._calculateSize(),BI.Widget._renderEngine.createElement("body").width()),e=BI.Widget._renderEngine.createElement("body").height();a.startX+=b,a.startY+=c,a.element.css({left:BI.clamp(a.startX,0,d-a.element.width())+"px",top:BI.clamp(a.startY,0,e-a.element.height())+"px"}),BI.Resizers._resize()},function(){a.tracker.releaseMouseMoves()},_global);var c=[{el:{type:"bi.htape",cls:"bi-message-title bi-header-background",ref:function(b){a.dragger=b},items:[{type:"bi.absolute",items:[{el:BI.isPlainObject(b.header)?BI.createWidget(b.header,{extraCls:"bi-font-bold"}):{type:"bi.label",cls:"bi-font-bold",height:this._constant.HEADER_HEIGHT,text:b.header,textAlign:"left"},left:20,top:0,right:0,bottom:0}]},{el:b.closable?{type:"bi.icon_button",cls:"bi-message-close close-font",height:this._constant.HEADER_HEIGHT,handler:function(){a.close()}}:{type:"bi.layout"},width:56}],height:this._constant.HEADER_HEIGHT},height:this._constant.HEADER_HEIGHT},{el:b.logic.dynamic?{type:"bi.vertical",scrolly:!1,cls:"popover-body",ref:function(){a.body=this},hgap:20,tgap:10,items:[{el:BI.createWidget(b.body)}]}:{type:"bi.absolute",items:[{el:BI.createWidget(b.body),left:20,top:10,right:20,bottom:0}]}}];b.footer&&c.push({el:{type:"bi.absolute",items:[{el:BI.createWidget(b.footer),left:20,top:0,right:20,bottom:0}],height:44},height:44});var d=this._calculateSize();return BI.extend({type:b.logic.dynamic?"bi.vertical":"bi.vtape",items:c,width:d.width},b.logic.dynamic?{type:"bi.vertical",scrolly:!1}:{type:"bi.vtape",height:d.height})},mounted:function(){var a=this,b=this.options;if(this.dragger.element.mousedown(function(b){var c=a.element.offset();a.startX=c.left,a.startY=c.top,a.tracker.captureMouseMoves(b)}),b.logic.dynamic){var c=this._calculateSize(),d=this.element.height(),e=BI.clamp(d,c.height,600)-(b.footer?84:44);this.body.element.height(e)}},_calculateSize:function(){var a=this.options,b={};if(BI.isNotNull(a.size))switch(a.size){case this._constant.SIZE.SMALL:b.width=450,b.height=200;break;case this._constant.SIZE.BIG:b.width=900,b.height=500;break;default:b.width=550,b.height=500}return{width:a.width||b.width,height:a.height||b.height}},hide:function(){},open:function(){this.show(),this.fireEvent(BI.Popover.EVENT_OPEN,arguments)},close:function(){this.hide(),this.fireEvent(BI.Popover.EVENT_CLOSE,arguments)},setZindex:function(a){this.element.css({"z-index":a})},destroyed:function(){}}),BI.shortcut("bi.popover",BI.Popover),BI.BarPopover=BI.inherit(BI.Popover,{_defaultConfig:function(){return BI.extend(BI.BarPopover.superclass._defaultConfig.apply(this,arguments),{btns:[BI.i18nText(BI.i18nText("BI-Basic_Sure")),BI.i18nText(BI.i18nText("BI-Basic_Cancel"))]})},beforeCreate:function(){var a=this,b=this.options;b.footer||(b.footer={type:"bi.right_vertical_adapt",lgap:10,items:[{type:"bi.button",text:this.options.btns[1],value:1,level:"ignore",handler:function(b){a.fireEvent(BI.Popover.EVENT_CANCEL,b),a.close(b)}},{type:"bi.button",text:this.options.btns[0],warningTitle:b.warningTitle,value:0,handler:function(b){a.fireEvent(BI.Popover.EVENT_CONFIRM,b),a.close(b)}}]})}}),BI.shortcut("bi.bar_popover",BI.BarPopover),BI.Popover.EVENT_CLOSE="EVENT_CLOSE",BI.Popover.EVENT_OPEN="EVENT_OPEN",BI.Popover.EVENT_CANCEL="EVENT_CANCEL",BI.Popover.EVENT_CONFIRM="EVENT_CONFIRM",BI.PopupView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PopupView.superclass._defaultConfig.apply(this,arguments),{_baseCls:"bi-popup-view",maxWidth:"auto",minWidth:100,minHeight:24,lgap:0,rgap:0,tgap:0,bgap:0,vgap:0,hgap:0,innerVGap:0,direction:BI.Direction.Top,stopEvent:!1,stopPropagation:!1,logic:{dynamic:!0},tool:!1,tabs:[],buttons:[],el:{type:"bi.button_group",items:[],chooseType:0,behaviors:{},layouts:[{type:"bi.vertical"}]}})},_init:function(){BI.PopupView.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(a){a.stopPropagation()},d=function(a){return a.stopEvent(),!1};this.element.css({"z-index":BI.zIndex_popup,"min-width":b.minWidth+"px","max-width":b.maxWidth+"px"}).bind({click:c}),this.element.bind("mousewheel",c),b.stopPropagation&&this.element.bind({mousedown:c,mouseup:c,mouseover:c}),b.stopEvent&&this.element.bind({mousedown:d,mouseup:d,mouseover:d}),this.tool=this._createTool(),this.tab=this._createTab(),this.view=this._createView(),this.toolbar=this._createToolBar(),this.view.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.PopupView.EVENT_CHANGE)}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(b.direction),BI.extend({},b.logic,{scrolly:!1,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,vgap:b.vgap,hgap:b.hgap,items:BI.LogicFactory.createLogicItemsByDirection(b.direction,BI.extend({ -cls:"list-view-outer bi-card list-view-shadow"},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(b.direction),BI.extend({},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(b.direction,this.tool,this.tab,this.view,this.toolbar)}))))}))))},_createView:function(){var a=this.options;return this.button_group=BI.createWidget(a.el,{type:"bi.button_group",value:a.value}),this.button_group.element.css({"min-height":a.minHeight+"px","padding-top":a.innerVGap+"px","padding-bottom":a.innerVGap+"px"}),this.button_group},_createTool:function(){var a=this.options;if(!1!==a.tool)return BI.createWidget(a.tool)},_createTab:function(){var a=this.options;if(0!==a.tabs.length)return BI.createWidget({type:"bi.center",cls:"list-view-tab",height:25,items:a.tabs,value:a.value})},_createToolBar:function(){var a=this.options;if(0!==a.buttons.length)return BI.createWidget({type:"bi.center",cls:"list-view-toolbar bi-high-light bi-split-top",height:24,items:BI.createItems(a.buttons,{once:!1,shadow:!0,isShadowShowingOnSelected:!0})})},getView:function(){return this.view},populate:function(a){this.view.populate.apply(this.view,arguments)},resetWidth:function(a){this.options.width=a,this.element.width(a)},resetHeight:function(a){var b=this.toolbar?this.toolbar.attr("height")||24:0,c=this.tab?this.tab.attr("height")||24:0,d=(this.tool&&this.tool.attr("height")||24)*(this.tool&&this.tool.isVisible()?1:0),e=a-b-c-d-2*this.options.innerVGap;this.view.resetHeight?this.view.resetHeight(e):this.view.element.css({"max-height":e+"px"})},setValue:function(a){this.tab&&this.tab.setValue(a),this.view.setValue(a)},getValue:function(){return this.view.getValue()}}),BI.PopupView.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.popup_view",BI.PopupView),BI.SearcherView=BI.inherit(BI.Pane,{_defaultConfig:function(){var a=BI.SearcherView.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-searcher-view bi-card",tipText:BI.i18nText("BI-No_Select"),chooseType:BI.Selection.Single,matcher:{type:"bi.button_group",behaviors:{redmark:function(){return!0}},items:[],layouts:[{type:"bi.vertical"}]},searcher:{type:"bi.button_group",behaviors:{redmark:function(){return!0}},items:[],layouts:[{type:"bi.vertical"}]}})},_init:function(){BI.SearcherView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.matcher=BI.createWidget(b.matcher,{type:"bi.button_group",chooseType:b.chooseType,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}],value:b.value}),this.matcher.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.SearcherView.EVENT_CHANGE,c,d)}),this.spliter=BI.createWidget({type:"bi.vertical",height:1,hgap:10,items:[{type:"bi.layout",height:1,cls:"searcher-view-spliter bi-background"}]}),this.searcher=BI.createWidget(b.searcher,{type:"bi.button_group",chooseType:b.chooseType,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}],value:b.value}),this.searcher.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.SearcherView.EVENT_CHANGE,c,d)}),BI.createWidget({type:"bi.vertical",element:this,items:[this.matcher,this.spliter,this.searcher]})},startSearch:function(){},stopSearch:function(){},setValue:function(a){this.matcher.setValue(a),this.searcher.setValue(a)},getValue:function(){return this.matcher.getValue().concat(this.searcher.getValue())},populate:function(a,b,c){a||(a=[]),b||(b=[]),this.setTipVisible(a.length+b.length===0),this.spliter.setVisible(BI.isNotEmptyArray(b)&&BI.isNotEmptyArray(a)),this.matcher.populate(b,c),this.searcher.populate(a,c)},empty:function(){this.searcher.empty(),this.matcher.empty()},hasMatched:function(){return this.matcher.getAllButtons().length>0}}),BI.SearcherView.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.searcher_view",BI.SearcherView),BI.ListView=BI.inherit(BI.Widget,{props:function(){return{baseCls:"bi-list-view",overscanHeight:100,blockSize:10,scrollTop:0,el:{},items:[]}},init:function(){this.renderedIndex=-1,this.cache={}},render:function(){var a=this,b=this.options;return{type:"bi.vertical",items:[BI.extend({type:"bi.vertical",scrolly:!1,ref:function(){a.container=this}},b.el)],element:this}},mounted:function(){var a=this,b=this.options;this._populate(),this.element.scroll(function(c){b.scrollTop=a.element.scrollTop(),a._calculateBlocksToRender()}),BI.ResizeDetector.addResizeListener(this,function(){a._calculateBlocksToRender()})},_renderMoreIf:function(){for(var a,b=this,c=this.options,d=this.element.height(),e=c.scrollTop+d+c.overscanHeight,f=this.cache[this.renderedIndex]&&this.cache[this.renderedIndex].index+c.blockSize||0,g=this.renderedIndex+1,h=function(){return b.container.element.height()};(a=h())e&&(g=e),d.index=Math.ceil((f+(g>1&&g!==e?1:0))/(0===g?1:g)),(!b.dynamicShow&&!b.dynamicShowPrevNext||f>1)&&j!==!1&&(BI.isKey(j)?c.push({text:j,value:"prev",disabled:e===!1?b.hasPrev(f)===!1:!(f>1&&j!==!1)}):c.push(BI.extend({disabled:e===!1?b.hasPrev(f)===!1:!(f>1&&j!==!1)},j))),(!b.dynamicShow&&!b.dynamicShowFirstLast||d.index>1&&0!==g)&&h&&(c.push({text:h,value:"first",disabled:!(d.index>1&&0!==g)}),d.index>1&&0!==g&&c.push({type:"bi.label",cls:"page-ellipsis",text:"…"})),d.poor=Math.floor((g-1)/2),d.start=d.index>1?f-d.poor:1,d.end=d.index>1?function(){var a=f+(g-d.poor-1);return a>e?e:a}():g,d.end-d.start1&&0!==g&&e>g&&d.endg&&d.endg&&d.endg&&d.end1},hasNext:function(a){a||(a=1);var b=this.options,c=this.options.pages;return c===!1?b.hasNext(a):ac?c:(d=BI.result(b,"firstPage"),ab.pages?b.pages:a,this.currPage=a;this._populate()},getValue:function(){var a=this.button_group.getValue()[0];switch(a){case"prev":return-1;case"next":return 1;case"first":return BI.MIN;case"last":return BI.MAX;default:return a}},attr:function(a,b){BI.Pager.superclass.attr.apply(this,arguments),"curr"===a&&(this.currPage=BI.result(this.options,"curr"))},populate:function(){this._populate()}}),BI.Pager.EVENT_CHANGE="EVENT_CHANGE",BI.Pager.EVENT_AFTER_POPULATE="EVENT_AFTER_POPULATE",BI.shortcut("bi.pager",BI.Pager),BI.A=BI.inherit(BI.Text,{_defaultConfig:function(){var a=BI.A.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-a display-block",href:"",target:"_blank",el:null,tagName:"a"})},_init:function(){var a=this.options;BI.A.superclass._init.apply(this,arguments),this.element.attr({href:a.href,target:a.target}),a.el&&BI.createWidget(a.el,{element:this})}}),BI.shortcut("bi.a",BI.A),BI.LoadingBar=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.LoadingBar.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-loading-bar bi-tips",height:30,handler:BI.emptyFn})},_init:function(){BI.LoadingBar.superclass._init.apply(this,arguments);var a=this;this.loaded=BI.createWidget({type:"bi.text_button",cls:"loading-text bi-list-item-simple",text:BI.i18nText("BI-Load_More"),width:120,handler:this.options.handler}),this.loaded.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.loading=BI.createWidget({type:"bi.layout",width:this.options.height,height:this.options.height,cls:"loading-background cursor-default"});var b=BI.createWidget({type:"bi.center_adapt",items:[this.loaded]}),c=BI.createWidget({type:"bi.center_adapt",items:[this.loading]});this.cardLayout=BI.createWidget({type:"bi.card",element:this,items:[{el:b,cardName:"loaded"},{el:c,cardName:"loading"}]}),this.invisible()},_reset:function(){this.visible(),this.loaded.setText(BI.i18nText("BI-Load_More")),this.loaded.enable()},setLoaded:function(){this._reset(),this.cardLayout.showCardByName("loaded")},setEnd:function(){this.setLoaded(),this.loaded.setText(BI.i18nText("BI-No_More_Data")),this.loaded.disable()},setLoading:function(){this._reset(),this.cardLayout.showCardByName("loading")}}),BI.shortcut("bi.loading_bar",BI.LoadingBar),BI.IconButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.IconButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{_baseCls:(a._baseCls||"")+" bi-icon-button horizon-center",iconWidth:null,iconHeight:null})},_init:function(){BI.IconButton.superclass._init.apply(this,arguments);var a=this.options;this.element.css({textAlign:"center"}),this.icon=BI.createWidget({type:"bi.icon",width:a.iconWidth,height:a.iconHeight}),BI.isNumber(a.height)&&a.height>0&&BI.isNull(a.iconWidth)&&BI.isNull(a.iconHeight)?(this.element.css("lineHeight",a.height+"px"),BI.createWidget({type:"bi.default",element:this,items:[this.icon]})):(this.element.css("lineHeight","1"),BI.createWidget({element:this,type:"bi.center_adapt",items:[this.icon]}))},doClick:function(){BI.IconButton.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.IconButton.EVENT_CHANGE,this)}}),BI.IconButton.EVENT_CHANGE="IconButton.EVENT_CHANGE",BI.shortcut("bi.icon_button",BI.IconButton),BI.ImageButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.ImageButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-image-button",src:"",iconWidth:"100%",iconHeight:"100%"})},_init:function(){BI.ImageButton.superclass._init.apply(this,arguments);var a=this.options;this.image=BI.createWidget({type:"bi.img",width:a.iconWidth,height:a.iconHeight,src:a.src}),BI.isNumber(a.iconWidth)||BI.isNumber(a.iconHeight)?BI.createWidget({type:"bi.center_adapt",element:this,items:[this.image]}):BI.createWidget({type:"bi.adaptive",element:this,items:[this.image],scrollable:!1})},setWidth:function(a){BI.ImageButton.superclass.setWidth.apply(this,arguments),this.options.width=a},setHeight:function(a){BI.ImageButton.superclass.setHeight.apply(this,arguments),this.options.height=a},setImageWidth:function(a){this.image.setWidth(a)},setImageHeight:function(a){this.image.setHeight(a)},getImageWidth:function(){return this.image.element.width()},getImageHeight:function(){return this.image.element.height()},setSrc:function(a){this.options.src=a,this.image.setSrc(a)},getSrc:function(){return this.image.getSrc()},doClick:function(){BI.ImageButton.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.ImageButton.EVENT_CHANGE,this)}}),BI.ImageButton.EVENT_CHANGE="ImageButton.EVENT_CHANGE",BI.shortcut("bi.image_button",BI.ImageButton),BI.Button=BI.inherit(BI.BasicButton,{_defaultConfig:function(a){var b=BI.Button.superclass._defaultConfig.apply(this,arguments);return BI.extend(b,{baseCls:(b.baseCls||"")+" bi-button"+(BI.isIE()&&BI.isIE9Below()?" hack":""),minWidth:a.block===!0||a.clear===!0?0:80,height:24,shadow:a.clear!==!0,isShadowShowingOnSelected:!0,readonly:!0,iconCls:"",level:"common",block:!1,clear:!1,ghost:!1,textAlign:"center",whiteSpace:"nowrap",textWidth:null,textHeight:null,hgap:a.clear?0:10,vgap:0,tgap:0,bgap:0,lgap:0,rgap:0})},_init:function(){BI.Button.superclass._init.apply(this,arguments);var a=this.options;!BI.isNumber(a.height)||a.clear||a.block?a.clear||a.block?this.element.css({lineHeight:a.height+"px"}):this.element.css({lineHeight:a.height-2+"px"}):this.element.css({height:a.height+"px",lineHeight:a.height-2+"px"}),BI.isKey(a.iconCls)?(this.icon=BI.createWidget({type:"bi.icon",width:18,height:a.height-2}),this.text=BI.createWidget({type:"bi.label",text:a.text,value:a.value,height:a.height-2}),BI.createWidget({type:"bi.horizontal_auto",cls:a.iconCls,element:this,hgap:a.hgap,vgap:a.vgap,tgap:a.tgap,bgap:a.bgap,lgap:a.lgap,rgap:a.rgap,items:[{type:"bi.horizontal",items:[this.icon,this.text]}]})):this.text=BI.createWidget({type:"bi.label",textAlign:a.textAlign,whiteSpace:a.whiteSpace,textWidth:a.textWidth,textHeight:a.textHeight,hgap:a.hgap,vgap:a.vgap,tgap:a.tgap,bgap:a.bgap,lgap:a.lgap,rgap:a.rgap,element:this,text:a.text,value:a.value}),a.block===!0&&this.element.addClass("block"),a.clear===!0&&this.element.addClass("clear"),a.ghost===!0&&this.element.addClass("ghost"),a.minWidth>0&&this.element.css({"min-width":a.minWidth+"px"})},doClick:function(){BI.Button.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.Button.EVENT_CHANGE,this)},setText:function(a){BI.Button.superclass.setText.apply(this,arguments),this.text.setText(a)},setValue:function(a){BI.Button.superclass.setValue.apply(this,arguments),this.isReadOnly()||this.text.setValue(a)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},destroy:function(){BI.Button.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.button",BI.Button),BI.Button.EVENT_CHANGE="EVENT_CHANGE",BI.TextButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.TextButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-button",textAlign:"center",whiteSpace:"nowrap",textWidth:null,textHeight:null,hgap:0,lgap:0,rgap:0,text:"",py:""})},_init:function(){BI.TextButton.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,textAlign:a.textAlign,whiteSpace:a.whiteSpace,textWidth:a.textWidth,textHeight:a.textHeight,width:a.width,height:a.height,hgap:a.hgap,lgap:a.lgap,rgap:a.rgap,text:a.text,value:a.value,py:a.py,keyword:a.keyword})},doClick:function(){BI.TextButton.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.TextButton.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},setText:function(a){BI.TextButton.superclass.setText.apply(this,arguments),a=BI.isArray(a)?a.join(","):a,this.text.setText(a)},setStyle:function(a){this.text.setStyle(a)},setValue:function(a){BI.TextButton.superclass.setValue.apply(this,arguments),this.isReadOnly()||(a=BI.isArray(a)?a.join(","):a,this.text.setValue(a))}}),BI.TextButton.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_button",BI.TextButton),BI.BlankIconIconTextItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.BlankIconIconTextItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-blank-icon-text-item",logic:{dynamic:!1},iconCls1:"close-ha-font",iconCls2:"close-ha-font",blankWidth:0,iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.BlankIconIconTextItem.superclass._init.apply(this,arguments);var a=this.options,b=(this._const,BI.createWidget({type:"bi.layout",width:a.blankWidth,height:a.height}));this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height}),this.icon1=BI.createWidget({type:"bi.icon_button",cls:a.iconCls1,forceNotSelected:!0,width:a.height,height:a.height}),this.icon2=BI.createWidget({type:"bi.icon_button",cls:a.iconCls2,forceNotSelected:!0,width:a.height,height:a.height}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",b,this.icon1,this.icon2,this.text)}))))},doClick:function(){BI.BlankIconIconTextItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.BlankIconIconTextItem.EVENT_CHANGE,this.getValue(),this)},setSelected:function(a){BI.BlankIconIconTextItem.superclass.setSelected.apply(this,arguments),this.icon1.setSelected(a),this.icon2.setSelected(a)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)}}),BI.BlankIconIconTextItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.blank_icon_icon_text_item",BI.BlankIconIconTextItem),BI.BlankIconTextIconItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.BlankIconTextIconItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-blank-icon-text-icon-item",logic:{dynamic:!1},iconCls1:"close-ha-font",iconCls2:"close-ha-font",blankWidth:0,iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.BlankIconTextIconItem.superclass._init.apply(this,arguments);var a=this.options;this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height});var b=BI.createWidget({type:"bi.icon_label",cls:a.iconCls1,width:a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight});BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.icon_label",cls:a.iconCls2,width:a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight},top:0,bottom:0,right:0}]}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",{type:"bi.layout",width:a.blankWidth},b,this.text,{type:"bi.layout",width:a.height})}))))},doClick:function(){BI.BlankIconTextIconItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.BlankIconTextIconItem.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()}}),BI.BlankIconTextIconItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.blank_icon_text_icon_item",BI.BlankIconTextIconItem),BI.BlankIconTextItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.BlankIconTextItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-blank-icon-text-item",logic:{dynamic:!1},cls:"close-ha-font",blankWidth:0,iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.BlankIconTextItem.superclass._init.apply(this,arguments);var a=this.options,b=(this._const,BI.createWidget({type:"bi.layout",width:a.blankWidth}));this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height}),this.icon=BI.createWidget({type:"bi.icon_label",width:a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",b,this.icon,this.text)}))))},doClick:function(){BI.BlankIconTextItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.BlankIconTextItem.EVENT_CHANGE,this.getValue(),this)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)}}),BI.BlankIconTextItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.blank_icon_text_item",BI.BlankIconTextItem),BI.IconTextIconItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.IconTextIconItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-icon-text-icon-item",logic:{dynamic:!1},iconCls1:"close-ha-font",iconCls2:"close-ha-font",iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.IconTextIconItem.superclass._init.apply(this,arguments);var a=this.options;this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height});var b=BI.createWidget({type:"bi.icon_label",cls:a.iconCls1,width:a.leftIconWrapperWidth,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight}),c=BI.createWidget({type:"bi.layout",width:a.height});BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.icon_label",cls:a.iconCls2,width:a.rightIconWrapperWidth,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight},top:0,bottom:0,right:0}]}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",b,this.text,c)}))))},doClick:function(){BI.IconTextIconItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.IconTextIconItem.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()}}),BI.IconTextIconItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_text_icon_item",BI.IconTextIconItem),BI.IconTextItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.IconTextItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-icon-text-item",direction:BI.Direction.Left,logic:{dynamic:!1},iconWrapperWidth:null,iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.IconTextItem.superclass._init.apply(this,arguments);var a=this.options;this._const;this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height}),this.icon=BI.createWidget({type:"bi.icon_label",width:a.iconWrapperWidth||a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(a.direction),BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection(a.direction,this.icon,this.text)}))))},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()},doClick:function(){BI.IconTextItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.IconTextItem.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)}}),BI.IconTextItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_text_item",BI.IconTextItem),BI.TextIconItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.TextIconItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-icon-item",logic:{dynamic:!1},cls:"close-ha-font",iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.TextIconItem.superclass._init.apply(this,arguments);var a=this.options;this._const;this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height}),this.icon=BI.createWidget({type:"bi.icon_label",width:a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",this.text,this.icon)}))))},doClick:function(){BI.TextIconItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.TextIconItem.EVENT_CHANGE,this.getValue(),this); -},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)}}),BI.TextIconItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_icon_item",BI.TextIconItem),BI.TextItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.TextItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-item",textAlign:"left",whiteSpace:"nowrap",textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.TextItem.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,textAlign:a.textAlign,whiteSpace:a.whiteSpace,textHeight:"nowrap"==a.whiteSpace?a.height:a.textHeight,height:a.height,hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,py:a.py})},doClick:function(){BI.TextItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.TextItem.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()}}),BI.TextItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_item",BI.TextItem),BI.IconTextIconNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.IconTextIconNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-icon-text-icon-node",logic:{dynamic:!1},iconCls1:"close-ha-font",iconCls2:"close-ha-font",iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.IconTextIconNode.superclass._init.apply(this,arguments);var a=this.options;this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height});var b=BI.createWidget({type:"bi.icon_label",cls:a.iconCls1,width:a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight}),c=BI.createWidget({type:"bi.layout",width:a.height,height:a.height});BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.icon_label",cls:a.iconCls2,width:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight},top:0,bottom:0,right:0}]}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",b,this.text,c)}))))},doClick:function(){BI.IconTextIconNode.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.IconTextIconNode.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()}}),BI.IconTextIconNode.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_text_icon_node",BI.IconTextIconNode),BI.IconTextNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.IconTextNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-icon-text-node",logic:{dynamic:!1},cls:"close-ha-font",iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.IconTextNode.superclass._init.apply(this,arguments);var a=this.options;this._const;this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height}),this.icon=BI.createWidget({type:"bi.icon_label",width:a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",this.icon,this.text)}))))},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()},doClick:function(){BI.IconTextNode.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.IconTextNode.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)}}),BI.IconTextNode.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_text_node",BI.IconTextNode),BI.TextIconNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.TextIconNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-icon-node",logic:{dynamic:!1},cls:"close-ha-font",iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.TextIconNode.superclass._init.apply(this,arguments);var a=this.options;this._const;this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height}),this.icon=BI.createWidget({type:"bi.icon_label",width:a.height,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",this.text,this.icon)}))))},doClick:function(){BI.TextIconNode.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.TextIconNode.EVENT_CHANGE,this.getValue(),this)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)}}),BI.TextIconNode.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_icon_node",BI.TextIconNode),BI.TextNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.TextNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-node",textAlign:"left",whiteSpace:"nowrap",textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.TextNode.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,textAlign:a.textAlign,whiteSpace:a.whiteSpace,textHeight:"nowrap"==a.whiteSpace?a.height:a.textHeight,height:a.height,hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,py:a.py})},doClick:function(){BI.TextNode.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.TextNode.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()}}),BI.TextNode.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_node",BI.TextNode),BI.Editor=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Editor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-editor bi-focus-shadow",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,tipType:"warning",inputType:"text",validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!1,watermark:"",errorText:""})},_init:function(){BI.Editor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=this.addWidget(BI.createWidget({type:"bi.input",element:"",root:!0,value:b.value,watermark:b.watermark,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank})),this.editor.element.css({width:"100%",height:"100%",border:"none",outline:"none",padding:"0",margin:"0"}),BI.isKey(this.options.watermark)&&(this.watermark=BI.createWidget({type:"bi.label",cls:"bi-water-mark",text:this.options.watermark,height:b.height-2*(b.vgap+b.tgap),whiteSpace:"nowrap",textAlign:"left"}),this.watermark.element.bind({mousedown:function(b){a.isEnabled()?a.editor.isEditing()||a.editor.focus():a.editor.isEditing()&&a.editor.blur(),b.stopEvent()}}),this.watermark.element.bind("click",function(b){a.isEnabled()?a.editor.isEditing()||a.editor.focus():a.editor.isEditing()&&a.editor.blur(),b.stopEvent()}));var c=[];this.watermark&&c.push({el:this.watermark,left:3,right:3,top:0,bottom:0}),c.push({el:this.editor,left:0,right:0,top:0,bottom:0});var d=[{el:{type:"bi.absolute",items:c},left:b.hgap+b.lgap,right:b.hgap+b.rgap,top:b.vgap+b.tgap,bottom:b.vgap+b.bgap}];BI.createWidget({type:"bi.absolute",element:this,items:d}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Input.EVENT_FOCUS,function(){a._checkError(),a.element.addClass("bi-editor-focus"),a.fireEvent(BI.Editor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Input.EVENT_BLUR,function(){a._setErrorVisible(!1),a.element.removeClass("bi-editor-focus"),a.fireEvent(BI.Editor.EVENT_BLUR,arguments)}),this.editor.on(BI.Input.EVENT_CLICK,function(){a.fireEvent(BI.Editor.EVENT_CLICK,arguments)}),this.editor.on(BI.Input.EVENT_CHANGE,function(){a.fireEvent(BI.Editor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Input.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.Editor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Input.EVENT_QUICK_DOWN,function(b){b.keyCode!==BI.KeyCode.TAB&&a.watermark&&a.watermark.invisible()}),this.editor.on(BI.Input.EVENT_VALID,function(){a._checkWaterMark(),a._setErrorVisible(!1),a.fireEvent(BI.Editor.EVENT_VALID,arguments)}),this.editor.on(BI.Input.EVENT_ERROR,function(){a._checkWaterMark(),a.fireEvent(BI.Editor.EVENT_ERROR,arguments),a._setErrorVisible(a.isEditing())}),this.editor.on(BI.Input.EVENT_RESTRICT,function(){a._checkWaterMark();var b=a._setErrorVisible(!0);b&&b.element.fadeOut(100,function(){b.element.fadeIn(100)}),a.fireEvent(BI.Editor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Input.EVENT_EMPTY,function(){a._checkWaterMark(),a.fireEvent(BI.Editor.EVENT_EMPTY,arguments)}),this.editor.on(BI.Input.EVENT_ENTER,function(){a.fireEvent(BI.Editor.EVENT_ENTER,arguments)}),this.editor.on(BI.Input.EVENT_SPACE,function(){a.fireEvent(BI.Editor.EVENT_SPACE,arguments)}),this.editor.on(BI.Input.EVENT_BACKSPACE,function(){a.fireEvent(BI.Editor.EVENT_BACKSPACE,arguments)}),this.editor.on(BI.Input.EVENT_REMOVE,function(){a.fireEvent(BI.Editor.EVENT_REMOVE,arguments)}),this.editor.on(BI.Input.EVENT_START,function(){a.fireEvent(BI.Editor.EVENT_START,arguments)}),this.editor.on(BI.Input.EVENT_PAUSE,function(){a.fireEvent(BI.Editor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Input.EVENT_STOP,function(){a.fireEvent(BI.Editor.EVENT_STOP,arguments)}),this.editor.on(BI.Input.EVENT_CONFIRM,function(){a.fireEvent(BI.Editor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Input.EVENT_CHANGE_CONFIRM,function(){a.fireEvent(BI.Editor.EVENT_CHANGE_CONFIRM,arguments)}),this.element.click(function(a){return a.stopPropagation(),!1}),BI.isKey(this.options.value)||BI.isEmptyString(this.options.value)?(this._checkError(),this._checkWaterMark()):this._checkWaterMark()},_checkToolTip:function(){var a=this.options,b=a.errorText;BI.isFunction(b)&&(b=b(this.editor.getValue())),BI.isKey(b)&&(!this.isEnabled()||this.isValid()||BI.Bubbles.has(this.getName())&&BI.Bubbles.get(this.getName()).isVisible()?this.setTitle(""):this.setTitle(b))},_checkError:function(){this._setErrorVisible(this.isEnabled()&&!this.isValid()),this._checkToolTip()},_checkWaterMark:function(){var a=this.options;!this.disabledWaterMark&&""===this.editor.getValue()&&BI.isKey(a.watermark)?this.watermark&&this.watermark.visible():this.watermark&&this.watermark.invisible()},setErrorText:function(a){this.options.errorText=a},getErrorText:function(){return this.options.errorText},_setErrorVisible:function(a){var b=this.options,c=b.errorText;if(BI.isFunction(c)&&(c=c(this.editor.getValue())),!this.disabledError&&BI.isKey(c))return BI.Bubbles[a?"show":"hide"](this.getName(),c,this,{adjustYOffset:2}),this._checkToolTip(),BI.Bubbles.get(this.getName())},disableError:function(){this.disabledError=!0,this._checkError()},enableError:function(){this.disabledError=!1,this._checkError()},disableWaterMark:function(){this.disabledWaterMark=!0,this._checkWaterMark()},enableWaterMark:function(){this.disabledWaterMark=!1,this._checkWaterMark()},focus:function(){this.element.addClass("text-editor-focus"),this.editor.focus()},blur:function(){this.element.removeClass("text-editor-focus"),this.editor.blur()},selectAll:function(){this.editor.selectAll()},onKeyDown:function(a){this.editor.onKeyDown(a)},setValue:function(a){BI.Editor.superclass.setValue.apply(this,arguments),this.editor.setValue(a),this._checkError(),this._checkWaterMark()},getLastValidValue:function(){return this.editor.getLastValidValue()},getValue:function(){return this.isValid()?BI.trim(this.editor.getValue()):BI.trim(this.editor.getLastValidValue())},isEditing:function(){return this.editor.isEditing()},isValid:function(){return this.editor.isValid()},destroyed:function(){BI.Bubbles.remove(this.getName())}}),BI.Editor.EVENT_CHANGE="EVENT_CHANGE",BI.Editor.EVENT_FOCUS="EVENT_FOCUS",BI.Editor.EVENT_BLUR="EVENT_BLUR",BI.Editor.EVENT_CLICK="EVENT_CLICK",BI.Editor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.Editor.EVENT_SPACE="EVENT_SPACE",BI.Editor.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.Editor.EVENT_START="EVENT_START",BI.Editor.EVENT_PAUSE="EVENT_PAUSE",BI.Editor.EVENT_STOP="EVENT_STOP",BI.Editor.EVENT_CONFIRM="EVENT_CONFIRM",BI.Editor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.Editor.EVENT_VALID="EVENT_VALID",BI.Editor.EVENT_ERROR="EVENT_ERROR",BI.Editor.EVENT_ENTER="EVENT_ENTER",BI.Editor.EVENT_RESTRICT="EVENT_RESTRICT",BI.Editor.EVENT_REMOVE="EVENT_REMOVE",BI.Editor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.editor",BI.Editor),BI.MultifileEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.MultifileEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-multifile-editor",multiple:!1,maxSize:-1,accept:"",url:""})},_init:function(){var a=this,b=this.options;BI.MultifileEditor.superclass._init.apply(this,arguments),this.file=BI.createWidget({type:"bi.file",cls:"multifile-editor",width:"100%",height:"100%",name:b.name,url:b.url,multiple:b.multiple,accept:b.accept,maxSize:b.maxSize,title:b.title}),this.file.on(BI.File.EVENT_CHANGE,function(){a.fireEvent(BI.MultifileEditor.EVENT_CHANGE,arguments)}),this.file.on(BI.File.EVENT_UPLOADSTART,function(){a.fireEvent(BI.MultifileEditor.EVENT_UPLOADSTART,arguments)}),this.file.on(BI.File.EVENT_ERROR,function(){a.fireEvent(BI.MultifileEditor.EVENT_ERROR,arguments)}),this.file.on(BI.File.EVENT_PROGRESS,function(){a.fireEvent(BI.MultifileEditor.EVENT_PROGRESS,arguments)}),this.file.on(BI.File.EVENT_UPLOADED,function(){a.fireEvent(BI.MultifileEditor.EVENT_UPLOADED,arguments)}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.adaptive",scrollable:!1,items:[this.file]},top:0,right:0,left:0,bottom:0}]})},select:function(){this.file.select()},getValue:function(){return this.file.getValue()},upload:function(){this.file.upload()},reset:function(){this.file.reset()}}),BI.MultifileEditor.EVENT_CHANGE="MultifileEditor.EVENT_CHANGE",BI.MultifileEditor.EVENT_UPLOADSTART="MultifileEditor.EVENT_UPLOADSTART",BI.MultifileEditor.EVENT_ERROR="MultifileEditor.EVENT_ERROR",BI.MultifileEditor.EVENT_PROGRESS="MultifileEditor.EVENT_PROGRESS",BI.MultifileEditor.EVENT_UPLOADED="MultifileEditor.EVENT_UPLOADED",BI.shortcut("bi.multifile_editor",BI.MultifileEditor),BI.TextAreaEditor=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.TextAreaEditor.superclass._defaultConfig.apply(),{baseCls:"bi-textarea-editor",value:""})},_init:function(){BI.TextAreaEditor.superclass._init.apply(this,arguments);var a=this.options,b=this;this.content=BI.createWidget({type:"bi.layout",tagName:"textarea",width:"100%",height:"100%",cls:"bi-textarea textarea-editor-content display-block"}),this.content.element.css({resize:"none"}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.adaptive",items:[this.content]},left:10,right:10,top:8,bottom:8}]}),this.content.element.on("input propertychange",function(a){b._checkWaterMark(),b.fireEvent(BI.TextAreaEditor.EVENT_CHANGE)}),this.content.element.focus(function(){b.isValid()&&(b._focus(),b.fireEvent(BI.TextAreaEditor.EVENT_FOCUS)),BI.Widget._renderEngine.createElement(document).bind("mousedown."+b.getName(),function(a){BI.DOM.isExist(b)&&!b.element.__isMouseInBounds__(a)&&(BI.Widget._renderEngine.createElement(document).unbind("mousedown."+b.getName()),b.content.element.blur())})}),this.content.element.blur(function(){b.isValid()&&(b._blur(),b.fireEvent(BI.TextAreaEditor.EVENT_BLUR)),BI.Widget._renderEngine.createElement(document).unbind("mousedown."+b.getName())}),BI.isKey(a.value)&&b.setValue(a.value),BI.isNotNull(a.style)&&b.setStyle(a.style),this._checkWaterMark()},_checkWaterMark:function(){var a=this,b=this.options,c=this.getValue();BI.isNotEmptyString(c)?(this.watermark&&this.watermark.destroy(),this.watermark=null):BI.isNotEmptyString(b.watermark)&&(this.watermark?(this.watermark.setText(b.watermark),this.watermark.setValid(!b.invalid),this.watermark.setEnable(!b.disabled)):(this.watermark=BI.createWidget({type:"bi.text_button",cls:"bi-water-mark",textAlign:"left",height:30,text:b.watermark,invalid:b.invalid,disabled:b.disabled}),this.watermark.on(BI.TextButton.EVENT_CHANGE,function(){a.focus()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.watermark,left:10,top:4,right:0}]})))},_focus:function(){this.content.element.addClass("textarea-editor-focus"),this._checkWaterMark()},_blur:function(){this.content.element.removeClass("textarea-editor-focus"),this._checkWaterMark()},focus:function(){this._focus(),this.content.element.focus()},blur:function(){this._blur(),this.content.element.blur()},getValue:function(){return this.content.element.val()},setValue:function(a){this.content.element.val(a),this._checkWaterMark()},setStyle:function(a){this.style=a,this.element.css(a),this.content.element.css(BI.extend({},a,{color:a.color||BI.DOM.getContrastColor(BI.DOM.isRGBColor(a.backgroundColor)?BI.DOM.rgb2hex(a.backgroundColor):a.backgroundColor)}))},getStyle:function(){return this.style},_setValid:function(a){BI.TextAreaEditor.superclass._setValid.apply(this,arguments)}}),BI.TextAreaEditor.EVENT_CHANGE="EVENT_CHANGE",BI.TextAreaEditor.EVENT_BLUR="EVENT_BLUR",BI.TextAreaEditor.EVENT_FOCUS="EVENT_FOCUS",BI.shortcut("bi.textarea_editor",BI.TextAreaEditor),BI.Html=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Html.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text",textAlign:"left",whiteSpace:"normal",lineHeight:null,handler:null,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,text:""})},render:function(){var a=this,b=this.options;b.hgap+b.lgap>0&&this.element.css({"padding-left":b.hgap+b.lgap+"px"}),b.hgap+b.rgap>0&&this.element.css({"padding-right":b.hgap+b.rgap+"px"}),b.vgap+b.tgap>0&&this.element.css({"padding-top":b.vgap+b.tgap+"px"}),b.vgap+b.bgap>0&&this.element.css({"padding-bottom":b.vgap+b.bgap+"px"}),BI.isNumber(b.height)&&this.element.css({lineHeight:b.height+"px"}),BI.isNumber(b.lineHeight)&&this.element.css({lineHeight:b.lineHeight+"px"}),this.element.css({textAlign:b.textAlign,whiteSpace:b.whiteSpace,textOverflow:"nowrap"===b.whiteSpace?"ellipsis":""}),b.handler?(this.text=BI.createWidget({type:"bi.layout",tagName:"span"}),this.text.element.click(function(){b.handler(a.getValue())}),BI.createWidget({type:"bi.default",element:this,items:[this.text]})):this.text=this},mounted:function(){var a=this.options;BI.isKey(a.text)?this.setText(a.text):BI.isKey(a.value)&&this.setText(a.value)},doHighLight:function(){this.text.element.addClass("bi-high-light")},unHighLight:function(){this.text.element.removeClass("bi-high-light")},setValue:function(a){BI.Html.superclass.setValue.apply(this,arguments),this.isReadOnly()||this.setText(a)},setStyle:function(a){this.text.element.css(a)},setText:function(a){BI.Html.superclass.setText.apply(this,arguments),this.options.text=a,this.text.element.html(a)}}),BI.shortcut("bi.html",BI.Html),BI.Icon=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Icon.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{tagName:"i",baseCls:(a.baseCls||"")+" x-icon b-font horizon-center display-block"})},_init:function(){BI.Icon.superclass._init.apply(this,arguments),BI.isIE9Below&&BI.isIE9Below()&&this.element.addClass("hack")}}),BI.shortcut("bi.icon",BI.Icon),BI.Iframe=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Iframe.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{tagName:"iframe",baseCls:(a.baseCls||"")+" bi-iframe",src:"",attributes:{},width:"100%",height:"100%"})},_init:function(){var a=this.options;a.attributes.frameborder="0",a.attributes.src=a.src,BI.Iframe.superclass._init.apply(this,arguments)},setSrc:function(a){this.options.src=a,this.element.attr("src",a)},getSrc:function(){return this.options.src},setName:function(a){this.options.name=a,this.element.attr("name",a)},getName:function(){return this.options.name},getWidth:function(){return this.options.width},getHeight:function(){return this.options.height}}),BI.shortcut("bi.iframe",BI.Iframe),BI.Img=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Img.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{tagName:"img",baseCls:(a.baseCls||"")+" bi-img display-block",src:"",attributes:{},width:"100%",height:"100%"})},_init:function(){var a=this.options;a.attributes.src=a.src,BI.Img.superclass._init.apply(this,arguments)},setSrc:function(a){this.options.src=a,this.element.attr("src",a)},getSrc:function(){return this.options.src}}),BI.shortcut("bi.img",BI.Img),BI.ImageCheckbox=BI.inherit(BI.IconButton,{_defaultConfig:function(){var a=BI.ImageCheckbox.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-image-checkbox check-box-icon",selected:!1,handler:BI.emptyFn,width:16,height:16,iconWidth:16,iconHeight:16})},_init:function(){BI.ImageCheckbox.superclass._init.apply(this,arguments)},doClick:function(){BI.ImageCheckbox.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.Checkbox.EVENT_CHANGE)}}),BI.ImageCheckbox.EVENT_CHANGE="Checkbox.EVENT_CHANGE",BI.shortcut("bi.image_checkbox",BI.ImageCheckbox),BI.Checkbox=BI.inherit(BI.BasicButton,{props:{baseCls:"bi-checkbox",selected:!1,handler:BI.emptyFn,width:16,height:16,iconWidth:14,iconHeight:14},render:function(){var a=this,b=this.options;return{type:"bi.center_adapt",items:[{type:"bi.default",ref:function(b){a.checkbox=b},cls:"checkbox-content",width:b.iconWidth-2,height:b.iconHeight-2}]}},_setEnable:function(a){BI.Checkbox.superclass._setEnable.apply(this,arguments),a===!0?this.checkbox.element.removeClass("base-disabled disabled"):this.checkbox.element.addClass("base-disabled disabled")},doClick:function(){BI.Checkbox.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.Checkbox.EVENT_CHANGE)},setSelected:function(a){BI.Checkbox.superclass.setSelected.apply(this,arguments),a?this.checkbox.element.addClass("bi-high-light-background"):this.checkbox.element.removeClass("bi-high-light-background")}}),BI.Checkbox.EVENT_CHANGE="Checkbox.EVENT_CHANGE",BI.shortcut("bi.checkbox",BI.Checkbox),function(document){var F=function(a){return function(b){var c=b.files||[b];return c.item||(c.item=a),c}}(function(a){return this[a]}),event={add:document.addEventListener?function(a,b,c){return a.addEventListener(b,c,!1),this}:function(a,b,c){return a.attachEvent("on"+b,c),this},del:document.removeEventListener?function(a,b,c){return a.removeEventListener(b,c,!1),this}:function(a,b,c){return a.detachEvent("on"+b,c),this},stop:function(a){return a?(a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1):self.event&&(event.returnValue=!(event.cancelBubble=!0)),!1}},sendFile=function(toString){var multipart=function(a,b,c){return"--".concat(a,CRLF,'Content-Disposition: form-data; name="',b,'"; filename="',BI.cjkEncode(c.fileName),'"',CRLF,"Content-Type: application/octet-stream",CRLF,CRLF,c.getAsBinary(),CRLF,"--",a,"--",CRLF)},isFunction=function(a){return"[object Function]"===toString.call(a)},split="onabort.onerror.onloadstart.onprogress".split("."),length=split.length,CRLF="\r\n",xhr=this.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),sendFile;return sendFile=xhr.upload||xhr.sendAsBinary?function(a,b,c,d){if(-1'),iframe=handler.iframe||(handler.iframe=document.createElement(''))}catch(e){var form=document.createElement("form"),iframe=handler.iframe||(handler.iframe=document.createElement("iframe"));form.setAttribute("enctype","multipart/form-data"),iframe.setAttribute("name",iframe.id=target),iframe.setAttribute("src",url)}with(iframe.style.position="absolute",iframe.style.left=iframe.style.top="-10000px",iframe.onload=onload,iframe.onerror=function(a){isFunction(handler.onerror)&&handler.onerror(rpe,a||_global.event)},iframe.onreadystatechange=function(){/loaded|complete/i.test(iframe.readyState)?onload():isFunction(handler.onloadprogress)&&(rpe.loadedc.status||c.status>399?(BI.Msg.toast(BI.i18nText("BI-Upload_File_Error"),{level:"error"}),void a.fireEvent(BI.File.EVENT_ERROR)):void a.fireEvent(BI.File.EVENT_UPLOADED)},1e3)},c.url=b.url,c.fileType=b.accept,c.attach_array=[],c.attach_names=[],c.attachNum=0},_events:function(a){var b=this;return event.add(a.dom.input,"change",function(){event.del(a.dom.input,"change",arguments.callee);for(var c=a.dom.input.cloneNode(!0),d=0,e=F(a.dom.input);d0&&b.fireEvent(BI.File.EVENT_CHANGE,{files:a.files}),c.value="",a.dom.input.parentNode.replaceChild(c,a.dom.input),a.dom.input=c,event.add(a.dom.input,"change",arguments.callee)}),a},_wrap:function(){var a=this.options,b=this.element[0];return a.multiple===!0&&this.element.attr("multiple","multiple"),b.value="",this._events({dom:{input:b,disabled:!1},name:b.name,maxSize:a.maxSize?a.maxSize>>0:-1,files:[],clean:function(){this.files=[]},upload:function(a){if(a)for(var b in a)this[b]=a[b];return sendFiles(this,this.maxSize),this},hide:function(){this.dom.disabled&&(this.dom.disabled=!1,this.dom.input.removeAttribute("disabled"))},show:function(a,b,c,d){this.dom.disabled||(this.dom.disabled=!0,this.dom.input.setAttribute("disabled","disabled"))}})},select:function(){this.wrap&&BI.Widget._renderEngine.createElement(this.wrap.dom.input).click()},upload:function(a){this.wrap&&this.wrap.upload(a)},getValue:function(){return this.wrap?this.wrap.attach_array:[]},reset:function(){this.wrap&&(this.wrap.attach_array=[],this.wrap.attach_names=[],this.wrap.attachNum=0)},_setEnable:function(a){BI.File.superclass._setEnable.apply(this,arguments),a===!0?this.element.attr("disabled","disabled"):this.element.removeAttr("disabled")}}),BI.File.EVENT_CHANGE="BI.File.EVENT_CHANGE",BI.File.EVENT_UPLOADSTART="EVENT_UPLOADSTART",BI.File.EVENT_ERROR="EVENT_ERROR",BI.File.EVENT_PROGRESS="EVENT_PROGRESS",BI.File.EVENT_UPLOADED="EVENT_UPLOADED",BI.shortcut("bi.file",BI.File)}(_global.document||{}),BI.Input=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Input.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-input display-block overflow-dot",tagName:"input",validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!1})},_init:function(){BI.Input.superclass._init.apply(this,arguments);var a=this,b=!1,c=null,d=!1,e=BI.debounce(function(c){a.onKeyDown(c,b),a._keydown_=!1},300),f=BI.debounce(BI.bind(this._click,this),BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1});this._focusDebounce=BI.debounce(BI.bind(this._focus,this),BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1}),this._blurDebounce=BI.debounce(BI.bind(this._blur,this),BI.EVENT_RESPONSE_TIME,{leading:!0,trailing:!1}),this.element.keydown(function(e){d=!1,b=e.ctrlKey,c=e.keyCode,a.fireEvent(BI.Input.EVENT_QUICK_DOWN,arguments)}).keyup(function(b){c=null,d&&b.keyCode===BI.KeyCode.ENTER||(a._keydown_=!0,e(b.keyCode))}).on("input propertychange",function(b){var f=b.originalEvent;(BI.isNull(f.propertyName)||"value"===f.propertyName)&&(c=null,d=!0,a._keydown_=!0,e(c))}).click(function(a){a.stopPropagation(),f()}).mousedown(function(b){a.element.val(a.element.val())}).focus(function(b){a._focusDebounce()}).focusout(function(b){a._blurDebounce()}),(BI.isKey(this.options.value)||BI.isEmptyString(this.options.value))&&this.setValue(this.options.value)},_focus:function(){this.element.addClass("bi-input-focus"),this._checkValidationOnValueChange(),this._isEditing=!0,""==this.getValue()&&(this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EMPTY,this.getValue(),this),this.fireEvent(BI.Input.EVENT_EMPTY)),this.fireEvent(BI.Input.EVENT_FOCUS)},_blur:function(){function a(){if(b.isValid()||b.options.quitChecker.apply(b,[BI.trim(b.getValue())])===!1||(b.element.val(b._lastValidValue?b._lastValidValue:""),b._checkValidationOnValueChange(),b._defaultState()),b.element.removeClass("bi-input-focus"),b._isEditing=!1,b._start=!1,b.isValid()){var a=b._lastValidValue;b._lastValidValue=b.getValue(),b.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CONFIRM,b.getValue(),b),b.fireEvent(BI.Input.EVENT_CONFIRM),b._lastValidValue!==a&&b.fireEvent(BI.Input.EVENT_CHANGE_CONFIRM)}b.fireEvent(BI.Input.EVENT_BLUR)}var b=this;b._keydown_===!0?BI.delay(a,300):a()},_click:function(){this._isEditing!==!0&&(this.selectAll(),this.fireEvent(BI.Input.EVENT_CLICK))},onClick:function(){this._click()},onKeyDown:function(a,b){this.isValid()&&BI.trim(this._lastChangedValue)===BI.trim(this.getValue())||this._checkValidationOnValueChange(),this.isValid()&&""!==BI.trim(this.getValue())&&((BI.trim(this.getValue())===this._lastValue||this._start&&null!=this._lastValue&&""!==this._lastValue)&&(this._pause!==!0||/(\s|\u00A0)$/.test(this.getValue()))||(this._start=!0,this._pause=!1,this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.STARTEDIT,this.getValue(),this),this.fireEvent(BI.Input.EVENT_START))),b===!0&&86===a?this._valueChange():(a==BI.KeyCode.ENTER&&(this.isValid()||this.options.quitChecker.apply(this,[BI.trim(this.getValue())])!==!1?(this.blur(),this.fireEvent(BI.Input.EVENT_ENTER)):this.fireEvent(BI.Input.EVENT_RESTRICT)),a==BI.KeyCode.SPACE&&this.fireEvent(BI.Input.EVENT_SPACE),a==BI.KeyCode.BACKSPACE&&""==this._lastValue&&this.fireEvent(BI.Input.EVENT_REMOVE),a!=BI.KeyCode.BACKSPACE&&a!=BI.KeyCode.DELETE||this.fireEvent(BI.Input.EVENT_BACKSPACE)),this.fireEvent(BI.Input.EVENT_KEY_DOWN),BI.isEndWithBlank(this.getValue())?(this._pause=!0,this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.PAUSE,"",this),this.fireEvent(BI.Input.EVENT_PAUSE),this._defaultState()):a!==BI.KeyCode.BACKSPACE&&a!==BI.KeyCode.DELETE||""!==BI.trim(this.getValue())||null===this._lastValue||""===BI.trim(this._lastValue)?this._valueChange():(this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.STOPEDIT,this.getValue(),this),this.fireEvent(BI.Input.EVENT_STOP),this._valueChange())},_defaultState:function(){""==this.getValue()&&(this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EMPTY,this.getValue(),this),this.fireEvent(BI.Input.EVENT_EMPTY)),this._lastValue=this.getValue(),this._lastSubmitValue=null},_valueChange:function(){this.isValid()&&BI.trim(this.getValue())!==this._lastSubmitValue&&(this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CHANGE,this.getValue(),this),this.fireEvent(BI.Input.EVENT_CHANGE),this._lastSubmitValue=BI.trim(this.getValue())),""==this.getValue()&&(this.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.EMPTY,this.getValue(),this),this.fireEvent(BI.Input.EVENT_EMPTY)),this._lastValue=this.getValue()},_checkValidationOnValueChange:function(){var a=this.options,b=this.getValue();this.setValid(a.allowBlank===!0&&""==BI.trim(b)||BI.isNotEmptyString(BI.trim(b))&&(b===this._lastChangedValue||a.validationChecker.apply(this,[BI.trim(b)])!==!1))},focus:function(){if(!this.element.is(":visible"))throw new Error("input输入框在不可见下不能focus");!this._isEditing==!0&&(this.element.focus(),this.selectAll())},blur:function(){if(!this.element.is(":visible"))throw new Error("input输入框在不可见下不能blur");this._isEditing===!0&&(this.element.blur(),this._blurDebounce())},selectAll:function(){if(!this.element.is(":visible"))throw new Error("input输入框在不可见下不能select");this.element.select(),this._isEditing=!0},setValue:function(a){this.element.val(a),BI.nextTick(BI.bind(function(){this._checkValidationOnValueChange(),this._defaultState(),this.isValid()&&(this._lastValidValue=this._lastSubmitValue=this.getValue())},this))},getValue:function(){return this.element.val()||""},isEditing:function(){return this._isEditing},getLastValidValue:function(){return this._lastChangedValue},_setValid:function(){BI.Input.superclass._setValid.apply(this,arguments),this.isValid()?(this._lastChangedValue=this.getValue(),this.element.removeClass("bi-input-error"),this.fireEvent(BI.Input.EVENT_VALID,BI.trim(this.getValue()),this)):(this._lastChangedValue===this.getValue()&&(this._lastChangedValue=null),this.element.addClass("bi-input-error"),this.fireEvent(BI.Input.EVENT_ERROR,BI.trim(this.getValue()),this))},_setEnable:function(a){BI.Input.superclass._setEnable.apply(this,[a]),this.element[0].disabled=!a}}),BI.Input.EVENT_CHANGE="EVENT_CHANGE",BI.Input.EVENT_FOCUS="EVENT_FOCUS",BI.Input.EVENT_CLICK="EVENT_CLICK",BI.Input.EVENT_BLUR="EVENT_BLUR",BI.Input.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.Input.EVENT_QUICK_DOWN="EVENT_QUICK_DOWN",BI.Input.EVENT_SPACE="EVENT_SPACE",BI.Input.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.Input.EVENT_START="EVENT_START",BI.Input.EVENT_PAUSE="EVENT_PAUSE",BI.Input.EVENT_STOP="EVENT_STOP",BI.Input.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.Input.EVENT_CONFIRM="EVENT_CONFIRM",BI.Input.EVENT_REMOVE="EVENT_REMOVE",BI.Input.EVENT_EMPTY="EVENT_EMPTY",BI.Input.EVENT_VALID="EVENT_VALID",BI.Input.EVENT_ERROR="EVENT_ERROR",BI.Input.EVENT_ENTER="EVENT_ENTER",BI.Input.EVENT_RESTRICT="EVENT_RESTRICT",BI.shortcut("bi.input",BI.Input),BI.ImageRadio=BI.inherit(BI.IconButton,{_defaultConfig:function(){var a=BI.ImageRadio.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-radio radio-icon",selected:!1,handler:BI.emptyFn,width:16,height:16,iconWidth:16,iconHeight:16})},_init:function(){BI.ImageRadio.superclass._init.apply(this,arguments)},doClick:function(){BI.ImageRadio.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.ImageRadio.EVENT_CHANGE)}}),BI.ImageRadio.EVENT_CHANGE="Radio.EVENT_CHANGE",BI.shortcut("bi.image_radio",BI.ImageRadio),BI.Radio=BI.inherit(BI.BasicButton,{props:{baseCls:"bi-radio",selected:!1,handler:BI.emptyFn,width:16,height:16,iconWidth:14,iconHeight:14},render:function(){var a=this,b=this.options;return{type:"bi.center_adapt",element:this.element,items:[{type:"bi.layout",cls:"radio-content",ref:function(b){a.radio=b},width:b.iconWidth,height:b.iconHeight}]}},_setEnable:function(a){BI.Radio.superclass._setEnable.apply(this,arguments),a===!0?this.radio.element.removeClass("base-disabled disabled"):this.radio.element.addClass("base-disabled disabled")},doClick:function(){BI.Radio.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.Radio.EVENT_CHANGE)},setSelected:function(a){BI.Radio.superclass.setSelected.apply(this,arguments),a?this.radio.element.addClass("bi-high-light-background"):this.radio.element.removeClass("bi-high-light-background")}}),BI.Radio.EVENT_CHANGE="Radio.EVENT_CHANGE",BI.shortcut("bi.radio",BI.Radio),BI.HtmlLabel=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.HtmlLabel.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-label",textAlign:"center",whiteSpace:"nowrap",textWidth:null,textHeight:null,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,text:""})},_createJson:function(){var a=this.options;return{type:"bi.html",textAlign:a.textAlign,whiteSpace:a.whiteSpace,lineHeight:a.textHeight,text:a.text,value:a.value}},_init:function(){BI.HtmlLabel.superclass._init.apply(this,arguments),"center"===this.options.textAlign?this._createCenterEl():this._createNotCenterEl()},_createCenterEl:function(){var a=this.options,b=this._createJson();return BI.isNumber(a.width)&&a.width>0?BI.isNumber(a.textWidth)&&a.textWidth>0?(b.maxWidth=a.textWidth,BI.isNumber(a.height)&&a.height>0?void BI.createWidget({type:"bi.center_adapt",height:a.height,scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]}):void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]})):"normal"==a.whiteSpace?(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(b),void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[this.text]})):BI.isNumber(a.height)&&a.height>0?(this.element.css({"line-height":a.height+"px"}),void(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})))):(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,maxWidth:"100%"}),this.text=BI.createWidget(b),void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[this.text]})):BI.isNumber(a.textWidth)&&a.textWidth>0?(b.maxWidth=a.textWidth,void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]})):"normal"==a.whiteSpace?(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(b),void BI.createWidget({type:"bi.center_adapt",scrollable:!0,element:this,items:[this.text]})):BI.isNumber(a.height)&&a.height>0?(this.element.css({"line-height":a.height+"px"}),void(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})))):(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(BI.extend(b,{maxWidth:"100%"})),void BI.createWidget({type:"bi.center_adapt",element:this,items:[this.text]}))},_createNotCenterEl:function(){var a=this.options,b=this._createJson();return BI.isNumber(a.width)&&a.width>0?BI.isNumber(a.textWidth)&&a.textWidth>0?(b.width=a.textWidth,BI.isNumber(a.height)&&a.height>0?void BI.createWidget({type:"bi.vertical_adapt",height:a.height,scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]}):void BI.createWidget({type:"bi.vertical_adapt",scrollable:"normal"===a.whiteSpace,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,element:this,items:[{el:this.text=BI.createWidget(b)}]})):BI.isNumber(a.height)&&a.height>0?(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})),void("normal"!==a.whiteSpace&&this.element.css({"line-height":a.height-2*a.vgap+"px"}))):(b.width=a.width-2*a.hgap-a.lgap-a.rgap,void BI.createWidget({type:"bi.vertical_adapt",scrollable:"normal"===a.whiteSpace,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,element:this,items:[{el:this.text=BI.createWidget(b)}]})):BI.isNumber(a.textWidth)&&a.textWidth>0?(b.width=a.textWidth,void BI.createWidget({type:"bi.vertical_adapt",scrollable:"normal"===a.whiteSpace,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,element:this,items:[{el:this.text=BI.createWidget(b)}]})):BI.isNumber(a.height)&&a.height>0?("normal"!==a.whiteSpace&&this.element.css({"line-height":a.height-2*a.vgap+"px"}),void(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})))):(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(BI.extend(b,{maxWidth:"100%"})),void BI.createWidget({type:"bi.vertical_adapt",element:this,items:[this.text]}))},_setEnable:function(a){BI.HtmlLabel.superclass._setEnable.apply(this,arguments),a===!0?this.element.removeClass("base-disabled disabled"):a===!1&&this.element.addClass("base-disabled disabled")},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},setText:function(a){this.options.text=a,this.text.setText(a)},getText:function(){return this.options.text},setStyle:function(a){this.text.setStyle(a)},setValue:function(a){BI.HtmlLabel.superclass.setValue.apply(this,arguments),this.isReadOnly()||this.text.setValue(a)},populate:function(){BI.HtmlLabel.superclass.populate.apply(this,arguments)}}),BI.shortcut("bi.html_label",BI.HtmlLabel),BI.IconLabel=BI.inherit(BI.Single,{props:{baseCls:"bi-icon-label horizon-center",iconWidth:null,iconHeight:null},_init:function(){BI.IconLabel.superclass._init.apply(this,arguments);var a=this.options;this.element.css({textAlign:"center"}),this.icon=BI.createWidget({type:"bi.icon",width:a.iconWidth,height:a.iconHeight}),BI.isNumber(a.height)&&a.height>0&&BI.isNull(a.iconWidth)&&BI.isNull(a.iconHeight)?(this.element.css("lineHeight",a.height+"px"),BI.createWidget({type:"bi.default",element:this,items:[this.icon]})):(this.element.css("lineHeight","1"),BI.createWidget({element:this,type:"bi.center_adapt",items:[this.icon]}))}}),BI.shortcut("bi.icon_label",BI.IconLabel),BI.Label=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Label.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-label",textAlign:"center",whiteSpace:"nowrap",textWidth:null,textHeight:null,hgap:0,vgap:0,lgap:0,rgap:0,tgap:0,bgap:0,text:"",py:"",keyword:"",highLight:!1})},_createJson:function(){var a=this.options;return{type:"bi.text",textAlign:a.textAlign,whiteSpace:a.whiteSpace,lineHeight:a.textHeight,text:a.text,value:a.value,py:a.py,keyword:a.keyword,highLight:a.highLight}},_init:function(){BI.Label.superclass._init.apply(this,arguments),"center"===this.options.textAlign?this._createCenterEl():this._createNotCenterEl()},_createCenterEl:function(){var a=this.options,b=this._createJson();return b.textAlign="left",BI.isNumber(a.width)&&a.width>0?BI.isNumber(a.textWidth)&&a.textWidth>0?(b.maxWidth=a.textWidth,BI.isNumber(a.height)&&a.height>0?void BI.createWidget({type:"bi.center_adapt",height:a.height,scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]}):void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]})):"normal"==a.whiteSpace?(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(b),void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[this.text]})):BI.isNumber(a.height)&&a.height>0?(this.element.css({"line-height":a.height+"px"}),b.textAlign=a.textAlign,void(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})))):(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,maxWidth:"100%"}),this.text=BI.createWidget(b),void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[this.text]})):BI.isNumber(a.textWidth)&&a.textWidth>0?(b.maxWidth=a.textWidth,void BI.createWidget({type:"bi.center_adapt",scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]})):"normal"==a.whiteSpace?(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(b),void BI.createWidget({type:"bi.center_adapt",scrollable:!0,element:this,items:[this.text]})):BI.isNumber(a.height)&&a.height>0?(this.element.css({"line-height":a.height+"px"}),b.textAlign=a.textAlign,void(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})))):(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(BI.extend(b,{maxWidth:"100%"})),void BI.createWidget({type:"bi.center_adapt",element:this,items:[this.text]}))},_createNotCenterEl:function(){var a=this.options,b=this._createJson();return BI.isNumber(a.width)&&a.width>0?BI.isNumber(a.textWidth)&&a.textWidth>0?(b.width=a.textWidth,BI.isNumber(a.height)&&a.height>0?void BI.createWidget({type:"bi.vertical_adapt",height:a.height,scrollable:"normal"===a.whiteSpace,element:this,items:[{el:this.text=BI.createWidget(b)}]}):void BI.createWidget({type:"bi.vertical_adapt",scrollable:"normal"===a.whiteSpace,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,element:this,items:[{el:this.text=BI.createWidget(b)}]})):BI.isNumber(a.height)&&a.height>0?(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})),void("normal"!==a.whiteSpace&&this.element.css({"line-height":a.height-2*a.vgap+"px"}))):(b.width=a.width-2*a.hgap-a.lgap-a.rgap,void BI.createWidget({type:"bi.vertical_adapt",scrollable:"normal"===a.whiteSpace,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,element:this,items:[{el:this.text=BI.createWidget(b)}]})):BI.isNumber(a.textWidth)&&a.textWidth>0?(b.width=a.textWidth,void BI.createWidget({type:"bi.vertical_adapt",scrollable:"normal"===a.whiteSpace,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap,element:this,items:[{el:this.text=BI.createWidget(b)}]})):BI.isNumber(a.height)&&a.height>0?("normal"!==a.whiteSpace&&this.element.css({"line-height":a.height-2*a.vgap+"px"}),void(this.text=BI.createWidget(BI.extend(b,{element:this,hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap})))):(BI.extend(b,{hgap:a.hgap,vgap:a.vgap,lgap:a.lgap,rgap:a.rgap,tgap:a.tgap,bgap:a.bgap}),this.text=BI.createWidget(BI.extend(b,{maxWidth:"100%"})),void BI.createWidget({type:"bi.vertical_adapt",element:this,items:[this.text]}))},_setEnable:function(a){BI.Label.superclass._setEnable.apply(this,arguments),a===!0?this.element.removeClass("base-disabled disabled"):a===!1&&this.element.addClass("base-disabled disabled")},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},setText:function(a){this.options.text=a,this.text.setText(a)},getText:function(){return this.options.text},setStyle:function(a){this.text.setStyle(a)},setValue:function(a){BI.Label.superclass.setValue.apply(this,arguments),this.isReadOnly()||this.text.setValue(a)},populate:function(){BI.Label.superclass.populate.apply(this,arguments)}}),BI.shortcut("bi.label",BI.Label),BI.Link=BI.inherit(BI.Label,{_defaultConfig:function(){var a=BI.Link.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-link display-block",tagName:"a",href:"",target:"_blank"})},_createJson:function(){var a=this.options;return{type:"bi.a",textAlign:a.textAlign,whiteSpace:a.whiteSpace,lineHeight:a.textHeight,text:a.text,keyword:a.keyword,value:a.value,py:a.py,href:a.href,target:a.target}},_init:function(){BI.Link.superclass._init.apply(this,arguments)}}),BI.shortcut("bi.link",BI.Link),BI.Bubble=BI.inherit(BI.Tip,{_defaultConfig:function(){return BI.extend(BI.Bubble.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-bubble",direction:"top",text:"",level:"error",height:18})},_init:function(){BI.Bubble.superclass._init.apply(this,arguments);var a=function(a){return a.stopPropagation(),a.stopEvent(),!1};this.element.bind({click:a,mousedown:a,mouseup:a,mouseover:a,mouseenter:a,mouseleave:a,mousemove:a}),BI.createWidget({type:"bi.left",element:this,items:[this["_"+this.options.direction]()]})},_createBubbleText:function(){var a=this.options;return this.text=BI.createWidget({type:"bi.label",cls:"bubble-text bubble-"+a.level,text:a.text,hgap:5,height:18})},_top:function(){return BI.createWidget({type:"bi.vertical",items:[{el:this._createBubbleText(),height:18},{el:{type:"bi.layout"},height:3}]})},_bottom:function(){return BI.createWidget({type:"bi.vertical",items:[{el:{type:"bi.layout"},height:3},{el:this._createBubbleText(),height:18}]})},_left:function(){return BI.createWidget({type:"bi.right",items:[{el:{type:"bi.layout",width:3,height:18}},{el:this._createBubbleText()}]})},_right:function(){return BI.createWidget({type:"bi.left",items:[{el:{type:"bi.layout",width:3,height:18}},{el:this._createBubbleText()}]})},setText:function(a){this.text.setText(a)}}),BI.shortcut("bi.bubble",BI.Bubble),BI.Toast=BI.inherit(BI.Tip,{_const:{minWidth:200,hgap:10},_defaultConfig:function(){return BI.extend(BI.Toast.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-toast",text:"",level:"success"})},_init:function(){BI.Toast.superclass._init.apply(this,arguments);var a=this,b=this.options;this.element.css({minWidth:this._const.minWidth+"px"}),this.element.addClass("toast-"+b.level);var c=function(a){return a.stopPropagation(),a.stopEvent(),!1};this.element.bind({click:c,mousedown:c,mouseup:c,mouseover:c,mouseenter:c,mouseleave:c,mousemove:c});var d="close-font";switch(b.level){case"success":d="toast-success-font";break;case"error":d="toast-error-font";break;case"warning":d="toast-warning-font";break;case"normal":default:d="toast-message-font"}var e=[{type:"bi.icon_label",cls:d+" toast-icon",width:36},{el:{type:"bi.label",whiteSpace:"normal",text:b.text,textHeight:16,textAlign:"left"},rgap:b.autoClose?this._const.hgap:0}],f=[36,""];b.autoClose===!1&&(e.push({type:"bi.icon_button",cls:"close-font toast-icon",handler:function(){a.destroy()},width:36}),f.push(36)),this.text=BI.createWidget({type:"bi.horizontal_adapt",element:this,items:e,vgap:7,columnSize:f})},setText:function(a){this.text.setText(a)},beforeDestroy:function(){this.fireEvent(BI.Toast.EVENT_DESTORY)}}),BI.Toast.EVENT_DESTORY="EVENT_DESTORY",BI.shortcut("bi.toast",BI.Toast),BI.Tooltip=BI.inherit(BI.Tip,{_const:{hgap:5,vgap:3},_defaultConfig:function(){return BI.extend(BI.Tooltip.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-tooltip",text:"",level:"success",stopEvent:!1,stopPropagation:!1,height:18})},_init:function(){BI.Tooltip.superclass._init.apply(this,arguments);var a=this.options;this.element.addClass("tooltip-"+a.level);var b=function(b){a.stopPropagation&&b.stopPropagation(),a.stopEvent&&b.stopEvent()};this.element.bind({click:b,mousedown:b,mouseup:b,mouseover:b,mouseenter:b,mouseleave:b,mousemove:b});var c=(a.text+"").split("\n");c.length>1?BI.createWidget({type:"bi.vertical",element:this,hgap:this._const.hgap,items:BI.map(c,function(a,b){return{type:"bi.label",textAlign:"left",whiteSpace:"normal",text:b,textHeight:18}})}):this.text=BI.createWidget({type:"bi.label",element:this,textAlign:"left",whiteSpace:"normal",text:a.text,textHeight:16,hgap:this._const.hgap})},setWidth:function(a){this.element.width(a-2*this._const.hgap)},setText:function(a){this.text&&this.text.setText(a)},setLevel:function(a){this.element.removeClass("tooltip-success").removeClass("tooltip-warning"),this.element.addClass("tooltip-"+a)}}),BI.shortcut("bi.tooltip",BI.Tooltip),BI.Trigger=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.Trigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{_baseCls:(a._baseCls||"")+" bi-trigger cursor-pointer",height:24})},_init:function(){BI.Trigger.superclass._init.apply(this,arguments)},setKey:function(){},getKey:function(){}}),BI.CustomTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.CustomTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-custom-tree",expander:{el:{},popup:{type:"bi.custom_tree"}},items:[],itemsCreator:BI.emptyFn,el:{type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]}})},_init:function(){BI.CustomTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a){var b=this,c=this.options;a=BI.Tree.transformToTreeFormat(a);var d=[];return BI.each(a,function(a,e){if(BI.isNotEmptyArray(e.children)||e.isParent===!0){var f=BI.extend({type:"bi.expander",el:{value:e.value},popup:{type:"bi.custom_tree"}},BI.deepClone(c.expander),{id:e.id,pId:e.pId}),g=BI.stripEL(e);BI.isWidget(g)?f.el=g:(g=BI.clone(g),delete g.children,BI.extend(f.el,g)),f.popup.expander=BI.deepClone(c.expander),f.items=f.popup.items=e.children,f.itemsCreator=f.popup.itemsCreator=function(a){if(BI.isNotNull(a.node))return c.itemsCreator.apply(b,arguments);var d=Array.prototype.slice.call(arguments,0);return d[0].node=e,c.itemsCreator.apply(b,d)},BI.isNull(f.popup.el)&&(f.popup.el=BI.deepClone(c.el)),d.push(f)}else d.push(e)}),d},initTree:function(a){var b=this,c=this.options;this.tree=BI.createWidget(c.el,{element:this,items:this._formatItems(a),itemsCreator:function(a,d){c.itemsCreator.apply(this,[a,function(a){var c=Array.prototype.slice.call(arguments,0);c[0]=b._formatItems(a),d.apply(null,c)}])},value:c.value}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.CustomTree.EVENT_CHANGE,c,d)})},stroke:function(a){this.populate.apply(this,arguments)},populate:function(a){var b=Array.prototype.slice.call(arguments,0);arguments.length>0&&(b[0]=this._formatItems(a)),this.tree.populate.apply(this.tree,b)},setValue:function(a){this.tree&&this.tree.setValue(a)},getValue:function(){return this.tree?this.tree.getValue():[]},getAllButtons:function(){return this.tree?this.tree.getAllButtons():[]},getAllLeaves:function(){return this.tree?this.tree.getAllLeaves():[]},getNodeById:function(a){return this.tree&&this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree&&this.tree.getNodeByValue(a)},empty:function(){this.tree.empty()}}),BI.CustomTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.custom_tree",BI.CustomTree),function($){var settings={},roots={},caches={},_consts={className:{BUTTON:"button",LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open",CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_setting={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{children:"children",name:"name",title:"",url:"url"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post",dataType:"text",url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},_initRoot=function(a){var b=data.getRoot(a);b||(b={},data.setRoot(a,b)),b[a.data.key.children]=[],b.expandTriggerFlag=!1,b.curSelectedList=[],b.noSelection=!0,b.createdNodes=[],b.zId=0,b._ver=(new Date).getTime()},_initCache=function(a){var b=data.getCache(a);b||(b={},data.setCache(a,b)),b.nodes=[],b.doms=[]},_bindEvent=function(a){var b=a.treeObj,c=consts.event;b.bind(c.NODECREATED,function(b,c,d){tools.apply(a.callback.onNodeCreated,[b,c,d])}),b.bind(c.CLICK,function(b,c,d,e,f){tools.apply(a.callback.onClick,[c,d,e,f])}),b.bind(c.EXPAND,function(b,c,d){tools.apply(a.callback.onExpand,[b,c,d])}),b.bind(c.COLLAPSE,function(b,c,d){tools.apply(a.callback.onCollapse,[b,c,d]); -}),b.bind(c.ASYNC_SUCCESS,function(b,c,d,e){tools.apply(a.callback.onAsyncSuccess,[b,c,d,e])}),b.bind(c.ASYNC_ERROR,function(b,c,d,e,f,g){tools.apply(a.callback.onAsyncError,[b,c,d,e,f,g])}),b.bind(c.REMOVE,function(b,c,d){tools.apply(a.callback.onRemove,[b,c,d])}),b.bind(c.SELECTED,function(b,c,d,e){tools.apply(a.callback.onSelected,[c,d,e])}),b.bind(c.UNSELECTED,function(b,c,d,e){tools.apply(a.callback.onUnSelected,[c,d,e])})},_unbindEvent=function(a){var b=a.treeObj,c=consts.event;b.unbind(c.NODECREATED).unbind(c.CLICK).unbind(c.EXPAND).unbind(c.COLLAPSE).unbind(c.ASYNC_SUCCESS).unbind(c.ASYNC_ERROR).unbind(c.REMOVE).unbind(c.SELECTED).unbind(c.UNSELECTED)},_eventProxy=function(a){var b=a.target,c=data.getSetting(a.data.treeId),d="",e=null,f="",g="",h=null,i=null,j=null;if(tools.eqs(a.type,"mousedown")?g="mousedown":tools.eqs(a.type,"mouseup")?g="mouseup":tools.eqs(a.type,"contextmenu")?g="contextmenu":tools.eqs(a.type,"click")?tools.eqs(b.tagName,"span")&&null!==b.getAttribute("treeNode"+consts.id.SWITCH)?(d=tools.getNodeMainDom(b).id,f="switchNode"):(j=tools.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+consts.id.A}]),j&&(d=tools.getNodeMainDom(j).id,f="clickNode")):tools.eqs(a.type,"dblclick")&&(g="dblclick",j=tools.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+consts.id.A}]),j&&(d=tools.getNodeMainDom(j).id,f="switchNode")),g.length>0&&0==d.length&&(j=tools.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+consts.id.A}]),j&&(d=tools.getNodeMainDom(j).id)),d.length>0)switch(e=data.getNodeCache(c,d),f){case"switchNode":e.isParent&&(tools.eqs(a.type,"click")||tools.eqs(a.type,"dblclick")&&tools.apply(c.view.dblClickExpand,[c.treeId,e],c.view.dblClickExpand))?h=handler.onSwitchNode:f="";break;case"clickNode":h=handler.onClickNode}switch(g){case"mousedown":i=handler.onZTreeMousedown;break;case"mouseup":i=handler.onZTreeMouseup;break;case"dblclick":i=handler.onZTreeDblclick;break;case"contextmenu":i=handler.onZTreeContextmenu}var k={stop:!1,node:e,nodeEventType:f,nodeEventCallback:h,treeEventType:g,treeEventCallback:i};return k},_initNode=function(a,b,c,d,e,f,g){if(c){var h=data.getRoot(a),i=a.data.key.children;c.level=b,c.tId=a.treeId+"_"+ ++h.zId,c.parentTId=d?d.tId:null,c.open="string"==typeof c.open?tools.eqs(c.open,"true"):!!c.open,c[i]&&c[i].length>0?(c.isParent=!0,c.zAsync=!0):(c.isParent="string"==typeof c.isParent?tools.eqs(c.isParent,"true"):!!c.isParent,c.open=!(!c.isParent||a.async.enable)&&c.open,c.zAsync=!c.isParent),c.isFirstNode=e,c.isLastNode=f,c.getParentNode=function(){return data.getNodeCache(a,c.parentTId)},c.getPreNode=function(){return data.getPreNode(a,c)},c.getNextNode=function(){return data.getNextNode(a,c)},c.isAjaxing=!1,data.fixPIdKeyValue(a,c)}},_init={bind:[_bindEvent],unbind:[_unbindEvent],caches:[_initCache],nodes:[_initNode],proxys:[_eventProxy],roots:[_initRoot],beforeA:[],afterA:[],innerBeforeA:[],innerAfterA:[],zTreeTools:[]},data={addNodeCache:function(a,b){data.getCache(a).nodes[data.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){_init.afterA.push(a)},addBeforeA:function(a){_init.beforeA.push(a)},addInnerAfterA:function(a){_init.innerAfterA.push(a)},addInnerBeforeA:function(a){_init.innerBeforeA.push(a)},addInitBind:function(a){_init.bind.push(a)},addInitUnBind:function(a){_init.unbind.push(a)},addInitCache:function(a){_init.caches.push(a)},addInitNode:function(a){_init.nodes.push(a)},addInitProxy:function(a,b){b?_init.proxys.splice(0,0,a):_init.proxys.push(a)},addInitRoot:function(a){_init.roots.push(a)},addNodesData:function(a,b,c){var d=a.data.key.children;b[d]||(b[d]=[]),b[d].length>0&&(b[d][b[d].length-1].isLastNode=!1,view.setNodeLineIcos(a,b[d][b[d].length-1])),b.isParent=!0,b[d]=b[d].concat(c)},addSelectedNode:function(a,b){var c=data.getRoot(a);data.isSelectedNode(a,b)||c.curSelectedList.push(b)},addCreatedNode:function(a,b){if(a.callback.onNodeCreated||a.view.addDiyDom){var c=data.getRoot(a);c.createdNodes.push(b)}},addZTreeTools:function(a){_init.zTreeTools.push(a)},exSetting:function(a){$.extend(!0,_setting,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=_init.afterA.length;d-1&&f.push(b[g]),f=f.concat(data.getNodesByParamFuzzy(a,b[g][e],c,d));return f},getNodesByFilter:function(a,b,c,d,e){if(!b)return d?null:[];for(var f=a.data.key.children,g=d?null:[],h=0,i=b.length;h0)},clone:function(a){if(null===a)return null;var b=tools.isArray(a)?[]:{};for(var c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):"object"==typeof a[c]?arguments.callee(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return"[object Array]"===Object.prototype.toString.apply(a)},$:function(a,b,c){return b&&"string"!=typeof b&&(c=b,b=""),"string"==typeof a?$(a,c?c.treeObj.get(0).ownerDocument:null):$("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d0},uCanDo:function(a,b){return!0}},view={addNodes:function(a,b,c,d){if(!a.data.keep.leaf||!b||b.isParent)if(tools.isArray(c)||(c=[c]),a.data.simpleData.enable&&(c=data.transformTozTreeFormat(a,c)),b){var e=$$(b,consts.id.SWITCH,a),f=$$(b,consts.id.ICON,a),g=$$(b,consts.id.UL,a);b.open||(view.replaceSwitchClass(b,e,consts.folder.CLOSE),view.replaceIcoClass(b,f,consts.folder.CLOSE),b.open=!1,g.css({display:"none"})),data.addNodesData(a,b,c),view.createNodes(a,b.level+1,c,b),d||view.expandCollapseParentNode(a,b,!0)}else data.addNodesData(a,data.getRoot(a),c),view.createNodes(a,0,c,null)},appendNodes:function(a,b,c,d,e,f){if(!c)return[];for(var g=[],h=a.data.key.children,i=0,j=c.length;i0&&(p=view.appendNodes(a,b+1,k[h],k,e,f&&k.open)),f&&(view.makeDOMNodeMainBefore(g,a,k),view.makeDOMNodeLine(g,a,k),data.getBeforeA(a,k,g),view.makeDOMNodeNameBefore(g,a,k),data.getInnerBeforeA(a,k,g),view.makeDOMNodeIcon(g,a,k),data.getInnerAfterA(a,k,g),view.makeDOMNodeNameAfter(g,a,k),data.getAfterA(a,k,g),k.isParent&&k.open&&view.makeUlHtml(a,k,g,p.join("")),view.makeDOMNodeMainAfter(g,a,k),data.addCreatedNode(a,k))}return g},appendParentULDom:function(a,b){var c=[],d=$$(b,a);!d.get(0)&&b.parentTId&&(view.appendParentULDom(a,b.getParentNode()),d=$$(b,a));var e=$$(b,consts.id.UL,a);e.get(0)&&e.remove();var f=a.data.key.children,g=view.appendNodes(a,b.level+1,b[f],b,!1,!0);view.makeUlHtml(a,b,c,g.join("")),d.append(c.join(""))},asyncNode:function(setting,node,isSilent,callback){var i,l;if(node&&!node.isParent)return tools.apply(callback),!1;if(node&&node.isAjaxing)return!1;if(0==tools.apply(setting.callback.beforeAsync,[setting.treeId,node],!0))return tools.apply(callback),!1;if(node){node.isAjaxing=!0;var icoObj=$$(node,consts.id.ICON,setting);icoObj.attr({style:"","class":consts.className.BUTTON+" "+consts.className.ICO_LOADING})}var tmpParam={};for(i=0,l=setting.async.autoParam.length;node&&i1&&(spKey=pKey[1],pKey=pKey[0]),tmpParam[spKey]=node[pKey]}if(tools.isArray(setting.async.otherParam))for(i=0,l=setting.async.otherParam.length;i=0;d--)if(e=f[d],b===e||!b&&(!c||c!==e)){if($$(e,consts.id.A,a).removeClass(consts.node.CURSELECTED),b){data.removeSelectedNode(a,b),a.treeObj.trigger(consts.event.UNSELECTED,[event,a.treeId,e]);break}f.splice(d,1),a.treeObj.trigger(consts.event.UNSELECTED,[event,a.treeId,e])}},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=data.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();tools.apply(a.view.addDiyDom,[a.treeId,c]),a.callback.onNodeCreated&&a.treeObj.trigger(consts.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d){if(c&&0!=c.length){var e=data.getRoot(a),f=a.data.key.children,g=!d||d.open||!!$$(d[f][0],a).get(0);e.createdNodes=[];var h=view.appendNodes(a,b,c,d,!0,g);if(d){var i=$$(d,consts.id.UL,a);i.get(0)&&i.append(h.join(""))}else a.treeObj.append(h.join(""));view.createNodeCallback(a)}},destroy:function(a){a&&(data.initCache(a),data.initRoot(a),event.unbindTree(a),event.unbindEvent(a),a.treeObj.empty(),delete settings[a.treeId])},expandCollapseNode:function(a,b,c,d,e){var f=data.getRoot(a),g=a.data.key.children;if(!b)return void tools.apply(e,[]);if(f.expandTriggerFlag){var h=e;e=function(){h&&h(),b.open?a.treeObj.trigger(consts.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(consts.event.COLLAPSE,[a.treeId,b])},f.expandTriggerFlag=!1}if(!b.open&&b.isParent&&(!$$(b,consts.id.UL,a).get(0)||b[g]&&b[g].length>0&&!$$(b[g][0],a).get(0))&&(view.appendParentULDom(a,b),view.createNodeCallback(a)),b.open==c)return void tools.apply(e,[]);var i=$$(b,consts.id.UL,a),j=$$(b,consts.id.SWITCH,a),k=$$(b,consts.id.ICON,a);b.isParent?(b.open=!b.open,b.iconOpen&&b.iconClose&&k.attr("style",view.makeNodeIcoStyle(a,b)),b.open?(view.replaceSwitchClass(b,j,consts.folder.OPEN),view.replaceIcoClass(b,k,consts.folder.OPEN),0==d||""==a.view.expandSpeed?(i.show(),tools.apply(e,[])):b[g]&&b[g].length>0?i.slideDown(a.view.expandSpeed,e):(i.show(),tools.apply(e,[]))):(view.replaceSwitchClass(b,j,consts.folder.CLOSE),view.replaceIcoClass(b,k,consts.folder.CLOSE),0!=d&&""!=a.view.expandSpeed&&b[g]&&b[g].length>0?i.slideUp(a.view.expandSpeed,e):(i.hide(),tools.apply(e,[])))):tools.apply(e,[])},expandCollapseParentNode:function(a,b,c,d,e){if(b){if(!b.parentTId)return void view.expandCollapseNode(a,b,c,d,e);view.expandCollapseNode(a,b,c,d),b.parentTId&&view.expandCollapseParentNode(a,b.getParentNode(),c,d,e)}},expandCollapseSonNode:function(a,b,c,d,e){var f=data.getRoot(a),g=a.data.key.children,h=b?b[g]:f[g],i=!b&&d,j=data.getRoot(a).expandTriggerFlag;if(data.getRoot(a).expandTriggerFlag=!1,h)for(var k=0,l=h.length;k=0;c--)if(b===d[c])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=data.getNodeName(b,c),e=b.view.nameIsHTML?d:d.replace(/&/g,"&").replace(//g,">");a.push("",e,"")},makeDOMNodeLine:function(a,b,c){a.push("")},makeDOMNodeMainAfter:function(a,b,c){a.push("")},makeDOMNodeMainBefore:function(a,b,c){a.push("
    • ")},makeDOMNodeNameAfter:function(a,b,c){a.push("")},makeDOMNodeNameBefore:function(a,b,c){var d=data.getNodeTitle(b,c),e=view.makeNodeUrl(b,c),f=view.makeNodeFontCss(b,c),g=[];for(var h in f)g.push(h,":",f[h],";");a.push("0?"href='"+e+"'":""," target='",view.makeNodeTarget(c),"' style='",g.join(""),"'"),tools.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"'").replace(//g,">"),"'"),a.push(">")},makeNodeFontCss:function(a,b){var c=tools.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss);return c&&"function"!=typeof c?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];return b.isAjaxing||(c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0],b.isParent?c.push(b.open?consts.folder.OPEN:consts.folder.CLOSE):c.push(consts.folder.DOCU)),consts.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=b.isParent&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b.icon;d&&c.push("background:url(",d,") 0 0 no-repeat;"),0!=a.view.showIcon&&tools.apply(a.view.showIcon,[a.treeId,b],!0)||c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];return a.view.showLine?0==b.level&&b.isFirstNode&&b.isLastNode?c.push(consts.line.ROOT):0==b.level&&b.isFirstNode?c.push(consts.line.ROOTS):b.isLastNode?c.push(consts.line.BOTTOM):c.push(consts.line.CENTER):c.push(consts.line.NOLINE),b.isParent?c.push(b.open?consts.folder.OPEN:consts.folder.CLOSE):c.push(consts.folder.DOCU),view.makeNodeLineClassEx(b)+c.join("_")},makeNodeLineClassEx:function(a){return consts.className.BUTTON+" "+consts.className.LEVEL+a.level+" "+consts.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("
        "),c.push(d),c.push("
      ")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode?consts.line.LINE:""},removeChildNodes:function(a,b){if(b){var c=a.data.key.children,d=b[c];if(d){for(var e=0,f=d.length;e0&&(b[c][0].isFirstNode=!0)},setLastNode:function(a,b){var c=a.data.key.children,d=b[c].length;d>0&&(b[c][d-1].isLastNode=!0)},removeNode:function(a,b){var c=data.getRoot(a),d=a.data.key.children,e=b.parentTId?b.getParentNode():c;if(b.isFirstNode=!1,b.isLastNode=!1,b.getPreNode=function(){return null},b.getNextNode=function(){return null},data.getNodeCache(a,b.tId)){$$(b,a).remove(),data.removeNodeCache(a,b),data.removeSelectedNode(a,b);for(var f=0,g=e[d].length;f0){var l=e[d][k-1];if(h=$$(l,consts.id.UL,a),i=$$(l,consts.id.SWITCH,a),j=$$(l,consts.id.ICON,a),e==c)if(1==e[d].length)view.replaceSwitchClass(l,i,consts.line.ROOT);else{var m=$$(e[d][0],consts.id.SWITCH,a);view.replaceSwitchClass(e[d][0],m,consts.line.ROOTS),view.replaceSwitchClass(l,i,consts.line.BOTTOM)}else view.replaceSwitchClass(l,i,consts.line.BOTTOM);h.removeClass(consts.line.LINE)}}else e.isParent=!1,e.open=!1,h=$$(e,consts.id.UL,a),i=$$(e,consts.id.SWITCH,a),j=$$(e,consts.id.ICON,a),view.replaceSwitchClass(e,i,consts.folder.DOCU),view.replaceIcoClass(e,j,consts.folder.DOCU),h.css("display","none")}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing){var d=b.attr("class");if(void 0!=d){var e=d.split("_");switch(c){case consts.folder.OPEN:case consts.folder.CLOSE:case consts.folder.DOCU:e[e.length-1]=c}b.attr("class",e.join("_"))}}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(void 0!=d){var e=d.split("_");switch(c){case consts.line.ROOT:case consts.line.ROOTS:case consts.line.CENTER:case consts.line.BOTTOM:case consts.line.NOLINE:e[0]=view.makeNodeLineClassEx(a)+c;break;case consts.folder.OPEN:case consts.folder.CLOSE:case consts.folder.DOCU:e[1]=c}b.attr("class",e.join("_")),c!==consts.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||view.cancelPreSelectedNode(a,null,b),$$(b,consts.id.A,a).addClass(consts.node.CURSELECTED),data.addSelectedNode(a,b),a.treeObj.trigger(consts.event.SELECTED,[event,a.treeId,b])},setNodeFontCss:function(a,b){var c=$$(b,consts.id.A,a),d=view.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=$$(b,consts.id.SWITCH,a),d=$$(b,consts.id.UL,a),e=$$(b,consts.id.ICON,a),f=view.makeUlLineClass(a,b);0==f.length?d.removeClass(consts.line.LINE):d.addClass(f),c.attr("class",view.makeNodeLineClass(a,b)),b.isParent?c.removeAttr("disabled"):c.attr("disabled","disabled"),e.removeAttr("style"),e.attr("style",view.makeNodeIcoStyle(a,b)),e.attr("class",view.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=data.getNodeTitle(a,b),d=$$(b,consts.id.SPAN,a);if(d.empty(),a.view.nameIsHTML?d.html(data.getNodeName(a,b)):d.text(data.getNodeName(a,b)),tools.apply(a.view.showTitle,[a.treeId,b],a.view.showTitle)){var e=$$(b,consts.id.A,a);e.attr("title",c?c:"")}},setNodeTarget:function(a,b){var c=$$(b,consts.id.A,a);c.attr("target",view.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=$$(b,consts.id.A,a),d=view.makeNodeUrl(a,b);null==d||0==d.length?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){if(b.open||!tools.canAsync(a,b))view.expandCollapseNode(a,b,!b.open);else if(a.async.enable){if(!view.asyncNode(a,b))return void view.expandCollapseNode(a,b,!b.open)}else b&&view.expandCollapseNode(a,b,!b.open)}};$.fn.zTree={consts:_consts,_z:{tools:tools,view:view,event:event,data:data},getZTreeObj:function(a){var b=data.getZTreeTools(a);return b?b:null},destroy:function(a){if(a&&a.length>0)view.destroy(data.getSetting(a));else for(var b in settings)view.destroy(settings[b])},init:function(a,b,c){var d=tools.clone(_setting);$.extend(!0,d,b),d.treeId=a.attr("id"),d.treeObj=a,d.treeObj.empty(),settings[d.treeId]=d,"undefined"==typeof document.body.style.maxHeight&&(d.view.expandSpeed=""),data.initRoot(d);var e=data.getRoot(d),f=d.data.key.children;c=c?tools.clone(tools.isArray(c)?c:[c]):[],d.data.simpleData.enable?e[f]=data.transformTozTreeFormat(d,c):e[f]=c,data.initCache(d),event.unbindTree(d),event.bindTree(d),event.unbindEvent(d),event.bindEvent(d);var g={setting:d,addNodes:function(a,b,c){function e(){view.addNodes(d,a,f,1==c)}if(!b)return null;if(a||(a=null),a&&!a.isParent&&d.data.keep.leaf)return null;var f=tools.clone(tools.isArray(b)?b:[b]);return tools.canAsync(d,a)?view.asyncNode(d,a,c,e):e(),f},cancelSelectedNode:function(a){view.cancelPreSelectedNode(d,a)},destroy:function(){view.destroy(d)},expandAll:function(a){return a=!!a,view.expandCollapseSonNode(d,null,a,!0),a},expandNode:function(a,b,c,e,f){if(!a||!a.isParent)return null;if(b!==!0&&b!==!1&&(b=!a.open),f=!!f,f&&b&&0==tools.apply(d.callback.beforeExpand,[d.treeId,a],!0))return null;if(f&&!b&&0==tools.apply(d.callback.beforeCollapse,[d.treeId,a],!0))return null;if(b&&a.parentTId&&view.expandCollapseParentNode(d,a.getParentNode(),b,!1),b===a.open&&!c)return null;if(data.getRoot(d).expandTriggerFlag=f,!tools.canAsync(d,a)&&c)view.expandCollapseSonNode(d,a,b,!0,function(){if(e!==!1)try{$$(a,d).focus().blur()}catch(b){}});else if(a.open=!b,view.switchNode(this.setting,a),e!==!1)try{$$(a,d).focus().blur()}catch(g){}return b},getNodes:function(){return data.getNodes(d)},getNodeByParam:function(a,b,c){return a?data.getNodeByParam(d,c?c[d.data.key.children]:data.getNodes(d),a,b):null},getNodeByTId:function(a){return data.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return a?data.getNodesByParam(d,c?c[d.data.key.children]:data.getNodes(d),a,b):null},getNodesByParamFuzzy:function(a,b,c){return a?data.getNodesByParamFuzzy(d,c?c[d.data.key.children]:data.getNodes(d),a,b):null},getNodesByFilter:function(a,b,c,e){return b=!!b,a&&"function"==typeof a?data.getNodesByFilter(d,c?c[d.data.key.children]:data.getNodes(d),a,b,e):b?null:[]},getNodeIndex:function(a){if(!a)return null;for(var b=d.data.key.children,c=a.parentTId?a.getParentNode():data.getRoot(d),e=0,f=c[b].length;e0?view.createNodes(d,0,e[f]):d.async.enable&&d.async.url&&""!==d.async.url&&view.asyncNode(d),g}};var zt=$.fn.zTree,$$=tools.$,consts=zt.consts}(jQuery),function(a){var b={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},c={check:{enable:!1,autoCheckTrigger:!1,chkStyle:b.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:b.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}},d=function(a){var b=v.getRoot(a);b.radioCheckedList=[]},e=function(a){},f=function(a){var b=a.treeObj,c=t.event;b.bind(c.CHECK,function(b,c,d,e){b.srcEvent=c,s.apply(a.callback.onCheck,[b,d,e])})},g=function(a){var b=a.treeObj,c=t.event;b.unbind(c.CHECK)},h=function(a){var b=a.target,c=v.getSetting(a.data.treeId),d="",e=null,f="",g="",h=null,i=null;if(s.eqs(a.type,"mouseover")?c.check.enable&&s.eqs(b.tagName,"span")&&null!==b.getAttribute("treeNode"+t.id.CHECK)&&(d=s.getNodeMainDom(b).id,f="mouseoverCheck"):s.eqs(a.type,"mouseout")?c.check.enable&&s.eqs(b.tagName,"span")&&null!==b.getAttribute("treeNode"+t.id.CHECK)&&(d=s.getNodeMainDom(b).id,f="mouseoutCheck"):s.eqs(a.type,"click")&&c.check.enable&&s.eqs(b.tagName,"span")&&null!==b.getAttribute("treeNode"+t.id.CHECK)&&(d=s.getNodeMainDom(b).id,f="checkNode"),d.length>0)switch(e=v.getNodeCache(c,d),f){case"checkNode":h=n.onCheckNode;break;case"mouseoverCheck":h=n.onMouseoverCheck;break;case"mouseoutCheck":h=n.onMouseoutCheck}var j={stop:"checkNode"===f,node:e,nodeEventType:f,nodeEventCallback:h,treeEventType:g,treeEventCallback:i};return j},i=function(a,b,c,d,e,f,g){ -if(c){var h=a.data.key.checked;if("string"==typeof c[h]&&(c[h]=s.eqs(c[h],"true")),c[h]=!!c[h],c.checkedOld=c[h],"string"==typeof c.nocheck&&(c.nocheck=s.eqs(c.nocheck,"true")),c.nocheck=!!c.nocheck||a.check.nocheckInherit&&d&&!!d.nocheck,"string"==typeof c.chkDisabled&&(c.chkDisabled=s.eqs(c.chkDisabled,"true")),c.chkDisabled=!!c.chkDisabled||a.check.chkDisabledInherit&&d&&!!d.chkDisabled,"string"==typeof c.halfCheck&&(c.halfCheck=s.eqs(c.halfCheck,"true")),c.halfCheck=!!c.halfCheck,c.check_Child_State=-1,c.check_Focus=!1,c.getCheckStatus=function(){return v.getCheckStatus(a,c)},a.check.chkStyle==t.radio.STYLE&&a.check.radioType==t.radio.TYPE_ALL&&c[h]){var i=v.getRoot(a);i.radioCheckedList.push(c)}}},j=function(a,b,c){a.data.key.checked;a.check.enable&&(v.makeChkFlag(a,b),c.push(""))},k=function(a,b){b.checkNode=function(a,b,c,d){var e=this.setting.data.key.checked;if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!a[e]),d=!!d,(a[e]!==b||c)&&(!d||0!=s.apply(this.setting.callback.beforeCheck,[this.setting.treeId,a],!0))&&s.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0)){a[e]=b;var f=w(a,t.id.CHECK,this.setting);(c||this.setting.check.chkStyle===t.radio.STYLE)&&u.checkNodeRelation(this.setting,a),u.setChkClass(this.setting,f,a),u.repairParentChkClassWithSelf(this.setting,a),d&&this.setting.treeObj.trigger(t.event.CHECK,[null,this.setting.treeId,a])}},b.checkAllNodes=function(a){u.repairAllChk(this.setting,!!a)},b.getCheckedNodes=function(a){var b=this.setting.data.key.children;return a=a!==!1,v.getTreeCheckedNodes(this.setting,v.getRoot(this.setting)[b],a)},b.getChangeCheckedNodes=function(){var a=this.setting.data.key.children;return v.getTreeChangeCheckedNodes(this.setting,v.getRoot(this.setting)[a])},b.setChkDisabled=function(a,b,c,d){b=!!b,c=!!c,d=!!d,u.repairSonChkDisabled(this.setting,a,b,d),u.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var c=b.updateNode;b.updateNode=function(a,d){if(c&&c.apply(b,arguments),a&&this.setting.check.enable){var e=w(a,this.setting);if(e.get(0)&&s.uCanDo(this.setting)){var f=w(a,t.id.CHECK,this.setting);1!=d&&this.setting.check.chkStyle!==t.radio.STYLE||u.checkNodeRelation(this.setting,a),u.setChkClass(this.setting,f,a),u.repairParentChkClassWithSelf(this.setting,a)}}}},l={getRadioCheckedList:function(a){for(var b=v.getRoot(a).radioCheckedList,c=0,d=b.length;c-1&&b.check_Child_State<2:b.check_Child_State>0};return d},getTreeCheckedNodes:function(a,b,c,d){if(!b)return[];var e=a.data.key.children,f=a.data.key.checked,g=c&&a.check.chkStyle==t.radio.STYLE&&a.check.radioType==t.radio.TYPE_ALL;d=d?d:[];for(var h=0,i=b.length;h0));h++);return d},getTreeChangeCheckedNodes:function(a,b,c){if(!b)return[];var d=a.data.key.children,e=a.data.key.checked;c=c?c:[];for(var f=0,g=b.length;f0?2:0,2==i){e=2;break}0==i&&(e=0)}else if(a.check.chkStyle==t.checkbox.STYLE){if(i=h.nocheck===!0||h.chkDisabled===!0?h.check_Child_State:h.halfCheck===!0?1:h[d]?h.check_Child_State===-1||2===h.check_Child_State?2:1:h.check_Child_State>0?1:0,1===i){e=1;break}if(2===i&&e>-1&&f>0&&i!==e){e=1;break}if(2===e&&i>-1&&i<2){e=1;break}i>-1&&(e=i)}}b.check_Child_State=e}}},m={},n={onCheckNode:function(a,b){if(b.chkDisabled===!0)return!1;var c=v.getSetting(a.data.treeId),d=c.data.key.checked;if(0==s.apply(c.callback.beforeCheck,[c.treeId,b],!0))return!0;b[d]=!b[d],u.checkNodeRelation(c,b);var e=w(b,t.id.CHECK,c);return u.setChkClass(c,e,b),u.repairParentChkClassWithSelf(c,b),c.treeObj.trigger(t.event.CHECK,[a,c.treeId,b]),!0},onMouseoverCheck:function(a,b){if(b.chkDisabled===!0)return!1;var c=v.getSetting(a.data.treeId),d=w(b,t.id.CHECK,c);return b.check_Focus=!0,u.setChkClass(c,d,b),!0},onMouseoutCheck:function(a,b){if(b.chkDisabled===!0)return!1;var c=v.getSetting(a.data.treeId),d=w(b,t.id.CHECK,c);return b.check_Focus=!1,u.setChkClass(c,d,b),!0}},o={},p={checkNodeRelation:function(a,b){var c,d,e,f=a.data.key.children,g=a.data.key.checked,h=t.radio;if(a.check.chkStyle==h.STYLE){var i=v.getRadioCheckedList(a);if(b[g])if(a.check.radioType==h.TYPE_ALL){for(d=i.length-1;d>=0;d--)c=i[d],c[g]&&c!=b&&(c[g]=!1,i.splice(d,1),u.setChkClass(a,w(c,t.id.CHECK,a),c),c.parentTId!=b.parentTId&&u.repairParentChkClassWithSelf(a,c));i.push(b)}else{var j=b.parentTId?b.getParentNode():v.getRoot(a);for(d=0,e=j[f].length;d-1)&&u.setSonNodeCheckBox(a,b,!0),b[g]||b[f]&&0!=b[f].length&&!(a.check.chkboxType.N.indexOf("s")>-1)||u.setSonNodeCheckBox(a,b,!1),b[g]&&a.check.chkboxType.Y.indexOf("p")>-1&&u.setParentNodeCheckBox(a,b,!0),!b[g]&&a.check.chkboxType.N.indexOf("p")>-1&&u.setParentNodeCheckBox(a,b,!1)},makeChkClass:function(a,b){var c=a.data.key.checked,d=t.checkbox,e=t.radio,f=a.check.chkboxType,g=""===f.Y&&""===f.N;fullStyle="",b.chkDisabled===!0?fullStyle=d.DISABLED:b.halfCheck?fullStyle=d.PART:a.check.chkStyle==e.STYLE?fullStyle=b.check_Child_State<1?d.FULL:d.PART:fullStyle=b[c]?2===b.check_Child_State||b.check_Child_State===-1||g?d.FULL:d.PART:b.check_Child_State<1||g?d.FULL:d.PART;var h=a.check.chkStyle+"_"+(b[c]?d.TRUE:d.FALSE)+"_"+fullStyle;return h=b.check_Focus&&b.chkDisabled!==!0?h+"_"+d.FOCUS:h,t.className.BUTTON+" "+d.DEFAULT+" "+h},repairAllChk:function(a,b){if(a.check.enable&&a.check.chkStyle===t.checkbox.STYLE)for(var c=a.data.key.checked,d=a.data.key.children,e=v.getRoot(a),f=0,g=e[d].length;f0?u.repairParentChkClass(a,b[c][0]):u.repairParentChkClass(a,b)}},repairSonChkDisabled:function(a,b,c,d){if(b){var e=a.data.key.children;if(b.chkDisabled!=c&&(b.chkDisabled=c),u.repairChkClass(a,b),b[e]&&d)for(var f=0,g=b[e].length;f0){h=!1;break}h&&u.setParentNodeCheckBox(a,b.getParentNode(),c,d)}},setSonNodeCheckBox:function(a,b,c,d){if(b){var e=a.data.key.children,f=a.data.key.checked,g=w(b,t.id.CHECK,a);d||(d=b);var h=!1;if(b[e])for(var i=0,j=b[e].length;i0?c?2:0:-1)):b.check_Child_State=-1,u.setChkClass(a,g,b),a.check.autoCheckTrigger&&b!=d&&b.nocheck!==!0&&b.chkDisabled!==!0&&a.treeObj.trigger(t.event.CHECK,[null,a.treeId,b]))}}},q={tools:o,view:p,event:m,data:l};a.extend(!0,a.fn.zTree.consts,b),a.extend(!0,a.fn.zTree._z,q);var r=a.fn.zTree,s=r._z.tools,t=r.consts,u=r._z.view,v=r._z.data,w=(r._z.event,s.$);v.exSetting(c),v.addInitBind(f),v.addInitUnBind(g),v.addInitCache(e),v.addInitNode(i),v.addInitProxy(h,!0),v.addInitRoot(d),v.addBeforeA(j),v.addZTreeTools(k);var x=u.createNodes;u.createNodes=function(a,b,c,d){x&&x.apply(u,arguments),c&&u.repairParentChkClassWithSelf(a,d)};var y=u.removeNode;u.removeNode=function(a,b){var c=b.getParentNode();y&&y.apply(u,arguments),b&&c&&(u.repairChkClass(a,c),u.repairParentChkClass(a,c))};var z=u.appendNodes;u.appendNodes=function(a,b,c,d,e,f){var g="";return z&&(g=z.apply(u,arguments)),d&&v.makeChkFlag(a,d),g}}(jQuery),BI.IconChangeButton=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.IconChangeButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-icon-change-button",iconCls:"",iconWidth:null,iconHeight:null,stopEvent:!1,stopPropagation:!1,selected:!1,once:!1,forceSelected:!1,forceNotSelected:!1,disableSelected:!1,shadow:!1,isShadowShowingOnSelected:!1,trigger:null,handler:BI.emptyFn})},_init:function(){BI.IconChangeButton.superclass._init.apply(this,arguments);var a=this,b=this.options;this.button=BI.createWidget({type:"bi.icon_button",element:this,cls:b.iconCls,height:b.height,iconWidth:b.iconWidth,iconHeight:b.iconHeight,stopEvent:b.stopEvent,stopPropagation:b.stopPropagation,selected:b.selected,once:b.once,forceSelected:b.forceSelected,forceNotSelected:b.forceNotSelected,disableSelected:b.disableSelected,shadow:b.shadow,isShadowShowingOnSelected:b.isShadowShowingOnSelected,trigger:b.trigger,handler:b.handler}),this.button.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button.on(BI.IconButton.EVENT_CHANGE,function(){a.fireEvent(BI.IconChangeButton.EVENT_CHANGE,arguments)})},isSelected:function(){return this.button.isSelected()},setSelected:function(a){this.button.setSelected(a)},setIcon:function(a){var b=this.options;b.iconCls!==a&&(this.element.removeClass(b.iconCls).addClass(a),b.iconCls=a)}}),BI.IconChangeButton.EVENT_CHANGE="IconChangeButton.EVENT_CHANGE",BI.shortcut("bi.icon_change_button",BI.IconChangeButton),BI.TriggerIconButton=BI.inherit(BI.IconButton,{_defaultConfig:function(){var a=BI.TriggerIconButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-trigger-icon-button",extraCls:"pull-down-font"})},_init:function(){BI.TriggerIconButton.superclass._init.apply(this,arguments)},doClick:function(){BI.TriggerIconButton.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.TriggerIconButton.EVENT_CHANGE,this)}}),BI.TriggerIconButton.EVENT_CHANGE="TriggerIconButton.EVENT_CHANGE",BI.shortcut("bi.trigger_icon_button",BI.TriggerIconButton),BI.HalfIconButton=BI.inherit(BI.IconButton,{_defaultConfig:function(){var a=BI.HalfIconButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-half-icon-button check-half-select-icon",height:16,width:16,iconWidth:16,iconHeight:16,selected:!1})},_init:function(){BI.HalfIconButton.superclass._init.apply(this,arguments)},doClick:function(){BI.HalfIconButton.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.HalfIconButton.EVENT_CHANGE)}}),BI.HalfIconButton.EVENT_CHANGE="HalfIconButton.EVENT_CHANGE",BI.shortcut("bi.half_icon_button",BI.HalfIconButton),BI.HalfButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.HalfIconButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-half-button bi-high-light-border",height:14,width:14,selected:!1})},_init:function(){BI.HalfButton.superclass._init.apply(this,arguments),BI.createWidget({type:"bi.center_adapt",element:this.element,items:[{type:"bi.layout",cls:"bi-high-light-background",width:8,height:8}]})},doClick:function(){BI.HalfButton.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.HalfButton.EVENT_CHANGE)}}),BI.HalfButton.EVENT_CHANGE="HalfIconButton.EVENT_CHANGE",BI.shortcut("bi.half_button",BI.HalfButton),BI.MultiSelectItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiSelectItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multi-select-item",height:24,logic:{dynamic:!1},iconWrapperWidth:26})},_init:function(){BI.MultiSelectItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.checkbox"}),this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,rgap:b.rgap,text:b.text,keyword:b.keyword,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.setSelected(a.isSelected())}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(b.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",{type:"bi.center_adapt",items:[this.checkbox],width:b.iconWrapperWidth},this.text)}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.MultiSelectItem.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected()),this.isValid()&&this.fireEvent(BI.MultiSelectItem.EVENT_CHANGE,this.getValue(),this)},setSelected:function(a){BI.MultiSelectItem.superclass.setSelected.apply(this,arguments),this.checkbox.setSelected(a)}}),BI.MultiSelectItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_item",BI.MultiSelectItem),BI.SingleSelectIconTextItem=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.SingleSelectIconTextItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-single-select-icon-text-item bi-list-item-active",iconCls:"",height:24})},_init:function(){BI.SingleSelectIconTextItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.text=BI.createWidget({type:"bi.icon_text_item",element:this,cls:b.iconCls,once:b.once,iconWrapperWidth:b.iconWrapperWidth,selected:b.selected,height:b.height,iconHeight:b.iconHeight,iconWidth:b.iconWidth,text:b.text,keyword:b.keyword,value:b.value,py:b.py}),this.text.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},isSelected:function(){return this.text.isSelected()},setSelected:function(a){this.text.setSelected(a)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.SingleSelectIconTextItem.superclass.doClick.apply(this,arguments)}}),BI.shortcut("bi.single_select_icon_text_item",BI.SingleSelectIconTextItem),BI.SingleSelectItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.SingleSelectItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-single-select-item bi-list-item-active",hgap:10,height:24,textAlign:"left"})},_init:function(){BI.SingleSelectItem.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,textAlign:a.textAlign,whiteSpace:"nowrap",textHeight:a.height,height:a.height,hgap:a.hgap,text:a.text,keyword:a.keyword,value:a.value,title:a.title||a.text,warningTitle:a.warningTitle,py:a.py})},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.SingleSelectItem.superclass.doClick.apply(this,arguments)},setSelected:function(a){BI.SingleSelectItem.superclass.setSelected.apply(this,arguments)}}),BI.shortcut("bi.single_select_item",BI.SingleSelectItem),BI.SingleSelectRadioItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.SingleSelectRadioItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-single-select-radio-item",logic:{dynamic:!1},hgap:10,height:24})},_init:function(){BI.SingleSelectRadioItem.superclass._init.apply(this,arguments);var a=this.options;this.radio=BI.createWidget({type:"bi.radio"}),this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",whiteSpace:"nowrap",textHeight:a.height,height:a.height,hgap:a.hgap,text:a.text,keyword:a.keyword,value:a.value,py:a.py}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",{type:"bi.center_adapt",items:[this.radio],width:16},this.text)}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.SingleSelectRadioItem.superclass.doClick.apply(this,arguments),this.radio.setSelected(this.isSelected())},setSelected:function(a){BI.SingleSelectRadioItem.superclass.setSelected.apply(this,arguments),this.radio.setSelected(a)}}),BI.shortcut("bi.single_select_radio_item",BI.SingleSelectRadioItem),BI.ArrowNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.ArrowNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-arrow-group-node bi-list-item",logic:{dynamic:!1},id:"",pId:"",open:!1,height:24})},_init:function(){var a=this,b=this.options;BI.ArrowNode.superclass._init.apply(this,arguments),this.checkbox=BI.createWidget({type:"bi.arrow_group_node_checkbox"}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.ArrowNode.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isOpened())},setText:function(a){BI.ArrowNode.superclass.setText.apply(this,arguments),this.text.setText(a)},setOpened:function(a){BI.ArrowNode.superclass.setOpened.apply(this,arguments),this.checkbox.setSelected(a)}}),BI.shortcut("bi.arrow_group_node",BI.ArrowNode),BI.FirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.FirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-first-plus-group-node bi-list-item",logic:{dynamic:!1},id:"",pId:"",open:!1,height:24})},_init:function(){BI.FirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.first_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.FirstPlusGroupNode.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected())},setOpened:function(a){BI.FirstPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.first_plus_group_node",BI.FirstPlusGroupNode),BI.IconArrowNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.IconArrowNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-icon-arrow-node bi-list-item",logic:{dynamic:!1},id:"",pId:"",open:!1,height:24,iconHeight:12,iconWidth:12,iconCls:""})},_init:function(){BI.IconArrowNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.arrow_group_node_checkbox",width:24,stopPropagation:!0});var c=BI.createWidget({type:"bi.icon_label",width:24,cls:b.iconCls,iconWidth:b.iconWidth,iconHeight:b.iconHeight});this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var d=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),e=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},{width:24,el:c},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(d,BI.extend(b.logic,{items:e}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.IconArrowNode.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected())},setOpened:function(a){BI.IconArrowNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.icon_arrow_node",BI.IconArrowNode),BI.LastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.LastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-last-plus-group-node bi-list-item",logic:{dynamic:!1},id:"",pId:"",open:!1,height:24})},_init:function(){BI.LastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.last_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.LastPlusGroupNode.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected())},setOpened:function(a){BI.LastPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.last_plus_group_node",BI.LastPlusGroupNode),BI.MidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-mid-plus-group-node bi-list-item",logic:{dynamic:!1},id:"",pId:"",open:!1,height:24})},_init:function(){BI.MidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.mid_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.MidPlusGroupNode.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected())},setOpened:function(a){BI.MidPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.mid_plus_group_node",BI.MidPlusGroupNode),BI.MultiLayerIconArrowNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerIconArrowNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-icon-arrow-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:24,iconHeight:16,iconWidth:16,iconCls:""})},_init:function(){BI.MultiLayerIconArrowNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.icon_arrow_node",iconCls:b.iconCls,cls:"bi-list-item-none",id:b.id,pId:b.pId,open:b.open,height:b.height,iconHeight:b.iconHeight,iconWidth:b.iconWidth,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",width:24,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,24),items:[c]})},isOnce:function(){return!0},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerIconArrowNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerIconArrowNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_icon_arrow_node",BI.MultiLayerIconArrowNode),BI.PlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.PlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-plus-group-node bi-list-item",logic:{dynamic:!1},id:"",pId:"",open:!1,height:24})},_init:function(){BI.PlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.tree_node_checkbox"}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.PlusGroupNode.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected())},setOpened:function(a){BI.PlusGroupNode.superclass.setOpened.apply(this,arguments),this.checkbox&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.plus_group_node",BI.PlusGroupNode),BI.Switch=BI.inherit(BI.BasicButton,{props:{extraCls:"bi-switch",height:22,width:44,logic:{dynamic:!1}},render:function(){var a=this;return{type:"bi.absolute",ref:function(){a.layout=this},items:[{el:{type:"bi.text_button",cls:"circle-button bi-card"},width:18,height:18,top:2,left:this.options.selected?24:2}]}},setSelected:function(a){BI.Switch.superclass.setSelected.apply(this,arguments),this.layout.attr("items")[0].left=a?24:2,this.layout.resize()},doClick:function(){BI.Switch.superclass.doClick.apply(this,arguments),this.fireEvent(BI.Switch.EVENT_CHANGE)}}),BI.Switch.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.switch",BI.Switch),BI.FirstTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.FirstTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-first-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",layer:0,height:24})},_init:function(){BI.FirstTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.checkbox"}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,0===b.layer?"":{width:12,el:{type:"bi.layout",cls:b.pNode&&b.pNode.isLastNode?"":"base-line-conn-background",width:12,height:b.height}},{width:24,el:{type:"bi.layout",cls:"first-line-conn-background",width:24,height:b.height}},{el:this.text});BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.FirstTreeLeafItem.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected())},setSelected:function(a){BI.FirstTreeLeafItem.superclass.setSelected.apply(this,arguments),this.checkbox.setSelected(a)}}),BI.shortcut("bi.first_tree_leaf_item",BI.FirstTreeLeafItem),BI.IconTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.IconTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-icon-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},height:24,iconWidth:16,iconHeight:16,iconCls:""})},_init:function(){BI.IconTreeLeafItem.superclass._init.apply(this,arguments);var a=this.options,b=BI.createWidget({type:"bi.center_adapt",width:24,cls:a.iconCls,items:[{type:"bi.icon",width:a.iconWidth,height:a.iconHeight}]});this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:a.height,height:a.height,hgap:a.hgap,text:a.text,value:a.value,py:a.py});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{ -width:24,el:b},{el:this.text});BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(a.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.IconTreeLeafItem.superclass.doClick.apply(this,arguments)},setSelected:function(a){BI.IconTreeLeafItem.superclass.setSelected.apply(this,arguments)}}),BI.shortcut("bi.icon_tree_leaf_item",BI.IconTreeLeafItem),BI.LastTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.LastTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-last-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",layer:0,height:24})},_init:function(){BI.LastTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.checkbox"}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,0===b.layer?"":{width:12,el:{type:"bi.layout",cls:b.pNode&&b.pNode.isLastNode?"":"base-line-conn-background",width:12,height:b.height}},{width:24,el:{type:"bi.layout",cls:"last-line-conn-background",width:24,height:b.height}},{el:this.text});BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.LastTreeLeafItem.superclass.doClick.apply(this,arguments)},setSelected:function(a){BI.LastTreeLeafItem.superclass.setSelected.apply(this,arguments)}}),BI.shortcut("bi.last_tree_leaf_item",BI.LastTreeLeafItem),BI.MidTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MidTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-mid-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",layer:0,height:24})},_init:function(){BI.MidTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.checkbox"}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,0===b.layer?"":{width:12,el:{type:"bi.layout",cls:b.pNode&&b.pNode.isLastNode?"":"base-line-conn-background",width:12,height:b.height}},{width:24,el:{type:"bi.layout",cls:"mid-line-conn-background",width:24,height:b.height}},{el:this.text});BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MidTreeLeafItem.superclass.doClick.apply(this,arguments),this.checkbox.setSelected(this.isSelected())},setSelected:function(a){BI.MidTreeLeafItem.superclass.setSelected.apply(this,arguments),this.checkbox.setSelected(a)}}),BI.shortcut("bi.mid_tree_leaf_item",BI.MidTreeLeafItem),BI.MultiLayerIconTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerIconTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-icon-tree-leaf-item bi-list-item-active",layer:0,height:24,iconCls:"",iconHeight:16,iconWidth:16})},_init:function(){BI.MultiLayerIconTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.icon_tree_leaf_item",cls:"bi-list-item-none",iconCls:b.iconCls,id:b.id,pId:b.pId,isFront:!0,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,iconWidth:b.iconWidth,iconHeight:b.iconHeight}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",width:24,height:b.height})}),c.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,24),items:[c]})},doRedMark:function(){this.item.doRedMark.apply(this.item,arguments)},unRedMark:function(){this.item.unRedMark.apply(this.item,arguments)},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerIconTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerIconTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)},getValue:function(){return this.options.value}}),BI.shortcut("bi.multilayer_icon_tree_leaf_item",BI.MultiLayerIconTreeLeafItem),BI.TreeTextLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.TreeTextLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-tree-text-leaf-item bi-list-item-active",id:"",pId:"",height:24,hgap:0,lgap:0,rgap:0})},_init:function(){BI.TreeTextLeafItem.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:a.height,height:a.height,hgap:a.hgap,lgap:a.lgap,rgap:a.hgap,text:a.text,value:a.value,py:a.py}),BI.createWidget({type:"bi.htape",element:this,items:[{el:this.text}]})},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId}}),BI.shortcut("bi.tree_text_leaf_item",BI.TreeTextLeafItem),BI.CalendarDateItem=BI.inherit(BI.BasicButton,{render:function(){var a=this,b=this.options;return{type:"bi.absolute",items:[{el:{type:"bi.text_item",cls:"bi-list-item-select",textAlign:"center",whiteSpace:"normal",text:b.text,value:b.value,ref:function(){a.text=this}},left:b.lgap,right:b.rgap,top:0,bottom:0}]}},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},setSelected:function(a){BI.CalendarDateItem.superclass.setSelected.apply(this,arguments),this.text.setSelected(a)},getValue:function(){return this.text.getValue()}}),BI.shortcut("bi.calendar_date_item",BI.CalendarDateItem),BI.Calendar=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.Calendar.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-calendar",logic:{dynamic:!1},min:"1900-01-01",max:"2099-12-31",year:2015,month:8,day:25})},_dateCreator:function(a,b,c){var d=this.options,e={},f=BI.getDate(),g=d.min.match(/\d+/g),h=d.max.match(/\d+/g);a<(0|g[0])&&(a=0|g[0]),a>(0|h[0])&&(a=0|h[0]),f.setFullYear(a,b,c),e.ymd=[f.getFullYear(),f.getMonth(),f.getDate()];var i=BI.Date._MD.slice(0);i[1]=BI.isLeapYear(e.ymd[0])?29:28,f.setFullYear(e.ymd[0],e.ymd[1],1),e.FDay=f.getDay();var j=(7-BI.StartOfWeek+e.FDay)%7;e.PDay=i[0===b?11:b-1]-j+1,e.NDay=1;var k=[];return BI.each(BI.range(42),function(a){var b,c={},d=e.ymd[0],f=e.ymd[1]+1;a=j&&a=0?c%12:(12+c%12)%12;return{year:BI.getDate().getFullYear()+d,month:e+1}}}),BI.shortcut("bi.calendar",BI.Calendar),BI.YearCalendar=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.YearCalendar.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-year-calendar",behaviors:{},logic:{dynamic:!1},min:"1900-01-01",max:"2099-12-31",year:null})},_yearCreator:function(a){var b=this.options;a=0|a;var c=BI.YearCalendar.getStartYear(a),d=[];return BI.each(BI.range(BI.YearCalendar.INTERVAL),function(a){var e={};BI.checkDateVoid(c+a,1,1,b.min,b.max)[0]&&(e.disabled=!0),e.text=c+a,d.push(e)}),d},_init:function(){BI.YearCalendar.superclass._init.apply(this,arguments);var a=this,b=this.options;this.currentYear=BI.getDate().getFullYear();var c=this._yearCreator(b.year||this.currentYear),d=c.length,e=BI.makeArray(d,""),f=[0,6,1,7,2,8,3,9,4,10,5,11];BI.each(c,function(a,b){e[a]=c[f[a]]});var g=[];g.push(e.slice(0,2)),g.push(e.slice(2,4)),g.push(e.slice(4,6)),g.push(e.slice(6,8)),g.push(e.slice(8,10)),g.push(e.slice(10,12)),g=BI.map(g,function(a,b){return BI.map(b,function(a,b){return BI.extend(b,{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"center",whiteSpace:"normal",once:!1,forceSelected:!0,height:24,width:45,value:b.text,disabled:b.disabled})})}),this.years=BI.createWidget({type:"bi.button_group",behaviors:b.behaviors,items:BI.createItems(g,{}),layouts:[BI.LogicFactory.createLogic("table",BI.extend({},b.logic,{columns:2,rows:6,columnSize:[.5,.5],rowSize:24})),{type:"bi.center_adapt",vgap:1}]}),this.years.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("vertical",BI.extend({},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection("top",this.years)}))))},isFrontYear:function(){var a=this.options,b=a.year;return b=0|b,!!BI.checkDateVoid(BI.YearCalendar.getStartYear(b)-1,1,1,a.min,a.max)[0]},isFinalYear:function(){var a=this.options,b=(this._const,a.year);return b=0|b,!!BI.checkDateVoid(BI.YearCalendar.getEndYear(b)+1,1,1,a.min,a.max)[0]},setValue:function(a){this.years.setValue([a])},getValue:function(){return this.years.getValue()[0]}}),BI.extend(BI.YearCalendar,{INTERVAL:12,getStartYear:function(a){var b=BI.getDate().getFullYear();return a-((a-b+3)%BI.YearCalendar.INTERVAL+12)%BI.YearCalendar.INTERVAL},getEndYear:function(a){return BI.YearCalendar.getStartYear(a)+BI.YearCalendar.INTERVAL-1},getPageByYear:function(a){var b=BI.getDate().getFullYear();return a=BI.YearCalendar.getStartYear(a),(a-b+3)/BI.YearCalendar.INTERVAL}}),BI.shortcut("bi.year_calendar",BI.YearCalendar),BI.ArrowTreeGroupNodeCheckbox=BI.inherit(BI.IconButton,{_defaultConfig:function(){return BI.extend(BI.ArrowTreeGroupNodeCheckbox.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-arrow-group-node-checkbox"})},_init:function(){BI.ArrowTreeGroupNodeCheckbox.superclass._init.apply(this,arguments)},setSelected:function(a){BI.ArrowTreeGroupNodeCheckbox.superclass.setSelected.apply(this,arguments),a?this.element.removeClass("expander-right-font").addClass("expander-down-font"):this.element.removeClass("expander-down-font").addClass("expander-right-font")}}),BI.shortcut("bi.arrow_group_node_checkbox",BI.ArrowTreeGroupNodeCheckbox),BI.CheckingMarkNode=BI.inherit(BI.IconButton,{_defaultConfig:function(){return BI.extend(BI.CheckingMarkNode.superclass._defaultConfig.apply(this,arguments),{extraCls:"check-mark-font"})},_init:function(){BI.CheckingMarkNode.superclass._init.apply(this,arguments),this.setSelected(this.options.selected)},setSelected:function(a){BI.CheckingMarkNode.superclass.setSelected.apply(this,arguments),a===!0?this.element.addClass("check-mark-font"):this.element.removeClass("check-mark-font")}}),BI.shortcut("bi.checking_mark_node",BI.CheckingMarkNode),BI.FirstTreeNodeCheckbox=BI.inherit(BI.IconButton,{_defaultConfig:function(){return BI.extend(BI.FirstTreeNodeCheckbox.superclass._defaultConfig.apply(this,arguments),{extraCls:"tree-collapse-icon-type2",iconWidth:24,iconHeight:24})},_init:function(){BI.FirstTreeNodeCheckbox.superclass._init.apply(this,arguments)},setSelected:function(a){BI.FirstTreeNodeCheckbox.superclass.setSelected.apply(this,arguments),a===!0?this.element.addClass("tree-expand-icon-type2"):this.element.removeClass("tree-expand-icon-type2")}}),BI.shortcut("bi.first_tree_node_checkbox",BI.FirstTreeNodeCheckbox),BI.LastTreeNodeCheckbox=BI.inherit(BI.IconButton,{_defaultConfig:function(){return BI.extend(BI.LastTreeNodeCheckbox.superclass._defaultConfig.apply(this,arguments),{extraCls:"tree-collapse-icon-type4",iconWidth:24,iconHeight:24})},_init:function(){BI.LastTreeNodeCheckbox.superclass._init.apply(this,arguments)},setSelected:function(a){BI.LastTreeNodeCheckbox.superclass.setSelected.apply(this,arguments),a===!0?this.element.addClass("tree-expand-icon-type4"):this.element.removeClass("tree-expand-icon-type4")}}),BI.shortcut("bi.last_tree_node_checkbox",BI.LastTreeNodeCheckbox),BI.MidTreeNodeCheckbox=BI.inherit(BI.IconButton,{_defaultConfig:function(){return BI.extend(BI.MidTreeNodeCheckbox.superclass._defaultConfig.apply(this,arguments),{extraCls:"tree-collapse-icon-type3",iconWidth:24,iconHeight:24})},_init:function(){BI.MidTreeNodeCheckbox.superclass._init.apply(this,arguments)},setSelected:function(a){BI.MidTreeNodeCheckbox.superclass.setSelected.apply(this,arguments),a===!0?this.element.addClass("tree-expand-icon-type3"):this.element.removeClass("tree-expand-icon-type3")}}),BI.shortcut("bi.mid_tree_node_checkbox",BI.MidTreeNodeCheckbox),BI.TreeNodeCheckbox=BI.inherit(BI.IconButton,{_defaultConfig:function(){return BI.extend(BI.TreeNodeCheckbox.superclass._defaultConfig.apply(this,arguments),{extraCls:"tree-collapse-icon-type1",iconWidth:24,iconHeight:24})},_init:function(){BI.TreeNodeCheckbox.superclass._init.apply(this,arguments)},setSelected:function(a){BI.TreeNodeCheckbox.superclass.setSelected.apply(this,arguments),a?this.element.addClass("tree-expand-icon-type1"):this.element.removeClass("tree-expand-icon-type1")}}),BI.shortcut("bi.tree_node_checkbox",BI.TreeNodeCheckbox),BI.CustomColorChooser=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.CustomColorChooser.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-custom-color-chooser",width:227,height:245})},_init:function(){BI.CustomColorChooser.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.editor,{type:"bi.simple_color_picker_editor"}),this.editor.on(BI.ColorPickerEditor.EVENT_CHANGE,function(){a.setValue(this.getValue())}),this.farbtastic=BI.createWidget({type:"bi.farbtastic"}),this.farbtastic.on(BI.Farbtastic.EVENT_CHANGE,function(){a.setValue(this.getValue())}),BI.createWidget({type:"bi.vtape",element:this,items:[{type:"bi.absolute",items:[{el:this.editor,left:0,top:0,right:0}],height:30},{type:"bi.absolute",items:[{el:this.farbtastic,left:15,right:15,top:7}],height:215}]})},setValue:function(a){this.editor.setValue(a),this.farbtastic.setValue(a)},getValue:function(){return this.editor.getValue()}}),BI.CustomColorChooser.EVENT_CHANGE="CustomColorChooser.EVENT_CHANGE",BI.shortcut("bi.custom_color_chooser",BI.CustomColorChooser),BI.ColorChooser=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ColorChooser.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-color-chooser",value:""})},_init:function(){BI.ColorChooser.superclass._init.apply(this,arguments);var a=this,b=this.options;this.combo=BI.createWidget({type:"bi.combo",element:this,container:b.container,adjustLength:1,isNeedAdjustWidth:!1,isNeedAdjustHeight:!1,el:BI.extend({type:b.width<=24?"bi.color_chooser_trigger":"bi.long_color_chooser_trigger",ref:function(b){a.trigger=b},width:b.width,height:b.height},b.el),popup:{el:BI.extend({type:"bi.color_chooser_popup",ref:function(b){a.colorPicker=b},listeners:[{eventName:BI.ColorChooserPopup.EVENT_VALUE_CHANGE,action:function(){c(),a._isRGBColor(a.colorPicker.getValue())||a.combo.hideView()}},{eventName:BI.ColorChooserPopup.EVENT_CHANGE,action:function(){c(),a.combo.hideView()}}]},b.popup),stopPropagation:!0,width:230},value:b.value});var c=function(){var b=a.colorPicker.getValue();a.trigger.setValue(b);var c=BI.string2Array(BI.Cache.getItem("colors")||""),d=new BI.Queue(8);d.fromArray(c),d.remove(b),d.unshift(b),BI.Cache.setItem("colors",BI.array2String(d.toArray()))};this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.colorPicker.setStoreColors(BI.string2Array(BI.Cache.getItem("colors")||""))}),this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.fireEvent(BI.ColorChooser.EVENT_CHANGE,arguments)})},_isRGBColor:function(a){return BI.isNotEmptyString(a)&&"transparent"!==a},isViewVisible:function(){return this.combo.isViewVisible()},hideView:function(){this.combo.hideView()},showView:function(){this.combo.showView()},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.combo.getValue()}}),BI.ColorChooser.EVENT_CHANGE="ColorChooser.EVENT_CHANGE",BI.shortcut("bi.color_chooser",BI.ColorChooser),BI.ColorChooserPopup=BI.inherit(BI.Widget,{props:{baseCls:"bi-color-chooser-popup",width:230,height:145},render:function(){var a=this,b=this.options;this.colorEditor=BI.createWidget(b.editor,{type:"bi.color_picker_editor",value:b.value,cls:"bi-header-background bi-border-bottom",height:30}),this.colorEditor.on(BI.ColorPickerEditor.EVENT_CHANGE,function(){a.setValue(this.getValue()),a.fireEvent(BI.ColorChooserPopup.EVENT_VALUE_CHANGE,arguments)}),this.storeColors=BI.createWidget({type:"bi.color_picker",cls:"bi-border-bottom bi-border-right",items:[[{value:"",disabled:!0},{value:"",disabled:!0},{value:"",disabled:!0},{value:"",disabled:!0},{value:"",disabled:!0},{value:"",disabled:!0},{value:"",disabled:!0},{value:"",disabled:!0}]],width:210,height:24,value:b.value}),this.storeColors.on(BI.ColorPicker.EVENT_CHANGE,function(){a.setValue(this.getValue()[0]),a.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE,arguments)}),this.colorPicker=BI.createWidget({type:"bi.color_picker",width:210,height:50,value:b.value}),this.colorPicker.on(BI.ColorPicker.EVENT_CHANGE,function(){a.setValue(this.getValue()[0]),a.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE,arguments)}),this.customColorChooser=BI.createWidget({type:"bi.custom_color_chooser",editor:b.editor});var c=BI.createWidget({type:"bi.popup_panel",buttons:[BI.i18nText("BI-Basic_Cancel"),BI.i18nText("BI-Basic_Save")],title:BI.i18nText("BI-Custom_Color"),el:this.customColorChooser,stopPropagation:!1,bgap:-1,rgap:1,lgap:1,minWidth:227});return this.more=BI.createWidget({type:"bi.combo",cls:"bi-border-top",container:null,direction:"right,top",isNeedAdjustHeight:!1,el:{type:"bi.text_item",cls:"color-chooser-popup-more bi-list-item",textAlign:"center",height:24,textLgap:10,text:BI.i18nText("BI-Basic_More")+"..."},popup:c}),this.more.on(BI.Combo.EVENT_AFTER_POPUPVIEW,function(){a.customColorChooser.setValue(a.getValue())}),c.on(BI.PopupPanel.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.more.hideView();break;case 1:a.setValue(a.customColorChooser.getValue()),a.more.hideView(),a.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE,arguments)}}),{type:"bi.absolute",items:[{el:{type:"bi.vtape",items:[this.colorEditor,{el:{type:"bi.absolute",items:[{el:this.storeColors,left:10,right:10,top:5}]},height:29},{el:{type:"bi.absolute",items:[{el:this.colorPicker,left:10,right:10,top:5,bottom:5}]},height:60},{el:this.more,height:24}]},left:0,right:0,top:0,bottom:0},{el:{type:"bi.layout",cls:"disable-mask",invisible:!b.disabled,ref:function(){a.mask=this}},left:0,right:0,top:0,bottom:0}]}},mounted:function(){var a=this.options;BI.isNotNull(a.value)&&this.setValue(a.value)},_setEnable:function(a){BI.ColorChooserPopup.superclass._setEnable.apply(this,arguments),this.mask.setVisible(!a)},setStoreColors:function(a){if(BI.isArray(a)){var b=BI.map(a,function(a,b){return{value:b}});BI.count(a.length,8,function(a){b.push({value:"",disabled:!0})}),this.storeColors.populate([b])}},setValue:function(a){this.colorEditor.setValue(a),this.colorPicker.setValue(a),this.storeColors.setValue(a)},getValue:function(){return this.colorEditor.getValue()}}),BI.ColorChooserPopup.EVENT_VALUE_CHANGE="ColorChooserPopup.EVENT_VALUE_CHANGE",BI.ColorChooserPopup.EVENT_CHANGE="ColorChooserPopup.EVENT_CHANGE",BI.shortcut("bi.color_chooser_popup",BI.ColorChooserPopup),BI.SimpleColorChooserPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SimpleColorChooserPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-color-chooser-popup"})},_init:function(){BI.SimpleColorChooserPopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popup=BI.createWidget({type:"bi.color_chooser_popup",value:b.value,element:this,editor:{type:"bi.simple_color_picker_editor"}}),this.popup.on(BI.ColorChooserPopup.EVENT_CHANGE,function(){a.fireEvent(BI.SimpleColorChooserPopup.EVENT_CHANGE,arguments)}),this.popup.on(BI.ColorChooserPopup.EVENT_VALUE_CHANGE,function(){a.fireEvent(BI.SimpleColorChooserPopup.EVENT_VALUE_CHANGE,arguments)})},setStoreColors:function(a){this.popup.setStoreColors(a)},setValue:function(a){this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.SimpleColorChooserPopup.EVENT_VALUE_CHANGE="ColorChooserPopup.EVENT_VALUE_CHANGE",BI.SimpleColorChooserPopup.EVENT_CHANGE="ColorChooserPopup.EVENT_CHANGE",BI.shortcut("bi.simple_color_chooser_popup",BI.SimpleColorChooserPopup),BI.SimpleColorChooser=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SimpleColorChooser.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-simple-color-chooser",value:"#ffffff"})},_init:function(){BI.SimpleColorChooser.superclass._init.apply(this,arguments);var a=this,b=this.options;this.combo=BI.createWidget({type:"bi.color_chooser",element:this,container:b.container,value:b.value,width:b.width,height:b.height,popup:{type:"bi.simple_color_chooser_popup"}}),this.combo.on(BI.ColorChooser.EVENT_CHANGE,function(){a.fireEvent(BI.SimpleColorChooser.EVENT_CHANGE,arguments)})},isViewVisible:function(){return this.combo.isViewVisible()},hideView:function(){this.combo.hideView()},showView:function(){this.combo.showView()},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.combo.getValue()}}),BI.SimpleColorChooser.EVENT_CHANGE="ColorChooser.EVENT_CHANGE",BI.shortcut("bi.simple_color_chooser",BI.SimpleColorChooser),BI.ColorChooserTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){var a=BI.ColorChooserTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-color-chooser-trigger bi-border",height:24})},_init:function(){BI.ColorChooserTrigger.superclass._init.apply(this,arguments),this.colorContainer=BI.createWidget({type:"bi.layout",cls:"color-chooser-trigger-content"+(BI.isIE9Below&&BI.isIE9Below()?" hack":"")});var a=BI.createWidget({type:"bi.icon_button",disableSelected:!0,cls:"icon-combo-down-icon trigger-triangle-font icon-size-12",width:12,height:8});BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.colorContainer,left:3,right:3,top:3,bottom:3},{el:a,right:-1,bottom:1}]}),BI.isNotNull(this.options.value)&&this.setValue(this.options.value)},setValue:function(a){BI.ColorChooserTrigger.superclass.setValue.apply(this,arguments),""===a?this.colorContainer.element.css("background-color","").removeClass("trans-color-background").addClass("auto-color-background"):"transparent"===a?this.colorContainer.element.css("background-color","").removeClass("auto-color-background").addClass("trans-color-background"):this.colorContainer.element.css({"background-color":a}).removeClass("auto-color-background").removeClass("trans-color-background")}}),BI.ColorChooserTrigger.EVENT_CHANGE="ColorChooserTrigger.EVENT_CHANGE",BI.shortcut("bi.color_chooser_trigger",BI.ColorChooserTrigger),BI.LongColorChooserTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){var a=BI.LongColorChooserTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-color-chooser-trigger bi-border",height:24})},_init:function(){BI.LongColorChooserTrigger.superclass._init.apply(this,arguments);var a=this;this.options;this.colorContainer=BI.createWidget({type:"bi.htape",cls:"color-chooser-trigger-content",items:[{type:"bi.icon_change_button",ref:function(b){a.changeIcon=b},iconCls:"auto-color-icon",width:24,iconWidth:16,iconHeight:16},{el:{type:"bi.label",ref:function(b){a.label=b},textAlign:"left",hgap:5,height:18,text:BI.i18nText("BI-Basic_Auto")}}]});var b=BI.createWidget({type:"bi.icon_button",disableSelected:!0,cls:"icon-combo-down-icon trigger-triangle-font icon-size-12",width:12,height:8});BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.colorContainer,left:3,right:3,top:3,bottom:3},{el:b,right:3,bottom:3}]}),this.options.value&&this.setValue(this.options.value)},setValue:function(a){BI.LongColorChooserTrigger.superclass.setValue.apply(this,arguments),""===a?(this.colorContainer.element.css("background-color",""),this.changeIcon.setVisible(!0),this.label.setVisible(!0),this.changeIcon.setIcon("auto-color-icon"),this.label.setText(BI.i18nText("BI-Basic_Auto"))):"transparent"===a?(this.colorContainer.element.css("background-color",""),this.changeIcon.setVisible(!0),this.label.setVisible(!0),this.changeIcon.setIcon("trans-color-icon"),this.label.setText(BI.i18nText("BI-Transparent_Color"))):(this.colorContainer.element.css({"background-color":a}),this.changeIcon.setVisible(!1),this.label.setVisible(!1))}}),BI.LongColorChooserTrigger.EVENT_CHANGE="ColorChooserTrigger.EVENT_CHANGE",BI.shortcut("bi.long_color_chooser_trigger",BI.LongColorChooserTrigger),BI.ColorPickerButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.ColorPickerButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-color-picker-button bi-background bi-border-top bi-border-left"})},_init:function(){BI.ColorPickerButton.superclass._init.apply(this,arguments);var a=this,b=this.options;if(b.value){this.element.css("background-color",b.value);var c=this.getName();this.element.hover(function(){a._createMask(),a.isEnabled()&&BI.Maskers.show(c)},function(){a.isSelected()||BI.Maskers.hide(c)})}},_createMask:function(){var a=this.options,b=this.getName();if(this.isEnabled()&&!BI.Maskers.has(b)){var c=BI.Maskers.make(b,this,{offset:{left:-1,top:-1,right:-1,bottom:-1}});c.element.addClass("color-picker-button-mask").css("background-color",a.value)}},setSelected:function(a){BI.ColorPickerButton.superclass.setSelected.apply(this,arguments),a&&this._createMask(),BI.Maskers[a?"show":"hide"](this.getName())}}),BI.ColorPickerButton.EVENT_CHANGE="ColorPickerButton.EVENT_CHANGE",BI.shortcut("bi.color_picker_button",BI.ColorPickerButton),BI.ColorPicker=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ColorPicker.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-color-picker",items:null})},_items:[[{value:"#ffffff"},{value:"#f2f2f2"},{value:"#e5e5e5"},{value:"#d9d9d9"},{value:"#cccccc"},{value:"#bfbfbf"},{value:"#b2b2b2"},{value:"#a6a6a6"},{value:"#999999"},{value:"#8c8c8c"},{value:"#808080"},{value:"#737373"},{value:"#666666"},{value:"#4d4d4d"},{value:"#333333"},{value:"#000000"}],[{value:"#d8b5a6"},{value:"#ff9e9a"},{value:"#ffc17d"},{value:"#f5e56b"},{value:"#d8e698"},{value:"#e0ebaf"},{value:"#c3d825"},{value:"#bce2e8"},{value:"#85d3cd"},{value:"#bce2e8"},{value:"#a0d8ef"},{value:"#89c3eb"},{value:"#bbc8e6"},{value:"#bbbcde"},{value:"#d6b4cc"},{value:"#fbc0d3"}],[{value:"#bb9581"},{value:"#f37d79"},{value:"#fba74f"},{value:"#ffdb4f"},{value:"#c7dc68"},{value:"#b0ca71"},{value:"#99ab4e"},{value:"#84b9cb"},{value:"#00a3af"},{value:"#2ca9e1"},{value:"#0095d9"},{value:"#4c6cb3"},{value:"#8491c3"},{value:"#a59aca"},{value:"#cc7eb1"},{value:"#e89bb4"}],[{value:"#9d775f"},{value:"#dd4b4b"},{value:"#ef8b07"},{value:"#fcc800"},{value:"#aacf53"},{value:"#82ae46"},{value:"#69821b"},{value:"#59b9c6"},{value:"#2a83a2"},{value:"#007bbb"},{value:"#19448e"},{value:"#274a78"},{value:"#4a488e"},{value:"#7058a3"},{value:"#884898"},{value:"#d47596"}]],_init:function(){BI.ColorPicker.superclass._init.apply(this,arguments);var a=this,b=this.options;this.colors=BI.createWidget({type:"bi.button_group",element:this,items:BI.createItems(b.items||this._items,{type:"bi.color_picker_button",once:!1}),layouts:[{type:"bi.grid"}],value:b.value}),this.colors.on(BI.ButtonGroup.EVENT_CHANGE,function(){a.fireEvent(BI.ColorPicker.EVENT_CHANGE,arguments); -})},populate:function(a){var b=[].slice.call(arguments);b[0]=BI.createItems(a,{type:"bi.color_picker_button",once:!1}),this.colors.populate.apply(this.colors,b)},setValue:function(a){this.colors.setValue(a)},getValue:function(){return this.colors.getValue()}}),BI.ColorPicker.EVENT_CHANGE="ColorPicker.EVENT_CHANGE",BI.shortcut("bi.color_picker",BI.ColorPicker),BI.ColorPickerEditor=BI.inherit(BI.Widget,{constants:{REB_WIDTH:32},_defaultConfig:function(){return BI.extend(BI.ColorPickerEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-color-picker-editor",height:30})},_init:function(){BI.ColorPickerEditor.superclass._init.apply(this,arguments);var a=this,b=(this.options,this.constants);this.storeValue={},this.colorShow=BI.createWidget({type:"bi.layout",cls:"color-picker-editor-display bi-card bi-border",height:16,width:16});var c=BI.createWidgets(BI.createItems([{text:"R"},{text:"G"},{text:"B"}],{type:"bi.label",cls:"color-picker-editor-label",width:20,height:20})),d=function(a){return BI.isNumeric(a)&&(0|a)>=0&&(0|a)<=255},e=BI.createWidgets([{},{},{}],{type:"bi.small_text_editor",cls:"color-picker-editor-input",validationChecker:d,errorText:BI.i18nText("BI-Color_Picker_Error_Text"),allowBlank:!0,value:255,width:b.REB_WIDTH,height:20});BI.each(e,function(b,c){c.on(BI.TextEditor.EVENT_CHANGE,function(){a._checkEditors(),d(a.storeValue.r)&&d(a.storeValue.g)&&d(a.storeValue.b)&&(a.colorShow.element.css("background-color",a.getValue()),a.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE))})}),this.R=e[0],this.G=e[1],this.B=e[2],this.none=BI.createWidget({type:"bi.icon_button",cls:"auto-color-icon",width:16,height:16,iconWidth:16,iconHeight:16,title:BI.i18nText("BI-Basic_Auto")}),this.none.on(BI.IconButton.EVENT_CHANGE,function(){this.isSelected()?(a.lastColor=a.getValue(),a.setValue("")):a.setValue(a.lastColor||"#ffffff"),(a.R.isValid()&&a.G.isValid()&&a.B.isValid()||a._isEmptyRGB())&&(a.colorShow.element.css("background-color",a.getValue()),a.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE))}),this.transparent=BI.createWidget({type:"bi.icon_button",cls:"trans-color-icon",width:16,height:16,iconWidth:16,iconHeight:16,title:BI.i18nText("BI-Transparent_Color")}),this.transparent.on(BI.IconButton.EVENT_CHANGE,function(){this.isSelected()?(a.lastColor=a.getValue(),a.setValue("transparent")):("transparent"===a.lastColor&&(a.lastColor=""),a.setValue(a.lastColor||"#ffffff")),(a.R.isValid()&&a.G.isValid()&&a.B.isValid()||a._isEmptyRGB())&&(a.colorShow.element.css("background-color",a.getValue()),a.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE))}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.vertical_adapt",items:[{el:this.colorShow,width:16},{el:c[0],width:20},{el:this.R,width:b.REB_WIDTH},{el:c[1],width:20},{el:this.G,width:b.REB_WIDTH},{el:c[2],width:20},{el:this.B,width:b.REB_WIDTH},{el:this.transparent,width:16,lgap:5},{el:this.none,width:16,lgap:5}]},left:10,right:10,top:0,bottom:0}]})},_checkEditors:function(){BI.isEmptyString(this.R.getValue())&&this.R.setValue(0),BI.isEmptyString(this.G.getValue())&&this.G.setValue(0),BI.isEmptyString(this.B.getValue())&&this.B.setValue(0),this.storeValue={r:this.R.getValue()||0,g:this.G.getValue()||0,b:this.B.getValue()||0}},_isEmptyRGB:function(){return BI.isEmptyString(this.storeValue.r)&&BI.isEmptyString(this.storeValue.g)&&BI.isEmptyString(this.storeValue.b)},_showPreColor:function(a){""===a?this.colorShow.element.css("background-color","").removeClass("trans-color-background").addClass("auto-color-normal-background"):"transparent"===a?this.colorShow.element.css("background-color","").removeClass("auto-color-normal-background").addClass("trans-color-background"):this.colorShow.element.css({"background-color":a}).removeClass("auto-color-normal-background").removeClass("trans-color-background")},_setEnable:function(a){BI.ColorPickerEditor.superclass._setEnable.apply(this,arguments),a===!0?this.element.removeClass("base-disabled disabled"):a===!1&&this.element.addClass("base-disabled disabled")},setValue:function(a){if("transparent"===a)return this.transparent.setSelected(!0),this.none.setSelected(!1),this._showPreColor("transparent"),this.R.setValue(""),this.G.setValue(""),this.B.setValue(""),void(this.storeValue={r:"",g:"",b:""});a?this.none.setSelected(!1):(a="",this.none.setSelected(!0)),this.transparent.setSelected(!1),this._showPreColor(a);var b=BI.DOM.rgb2json(BI.DOM.hex2rgb(a));this.storeValue={r:BI.isNull(b.r)?"":b.r,g:BI.isNull(b.r)?"":b.g,b:BI.isNull(b.r)?"":b.b},this.R.setValue(this.storeValue.r),this.G.setValue(this.storeValue.g),this.B.setValue(this.storeValue.b)},getValue:function(){return this._isEmptyRGB()&&this.transparent.isSelected()?"transparent":BI.DOM.rgb2hex(BI.DOM.json2rgb({r:this.storeValue.r,g:this.storeValue.g,b:this.storeValue.b}))}}),BI.ColorPickerEditor.EVENT_CHANGE="ColorPickerEditor.EVENT_CHANGE",BI.shortcut("bi.color_picker_editor",BI.ColorPickerEditor),BI.SimpleColorPickerEditor=BI.inherit(BI.Widget,{constants:{REB_WIDTH:32},_defaultConfig:function(){return BI.extend(BI.SimpleColorPickerEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-color-picker-editor",height:30})},_init:function(){BI.SimpleColorPickerEditor.superclass._init.apply(this,arguments);var a=this,b=(this.options,this.constants);this.colorShow=BI.createWidget({type:"bi.layout",cls:"color-picker-editor-display bi-card bi-border",height:16,width:16});var c=BI.createWidgets(BI.createItems([{text:"R"},{text:"G"},{text:"B"}],{type:"bi.label",cls:"color-picker-editor-label",width:20,height:20})),d=function(a){return BI.isNumeric(a)&&(0|a)>=0&&(0|a)<=255},e=BI.createWidgets([{},{},{}],{type:"bi.small_text_editor",cls:"color-picker-editor-input",validationChecker:d,errorText:BI.i18nText("BI-Color_Picker_Error_Text"),allowBlank:!0,value:255,width:b.REB_WIDTH,height:20});BI.each(e,function(b,c){c.on(BI.TextEditor.EVENT_CHANGE,function(){a.R.isValid()&&a.G.isValid()&&a.B.isValid()&&(a.colorShow.element.css("background-color",a.getValue()),a.fireEvent(BI.SimpleColorPickerEditor.EVENT_CHANGE))})}),this.R=e[0],this.G=e[1],this.B=e[2],BI.createWidget({type:"bi.vertical_adapt",element:this,items:[{el:this.colorShow,width:16,lgap:20,rgap:15},{el:c[0],width:20},{el:this.R,width:b.REB_WIDTH},{el:c[1],width:20},{el:this.G,width:b.REB_WIDTH},{el:c[2],width:20},{el:this.B,width:b.REB_WIDTH}]})},setValue:function(a){this.colorShow.element.css({"background-color":a});var b=BI.DOM.rgb2json(BI.DOM.hex2rgb(a));this.R.setValue(BI.isNull(b.r)?"":b.r),this.G.setValue(BI.isNull(b.g)?"":b.g),this.B.setValue(BI.isNull(b.b)?"":b.b)},getValue:function(){return BI.DOM.rgb2hex(BI.DOM.json2rgb({r:this.R.getValue(),g:this.G.getValue(),b:this.B.getValue()}))}}),BI.SimpleColorPickerEditor.EVENT_CHANGE="ColorPickerEditor.EVENT_CHANGE",BI.shortcut("bi.simple_color_picker_editor",BI.SimpleColorPickerEditor),BI.Farbtastic=BI.inherit(BI.BasicButton,{constants:{RADIUS:84,SQUARE:100,WIDTH:194},props:{baseCls:"bi-farbtastic",width:195,height:195,stopPropagation:!0,value:"#000000"},render:function(){var a=this;return{type:"bi.absolute",items:[{el:{type:"bi.layout",cls:"",ref:function(b){a.colorWrapper=b}},top:47,left:47,width:101,height:101},{el:{type:"bi.layout",cls:"wheel",ref:function(b){a.wheel=b}},left:0,right:0,top:0,bottom:0},{el:{type:"bi.layout",cls:"overlay",ref:function(b){a.overlay=b}},top:47,left:47,width:101,height:101},{el:{type:"bi.layout",cls:"marker",ref:function(b){a.hMarker=b},scrollable:!1,width:17,height:17}},{el:{type:"bi.layout",cls:"marker",ref:function(b){a.slMarker=b},scrollable:!1,width:17,height:17}}]}},mounted:function(){var a=this.options;BI.isKey(a.value)&&this.setValue(a.value)},_unpack:function(a){return 7===a.length?[parseInt("0x"+a.substring(1,3))/255,parseInt("0x"+a.substring(3,5))/255,parseInt("0x"+a.substring(5,7))/255]:4===a.length?[parseInt("0x"+a.substring(1,2))/15,parseInt("0x"+a.substring(2,3))/15,parseInt("0x"+a.substring(3,4))/15]:void 0},_pack:function(a){var b=Math.round(255*a[0]),c=Math.round(255*a[1]),d=Math.round(255*a[2]);return"#"+(b<16?"0":"")+b.toString(16)+(c<16?"0":"")+c.toString(16)+(d<16?"0":"")+d.toString(16)},_setColor:function(a){var b=this._unpack(a);this.value!==a&&b&&(this.value=a,this.rgb=b,this.hsl=this._RGBToHSL(this.rgb),this._updateDisplay())},_setHSL:function(a){return this.hsl=a,this.rgb=this._HSLToRGB(a),this.value=this._pack(this.rgb),this._updateDisplay(),this},_HSLToRGB:function(a){var b,c,d=a[0],e=a[1],f=a[2];return c=f<=.5?f*(e+1):f+e-f*e,b=2*f-c,[this._hueToRGB(b,c,d+.33333),this._hueToRGB(b,c,d),this._hueToRGB(b,c,d-.33333)]},_hueToRGB:function(a,b,c){return c=c<0?c+1:c>1?c-1:c,6*c<1?a+(b-a)*c*6:2*c<1?b:3*c<2?a+(b-a)*(.66666-c)*6:a},_RGBToHSL:function(a){var b,c,d,e,f,g,h=a[0],i=a[1],j=a[2];return b=Math.min(h,Math.min(i,j)),c=Math.max(h,Math.max(i,j)),d=c-b,g=(b+c)/2,f=0,g>0&&g<1&&(f=d/(g<.5?2*g:2-2*g)),e=0,d>0&&(c==h&&c!=i&&(e+=(i-j)/d),c==i&&c!=j&&(e+=2+(j-h)/d),c==j&&c!=h&&(e+=4+(h-i)/d),e/=6),[e,f,g]},_updateDisplay:function(){var a=6.28*this.hsl[0];this.hMarker.element.css({left:Math.round(Math.sin(a)*this.constants.RADIUS+this.constants.WIDTH/2)+"px",top:Math.round(-Math.cos(a)*this.constants.RADIUS+this.constants.WIDTH/2)+"px"}),this.slMarker.element.css({left:Math.round(this.constants.SQUARE*(.5-this.hsl[1])+this.constants.WIDTH/2)+"px",top:Math.round(this.constants.SQUARE*(.5-this.hsl[2])+this.constants.WIDTH/2)+"px"}),this.colorWrapper.element.css("backgroundColor",this._pack(this._HSLToRGB([this.hsl[0],1,.5]))),this.fireEvent(BI.Farbtastic.EVENT_CHANGE,this.getValue(),this)},_absolutePosition:function(a){var b={x:a.offsetLeft,y:a.offsetTop};if(a.offsetParent){var c=this._absolutePosition(a.offsetParent);b.x+=c.x,b.y+=c.y}return b},_widgetCoords:function(a){var b,c,d=a.target||a.srcElement,e=this.wheel.element[0];if("undefined"!=typeof a.offsetX){for(var f={x:a.offsetX,y:a.offsetY},g=d;g;)g.mouseX=f.x,g.mouseY=f.y,f.x+=g.offsetLeft,f.y+=g.offsetTop,g=g.offsetParent;for(var g=e,h={x:0,y:0};g;){if("undefined"!=typeof g.mouseX){b=g.mouseX-h.x,c=g.mouseY-h.y;break}h.x+=g.offsetLeft,h.y+=g.offsetTop,g=g.offsetParent}for(g=d;g;)g.mouseX=void 0,g.mouseY=void 0,g=g.offsetParent}else{var f=this._absolutePosition(e);b=(a.pageX||0)-f.x,c=(a.pageY||0)-f.y}return{x:b-this.constants.WIDTH/2,y:c-this.constants.WIDTH/2}},_doMouseMove:function(a){var b=this._widgetCoords(a);if(this.circleDrag){var c=Math.atan2(b.x,-b.y)/6.28;c<0&&(c+=1),this._setHSL([c,this.hsl[1],this.hsl[2]])}else{var d=Math.max(0,Math.min(1,-(b.x/this.constants.SQUARE)+.5)),e=Math.max(0,Math.min(1,-(b.y/this.constants.SQUARE)+.5));this._setHSL([this.hsl[0],d,e])}},doClick:function(a){var b=this._widgetCoords(a);return this.circleDrag=2*Math.max(Math.abs(b.x),Math.abs(b.y))>this.constants.SQUARE,this._doMouseMove(a),!1},setValue:function(a){this._setColor(a)},getValue:function(){return this.value}}),BI.Farbtastic.EVENT_CHANGE="Farbtastic.EVENT_CHANGE",BI.shortcut("bi.farbtastic",BI.Farbtastic),BI.BubbleCombo=BI.inherit(BI.Widget,{_const:{TRIANGLE_LENGTH:6},_defaultConfig:function(){return BI.extend(BI.BubbleCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-bubble-combo",trigger:"click",toggle:!0,direction:"bottom,left",isDefaultInit:!1,destroyWhenHide:!1,isNeedAdjustHeight:!0,isNeedAdjustWidth:!0,stopPropagation:!1,adjustLength:0,hideChecker:BI.emptyFn,offsetStyle:"left",el:{},popup:{}})},_init:function(){BI.BubbleCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.combo=BI.createWidget({type:"bi.combo",element:this,trigger:b.trigger,toggle:b.toggle,container:b.container,direction:b.direction,isDefaultInit:b.isDefaultInit,destroyWhenHide:b.destroyWhenHide,isNeedAdjustHeight:b.isNeedAdjustHeight,isNeedAdjustWidth:b.isNeedAdjustWidth,adjustLength:this._getAdjustLength(),stopPropagation:b.stopPropagation,adjustXOffset:0,adjustYOffset:0,hideChecker:b.hideChecker,offsetStyle:b.offsetStyle,el:b.el,popup:BI.extend({type:"bi.bubble_popup_view"},b.popup)}),this.combo.on(BI.Combo.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.BubbleCombo.EVENT_TRIGGER_CHANGE,arguments)}),this.combo.on(BI.Combo.EVENT_CHANGE,function(){a.fireEvent(BI.BubbleCombo.EVENT_CHANGE,arguments)}),this.combo.on(BI.Combo.EVENT_EXPAND,function(){a.fireEvent(BI.BubbleCombo.EVENT_EXPAND,arguments)}),this.combo.on(BI.Combo.EVENT_COLLAPSE,function(){a.fireEvent(BI.BubbleCombo.EVENT_COLLAPSE,arguments)}),this.combo.on(BI.Combo.EVENT_AFTER_INIT,function(){a.fireEvent(BI.BubbleCombo.EVENT_AFTER_INIT,arguments)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW,arguments)}),this.combo.on(BI.Combo.EVENT_AFTER_POPUPVIEW,function(){a._showTriangle(),a.fireEvent(BI.BubbleCombo.EVENT_AFTER_POPUPVIEW,arguments)}),this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW,function(){a._hideTriangle(),a.fireEvent(BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW,arguments)}),this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.fireEvent(BI.BubbleCombo.EVENT_AFTER_HIDEVIEW,arguments)})},_getAdjustLength:function(){return this._const.TRIANGLE_LENGTH+this.options.adjustLength},_createTriangle:function(a){var b={},c={},d=this.options.adjustLength,e=this.element.offset(),f=e.left,g=e.left+this.element.outerWidth(),h=e.top,i=e.top+this.element.outerHeight();switch(a){case"left":b={top:h,height:this.element.outerHeight(),left:f-d-this._const.TRIANGLE_LENGTH},c={width:this._const.TRIANGLE_LENGTH};break;case"right":b={top:h,height:this.element.outerHeight(),left:g+d},c={width:this._const.TRIANGLE_LENGTH};break;case"top":b={left:f,width:this.element.outerWidth(),top:h-d-this._const.TRIANGLE_LENGTH},c={height:this._const.TRIANGLE_LENGTH};break;case"bottom":b={left:f,width:this.element.outerWidth(),top:i+d},c={height:this._const.TRIANGLE_LENGTH}}this.triangle&&this.triangle.destroy(),this.triangle=BI.createWidget(c,{type:"bi.center_adapt",cls:"button-combo-triangle-wrapper",items:[{type:"bi.layout",cls:"bubble-combo-triangle-"+a}]}),b.el=this.triangle,BI.createWidget({type:"bi.absolute",element:this,items:[b]})},_createLeftTriangle:function(){this._createTriangle("left")},_createRightTriangle:function(){this._createTriangle("right")},_createTopTriangle:function(){this._createTriangle("top")},_createBottomTriangle:function(){this._createTriangle("bottom")},_showTriangle:function(){var a=this.combo.getPopupPosition();switch(a.dir){case"left,top":case"left,bottom":this._createLeftTriangle();break;case"right,top":case"right,bottom":this._createRightTriangle();break;case"top,left":case"top,right":this._createTopTriangle();break;case"bottom,left":case"bottom,right":this._createBottomTriangle()}},_hideTriangle:function(){this.triangle&&this.triangle.destroy(),this.triangle=null},hideView:function(){this._hideTriangle(),this.combo&&this.combo.hideView()},showView:function(){this.combo&&this.combo.showView()},isViewVisible:function(){return this.combo.isViewVisible()}}),BI.BubbleCombo.EVENT_TRIGGER_CHANGE="EVENT_TRIGGER_CHANGE",BI.BubbleCombo.EVENT_CHANGE="EVENT_CHANGE",BI.BubbleCombo.EVENT_EXPAND="EVENT_EXPAND",BI.BubbleCombo.EVENT_COLLAPSE="EVENT_COLLAPSE",BI.BubbleCombo.EVENT_AFTER_INIT="EVENT_AFTER_INIT",BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.BubbleCombo.EVENT_AFTER_POPUPVIEW="EVENT_AFTER_POPUPVIEW",BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW="EVENT_BEFORE_HIDEVIEW",BI.BubbleCombo.EVENT_AFTER_HIDEVIEW="EVENT_AFTER_HIDEVIEW",BI.shortcut("bi.bubble_combo",BI.BubbleCombo),BI.BubblePopupView=BI.inherit(BI.PopupView,{_defaultConfig:function(){var a=BI.BubblePopupView.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:a.baseCls+" bi-bubble-popup-view",minWidth:220,maxWidth:300,minHeight:90})},_init:function(){BI.BubblePopupView.superclass._init.apply(this,arguments)}}),BI.shortcut("bi.bubble_popup_view",BI.BubblePopupView),BI.BubblePopupBarView=BI.inherit(BI.BubblePopupView,{_defaultConfig:function(){return BI.extend(BI.BubblePopupBarView.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-bubble-bar-popup-view",buttons:[{value:BI.i18nText("BI-Basic_Cancel"),ghost:!0},{value:BI.i18nText(BI.i18nText("BI-Basic_Sure"))}]})},_init:function(){BI.BubblePopupBarView.superclass._init.apply(this,arguments)},_createToolBar:function(){var a=this.options,b=this,c=[];return BI.each(a.buttons,function(a,d){BI.isWidget(d)?c.push(d):c.push(BI.extend({type:"bi.button",height:24,handler:function(a){b.fireEvent(BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON,a)}},d))}),BI.createWidget({type:"bi.center",height:44,rgap:15,items:[{type:"bi.right_vertical_adapt",lgap:10,items:c}]})},_createView:function(){var a=this.options,b=BI.createWidget({type:"bi.button_group",items:[a.el],layouts:[{type:"bi.vertical",cls:"bar-popup-container",hgap:15,tgap:10}]});return b.element.css("min-height",a.minHeight-44),b}}),BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON="EVENT_CLICK_TOOLBAR_BUTTON",BI.shortcut("bi.bubble_bar_popup_view",BI.BubblePopupBarView),BI.TextBubblePopupBarView=BI.inherit(BI.Widget,{props:function(){return{baseCls:"bi-text-bubble-bar-popup-view",text:"",buttons:[{level:"ignore",value:!1,text:BI.i18nText("BI-Basic_Cancel")},{value:!0,text:BI.i18nText("BI-Basic_Sure")}]}},render:function(){var a=this,b=this.options,c=BI.map(b.buttons,function(b,c){return BI.isWidget(c)?c:BI.extend({type:"bi.button",height:24,handler:function(b){a.fireEvent(BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON,b)}},c)});return{type:"bi.bubble_bar_popup_view",ref:function(){a.popup=this},el:{type:"bi.label",text:b.text,whiteSpace:"normal",textAlign:"left",ref:function(){a.text=this}},buttons:c}},populate:function(a){this.text.setText(a||this.options.text)}}),BI.TextBubblePopupBarView.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_bubble_bar_popup_view",BI.TextBubblePopupBarView),BI.EditorIconCheckCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.EditorIconCheckCombo.superclass._defaultConfig.apply(this,arguments),{baseClass:"bi-check-editor-combo",width:100,height:24,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:""})},_init:function(){BI.EditorIconCheckCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.editor_trigger",items:b.items,height:b.height,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText,value:b.value}),this.trigger.on(BI.EditorTrigger.EVENT_CHANGE,function(){a.popup.setValue(this.getValue()),a.fireEvent(BI.EditorIconCheckCombo.EVENT_CHANGE)}),this.popup=BI.createWidget({type:"bi.text_value_check_combo_popup",chooseType:b.chooseType,items:b.items,value:b.value}),this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.editorIconCheckCombo.hideView(),a.fireEvent(BI.EditorIconCheckCombo.EVENT_CHANGE)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editorIconCheckCombo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:300}})},setValue:function(a){this.editorIconCheckCombo.setValue(a)},getValue:function(){return this.trigger.getValue()},populate:function(a){this.options.items=a,this.editorIconCheckCombo.populate(a)}}),BI.EditorIconCheckCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.editor_icon_check_combo",BI.EditorIconCheckCombo),BI.IconCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.IconCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-icon-combo",width:24,height:24,el:{},popup:{},minWidth:100,maxWidth:"auto",maxHeight:300,direction:"bottom",adjustLength:3,adjustXOffset:0,adjustYOffset:0,offsetStyle:"left",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE})},_init:function(){BI.IconCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(b.el,{type:"bi.icon_combo_trigger",iconCls:b.iconCls,title:b.title,items:b.items,width:b.width,height:b.height,iconWidth:b.iconWidth,iconHeight:b.iconHeight,value:b.value}),this.popup=BI.createWidget(b.popup,{type:"bi.icon_combo_popup",chooseType:b.chooseType,items:b.items,value:b.value}),this.popup.on(BI.IconComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.iconCombo.hideView(),a.fireEvent(BI.IconCombo.EVENT_CHANGE)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.iconCombo=BI.createWidget({type:"bi.combo",element:this,direction:b.direction,trigger:b.trigger,container:b.container,adjustLength:b.adjustLength,adjustXOffset:b.adjustXOffset,adjustYOffset:b.adjustYOffset,offsetStyle:b.offsetStyle,el:this.trigger,popup:{el:this.popup,maxWidth:b.maxWidth,maxHeight:b.maxHeight,minWidth:b.minWidth}})},showView:function(){this.iconCombo.showView()},hideView:function(){this.iconCombo.hideView()},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){var a=this.popup.getValue();return BI.isNull(a)?[]:BI.isArray(a)?a:[a]},populate:function(a){this.options.items=a,this.iconCombo.populate(a)}}),BI.IconCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_combo",BI.IconCombo),BI.IconComboPopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.IconComboPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi.icon-combo-popup",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE})},_init:function(){BI.IconComboPopup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.popup=BI.createWidget({type:"bi.button_group",items:BI.createItems(a.items,{type:"bi.single_select_icon_text_item",height:24}),chooseType:a.chooseType,layouts:[{type:"bi.vertical"}],value:a.value}),this.popup.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.IconComboPopup.EVENT_CHANGE,c,d)}),BI.createWidget({type:"bi.vertical",element:this,vgap:5,items:[this.popup]})},populate:function(a){BI.IconComboPopup.superclass.populate.apply(this,arguments),a=BI.createItems(a,{type:"bi.single_select_icon_text_item",height:24}),this.popup.populate(a)},getValue:function(){return this.popup.getValue()},setValue:function(a){this.popup.setValue(a)}}),BI.IconComboPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_combo_popup",BI.IconComboPopup),BI.IconComboTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.IconComboTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-icon-combo-trigger",el:{},items:[],iconCls:"",width:24,height:24,isShowDown:!0,value:""})},_init:function(){BI.IconComboTrigger.superclass._init.apply(this,arguments);var a=this.options,b="";BI.isKey(a.value)&&(b=this._digest(a.value,a.items)),this.button=BI.createWidget(a.el,{type:"bi.icon_change_button",cls:"icon-combo-trigger-icon",iconCls:b,disableSelected:!0,width:a.isShowDown?a.width-12:a.width,height:a.height,iconWidth:a.iconWidth,iconHeight:a.iconHeight,selected:BI.isNotEmptyString(b)}),this.down=BI.createWidget({type:"bi.icon_button",disableSelected:!0,cls:"icon-combo-down-icon trigger-triangle-font font-size-12",width:12,height:8,selected:BI.isNotEmptyString(b)}),this.down.setVisible(a.isShowDown),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.button,left:0,right:0,top:0,bottom:0},{el:this.down,right:3,bottom:0}]})},_digest:function(a,b){var c="";return a=BI.isArray(a)?a[0]:a,BI.any(b,function(b,d){if(a===d.value)return c=d.iconCls,!0}),c},populate:function(a){var b=this.options;this.options.items=a||[],this.button.setIcon(b.iconCls),this.button.setSelected(!1),this.down.setSelected(!1)},setValue:function(a){BI.IconComboTrigger.superclass.setValue.apply(this,arguments);var b=this.options,c=this._digest(a,this.options.items);a=BI.isArray(a)?a[0]:a,BI.isNotEmptyString(c)?(this.button.setIcon(c),this.button.setSelected(!0),this.down.setSelected(!0)):(this.button.setIcon(b.iconCls),this.button.setSelected(!1),this.down.setSelected(!1))}}),BI.IconComboTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_combo_trigger",BI.IconComboTrigger),BI.IconTextValueCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.IconTextValueCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-icon-text-value-combo",height:24,iconHeight:null,iconWidth:null,value:"",attributes:{tabIndex:0}})},_init:function(){BI.IconTextValueCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.select_icon_text_trigger",cls:"icon-text-value-trigger",items:b.items,height:b.height,text:b.text,iconCls:b.iconCls,value:b.value,iconHeight:b.iconHeight,iconWidth:b.iconWidth,iconWrapperWidth:b.iconWrapperWidth,title:b.title,warningTitle:b.warningTitle}),this.popup=BI.createWidget({type:"bi.icon_text_value_combo_popup",items:b.items,value:b.value,iconHeight:b.iconHeight,iconWidth:b.iconWidth,iconWrapperWidth:b.iconWrapperWidth}),this.popup.on(BI.IconTextValueComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.textIconCombo.hideView(),a.fireEvent(BI.IconTextValueCombo.EVENT_CHANGE,arguments)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.textIconCombo=BI.createWidget({type:"bi.combo",element:this,container:b.container,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:240}}),BI.isKey(b.value)&&this.setValue(b.value)},_checkError:function(a){if(BI.isNotNull(a)){a=BI.isArray(a)?a:[a];var b=BI.find(this.options.items,function(b,c){return BI.contains(a,c.value)});BI.isNull(b)?(this.trigger.options.tipType="warning",this.element.removeClass("combo-error").addClass("combo-error")):(this.trigger.options.tipType="success",this.element.removeClass("combo-error"))}},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a),this._checkError(a)},getValue:function(){var a=this.popup.getValue();return BI.isNull(a)?[]:BI.isArray(a)?a:[a]},populate:function(a){this.options.items=a,this.textIconCombo.populate(a)}}),BI.IconTextValueCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_text_value_combo",BI.IconTextValueCombo),BI.IconTextValueComboPopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.IconTextValueComboPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-icon-text-icon-popup"})},_init:function(){BI.IconTextValueComboPopup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.popup=BI.createWidget({type:"bi.button_group",items:BI.createItems(a.items,{type:"bi.single_select_icon_text_item",height:24,iconHeight:a.iconHeight,iconWidth:a.iconWidth,iconWrapperWidth:a.iconWrapperWidth}),chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,layouts:[{type:"bi.vertical"}],behaviors:{redmark:function(){return!0}},value:a.value}),this.popup.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.IconTextValueComboPopup.EVENT_CHANGE,c,d)}),BI.createWidget({type:"bi.vertical",element:this,vgap:5,items:[this.popup]})},populate:function(a,b){BI.IconTextValueComboPopup.superclass.populate.apply(this,arguments);var c=this.options;a=BI.createItems(a,{type:"bi.single_select_icon_text_item",height:24,iconWrapperWidth:c.iconWrapperWidth,iconHeight:c.iconHeight,iconWidth:c.iconWidth}),this.popup.populate(a,b)},getValue:function(){return this.popup.getValue()},setValue:function(a){this.popup.setValue(a)}}),BI.IconTextValueComboPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.icon_text_value_combo_popup",BI.IconTextValueComboPopup),BI.SearchTextValueCombo=BI.inherit(BI.Widget,{props:{baseCls:"bi-search-text-value-combo",height:24,text:"",items:[],tipType:"",warningTitle:"",attributes:{tabIndex:0}},render:function(){var a=this,b=this.options;return{type:"bi.absolute",items:[{el:{type:"bi.combo",container:b.container,adjustLength:2,toggle:!1,ref:function(){a.combo=this},el:{type:"bi.search_text_value_trigger",cls:"search-text-value-trigger",ref:function(){a.trigger=this},items:b.items,height:b.height-2,text:b.text,value:b.value,tipType:b.tipType,warningTitle:b.warningTitle,title:b.title,listeners:[{eventName:BI.SearchTextValueTrigger.EVENT_CHANGE,action:function(){a.setValue(this.getValue()),a.combo.hideView(),a.fireEvent(BI.SearchTextValueCombo.EVENT_CHANGE)}}]},popup:{el:{type:"bi.text_value_combo_popup",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,value:b.value,items:b.items,ref:function(){a.popup=this,a.trigger.getSearcher().setAdapter(a.popup)},listeners:[{eventName:BI.TextValueComboPopup.EVENT_CHANGE,action:function(){a.setValue(this.getValue()),a.combo.hideView(),a.fireEvent(BI.SearchTextValueCombo.EVENT_CHANGE)}}]},value:b.value,maxHeight:252},listeners:[{eventName:BI.Combo.EVENT_AFTER_HIDEVIEW,action:function(){a.trigger.stopEditing()}},{eventName:BI.Combo.EVENT_BEFORE_POPUPVIEW,action:function(){a.fireEvent(BI.SearchTextValueCombo.EVENT_BEFORE_POPUPVIEW)}}],hideChecker:function(b){return 0===a.triggerBtn.element.find(b.target).length}},left:0,right:0,bottom:0,top:0},{el:{type:"bi.trigger_icon_button",cls:"trigger-icon-button",ref:function(){a.triggerBtn=this},width:b.height,height:b.height,handler:function(){a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}},right:0,bottom:0,top:0}]}},mounted:function(){var a=this.options;BI.isKey(a.value)&&this._checkError(a.value)},_checkError:function(a){if(BI.isNotNull(a)){a=BI.isArray(a)?a:[a];var b=BI.find(this.options.items,function(b,c){return BI.contains(a,c.value)});BI.isNull(b)?(this.element.removeClass("combo-error").addClass("combo-error"),this.trigger.attr("tipType","warning")):(this.element.removeClass("combo-error"),this.trigger.attr("tipType","success"))}},populate:function(a){this.options.items=a,this.combo.populate(a)},setValue:function(a){this.combo.setValue(a),this._checkError(a)},getValue:function(){var a=this.combo.getValue();return BI.isNull(a)?[]:BI.isArray(a)?a:[a]}}),BI.SearchTextValueCombo.EVENT_CHANGE="EVENT_CHANGE",BI.SearchTextValueCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.search_text_value_combo",BI.SearchTextValueCombo),BI.SearchTextValueComboPopup=BI.inherit(BI.Pane,{props:{baseCls:"bi-search-text-value-popup"},render:function(){var a=this,b=this.options;return{type:"bi.vertical",vgap:5,items:[{type:"bi.button_group",ref:function(){a.popup=this},items:BI.createItems(b.items,{type:"bi.single_select_item",textAlign:b.textAlign,height:24}),chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,layouts:[{type:"bi.vertical"}],behaviors:{redmark:function(){return!0}},value:b.value,listeners:[{eventName:BI.Controller.EVENT_CHANGE,action:function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.SearchTextValueComboPopup.EVENT_CHANGE,c,d)}}]}]}},populate:function(a,b,c){var d=BI.concat(a,b);BI.SearchTextValueComboPopup.superclass.populate.apply(this,d),d=BI.createItems(d,{type:"bi.single_select_item",height:24}),this.popup.populate(d,c)},getValue:function(){return this.popup.getValue()},setValue:function(a){this.popup.setValue(a)}}),BI.SearchTextValueComboPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.search_text_value_combo_popup",BI.SearchTextValueComboPopup),BI.SearchTextValueTrigger=BI.inherit(BI.Trigger,{props:{extraCls:"bi-search-text-value-trigger bi-border",height:24},render:function(){var a=this,b=this.options;return{type:"bi.htape",items:[{el:{type:"bi.searcher",ref:function(){a.searcher=this},isAutoSearch:!1,el:{type:"bi.state_editor",ref:function(){a.editor=this},text:this._digest(b.value,b.items),value:b.value,height:b.height,tipText:""},popup:{type:"bi.search_text_value_combo_popup",cls:"bi-card",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE},onSearch:function(a,c){var d=a.keyword,e=BI.Func.getSearchResult(b.items,d),f=e.match,g=e.find;c(g,f)},listeners:[{eventName:BI.Searcher.EVENT_CHANGE, -action:function(){a.fireEvent(BI.SearchTextValueTrigger.EVENT_CHANGE)}}]}},{el:{type:"bi.layout",width:24},width:24}]}},_setState:function(a){this.editor.setState(a)},_digest:function(a,b){var c=this.options;a=BI.isArray(a)?a:[a];var d=[],e=BI.Tree.transformToArrayFormat(b);return BI.each(e,function(b,c){BI.deepContains(a,c.value)&&!BI.contains(d,c.text||c.value)&&d.push(c.text||c.value)}),d.length>0?d.join(","):BI.isFunction(c.text)?c.text():c.text},stopEditing:function(){this.searcher.stopSearch()},getSearcher:function(){return this.searcher},populate:function(a){this.options.items=a},setValue:function(a){this._setState(this._digest(a,this.options.items))},getValue:function(){return this.searcher.getValue()}}),BI.SearchTextValueTrigger.EVENT_SEARCHING="EVENT_SEARCHING",BI.SearchTextValueTrigger.EVENT_STOP="EVENT_STOP",BI.SearchTextValueTrigger.EVENT_START="EVENT_START",BI.SearchTextValueTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.search_text_value_trigger",BI.SearchTextValueTrigger),BI.TextValueCheckCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.TextValueCheckCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-value-check-combo",width:100,height:24,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,value:"",attributes:{tabIndex:0}})},_init:function(){BI.TextValueCheckCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.select_text_trigger",cls:"text-value-trigger",items:b.items,height:b.height,text:b.text,value:b.value}),this.popup=BI.createWidget({type:"bi.text_value_check_combo_popup",chooseType:b.chooseType,items:b.items,value:b.value}),this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.textIconCheckCombo.hideView(),a.fireEvent(BI.TextValueCheckCombo.EVENT_CHANGE)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.textIconCheckCombo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:300}}),BI.isKey(b.value)&&this.setValue(b.value)},setTitle:function(a){this.trigger.setTitle(a)},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},setWarningTitle:function(a){this.trigger.setWarningTitle(a)},getValue:function(){var a=this.popup.getValue();return BI.isNull(a)?[]:BI.isArray(a)?a:[a]},populate:function(a){this.options.items=a,this.textIconCheckCombo.populate(a)}}),BI.TextValueCheckCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_check_combo",BI.TextValueCheckCombo),BI.SmallTextValueCheckCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SmallTextValueCheckCombo.superclass._defaultConfig.apply(this,arguments),{width:100,height:24,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,text:""})},_init:function(){BI.SmallTextValueCheckCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.small_select_text_trigger",items:b.items,height:b.height,text:b.text,value:b.value}),this.popup=BI.createWidget({type:"bi.text_value_check_combo_popup",chooseType:b.chooseType,items:b.items,value:b.value}),this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.SmallTextIconCheckCombo.hideView(),a.fireEvent(BI.SmallTextValueCheckCombo.EVENT_CHANGE)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.SmallTextIconCheckCombo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:300}})},setValue:function(a){this.SmallTextIconCheckCombo.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.options.items=a,this.SmallTextIconCheckCombo.populate(a)}}),BI.SmallTextValueCheckCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.small_text_value_check_combo",BI.SmallTextValueCheckCombo),BI.TextValueCheckComboPopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.TextValueCheckComboPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-icon-popup",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE})},_init:function(){BI.TextValueCheckComboPopup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.popup=BI.createWidget({type:"bi.button_group",items:this._formatItems(a.items),chooseType:a.chooseType,layouts:[{type:"bi.vertical"}],value:a.value}),this.popup.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.TextValueCheckComboPopup.EVENT_CHANGE,c,d)}),BI.createWidget({type:"bi.vertical",element:this,vgap:5,items:[this.popup]})},_formatItems:function(a){return BI.map(a,function(a,b){return BI.extend({type:"bi.single_select_item",cls:"bi-list-item",height:24},b)})},populate:function(a){BI.TextValueCheckComboPopup.superclass.populate.apply(this,arguments),this.popup.populate(this._formatItems(a))},getValue:function(){return this.popup.getValue()},setValue:function(a){this.popup.setValue(a)}}),BI.TextValueCheckComboPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_check_combo_popup",BI.TextValueCheckComboPopup),BI.TextValueCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.TextValueCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-value-combo",height:24,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,text:"",value:"",attributes:{tabIndex:0}})},_init:function(){BI.TextValueCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.select_text_trigger",cls:"text-value-trigger",items:b.items,height:b.height,text:b.text,value:b.value,warningTitle:b.warningTitle}),this.popup=BI.createWidget({type:"bi.text_value_combo_popup",chooseType:b.chooseType,value:b.value,items:b.items}),this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.textIconCombo.hideView(),a.fireEvent(BI.TextValueCombo.EVENT_CHANGE,arguments)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.textIconCombo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:240}}),BI.isKey(b.value)&&this._checkError(b.value)},_checkError:function(a){if(BI.isNotNull(a)){a=BI.isArray(a)?a:[a];var b=BI.find(this.options.items,function(b,c){return BI.contains(a,c.value)});BI.isNull(b)?(this.trigger.setTipType("warning"),this.element.removeClass("combo-error").addClass("combo-error")):(this.trigger.setTipType("success"),this.element.removeClass("combo-error"))}},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a),this._checkError(a)},getValue:function(){var a=this.popup.getValue();return BI.isNull(a)?[]:BI.isArray(a)?a:[a]},populate:function(a){this.options.items=a,this.textIconCombo.populate(a)}}),BI.TextValueCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_combo",BI.TextValueCombo),BI.SmallTextValueCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SmallTextValueCombo.superclass._defaultConfig.apply(this,arguments),{width:100,height:20,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,el:{},text:""})},_init:function(){BI.SmallTextValueCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(b.el,{type:"bi.small_select_text_trigger",items:b.items,height:b.height,text:b.text}),this.popup=BI.createWidget({type:"bi.text_value_combo_popup",chooseType:b.chooseType,items:b.items}),this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.SmallTextValueCombo.hideView(),a.fireEvent(BI.SmallTextValueCombo.EVENT_CHANGE)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.SmallTextValueCombo=BI.createWidget({type:"bi.combo",element:this,container:b.container,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:240}})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.options.items=a,this.SmallTextValueCombo.populate(a)}}),BI.SmallTextValueCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.small_text_value_combo",BI.SmallTextValueCombo),BI.TextValueComboPopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.TextValueComboPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-icon-popup",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE})},_init:function(){BI.TextValueComboPopup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.popup=BI.createWidget({type:"bi.button_group",items:BI.createItems(a.items,{type:"bi.single_select_item",textAlign:a.textAlign,height:24}),chooseType:a.chooseType,layouts:[{type:"bi.vertical"}],value:a.value}),this.popup.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.TextValueComboPopup.EVENT_CHANGE,c,d)}),this.check(),BI.createWidget({type:"bi.vertical",element:this,vgap:5,items:[this.popup]})},populate:function(a){BI.TextValueComboPopup.superclass.populate.apply(this,arguments),a=BI.createItems(a,{type:"bi.single_select_item",height:24}),this.popup.populate(a)},getValue:function(){return this.popup.getValue()},setValue:function(a){this.popup.setValue(a)}}),BI.TextValueComboPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_combo_popup",BI.TextValueComboPopup),BI.TextValueDownListCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.TextValueDownListCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-value-down-list-combo",height:24,attributes:{tabIndex:0}})},_init:function(){BI.TextValueDownListCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this._createValueMap();var c;BI.isNotNull(b.value)&&(c=this._digest(b.value)),this.trigger=BI.createWidget({type:"bi.down_list_select_text_trigger",cls:"text-value-down-list-trigger",height:b.height,items:b.items,text:b.text,value:c}),this.combo=BI.createWidget({type:"bi.down_list_combo",element:this,chooseType:BI.Selection.Single,adjustLength:2,height:b.height,el:this.trigger,value:BI.isNull(c)?[]:[c],items:BI.deepClone(b.items)}),this.combo.on(BI.DownListCombo.EVENT_CHANGE,function(){var b=a.combo.getValue()[0].value;b!==a.value&&(a.setValue(b),a.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE))}),this.combo.on(BI.DownListCombo.EVENT_SON_VALUE_CHANGE,function(){var b=a.combo.getValue()[0].childValue;b!==a.value&&(a.setValue(b),a.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE))})},_createValueMap:function(){var a=this;this.valueMap={},BI.each(BI.flatten(this.options.items),function(b,c){BI.has(c,"el")?BI.each(c.children,function(b,d){a.valueMap[d.value]={value:c.el.value,childValue:d.value}}):a.valueMap[c.value]={value:c.value}})},_digest:function(a){return this.value=a,this.valueMap[a]},setValue:function(a){a=this._digest(a),this.combo.setValue([a]),this.trigger.setValue(a)},getValue:function(){var a=this.combo.getValue()[0];return[a.childValue||a.value]},populate:function(a){this.options.items=BI.flatten(a),this.combo.populate(a),this._createValueMap()}}),BI.TextValueDownListCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_down_list_combo",BI.TextValueDownListCombo),BI.DownListSelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.DownListSelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-select-text-trigger",height:24,text:""})},_init:function(){BI.DownListSelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.select_text_trigger",element:this,height:a.height,items:this._formatItemArray(a.items),text:a.text,value:BI.isNull(a.value)?"":a.value.childValue||a.value.value})},_formatItemArray:function(){var a=BI.flatten(BI.deepClone(this.options.items)),b=[];return BI.each(a,function(a,c){BI.has(c,"el")?(BI.each(c.children,function(a,b){b.text=c.el.text+"("+b.text+")"}),b=BI.concat(b,c.children)):b.push(c)}),b},setValue:function(a){this.trigger.setValue(a.childValue||a.value)},populate:function(a){this.trigger.populate(this._formatItemArray(a))}}),BI.shortcut("bi.down_list_select_text_trigger",BI.DownListSelectTextTrigger),BI.ClearEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.ClearEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-clear-editor",height:24,errorText:"",watermark:"",validationChecker:BI.emptyFn,quitChecker:BI.emptyFn})},_init:function(){BI.ClearEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,watermark:b.watermark,allowBlank:!0,errorText:b.errorText,validationChecker:b.validationChecker,quitChecker:b.quitChecker,value:b.value}),this.clear=BI.createWidget({type:"bi.icon_button",stopEvent:!0,cls:"search-close-h-font"}),this.clear.on(BI.IconButton.EVENT_CHANGE,function(){a.setValue(""),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.STOPEDIT),a.fireEvent(BI.ClearEditor.EVENT_CLEAR)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:this.clear,width:24}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.ClearEditor.EVENT_FOCUS)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.ClearEditor.EVENT_BLUR)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.ClearEditor.EVENT_CLICK)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a._checkClear(),a.fireEvent(BI.ClearEditor.EVENT_CHANGE)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.ClearEditor.EVENT_KEY_DOWN,b)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.ClearEditor.EVENT_SPACE)}),this.editor.on(BI.Editor.EVENT_BACKSPACE,function(){a.fireEvent(BI.ClearEditor.EVENT_BACKSPACE)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.ClearEditor.EVENT_VALID)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.ClearEditor.EVENT_ERROR)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.ClearEditor.EVENT_ENTER)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.ClearEditor.EVENT_RESTRICT)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a._checkClear(),a.fireEvent(BI.ClearEditor.EVENT_EMPTY)}),this.editor.on(BI.Editor.EVENT_REMOVE,function(){a.fireEvent(BI.ClearEditor.EVENT_REMOVE)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a.fireEvent(BI.ClearEditor.EVENT_CONFIRM)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a.fireEvent(BI.ClearEditor.EVENT_CHANGE_CONFIRM)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.ClearEditor.EVENT_START)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.ClearEditor.EVENT_PAUSE)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.ClearEditor.EVENT_STOP)}),BI.isKey(b.value)?this.clear.visible():this.clear.invisible()},_checkClear:function(){this.getValue()?this.clear.visible():this.clear.invisible()},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},getValue:function(){if(this.isValid()){var a=this.editor.getValue().match(/[\S]+/g);return BI.isNull(a)?"":a[a.length-1]}},setValue:function(a){this.editor.setValue(a),BI.isKey(a)&&this.clear.visible()},isValid:function(){return this.editor.isValid()}}),BI.ClearEditor.EVENT_CHANGE="EVENT_CHANGE",BI.ClearEditor.EVENT_FOCUS="EVENT_FOCUS",BI.ClearEditor.EVENT_BLUR="EVENT_BLUR",BI.ClearEditor.EVENT_CLICK="EVENT_CLICK",BI.ClearEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.ClearEditor.EVENT_SPACE="EVENT_SPACE",BI.ClearEditor.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.ClearEditor.EVENT_CLEAR="EVENT_CLEAR",BI.ClearEditor.EVENT_START="EVENT_START",BI.ClearEditor.EVENT_PAUSE="EVENT_PAUSE",BI.ClearEditor.EVENT_STOP="EVENT_STOP",BI.ClearEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.ClearEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.ClearEditor.EVENT_VALID="EVENT_VALID",BI.ClearEditor.EVENT_ERROR="EVENT_ERROR",BI.ClearEditor.EVENT_ENTER="EVENT_ENTER",BI.ClearEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.ClearEditor.EVENT_REMOVE="EVENT_REMOVE",BI.ClearEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.clear_editor",BI.ClearEditor),BI.ShelterEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.ShelterEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-shelter-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:"",height:24,textAlign:"left"})},_init:function(){BI.ShelterEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"shelter-editor-text",title:b.title,warningTitle:b.warningTitle,tipType:b.tipType,textAlign:b.textAlign,height:b.height,hgap:b.hgap}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.text.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.ShelterEditor.EVENT_CLICK_LABEL)}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.ShelterEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.ShelterEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.ShelterEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.ShelterEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.ShelterEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.ShelterEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.ShelterEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.ShelterEditor.EVENT_CHANGE_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.ShelterEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.ShelterEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.ShelterEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.ShelterEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a._checkText(),a.fireEvent(BI.ShelterEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.ShelterEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.ShelterEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.ShelterEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint(),a._checkText(),this.text.doRedMark(b.keyword)},_checkText:function(){var a=this.options;""===this.editor.getValue()?(this.text.setValue(a.watermark||""),this.text.element.addClass("bi-water-mark")):(this.text.setValue(this.editor.getValue()),this.text.element.removeClass("bi-water-mark"))},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},setTitle:function(a){this.text.setTitle(a)},setWarningTitle:function(a){this.text.setWarningTitle(a)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint(),this._checkText()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setTextStyle:function(a){this.text.setStyle(a)},setValue:function(a){this.editor.setValue(a),this._checkText(),this.text.doRedMark(this.options.keyword)},getValue:function(){return this.editor.getValue()},getState:function(){return this.text.getValue()},setState:function(a){this._showHint(),this.text.setValue(a)}}),BI.ShelterEditor.EVENT_CHANGE="EVENT_CHANGE",BI.ShelterEditor.EVENT_FOCUS="EVENT_FOCUS",BI.ShelterEditor.EVENT_BLUR="EVENT_BLUR",BI.ShelterEditor.EVENT_CLICK="EVENT_CLICK",BI.ShelterEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.ShelterEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.ShelterEditor.EVENT_START="EVENT_START",BI.ShelterEditor.EVENT_PAUSE="EVENT_PAUSE",BI.ShelterEditor.EVENT_STOP="EVENT_STOP",BI.ShelterEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.ShelterEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.ShelterEditor.EVENT_VALID="EVENT_VALID",BI.ShelterEditor.EVENT_ERROR="EVENT_ERROR",BI.ShelterEditor.EVENT_ENTER="EVENT_ENTER",BI.ShelterEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.ShelterEditor.EVENT_SPACE="EVENT_SPACE",BI.ShelterEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.shelter_editor",BI.ShelterEditor),BI.SignEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SignEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-sign-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:"",height:24})},_init:function(){BI.SignEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"sign-editor-text",title:b.title,warningTitle:b.warningTitle,tipType:b.tipType,textAlign:"left",height:b.height,hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.selectAll()}}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.SignEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.SignEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.SignEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.SignEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.SignEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.SignEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.SignEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.SignEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.SignEditor.EVENT_CHANGE_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.SignEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.SignEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.SignEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.SignEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a._checkText(),a.fireEvent(BI.SignEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.SignEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.SignEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.SignEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint(),a._checkText()},_checkText:function(){var a=this.options;BI.nextTick(BI.bind(function(){""===this.editor.getValue()?(this.text.setValue(a.watermark||""),this.text.element.addClass("bi-water-mark")):(this.text.setValue(this.editor.getValue()),this.text.element.removeClass("bi-water-mark"),this.text.doRedMark(a.keyword))},this))},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},setTitle:function(a){this.text.setTitle(a)},setWarningTitle:function(a){this.text.setWarningTitle(a)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint(),this._checkText()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a),this._checkText()},getValue:function(){return this.editor.getValue()},getState:function(){return this.text.getValue()},setState:function(a){this._showHint(),this.text.setValue(a)}}),BI.SignEditor.EVENT_CHANGE="EVENT_CHANGE",BI.SignEditor.EVENT_FOCUS="EVENT_FOCUS",BI.SignEditor.EVENT_BLUR="EVENT_BLUR",BI.SignEditor.EVENT_CLICK="EVENT_CLICK",BI.SignEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.SignEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.SignEditor.EVENT_START="EVENT_START",BI.SignEditor.EVENT_PAUSE="EVENT_PAUSE",BI.SignEditor.EVENT_STOP="EVENT_STOP",BI.SignEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SignEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.SignEditor.EVENT_VALID="EVENT_VALID",BI.SignEditor.EVENT_ERROR="EVENT_ERROR",BI.SignEditor.EVENT_ENTER="EVENT_ENTER",BI.SignEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.SignEditor.EVENT_SPACE="EVENT_SPACE",BI.SignEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.sign_editor",BI.SignEditor),BI.StateEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.StateEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-state-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:"",height:24,text:BI.i18nText("BI-Basic_Unrestricted")})},_init:function(){BI.StateEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"state-editor-infinite-text tip-text-style",textAlign:"left",height:b.height,text:b.text,hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.setValue("")},title:BI.isNotNull(b.tipText)?b.tipText:function(){var b="";return BI.isString(a.stateValue)&&(b=a.stateValue),BI.isArray(a.stateValue)&&1===a.stateValue.length&&(b=a.stateValue[0]),b},warningTitle:b.warningTitle,tipType:b.tipType}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.StateEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.StateEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.StateEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.StateEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.StateEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.StateEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.StateEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a.fireEvent(BI.StateEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a._showHint(),a.fireEvent(BI.StateEditor.EVENT_CHANGE_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.StateEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.StateEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.StateEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.StateEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.StateEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.StateEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.StateEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.StateEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint(),BI.isNotNull(b.text)&&this.setState(b.text)},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},focus:function(){this.options.disabled===!1&&(this._showInput(),this.editor.focus())},blur:function(){this.editor.blur(),this._showHint()},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing(); -},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a)},getValue:function(){return this.editor.getValue()},getState:function(){return this.editor.getValue().match(/[^\s]+/g)},setState:function(a){var b=this.options;return BI.StateEditor.superclass.setValue.apply(this,arguments),this.stateValue=a,BI.isNumber(a)?void(a===BI.Selection.All?(this.text.setText(BI.i18nText("BI-Select_All")),this.text.element.removeClass("state-editor-infinite-text")):a===BI.Selection.Multi?(this.text.setText(BI.i18nText("BI-Select_Part")),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(b.text),this.text.element.addClass("state-editor-infinite-text"))):BI.isString(a)?(this.text.setText(a),void this.text.element.removeClass("state-editor-infinite-text")):void(BI.isArray(a)&&(BI.isEmpty(a)?(this.text.setText(b.text),this.text.element.addClass("state-editor-infinite-text")):1===a.length?(this.text.setText(a[0]),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(BI.i18nText("BI-Select_Part")),this.text.element.removeClass("state-editor-infinite-text"))))},setTipType:function(a){this.text.options.tipType=a}}),BI.StateEditor.EVENT_CHANGE="EVENT_CHANGE",BI.StateEditor.EVENT_FOCUS="EVENT_FOCUS",BI.StateEditor.EVENT_BLUR="EVENT_BLUR",BI.StateEditor.EVENT_CLICK="EVENT_CLICK",BI.StateEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.StateEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.StateEditor.EVENT_START="EVENT_START",BI.StateEditor.EVENT_PAUSE="EVENT_PAUSE",BI.StateEditor.EVENT_STOP="EVENT_STOP",BI.StateEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.StateEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.StateEditor.EVENT_VALID="EVENT_VALID",BI.StateEditor.EVENT_ERROR="EVENT_ERROR",BI.StateEditor.EVENT_ENTER="EVENT_ENTER",BI.StateEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.StateEditor.EVENT_SPACE="EVENT_SPACE",BI.StateEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.state_editor",BI.StateEditor),BI.SimpleStateEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SimpleStateEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-simple-state-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,mouseOut:!1,allowBlank:!0,watermark:"",errorText:"",height:24})},_init:function(){BI.SimpleStateEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"state-editor-infinite-text",textAlign:"left",height:b.height,text:BI.i18nText("BI-Basic_Unrestricted"),hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.setValue("")}}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.SimpleStateEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.SimpleStateEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a.fireEvent(BI.SimpleStateEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a._showHint(),a.fireEvent(BI.SimpleStateEditor.EVENT_CHANGE_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint(),BI.isNotNull(b.text)&&this.setState(b.text)},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint()},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a)},getValue:function(){return this.editor.getValue()},getState:function(){return this.editor.getValue().match(/[^\s]+/g)},setState:function(a){return BI.SimpleStateEditor.superclass.setValue.apply(this,arguments),BI.isNumber(a)?void(a===BI.Selection.All?(this.text.setText(BI.i18nText("BI-Already_Selected")),this.text.element.removeClass("state-editor-infinite-text")):a===BI.Selection.Multi?(this.text.setText(BI.i18nText("BI-Already_Selected")),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(BI.i18nText("BI-Basic_Unrestricted")),this.text.element.addClass("state-editor-infinite-text"))):void(BI.isArray(a)&&1!==a.length?BI.isEmpty(a)?(this.text.setText(BI.i18nText("BI-Basic_Unrestricted")),this.text.element.addClass("state-editor-infinite-text")):(this.text.setText(BI.i18nText("BI-Already_Selected")),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(a),this.text.setTitle(a),this.text.element.removeClass("state-editor-infinite-text")))}}),BI.SimpleStateEditor.EVENT_CHANGE="EVENT_CHANGE",BI.SimpleStateEditor.EVENT_FOCUS="EVENT_FOCUS",BI.SimpleStateEditor.EVENT_BLUR="EVENT_BLUR",BI.SimpleStateEditor.EVENT_CLICK="EVENT_CLICK",BI.SimpleStateEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.SimpleStateEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.SimpleStateEditor.EVENT_START="EVENT_START",BI.SimpleStateEditor.EVENT_PAUSE="EVENT_PAUSE",BI.SimpleStateEditor.EVENT_STOP="EVENT_STOP",BI.SimpleStateEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SimpleStateEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.SimpleStateEditor.EVENT_VALID="EVENT_VALID",BI.SimpleStateEditor.EVENT_ERROR="EVENT_ERROR",BI.SimpleStateEditor.EVENT_ENTER="EVENT_ENTER",BI.SimpleStateEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.SimpleStateEditor.EVENT_SPACE="EVENT_SPACE",BI.SimpleStateEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.simple_state_editor",BI.SimpleStateEditor),BI.MultiPopupView=BI.inherit(BI.PopupView,{_defaultConfig:function(){var a=BI.MultiPopupView.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{_baseCls:(a._baseCls||"")+" bi-multi-list-view",buttons:[BI.i18nText("BI-Basic_Sure")]})},_init:function(){BI.MultiPopupView.superclass._init.apply(this,arguments)},_createToolBar:function(){var a=this.options,b=this;if(0!==a.buttons.length){var c=[];return BI.each(a.buttons,function(a,b){c.push({text:b,value:a})}),this.buttongroup=BI.createWidget({type:"bi.button_group",cls:"list-view-toolbar bi-high-light bi-split-top",height:24,items:BI.createItems(c,{type:"bi.text_button",once:!1,shadow:!0,isShadowShowingOnSelected:!0}),layouts:[{type:"bi.center",hgap:0,vgap:0}]}),this.buttongroup.on(BI.ButtonGroup.EVENT_CHANGE,function(a,c){b.fireEvent(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,a,c)}),this.buttongroup}}}),BI.MultiPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON="EVENT_CLICK_TOOLBAR_BUTTON",BI.shortcut("bi.multi_popup_view",BI.MultiPopupView),BI.PopupPanel=BI.inherit(BI.MultiPopupView,{_defaultConfig:function(){var a=BI.PopupPanel.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-popup-panel",title:""})},_init:function(){BI.PopupPanel.superclass._init.apply(this,arguments)},_createTool:function(){var a=this,b=this.options,c=BI.createWidget({type:"bi.icon_button",cls:"close-h-font",width:25,height:25});return c.on(BI.IconButton.EVENT_CHANGE,function(){a.setVisible(!1),a.fireEvent(BI.PopupPanel.EVENT_CLOSE)}),BI.createWidget({type:"bi.htape",cls:"popup-panel-title bi-header-background",height:25,items:[{el:{type:"bi.label",textAlign:"left",text:b.title,height:25,lgap:10}},{el:c,width:25}]})}}),BI.PopupPanel.EVENT_CHANGE="EVENT_CHANGE",BI.PopupPanel.EVENT_CLOSE="EVENT_CLOSE",BI.PopupPanel.EVENT_CLICK_TOOLBAR_BUTTON="EVENT_CLICK_TOOLBAR_BUTTON",BI.shortcut("bi.popup_panel",BI.PopupPanel),BI.ListPane=BI.inherit(BI.Pane,{_defaultConfig:function(){var a=BI.ListPane.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-list-pane",logic:{dynamic:!0},lgap:0,rgap:0,tgap:0,bgap:0,vgap:0,hgap:0,items:[],itemsCreator:BI.emptyFn,hasNext:BI.emptyFn,onLoaded:BI.emptyFn,el:{type:"bi.button_group"}})},_init:function(){BI.ListPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.button_group=BI.createWidget(b.el,{type:"bi.button_group",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,behaviors:{},items:b.items,itemsCreator:function(c,d){1===c.times&&(a.empty(),BI.nextTick(function(){a.loading()})),b.itemsCreator(c,function(){d.apply(a,arguments),1===c.times&&BI.nextTick(function(){a.loaded()})})},hasNext:b.hasNext,layouts:[{type:"bi.vertical"}]}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.ListPane.EVENT_CHANGE,c,d)}),this.check(),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Top),BI.extend({scrolly:!0,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,vgap:b.vgap,hgap:b.hgap},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Top,this.button_group)}))))},hasPrev:function(){return this.button_group.hasPrev&&this.button_group.hasPrev()},hasNext:function(){return this.button_group.hasNext&&this.button_group.hasNext()},prependItems:function(a){this.options.items=a.concat(this.options.items),this.button_group.prependItems.apply(this.button_group,arguments),this.check()},addItems:function(a){this.options.items=this.options.items.concat(a),this.button_group.addItems.apply(this.button_group,arguments),this.check()},removeItemAt:function(a){a=a||[],BI.removeAt(this.options.items,a),this.button_group.removeItemAt.apply(this.button_group,arguments),this.check()},populate:function(a){var b=this;this.options;return 0===arguments.length&&BI.isFunction(this.button_group.attr("itemsCreator"))?void this.button_group.attr("itemsCreator").apply(this,[{times:1},function(){if(0===arguments.length)throw new Error("参数不能为空");b.populate.apply(b,arguments)}]):(BI.ListPane.superclass.populate.apply(this,arguments),void this.button_group.populate.apply(this.button_group,arguments))},empty:function(){this.button_group.empty()},setNotSelectedValue:function(){this.button_group.setNotSelectedValue.apply(this.button_group,arguments)},getNotSelectedValue:function(){return this.button_group.getNotSelectedValue()},setValue:function(){this.button_group.setValue.apply(this.button_group,arguments)},getValue:function(){return this.button_group.getValue.apply(this.button_group,arguments)},getAllButtons:function(){return this.button_group.getAllButtons()},getAllLeaves:function(){return this.button_group.getAllLeaves()},getSelectedButtons:function(){return this.button_group.getSelectedButtons()},getNotSelectedButtons:function(){return this.button_group.getNotSelectedButtons()},getIndexByValue:function(a){return this.button_group.getIndexByValue(a)},getNodeById:function(a){return this.button_group.getNodeById(a)},getNodeByValue:function(a){return this.button_group.getNodeByValue(a)}}),BI.ListPane.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.list_pane",BI.ListPane),BI.Panel=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Panel.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-panel bi-border",title:"",titleButtons:[],el:{},logic:{dynamic:!1}})},_init:function(){BI.Panel.superclass._init.apply(this,arguments);var a=this.options;BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("vertical",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("top",this._createTitle(),this.options.el)}))))},_createTitle:function(){var a=this,b=this.options;return this.text=BI.createWidget({type:"bi.label",cls:"panel-title-text",text:b.title,height:30}),this.button_group=BI.createWidget({type:"bi.button_group",items:b.titleButtons,layouts:[{type:"bi.center_adapt",lgap:10}]}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.ButtonGroup.EVENT_CHANGE,function(b,c){a.fireEvent(BI.Panel.EVENT_CHANGE,b,c)}),{el:{type:"bi.left_right_vertical_adapt",cls:"panel-title bi-header-background bi-border-bottom",height:29,items:{left:[this.text],right:[this.button_group]},lhgap:10,rhgap:10},height:29}},setTitle:function(a){this.text.setValue(a)}}),BI.Panel.EVENT_CHANGE="Panel.EVENT_CHANGE",BI.shortcut("bi.panel",BI.Panel),BI.LinearSegmentButton=BI.inherit(BI.BasicButton,{props:{extraCls:"bi-line-segment-button bi-list-item-effect",once:!0,readonly:!0,hgap:10,height:25},render:function(){var a=this,b=this.options;return[{type:"bi.label",text:b.text,height:b.height,value:b.value,hgap:b.hgap,ref:function(){a.text=this}},{type:"bi.absolute",items:[{el:{type:"bi.layout",cls:"line-segment-button-line",height:2,ref:function(){a.line=this}},left:0,right:0,bottom:0}]}]},setSelected:function(a){BI.LinearSegmentButton.superclass.setSelected.apply(this,arguments),a?this.line.element.addClass("bi-high-light-background"):this.line.element.removeClass("bi-high-light-background")},setText:function(a){this.text.setText(a)}}),BI.shortcut("bi.linear_segment_button",BI.LinearSegmentButton),BI.LinearSegment=BI.inherit(BI.Widget,{props:{baseCls:"bi-linear-segment bi-split-bottom",items:[],height:29},render:function(){var a=this,b=this.options;return{type:"bi.button_group",items:BI.createItems(b.items,{type:"bi.linear_segment_button",height:b.height-1}),layout:[{type:"bi.center"}],listeners:[{eventName:"__EVENT_CHANGE__",action:function(){a.fireEvent("__EVENT_CHANGE__",arguments)}},{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}],ref:function(){a.buttonGroup=this}}},setValue:function(a){this.buttonGroup.setValue(a)},setEnabledValue:function(a){this.buttonGroup.setEnabledValue(a)},getValue:function(){return this.buttonGroup.getValue()}}),BI.shortcut("bi.linear_segment",BI.LinearSegment),BI.SelectList=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-list",direction:BI.Direction.Top,logic:{dynamic:!0},items:[],itemsCreator:BI.emptyFn,hasNext:BI.emptyFn,onLoaded:BI.emptyFn,toolbar:{type:"bi.multi_select_bar",iconWrapperWidth:36},el:{type:"bi.list_pane"}})},_init:function(){BI.SelectList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.toolbar=BI.createWidget(b.toolbar),this.allSelected=!1,this.toolbar.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.allSelected=this.isSelected(),b===BI.Events.CLICK&&(a.setAllSelected(a.allSelected),a.fireEvent(BI.SelectList.EVENT_CHANGE,c,d)),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.list=BI.createWidget(b.el,{type:"bi.list_pane",items:b.items,itemsCreator:function(c,d){1===c.times&&a.toolbar.setVisible(!1),b.itemsCreator(c,function(b){d.apply(a,arguments),1===c.times&&(a.toolbar.setVisible(b&&b.length>0),a.toolbar.setEnable(b&&b.length>0)),a._checkAllSelected()})},onLoaded:b.onLoaded,hasNext:b.hasNext}),this.list.on(BI.Controller.EVENT_CHANGE,function(b,c,d){b===BI.Events.CLICK&&(a._checkAllSelected(),a.fireEvent(BI.SelectList.EVENT_CHANGE,c,d)),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(b.direction),BI.extend({scrolly:!0},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(b.direction,this.toolbar,this.list)})))),b.items.length<=0&&(this.toolbar.setVisible(!1),this.toolbar.setEnable(!1)),BI.isNotNull(b.value)&&this.setValue(b.value)},_checkAllSelected:function(){var a=this.list.getValue().length,b=this.getAllLeaves().length-a,c=this.list.hasNext(),d=this.toolbar.isSelected(),e=a>0&&(b>0||!d&&c);e=e||b>0&&c&&d,this.toolbar.setHalfSelected(e),!e&&this.toolbar.setSelected(a>0&&b<=0&&(!c||d))},setAllSelected:function(a){BI.each(this.getAllButtons(),function(b,c){(c.setSelected||c.setAllSelected).apply(c,[a])}),this.allSelected=!!a,this.toolbar.setSelected(a),this.toolbar.setHalfSelected(!1)},setToolBarVisible:function(a){this.toolbar.setVisible(a)},isAllSelected:function(){return this.allSelected},hasPrev:function(){return this.list.hasPrev()},hasNext:function(){return this.list.hasNext()},prependItems:function(a){this.list.prependItems.apply(this.list,arguments)},addItems:function(a){this.list.addItems.apply(this.list,arguments)},setValue:function(a){var b=a.type===BI.ButtonGroup.CHOOSE_TYPE_ALL;this.setAllSelected(b),this.list[b?"setNotSelectedValue":"setValue"](a.value),this._checkAllSelected()},getValue:function(){return this.isAllSelected()===!1?{type:BI.ButtonGroup.CHOOSE_TYPE_MULTI,value:this.list.getValue(),assist:this.list.getNotSelectedValue()}:{type:BI.ButtonGroup.CHOOSE_TYPE_ALL,value:this.list.getNotSelectedValue(),assist:this.list.getValue()}},empty:function(){this.list.empty()},populate:function(a){this.toolbar.setVisible(!BI.isEmptyArray(a)),this.toolbar.setEnable(!BI.isEmptyArray(a)),this.list.populate.apply(this.list,arguments),this._checkAllSelected()},_setEnable:function(a){BI.SelectList.superclass._setEnable.apply(this,arguments),this.toolbar.setEnable(a)},resetHeight:function(a){var b=(this.toolbar.element.outerHeight()||25)*(this.toolbar.isVisible()?1:0);this.list.resetHeight?this.list.resetHeight(a-b):this.list.element.css({"max-height":a-b+"px"})},setNotSelectedValue:function(){this.list.setNotSelectedValue.apply(this.list,arguments),this._checkAllSelected()},getNotSelectedValue:function(){return this.list.getNotSelectedValue()},getAllButtons:function(){return this.list.getAllButtons()},getAllLeaves:function(){return this.list.getAllLeaves()},getSelectedButtons:function(){return this.list.getSelectedButtons()},getNotSelectedButtons:function(){return this.list.getNotSelectedButtons()},getIndexByValue:function(a){return this.list.getIndexByValue(a)},getNodeById:function(a){return this.list.getNodeById(a)},getNodeByValue:function(a){return this.list.getNodeByValue(a)}}),BI.SelectList.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.select_list",BI.SelectList),BI.LazyLoader=BI.inherit(BI.Widget,{_const:{PAGE:100},_defaultConfig:function(){return BI.extend(BI.LazyLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-lazy-loader",el:{}})},_init:function(){var a=this,b=this.options;BI.LazyLoader.superclass._init.apply(this,arguments);var c=b.items.length;this.loader=BI.createWidget({type:"bi.loader",element:this,el:b.el,itemsCreator:function(b,c){c(a._getNextItems(b))},hasNext:function(a){return a.count=1)},setValue:function(a){this.pager.setValue(a)},setVPage:function(a){this.pager.setValue(a)},setCount:function(a){this.rowCount.setText(a),this.rowCount.setTitle(a)},getCurrentPage:function(){return this.pager.getCurrentPage()},hasPrev:function(){return this.pager.hasPrev()},hasNext:function(){return this.pager.hasNext()},setPagerVisible:function(a){this.editor.setVisible(a),this.allPages.setVisible(a),this.pager.setVisible(a)},populate:function(){this.pager.populate()}}),BI.AllCountPager.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.all_count_pager",BI.AllCountPager),BI.DirectionPager=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DirectionPager.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-direction-pager",height:20,horizontal:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn},vertical:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn}})},_init:function(){BI.DirectionPager.superclass._init.apply(this,arguments); -var a=this.options;a.vertical,a.horizontal;this._createVPager(),this._createHPager(),this.layout=BI.createWidget({type:"bi.absolute",scrollable:!1,element:this,items:[{el:this.vpager,top:0,right:74},{el:this.vlabel,top:0,right:111},{el:this.hpager,top:0,right:-9},{el:this.hlabel,top:0,right:28}]})},_createVPager:function(){var a=this,b=this.options,c=b.vertical;this.vlabel=BI.createWidget({type:"bi.label",width:24,height:20,value:c.curr,title:c.curr,invisible:!0}),this.vpager=BI.createWidget({type:"bi.pager",width:76,layouts:[{type:"bi.horizontal",scrollx:!1,rgap:24,vgap:1}],invisible:!0,dynamicShow:!1,pages:c.pages,curr:c.curr,groups:0,first:!1,last:!1,prev:{type:"bi.icon_button",value:"prev",title:BI.i18nText("BI-Up_Page"),warningTitle:BI.i18nText("BI-Current_Is_First_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-prev column-pre-page-h-font"},next:{type:"bi.icon_button",value:"next",title:BI.i18nText("BI-Down_Page"),warningTitle:BI.i18nText("BI-Current_Is_Last_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-next column-next-page-h-font"},hasPrev:c.hasPrev,hasNext:c.hasNext,firstPage:c.firstPage,lastPage:c.lastPage}),this.vpager.on(BI.Pager.EVENT_CHANGE,function(){a.fireEvent(BI.DirectionPager.EVENT_CHANGE)}),this.vpager.on(BI.Pager.EVENT_AFTER_POPULATE,function(){a.vlabel.setValue(this.getCurrentPage()),a.vlabel.setTitle(this.getCurrentPage())})},_createHPager:function(){var a=this,b=this.options,c=b.horizontal;this.hlabel=BI.createWidget({type:"bi.label",width:24,height:20,value:c.curr,title:c.curr,invisible:!0}),this.hpager=BI.createWidget({type:"bi.pager",width:76,layouts:[{type:"bi.horizontal",scrollx:!1,rgap:24,vgap:1}],invisible:!0,dynamicShow:!1,pages:c.pages,curr:c.curr,groups:0,first:!1,last:!1,prev:{type:"bi.icon_button",value:"prev",title:BI.i18nText("BI-Left_Page"),warningTitle:BI.i18nText("BI-Current_Is_First_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-prev row-pre-page-h-font"},next:{type:"bi.icon_button",value:"next",title:BI.i18nText("BI-Right_Page"),warningTitle:BI.i18nText("BI-Current_Is_Last_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-next row-next-page-h-font"},hasPrev:c.hasPrev,hasNext:c.hasNext,firstPage:c.firstPage,lastPage:c.lastPage}),this.hpager.on(BI.Pager.EVENT_CHANGE,function(){a.fireEvent(BI.DirectionPager.EVENT_CHANGE)}),this.hpager.on(BI.Pager.EVENT_AFTER_POPULATE,function(){a.hlabel.setValue(this.getCurrentPage()),a.hlabel.setTitle(this.getCurrentPage())})},getVPage:function(){return this.vpager.getCurrentPage()},getHPage:function(){return this.hpager.getCurrentPage()},setVPage:function(a){this.vpager.setValue(a),this.vlabel.setValue(a),this.vlabel.setTitle(a)},setHPage:function(a){this.hpager.setValue(a),this.hlabel.setValue(a),this.hlabel.setTitle(a)},hasVNext:function(){return this.vpager.hasNext()},hasHNext:function(){return this.hpager.hasNext()},hasVPrev:function(){return this.vpager.hasPrev()},hasHPrev:function(){return this.hpager.hasPrev()},setHPagerVisible:function(a){this.hpager.setVisible(a),this.hlabel.setVisible(a)},setVPagerVisible:function(a){this.vpager.setVisible(a),this.vlabel.setVisible(a)},populate:function(){this.vpager.populate(),this.hpager.populate();var a=!1,b=!1;this.hasHNext()||this.hasHPrev()?(this.setHPagerVisible(!0),b=!0):this.setHPagerVisible(!1),this.hasVNext()||this.hasVPrev()?(this.setVPagerVisible(!0),a=!0):this.setVPagerVisible(!1),this.setVisible(b||a);var c=[74,111,-9,28],d=this.layout.attr("items");a===!0&&b===!0?(d[0].right=c[0],d[1].right=c[1],d[2].right=c[2],d[3].right=c[3]):a===!0?(d[0].right=c[2],d[1].right=c[3]):b===!0&&(d[2].right=c[2],d[3].right=c[3]),this.layout.attr("items",d),this.layout.resize()},clear:function(){this.vpager.attr("curr",1),this.hpager.attr("curr",1)}}),BI.DirectionPager.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.direction_pager",BI.DirectionPager),BI.DetailPager=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DetailPager.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-detail-pager",behaviors:{},layouts:[{type:"bi.horizontal",hgap:10,vgap:0}],dynamicShow:!0,dynamicShowFirstLast:!1,dynamicShowPrevNext:!1,pages:!1,curr:function(){return 1},groups:0,jump:BI.emptyFn,first:!1,last:!1,prev:"上一页",next:"下一页",firstPage:1,lastPage:function(){return 1},hasPrev:BI.emptyFn,hasNext:BI.emptyFn})},_init:function(){BI.DetailPager.superclass._init.apply(this,arguments);var a=this;this.currPage=BI.result(this.options,"curr"),this._lock=!1,this._debouce=BI.debounce(function(){a._lock=!1},300),this._populate()},_populate:function(){var a=this,b=this.options,c=[],d={};this.empty();var e=BI.result(b,"pages"),f=BI.result(this,"currPage"),g=BI.result(b,"groups"),h=BI.result(b,"first"),i=BI.result(b,"last"),j=BI.result(b,"prev"),k=BI.result(b,"next");e===!1?(g=0,h=!1,i=!1):g>e&&(g=e),d.index=Math.ceil((f+(g>1&&g!==e?1:0))/(0===g?1:g)),(!b.dynamicShow&&!b.dynamicShowPrevNext||f>1)&&j!==!1&&(BI.isKey(j)?c.push({text:j,value:"prev",disabled:e===!1?b.hasPrev(f)===!1:!(f>1&&j!==!1)}):c.push(BI.extend({disabled:e===!1?b.hasPrev(f)===!1:!(f>1&&j!==!1)},j))),(!b.dynamicShow&&!b.dynamicShowFirstLast||d.index>1&&0!==g)&&h&&(c.push({text:h,value:"first",disabled:!(d.index>1&&0!==g)}),d.index>1&&0!==g&&c.push({type:"bi.label",cls:"page-ellipsis",text:"…"})),d.poor=Math.floor((g-1)/2),d.start=d.index>1?f-d.poor:1,d.end=d.index>1?function(){var a=f+(g-d.poor-1);return a>e?e:a}():g,d.end-d.start1&&0!==g&&e>g&&d.endg&&d.endg&&d.endg&&d.end1},hasNext:function(a){a||(a=1);var b=this.options,c=this.options.pages;return c===!1?b.hasNext(a):ac?c:(d=BI.result(b,"firstPage"),ab.pages?b.pages:a,this.currPage=a;this._populate()},getValue:function(){var a=this.button_group.getValue()[0];switch(a){case"prev":return-1;case"next":return 1;case"first":return BI.MIN;case"last":return BI.MAX;default:return a}},attr:function(a,b){BI.DetailPager.superclass.attr.apply(this,arguments),"curr"===a&&(this.currPage=BI.result(this.options,"curr"))},populate:function(){this._populate()}}),BI.DetailPager.EVENT_CHANGE="EVENT_CHANGE",BI.DetailPager.EVENT_AFTER_POPULATE="EVENT_AFTER_POPULATE",BI.shortcut("bi.detail_pager",BI.DetailPager),BI.SegmentButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.SegmentButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-segment-button bi-list-item-select",shadow:!0,readonly:!0,hgap:5})},_init:function(){BI.SegmentButton.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,textHeight:a.height,whiteSpace:a.whiteSpace,text:a.text,value:a.value,hgap:a.hgap})},setSelected:function(){BI.SegmentButton.superclass.setSelected.apply(this,arguments)},setText:function(a){BI.SegmentButton.superclass.setText.apply(this,arguments),this.text.setText(a)},destroy:function(){BI.SegmentButton.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.segment_button",BI.SegmentButton),BI.Segment=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Segment.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-segment",items:[],height:24})},_init:function(){BI.Segment.superclass._init.apply(this,arguments);var a=this,b=this.options;this.buttonGroup=BI.createWidget({element:this,type:"bi.button_group",value:b.value,items:BI.createItems(b.items,{type:"bi.segment_button",height:b.height-2,whiteSpace:b.whiteSpace}),layout:[{type:"bi.center"}]}),this.buttonGroup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.buttonGroup.on(BI.ButtonGroup.EVENT_CHANGE,function(b,c){a.fireEvent(BI.Segment.EVENT_CHANGE,b,c)})},_setEnable:function(a){BI.Segment.superclass._setEnable.apply(this,arguments),a===!0?this.element.removeClass("base-disabled disabled"):a===!1&&this.element.addClass("base-disabled disabled")},setValue:function(a){this.buttonGroup.setValue(a)},setEnabledValue:function(a){this.buttonGroup.setEnabledValue(a)},getValue:function(){return this.buttonGroup.getValue()}}),BI.Segment.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.segment",BI.Segment),BI.MultiSelectBar=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiSelectBar.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multi-select-bar",height:25,text:BI.i18nText("BI-Select_All"),isAllCheckedBySelectedValue:BI.emptyFn,disableSelected:!0,isHalfCheckedBySelectedValue:function(a){return a.length>0},halfSelected:!1,iconWrapperWidth:26})},_init:function(){BI.MultiSelectBar.superclass._init.apply(this,arguments);var a=this,b=this.options,c=b.selected===!0,d=!b.selected&&b.halfSelected;this.checkbox=BI.createWidget({type:"bi.checkbox",stopPropagation:!0,handler:function(){a.setSelected(a.isSelected())},selected:c,invisible:d}),this.half=BI.createWidget({type:"bi.half_icon_button",stopPropagation:!0,handler:function(){a.setSelected(!0)},invisible:c||!d}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,a.isSelected(),a)}),this.checkbox.on(BI.Checkbox.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectBar.EVENT_CHANGE,a.isSelected(),a)}),this.half.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,a.isSelected(),a)}),this.half.on(BI.HalfIconButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectBar.EVENT_CHANGE,a.isSelected(),a)}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,keyword:b.keyword,value:b.value,py:b.py}),BI.createWidget({type:"bi.htape",element:this,items:[{width:b.iconWrapperWidth,el:{type:"bi.center_adapt",items:[this.checkbox,this.half]}},{el:this.text}]})},_setSelected:function(a){this.checkbox.setSelected(!!a)},beforeClick:function(){var a=this.isHalfSelected(),b=this.isSelected();a===!0?this.setSelected(!0):this.setSelected(!b)},setSelected:function(a){this.checkbox.setSelected(a),this.setHalfSelected(!1)},setHalfSelected:function(a){this.halfSelected=!!a,a===!0?(this.checkbox.setSelected(!1),this.half.visible(),this.checkbox.invisible()):(this.half.invisible(),this.checkbox.visible())},isHalfSelected:function(){return!this.isSelected()&&!!this.halfSelected},isSelected:function(){return this.checkbox.isSelected()},setValue:function(a){BI.MultiSelectBar.superclass.setValue.apply(this,arguments);var b=this.options.isAllCheckedBySelectedValue.apply(this,arguments);this._setSelected(b),!b&&this.setHalfSelected(this.options.isHalfCheckedBySelectedValue.apply(this,arguments))},doClick:function(){BI.MultiSelectBar.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.MultiSelectBar.EVENT_CHANGE,this.isSelected(),this)}}),BI.MultiSelectBar.EVENT_CHANGE="MultiSelectBar.EVENT_CHANGE",BI.shortcut("bi.multi_select_bar",BI.MultiSelectBar),BI.LevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.LevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-level-tree",el:{chooseType:0},expander:{},items:[],value:""})},_init:function(){BI.LevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b,c){var d=this;return BI.each(a,function(e,f){var g={layer:b};BI.isKey(f.id)||(f.id=BI.UUID()),g.pNode=c,f.isParent===!0||f.parent===!0||BI.isNotEmptyArray(f.children)?(g.type="bi.mid_plus_group_node",e===a.length-1&&(g.type="bi.last_plus_group_node",g.isLastNode=!0),0!==e||c||(g.type="bi.first_plus_group_node"),0===e&&e===a.length-1&&(g.type="bi.plus_group_node"),BI.defaults(f,g),d._formatItems(f.children,b+1,f)):(g.type="bi.mid_tree_leaf_item",0!==e||c||(g.type="bi.first_tree_leaf_item"),e===a.length-1&&(g.type="bi.last_tree_leaf_item"),BI.defaults(f,g))}),a},_assertId:function(a){BI.each(a,function(a,b){BI.isKey(b.id)||(b.id=BI.UUID())})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",element:this,expander:BI.extend({el:{},popup:{type:"bi.custom_tree"}},c.expander),items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),value:c.value,el:BI.extend({type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]},c.el)}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.LevelTree.EVENT_CHANGE,c,d)})},stroke:function(a){this.tree.stroke.apply(this.tree,arguments)},populate:function(a,b){a=this._formatItems(BI.Tree.transformToTreeFormat(a),0),this.tree.populate(a,b)},setValue:function(a){this.tree.setValue(a)},getValue:function(){return this.tree.getValue()},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.LevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.level_tree",BI.LevelTree),BI.DisplayTree=BI.inherit(BI.TreeView,{_defaultConfig:function(){return BI.extend(BI.DisplayTree.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-display-tree"})},_init:function(){BI.DisplayTree.superclass._init.apply(this,arguments)},_configSetting:function(){function a(a,b){return!1}var b={view:{selectedMulti:!1,dblClickExpand:!1,showIcon:!1,nameIsHTML:!0,showTitle:!1},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},callback:{beforeCollapse:a}};return b},_dealWidthNodes:function(a){a=BI.DisplayTree.superclass._dealWidthNodes.apply(this,arguments);this.options;return BI.each(a,function(a,b){b.isParent=b.isParent||b.parent,null==b.text&&b.count>0&&(b.text=b.value+"("+BI.i18nText("BI-Basic_Altogether")+b.count+BI.i18nText("BI-Basic_Count")+")")}),a},initTree:function(a,b){var b=b||this._configSetting();this.nodes=$.fn.zTree.init(this.tree.element,b,a)},destroy:function(){BI.DisplayTree.superclass.destroy.apply(this,arguments)}}),BI.DisplayTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.display_tree",BI.DisplayTree),BI.ListDisplayTree=BI.inherit(BI.ListTreeView,{_defaultConfig:function(){return BI.extend(BI.ListDisplayTree.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-list-display-tree"})},_init:function(){BI.ListDisplayTree.superclass._init.apply(this,arguments)},_configSetting:function(){function a(a,b){return!1}function b(a,b){return b.isLeaf?{}:{color:"#999999"}}var c={view:{selectedMulti:!1,dblClickExpand:!1,showIcon:!1,nameIsHTML:!0,showTitle:!1,fontCss:b},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},callback:{beforeCollapse:a}};return c},_dealWidthNodes:function(a){a=BI.ListDisplayTree.superclass._dealWidthNodes.apply(this,arguments);this.options;return BI.each(a,function(a,b){b.isParent=b.isParent||b.parent,null==b.text&&b.count>0&&(b.text=b.value+"("+BI.i18nText("BI-Basic_Altogether")+b.count+BI.i18nText("BI-Basic_Count")+")")}),a},initTree:function(a,b){var b=b||this._configSetting();this.nodes=$.fn.zTree.init(this.tree.element,b,a)},destroy:function(){BI.ListDisplayTree.superclass.destroy.apply(this,arguments)}}),BI.ListDisplayTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.list_display_tree",BI.ListDisplayTree),BI.SimpleTreeView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SimpleTreeView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-simple-tree",itemsCreator:BI.emptyFn,items:null})},_init:function(){BI.SimpleTreeView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.structure=new BI.Tree,this.tree=BI.createWidget({type:"bi.tree_view",element:this,itemsCreator:function(c,d){var e=function(b){d({items:b}),a.structure.initTree(BI.Tree.transformToTreeFormat(b))};BI.isNotNull(b.items)?e(b.items):b.itemsCreator(c,e)}}),this.tree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.SimpleTreeView.EVENT_CHANGE,arguments)}),BI.isNotEmptyArray(b.items)&&this.populate(),BI.isNotNull(b.value)&&this.setValue(b.value)},populate:function(a,b){a&&(this.options.items=a),this.tree.stroke({keyword:b})},_digest:function(a){a||(a=[]);var b=this,c={},d=[];return BI.each(a,function(a,e){var f=b.structure.search(e,"value");if(f){var g=f;for(g=g.getParent(),g&&(c[g.value]||(c[g.value]=0),c[g.value]++);g&&g.getChildrenLength()<=c[g.value];)d.push(g.value),g=g.getParent(),g&&(c[g.value]||(c[g.value]=0),c[g.value]++)}}),BI.makeObject(a.concat(d))},setValue:function(a){this.tree.setValue(this._digest(a))},_getValue:function(){var a=[],b=this.tree.getValue(),c=function(b){BI.each(b,function(b,d){BI.isEmpty(d)?a.push(b):c(d)})};return c(b),a},empty:function(){this.tree.empty()},getValue:function(){var a=this,b=[],c=this._getValue();return BI.each(c,function(c,d){var e=a.structure.search(d,"value");e&&a.structure._traverse(e,function(a){a.isLeaf()&&b.push(a.value)})}),b}}),BI.SimpleTreeView.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.simple_tree",BI.SimpleTreeView),BI.EditorTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4},_defaultConfig:function(){var a=BI.EditorTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-editor-trigger bi-border",height:24,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!1,watermark:"",errorText:""})},_init:function(){this.options.height-=2,BI.EditorTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText,title:function(){return a.getValue()}}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.EditorTrigger.EVENT_CHANGE,arguments)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.trigger_icon_button",width:b.triggerWidth||b.height},width:b.triggerWidth||b.height}]})},getValue:function(){return this.editor.getValue()},setValue:function(a){this.editor.setValue(a)},setText:function(a){this.editor.setState(a)}}),BI.EditorTrigger.EVENT_CHANGE="BI.EditorTrigger.EVENT_CHANGE",BI.shortcut("bi.editor_trigger",BI.EditorTrigger),BI.IconTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.IconTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-icon-trigger",el:{},height:24})},_init:function(){var a=this.options;BI.IconTrigger.superclass._init.apply(this,arguments),this.iconButton=BI.createWidget(a.el,{type:"bi.trigger_icon_button",element:this,width:a.width,height:a.height})}}),BI.shortcut("bi.icon_trigger",BI.IconTrigger),BI.IconTextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4},_defaultConfig:function(){var a=BI.IconTextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:24,iconHeight:null,iconWidth:null})},_init:function(){BI.IconTextTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;this._const;this.text=BI.createWidget({type:"bi.label",cls:"select-text-label",textAlign:"left",height:b.height,text:b.text}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",width:b.triggerWidth||b.height}),BI.createWidget({element:this,type:"bi.htape",ref:function(b){a.wrapper=b},items:[{el:{type:"bi.icon_change_button",cls:"icon-combo-trigger-icon",iconCls:b.iconCls,ref:function(b){a.icon=b},iconHeight:b.iconHeight,iconWidth:b.iconWidth,disableSelected:!0},width:BI.isEmptyString(b.iconCls)?0:b.iconWrapperWidth||b.height},{el:this.text,lgap:BI.isEmptyString(b.iconCls)?5:0},{el:this.trigerButton,width:b.triggerWidth||b.height}]})},setValue:function(a){this.text.setValue(a)},setIcon:function(a){var b=this.options;this.icon.setIcon(a);var c=this.wrapper.attr("items")[0],d=this.wrapper.attr("items")[1];BI.isNull(a)||BI.isEmptyString(a)?0!==c.width&&(c.width=0,d.lgap=5,this.wrapper.resize()):c.width!==(b.iconWrapperWidth||b.height)&&(c.width=b.iconWrapperWidth||b.height,d.lgap=0,this.wrapper.resize())},setText:function(a){this.text.setText(a)}}),BI.shortcut("bi.icon_text_trigger",BI.IconTextTrigger),BI.SelectIconTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SelectIconTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-text-trigger bi-border",height:24,iconHeight:null,iconWidth:null,iconCls:""})},_init:function(){this.options.height-=2,BI.SelectIconTextTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._digist(a.value,a.items);this.trigger=BI.createWidget({type:"bi.icon_text_trigger",element:this,text:b.text,iconCls:b.iconCls,height:a.height,iconHeight:a.iconHeight,iconWidth:a.iconWidth,iconWrapperWidth:a.iconWrapperWidth})},_digist:function(a,b){var c=this.options;a=BI.isArray(a)?a:[a];var d,e=BI.Tree.transformToArrayFormat(b);return BI.any(e,function(b,c){if(BI.deepContains(a,c.value))return d={text:c.text||c.value,iconCls:c.iconCls},!0}),BI.isNotNull(d)?{text:d.text,iconCls:d.iconCls}:{text:c.text,iconCls:c.iconCls}},setValue:function(a){var b=this._digist(a,this.options.items);this.trigger.setText(b.text),this.trigger.setIcon(b.iconCls)},populate:function(a){this.options.items=a}}),BI.shortcut("bi.select_icon_text_trigger",BI.SelectIconTextTrigger),BI.TextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4},_defaultConfig:function(){var a=BI.TextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:24})},_init:function(){BI.TextTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.text=BI.createWidget({type:"bi.label",cls:"select-text-label",textAlign:"left",height:b.height,text:b.text,title:function(){return a.text.getText()},tipType:b.tipType,warningTitle:b.warningTitle,hgap:c.hgap,readonly:b.readonly}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",width:b.triggerWidth||b.height}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.text},{el:this.trigerButton,width:b.triggerWidth||b.height}]})},setText:function(a){this.text.setText(a)},setTipType:function(a){this.text.options.tipType=a}}),BI.shortcut("bi.text_trigger",BI.TextTrigger),BI.SelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-text-trigger bi-border bi-focus-shadow",height:24})},_init:function(){this.options.height-=2,BI.SelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.text_trigger",element:this,height:a.height,readonly:a.readonly,text:this._digest(a.value,a.items),tipType:a.tipType,warningTitle:a.warningTitle})},_digest:function(a,b){var c=this.options;a=BI.isArray(a)?a:[a];var d=[],e=BI.Tree.transformToArrayFormat(b);return BI.each(e,function(b,c){BI.deepContains(a,c.value)&&!BI.contains(d,c.text||c.value)&&d.push(c.text||c.value)}),d.length>0?d.join(","):BI.isFunction(c.text)?c.text():c.text},setValue:function(a){this.trigger.setText(this._digest(a,this.options.items))},setTipType:function(a){this.trigger.setTipType(a)},populate:function(a){this.options.items=a}}),BI.shortcut("bi.select_text_trigger",BI.SelectTextTrigger),BI.SmallSelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SmallSelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-small-select-text-trigger bi-border",height:20})},_init:function(){this.options.height-=2,BI.SmallSelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._digest(a.text,a.items);this.trigger=BI.createWidget({type:"bi.small_text_trigger",element:this,height:a.height-2,text:b.text,cls:b.cls})},_digest:function(a,b){var c=this.options;a=BI.isArray(a)?a:[a];var d=[],e=BI.Tree.transformToArrayFormat(b);return BI.each(e,function(b,c){BI.deepContains(a,c.value)&&!BI.contains(d,c.text||c.value)&&d.push(c.text||c.value)}),d.length>0?{cls:"",text:d.join(",")}:{cls:"bi-water-mark",text:c.text}},setValue:function(a){var b=this._digest(a,this.options.items);this.trigger.element.removeClass("bi-water-mark").addClass(b.cls),this.trigger.setText(b.text)},populate:function(a){this.options.items=a}}),BI.shortcut("bi.small_select_text_trigger",BI.SmallSelectTextTrigger),BI.SmallTextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4},_defaultConfig:function(){var a=BI.SmallTextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:20})},_init:function(){BI.SmallTextTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",height:a.height,text:a.text,hgap:b.hgap}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",width:a.triggerWidth||a.height}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.text},{el:this.trigerButton,width:a.triggerWidth||a.height}]})},setValue:function(a){this.text.setValue(a)},setText:function(a){this.text.setText(a)}}),BI.shortcut("bi.small_text_trigger",BI.SmallTextTrigger),BI.MonthDateCombo=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.MonthDateCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-month-combo",height:24,container:null})},_init:function(){BI.MonthDateCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.date_triangle_trigger"}),this.popup=BI.createWidget({type:"bi.month_popup",behaviors:b.behaviors}),this.popup.on(BI.YearPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue())}),this.combo=BI.createWidget({type:"bi.combo",offsetStyle:"center",container:b.container,element:this,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,stopPropagation:!1,el:this.popup}}),this.combo.on(BI.Combo.EVENT_CHANGE,function(){a.combo.hideView(),a.fireEvent(BI.MonthDateCombo.EVENT_CHANGE)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.doBehavior()})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.MonthDateCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.month_date_combo",BI.MonthDateCombo),BI.YearDateCombo=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.YearDateCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-combo",min:"1900-01-01",max:"2099-12-31",behaviors:{},height:24,container:null})},_init:function(){BI.YearDateCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.date_triangle_trigger"}),this.popup=BI.createWidget({type:"bi.year_popup",behaviors:b.behaviors,min:b.min,max:b.max}),this.popup.on(BI.YearPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.YearDateCombo.EVENT_CHANGE)}),this.combo=BI.createWidget({type:"bi.combo",offsetStyle:"center",element:this,container:b.container,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:100,stopPropagation:!1,el:this.popup}}),this.combo.on(BI.Combo.EVENT_CHANGE,function(){a.fireEvent(BI.YearDateCombo.EVENT_CHANGE)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.doBehavior()})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.YearDateCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.year_date_combo",BI.YearDateCombo),BI.DatePicker=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.DatePicker.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-date-picker",height:40,min:"1900-01-01",max:"2099-12-31"})},_init:function(){BI.DatePicker.superclass._init.apply(this,arguments);var a=this,b=this.options;this._year=BI.getDate().getFullYear(),this._month=BI.getDate().getMonth()+1,this.left=BI.createWidget({type:"bi.icon_button",cls:"pre-page-h-font",width:24,height:24}),this.left.on(BI.IconButton.EVENT_CHANGE,function(){1===a._month?a.setValue({year:a.year.getValue()-1,month:12}):a.setValue({year:a.year.getValue(),month:a.month.getValue()-1}),a.fireEvent(BI.DatePicker.EVENT_CHANGE),a._checkLeftValid(),a._checkRightValid()}),this.right=BI.createWidget({type:"bi.icon_button",cls:"next-page-h-font",width:24,height:24}),this.right.on(BI.IconButton.EVENT_CHANGE,function(){12===a._month?a.setValue({year:a.year.getValue()+1,month:1}):a.setValue({year:a.year.getValue(),month:a.month.getValue()+1}),a.fireEvent(BI.DatePicker.EVENT_CHANGE),a._checkLeftValid(),a._checkRightValid()}),this.year=BI.createWidget({type:"bi.year_date_combo",behaviors:b.behaviors,min:b.min,max:b.max}),this.year.on(BI.YearDateCombo.EVENT_CHANGE,function(){a.setValue({year:a.year.getValue(),month:a.month.getValue()}),a.fireEvent(BI.DatePicker.EVENT_CHANGE)}),this.month=BI.createWidget({type:"bi.month_date_combo",behaviors:b.behaviors}),this.month.on(BI.MonthDateCombo.EVENT_CHANGE,function(){a.setValue({year:a.year.getValue(),month:a.month.getValue()}),a.fireEvent(BI.DatePicker.EVENT_CHANGE)}),BI.createWidget({type:"bi.htape",element:this,items:[{el:{type:"bi.center_adapt",items:[this.left]},width:24},{type:"bi.center_adapt",items:[{el:{type:"bi.horizontal",width:120,rgap:10,items:[{el:this.year,lgap:10},this.month]}}]},{el:{type:"bi.center_adapt",items:[this.right]},width:24}]}),this.setValue({year:this._year,month:this._month})},_checkLeftValid:function(){var a=this.options,b=!(1===this._month&&this._year===BI.parseDateTime(a.min,"%Y-%X-%d").getFullYear());return this.left.setEnable(b),b},_checkRightValid:function(){var a=this.options,b=!(12===this._month&&this._year===BI.parseDateTime(a.max,"%Y-%X-%d").getFullYear());return this.right.setEnable(b),b},setValue:function(a){this._year=BI.parseInt(a.year),this._month=BI.parseInt(a.month),this.year.setValue(a.year),this.month.setValue(a.month),this._checkLeftValid(),this._checkRightValid()},getValue:function(){return{year:this.year.getValue(),month:this.month.getValue()}}}),BI.DatePicker.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.date_picker",BI.DatePicker), -BI.YearPicker=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.YearPicker.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-year-picker",behaviors:{},height:40,min:"1900-01-01",max:"2099-12-31"})},_init:function(){BI.YearPicker.superclass._init.apply(this,arguments);var a=this,b=this.options;this._year=BI.getDate().getFullYear(),this.left=BI.createWidget({type:"bi.icon_button",cls:"pre-page-h-font",width:25,height:25}),this.left.on(BI.IconButton.EVENT_CHANGE,function(){a.setValue(a.year.getValue()-1),a.fireEvent(BI.YearPicker.EVENT_CHANGE),a._checkLeftValid(),a._checkRightValid()}),this.right=BI.createWidget({type:"bi.icon_button",cls:"next-page-h-font",width:25,height:25}),this.right.on(BI.IconButton.EVENT_CHANGE,function(){a.setValue(a.year.getValue()+1),a.fireEvent(BI.YearPicker.EVENT_CHANGE),a._checkLeftValid(),a._checkRightValid()}),this.year=BI.createWidget({type:"bi.year_date_combo",min:b.min,behaviors:b.behaviors,max:b.max}),this.year.on(BI.YearDateCombo.EVENT_CHANGE,function(){a.setValue(a.year.getValue()),a.fireEvent(BI.YearPicker.EVENT_CHANGE)}),BI.createWidget({type:"bi.htape",element:this,items:[{el:{type:"bi.center_adapt",items:[this.left]},width:25},{type:"bi.center_adapt",items:[{el:{type:"bi.horizontal_float",width:50,items:[{el:this.year}]}}]},{el:{type:"bi.center_adapt",items:[this.right]},width:25}]}),this.setValue({year:this._year})},_checkLeftValid:function(){var a=this.options,b=!(this._year===BI.parseDateTime(a.min,"%Y-%X-%d").getFullYear());return this.left.setEnable(b),b},_checkRightValid:function(){var a=this.options,b=!(this._year===BI.parseDateTime(a.max,"%Y-%X-%d").getFullYear());return this.right.setEnable(b),b},setValue:function(a){this._year=a,this.year.setValue(a),this._checkLeftValid(),this._checkRightValid()},getValue:function(){return this.year.getValue()}}),BI.YearPicker.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.year_picker",BI.YearPicker),BI.DateCalendarPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.DateCalendarPopup.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-date-calendar-popup",min:"1900-01-01",max:"2099-12-31",selectedTime:null})},_createNav:function(a){var b=BI.Calendar.getDateJSONByPage(a),c=BI.createWidget({type:"bi.calendar",logic:{dynamic:!0},min:this.options.min,max:this.options.max,year:b.year,month:b.month,day:this.selectedTime.day});return c},_init:function(){BI.DateCalendarPopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.today=BI.getDate(),this._year=this.today.getFullYear(),this._month=this.today.getMonth()+1,this._day=this.today.getDate(),this.selectedTime=b.selectedTime||{year:this._year,month:this._month,day:this._day},this.datePicker=BI.createWidget({type:"bi.date_picker",behaviors:b.behaviors,min:b.min,max:b.max}),this.calendar=BI.createWidget({direction:"top",logic:{dynamic:!0},type:"bi.navigation",tab:this.datePicker,cardCreator:BI.bind(this._createNav,this),afterCardCreated:function(){},afterCardShow:function(){this.setValue(a.selectedTime)}}),this.datePicker.on(BI.DatePicker.EVENT_CHANGE,function(){a.selectedTime=a.datePicker.getValue(),a.selectedTime.day=1,a.calendar.setSelect(BI.Calendar.getPageByDateJSON(a.selectedTime))}),this.calendar.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedTime=a.calendar.getValue(),a.setValue(a.selectedTime),a.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE)}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.calendar,left:5,right:5},{el:{type:"bi.layout",cls:"bi-split-top"},height:1,top:40,left:0,right:0}]})},setValue:function(a){this.datePicker.setValue(a),this.calendar.setSelect(BI.Calendar.getPageByDateJSON(a)),this.calendar.setValue(a),this.selectedTime=a},getValue:function(){return this.selectedTime}}),BI.DateCalendarPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.date_calendar_popup",BI.DateCalendarPopup),BI.YearPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-popup",behaviors:{},min:"1900-01-01",max:"2099-12-31"})},_createYearCalendar:function(a){var b=this.options,c=this._year,d=BI.createWidget({type:"bi.year_calendar",behaviors:b.behaviors,min:b.min,max:b.max,logic:{dynamic:!0},year:c+12*a});return d.setValue(this._year),d},_init:function(){BI.YearPopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.selectedYear=this._year=BI.getDate().getFullYear();var c=BI.createWidget({type:"bi.icon_button",cls:"pre-page-h-font",width:24,height:24,value:-1}),d=BI.createWidget({type:"bi.icon_button",cls:"next-page-h-font",width:24,height:24,value:1});this.navigation=BI.createWidget({type:"bi.navigation",element:this,single:!0,logic:{dynamic:!0},tab:{cls:"year-popup-navigation bi-high-light bi-split-top",height:24,items:[c,d]},cardCreator:BI.bind(this._createYearCalendar,this),afterCardShow:function(){this.setValue(a.selectedYear);var b=this.getSelectedCard();c.setEnable(!b.isFrontYear()),d.setEnable(!b.isFinalYear())}}),this.navigation.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedYear=this.getValue(),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.fireEvent(BI.YearPopup.EVENT_CHANGE,a.selectedYear)}),BI.isKey(b.value)&&this.setValue(b.value)},getValue:function(){return this.selectedYear},setValue:function(a){var b=this.options;a=BI.parseInt(a),BI.checkDateVoid(a,1,1,b.min,b.max)[0]?(a=BI.getDate().getFullYear(),this.selectedYear="",this.navigation.setSelect(BI.YearCalendar.getPageByYear(a)),this.navigation.setValue("")):(this.selectedYear=a,this.navigation.setSelect(BI.YearCalendar.getPageByYear(a)),this.navigation.setValue(a))}}),BI.YearPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.year_popup",BI.YearPopup),BI.DateTriangleTrigger=BI.inherit(BI.Trigger,{_const:{height:24,iconWidth:12,iconHeight:12},_defaultConfig:function(){return BI.extend(BI.DateTriangleTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-triangle-trigger pull-down-ha-font cursor-pointer",height:24})},_init:function(){BI.DateTriangleTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._const;this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"right",text:a.text,value:a.value,height:b.height}),BI.createWidget({type:"bi.vertical_adapt",element:this,items:[{el:this.text,rgap:5},{type:"bi.icon_label",width:16}]})},setValue:function(a){this.text.setValue(a)},getValue:function(){return this.text.getValue()},setText:function(a){this.text.setText(a)},getText:function(){return this.item.getText()},getKey:function(){}}),BI.shortcut("bi.date_triangle_trigger",BI.DateTriangleTrigger),BI.StaticDatePaneCard=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.StaticDatePaneCard.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-date-pane",min:"1900-01-01",max:"2099-12-31",selectedTime:null})},_init:function(){BI.StaticDatePaneCard.superclass._init.apply(this,arguments);var a=this,b=this.options;this.today=BI.getDate(),this._year=this.today.getFullYear(),this._month=this.today.getMonth()+1,this.selectedTime=b.selectedTime||{year:this._year,month:this._month},this.datePicker=BI.createWidget({type:"bi.date_picker",behaviors:b.behaviors,min:b.min,max:b.max}),this.datePicker.on(BI.DatePicker.EVENT_CHANGE,function(){var b=a.datePicker.getValue(),c=BI.getMonthDays(BI.getDate(b.year,b.month-1,1)),d=a.selectedTime.day||0;d>c&&(d=c),a.selectedTime={year:b.year,month:b.month},0!==d&&(a.selectedTime.day=d),a.calendar.setSelect(BI.Calendar.getPageByDateJSON(a.selectedTime)),a.calendar.setValue(a.selectedTime),0!==d&&a.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE)}),this.calendar=BI.createWidget({direction:"custom",type:"bi.navigation",tab:this.datePicker,cardCreator:BI.bind(this._createNav,this)}),this.calendar.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedTime=a.calendar.getValue(),a.calendar.empty(),a.setValue(a.selectedTime),a.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE)}),this.setValue(b.selectedTime),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.datePicker,height:40},this.calendar],hgap:10}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.layout",cls:"bi-split-top"},height:1,top:40,left:0,right:0}]})},_createNav:function(a){var b=BI.Calendar.getDateJSONByPage(a),c=BI.createWidget({type:"bi.calendar",logic:{dynamic:!1},min:this.options.min,max:this.options.max,year:b.year,month:b.month,day:this.selectedTime.day});return c},_getNewCurrentDate:function(){var a=BI.getDate();return{year:a.getFullYear(),month:a.getMonth()+1}},_setCalenderValue:function(a){this.calendar.setSelect(BI.Calendar.getPageByDateJSON(a)),this.calendar.setValue(a),this.selectedTime=a},_setDatePicker:function(a){BI.isNull(a)||BI.isNull(a.year)||BI.isNull(a.month)?this.datePicker.setValue(this._getNewCurrentDate()):this.datePicker.setValue(a)},_setCalendar:function(a){BI.isNull(a)||BI.isNull(a.day)?(this.calendar.empty(),this._setCalenderValue(this._getNewCurrentDate())):this._setCalenderValue(a)},setValue:function(a){this._setDatePicker(a),this._setCalendar(a)},getValue:function(){return this.selectedTime}}),BI.shortcut("bi.static_date_pane_card",BI.StaticDatePaneCard),BI.DynamicDatePane=BI.inherit(BI.Widget,{props:{baseCls:"bi-dynamic-date-pane"},render:function(){var a=this,b=this.options;return{type:"bi.vtape",items:[{el:{type:"bi.linear_segment",cls:"bi-split-bottom",height:30,items:BI.createItems([{text:BI.i18nText("BI-Multi_Date_YMD"),value:BI.DynamicDatePane.Static},{text:BI.i18nText("BI-Basic_Dynamic_Title"),value:BI.DynamicDatePane.Dynamic}],{textAlign:"center"}),listeners:[{eventName:BI.ButtonGroup.EVENT_CHANGE,action:function(){var b=this.getValue()[0];switch(a.dateTab.setSelect(b),b){case BI.DynamicDatePane.Static:var c=BI.DynamicDateHelper.getCalculation(a.dynamicPane.getValue());a.ymd.setValue({year:c.getFullYear(),month:c.getMonth()+1,day:c.getDate()});break;case BI.DynamicDatePane.Dynamic:a.dynamicPane.setValue({year:0})}}}],ref:function(){a.switcher=this}},height:30},{type:"bi.tab",ref:function(){a.dateTab=this},showIndex:BI.DynamicDatePane.Static,cardCreator:function(c){switch(c){case BI.DynamicDatePane.Static:return{type:"bi.static_date_pane_card",behaviors:b.behaviors,listeners:[{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}],ref:function(){a.ymd=this}};case BI.DynamicDatePane.Dynamic:default:return{type:"bi.dynamic_date_card",listeners:[{eventName:"EVENT_CHANGE",action:function(){a._checkValue(a.getValue())&&a.fireEvent("EVENT_CHANGE")}}],ref:function(){a.dynamicPane=this}}}}}]}},mounted:function(){this.setValue(this.options.value)},_checkValueValid:function(a){return BI.isNull(a)||BI.isEmptyObject(a)||BI.isEmptyString(a)},_checkValue:function(a){switch(a.type){case BI.DynamicDateCombo.Dynamic:return BI.isNotEmptyObject(a.value);case BI.DynamicDateCombo.Static:default:return!0}},setValue:function(a){a=a||{};var b=a.type||BI.DynamicDateCombo.Static,c=a.value||a;switch(this.switcher.setValue(b),this.dateTab.setSelect(b),b){case BI.DynamicDateCombo.Dynamic:this.dynamicPane.setValue(c);break;case BI.DynamicDateCombo.Static:default:if(this._checkValueValid(c)){var d=BI.getDate();this.ymd.setValue({year:d.getFullYear(),month:d.getMonth()+1})}else this.ymd.setValue(c)}},getValue:function(){return{type:this.dateTab.getSelect(),value:this.dateTab.getValue()}}}),BI.shortcut("bi.dynamic_date_pane",BI.DynamicDatePane),BI.extend(BI.DynamicDatePane,{Static:1,Dynamic:2}),BI.DateTimeCombo=BI.inherit(BI.Single,{constants:{popupHeight:290,popupWidth:270,comboAdjustHeight:1,border:1},_defaultConfig:function(){return BI.extend(BI.DateTimeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-combo bi-border bi-border-radius",width:200,height:24,minDate:"1900-01-01",maxDate:"2099-12-31"})},_init:function(){BI.DateTimeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=BI.getDate();this.storeValue=BI.isNotNull(b.value)?b.value:{year:c.getFullYear(),month:c.getMonth()+1,day:c.getDate(),hour:c.getHours(),minute:c.getMinutes(),second:c.getSeconds()},this.trigger=BI.createWidget({type:"bi.date_time_trigger",min:b.minDate,max:b.maxDate,value:b.value}),this.popup=BI.createWidget({type:"bi.date_time_popup",behaviors:b.behaviors,min:b.minDate,max:b.maxDate,value:b.value}),a.setValue(this.storeValue),this.popup.on(BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE,function(){a.setValue(a.storeValue),a.hidePopupView(),a.fireEvent(BI.DateTimeCombo.EVENT_CANCEL)}),this.popup.on(BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE,function(){a.storeValue=a.popup.getValue(),a.setValue(a.storeValue),a.hidePopupView(),a.fireEvent(BI.DateTimeCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,adjustLength:this.constants.comboAdjustHeight,popup:{el:this.popup,width:this.constants.popupWidth,stopPropagation:!1},hideChecker:function(a){return 0===d.element.find(a.target).length}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW)});var d=BI.createWidget({type:"bi.icon_button",cls:"bi-trigger-icon-button date-font",width:24,height:24});d.on(BI.IconButton.EVENT_CHANGE,function(){a.combo.isViewVisible()||a.combo.showView()}),BI.createWidget({type:"bi.htape",element:this,items:[{type:"bi.absolute",items:[{el:this.combo,top:0,left:0,right:0,bottom:0},{el:d,top:0,right:0}]}]})},setValue:function(a){this.storeValue=a,this.popup.setValue(a),this.trigger.setValue(a)},getValue:function(){return this.storeValue},hidePopupView:function(){this.combo.hideView()}}),BI.DateTimeCombo.EVENT_CANCEL="EVENT_CANCEL",BI.DateTimeCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DateTimeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW="BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.date_time_combo",BI.DateTimeCombo),BI.DateTimePopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DateTimePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-popup",width:268,height:374})},_init:function(){BI.DateTimePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.cancelButton=BI.createWidget({type:"bi.text_button",cls:"multidate-popup-button bi-border-top bi-border-right",shadow:!0,text:BI.i18nText("BI-Basic_Cancel")}),this.cancelButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE)}),this.okButton=BI.createWidget({type:"bi.text_button",cls:"multidate-popup-button bi-border-top",shadow:!0,text:BI.i18nText("BI-Basic_OK")}),this.okButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE)}),this.dateCombo=BI.createWidget({type:"bi.date_calendar_popup",behaviors:b.behaviors,min:a.options.min,max:a.options.max}),a.dateCombo.on(BI.DateCalendarPopup.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)}),this.dateButton=BI.createWidget({type:"bi.grid",items:[[this.cancelButton,this.okButton]]}),BI.createWidget({element:this,type:"bi.vtape",items:[{el:this.dateCombo},{el:{type:"bi.center_adapt",cls:"bi-split-top",items:[{type:"bi.dynamic_date_time_select",ref:function(b){a.timeSelect=b}}]},height:50},{el:this.dateButton,height:30}]}),this.setValue(b.value)},setValue:function(a){var b,c=a;BI.isNull(c)?(b=BI.getDate(),this.dateCombo.setValue({year:b.getFullYear(),month:b.getMonth()+1,day:b.getDate()}),this.timeSelect.setValue({hour:b.getHours(),minute:b.getMinutes(),second:b.getSeconds()})):(this.dateCombo.setValue({year:c.year,month:c.month,day:c.day}),this.timeSelect.setValue({hour:c.hour,minute:c.minute,second:c.second}))},getValue:function(){return BI.extend({year:this.dateCombo.getValue().year,month:this.dateCombo.getValue().month,day:this.dateCombo.getValue().day},this.timeSelect.getValue())}}),BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE="BUTTON_CANCEL_EVENT_CHANGE",BI.DateTimePopup.CALENDAR_EVENT_CHANGE="CALENDAR_EVENT_CHANGE",BI.shortcut("bi.date_time_popup",BI.DateTimePopup),BI.DateTimeTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4},_defaultConfig:function(){return BI.extend(BI.DateTimeTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-date-time-trigger",min:"1900-01-01",max:"2099-12-31",height:24,width:200})},_init:function(){BI.DateTimeTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",height:a.height,width:a.width,hgap:b.hgap}),BI.createWidget({type:"bi.htape",element:this,items:[{el:this.text},{el:BI.createWidget(),width:a.height}]}),this.setValue(a.value)},_printTime:function(a){return a<10?"0"+a:a},setValue:function(a){var b,c=a;if(BI.isNull(c))c=BI.getDate(),b=BI.print(c,"%Y-%X-%d %H:%M:%S");else{var d=BI.getDate(c.year,c.month-1,c.day,c.hour,c.minute,c.second);b=BI.print(d,"%Y-%X-%d %H:%M:%S")}this.text.setText(b),this.text.setTitle(b)}}),BI.shortcut("bi.date_time_trigger",BI.DateTimeTrigger),BI.StaticDateTimePaneCard=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.StaticDateTimePaneCard.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-date-time-pane",min:"1900-01-01",max:"2099-12-31",selectedTime:null})},_init:function(){BI.StaticDateTimePaneCard.superclass._init.apply(this,arguments);var a=this,b=this.options;this.today=BI.getDate(),this._year=this.today.getFullYear(),this._month=this.today.getMonth()+1,this.selectedTime=b.selectedTime||{year:this._year,month:this._month},this.datePicker=BI.createWidget({type:"bi.date_picker",behaviors:b.behaviors,min:b.min,max:b.max}),this.datePicker.on(BI.DatePicker.EVENT_CHANGE,function(){var b=a.datePicker.getValue(),c=BI.getMonthDays(BI.getDate(b.year,b.month-1,1)),d=a.selectedTime.day||0;d>c&&(d=c),a.selectedTime=BI.extend(a.selectedTime,{year:b.year,month:b.month,day:d}),0!==d&&(a.selectedTime.day=d),a.calendar.setSelect(BI.Calendar.getPageByDateJSON(a.selectedTime)),a.calendar.setValue(a.selectedTime),0!==d&&a.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE)}),this.calendar=BI.createWidget({direction:"custom",type:"bi.navigation",tab:this.datePicker,cardCreator:BI.bind(this._createNav,this)}),this.calendar.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedTime=BI.extend(a.calendar.getValue(),a.timeSelect.getValue()),a.calendar.empty(),a.setValue(a.selectedTime),a.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE)}),BI.createWidget({type:"bi.vtape",element:this,hgap:10,items:[{el:this.datePicker,height:40},this.calendar,{el:{type:"bi.dynamic_date_time_select",cls:"bi-split-top",ref:function(){a.timeSelect=this},listeners:[{eventName:BI.DynamicDateTimeSelect.EVENT_CONFIRM,action:function(){a.selectedTime=BI.extend(a.calendar.getValue(),a.timeSelect.getValue()),a.fireEvent("EVENT_CHANGE")}}]},height:40}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.layout",cls:"bi-split-top"},height:1,top:40,left:0,right:0}]}),this.setValue(b.selectedTime)},_createNav:function(a){var b=BI.Calendar.getDateJSONByPage(a),c=BI.createWidget({type:"bi.calendar",logic:{dynamic:!1},min:this.options.min,max:this.options.max,year:b.year,month:b.month,day:this.selectedTime.day});return c},_getNewCurrentDate:function(){var a=BI.getDate();return{year:a.getFullYear(),month:a.getMonth()+1}},_setCalenderValue:function(a){this.calendar.setSelect(BI.Calendar.getPageByDateJSON(a)),this.calendar.setValue(a),this.selectedTime=BI.extend({},this.timeSelect.getValue(),a)},_setDatePicker:function(a){BI.isNull(a)||BI.isNull(a.year)||BI.isNull(a.month)?this.datePicker.setValue(this._getNewCurrentDate()):this.datePicker.setValue(a)},_setCalendar:function(a){BI.isNull(a)||BI.isNull(a.day)?(this.calendar.empty(),this._setCalenderValue(this._getNewCurrentDate())):this._setCalenderValue(a)},setValue:function(a){a=a||{},this._setDatePicker(a),this._setCalendar(a),this.timeSelect.setValue({hour:a.hour,minute:a.minute,second:a.second})},getValue:function(){return this.selectedTime}}),BI.shortcut("bi.static_date_time_pane_card",BI.StaticDateTimePaneCard),BI.DynamicDateTimePane=BI.inherit(BI.Widget,{props:{baseCls:"bi-dynamic-date-pane"},render:function(){var a=this,b=this.options;return{type:"bi.vtape",items:[{el:{type:"bi.linear_segment",cls:"bi-split-bottom",height:30,items:BI.createItems([{text:BI.i18nText("BI-Multi_Date_YMD"),value:BI.DynamicDateTimePane.Static},{text:BI.i18nText("BI-Basic_Dynamic_Title"),value:BI.DynamicDateTimePane.Dynamic}],{textAlign:"center"}),listeners:[{eventName:BI.ButtonGroup.EVENT_CHANGE,action:function(){var b=this.getValue()[0];switch(a.dateTab.setSelect(b),b){case BI.DynamicDateTimePane.Static:var c=BI.DynamicDateHelper.getCalculation(a.dynamicPane.getValue());a.ymd.setValue({year:c.getFullYear(),month:c.getMonth()+1,day:c.getDate()});break;case BI.DynamicDateTimePane.Dynamic:a.dynamicPane.setValue({year:0})}}}],ref:function(){a.switcher=this}},height:30},{type:"bi.tab",ref:function(){a.dateTab=this},showIndex:BI.DynamicDateTimePane.Static,cardCreator:function(c){switch(c){case BI.DynamicDateTimePane.Static:return{type:"bi.static_date_time_pane_card",behaviors:b.behaviors,listeners:[{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}],ref:function(){a.ymd=this}};case BI.DynamicDateTimePane.Dynamic:default:return{type:"bi.dynamic_date_card",listeners:[{eventName:"EVENT_CHANGE",action:function(){a._checkValue(a.getValue())&&a.fireEvent("EVENT_CHANGE")}}],ref:function(){a.dynamicPane=this}}}}}]}},mounted:function(){this.setValue(this.options.value)},_checkValueValid:function(a){return BI.isNull(a)||BI.isEmptyObject(a)||BI.isEmptyString(a)},_checkValue:function(a){switch(a.type){case BI.DynamicDateCombo.Dynamic:return BI.isNotEmptyObject(a.value);case BI.DynamicDateCombo.Static:default:return!0}},setValue:function(a){a=a||{};var b=a.type||BI.DynamicDateTimePane.Static,c=a.value||a;switch(this.switcher.setValue(b),this.dateTab.setSelect(b),b){case BI.DynamicDateTimePane.Dynamic:this.dynamicPane.setValue(c);break;case BI.DynamicDateTimePane.Static:default:if(this._checkValueValid(c)){var d=BI.getDate();this.ymd.setValue({year:d.getFullYear(),month:d.getMonth()+1})}else this.ymd.setValue(c)}},getValue:function(){return{type:this.dateTab.getSelect(),value:this.dateTab.getValue()}}}),BI.shortcut("bi.dynamic_date_time_pane",BI.DynamicDateTimePane),BI.extend(BI.DynamicDateTimePane,{Static:1,Dynamic:2}),BI.DownListCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DownListCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-combo",height:24,items:[],adjustLength:0,direction:"bottom",trigger:"click",container:null,stopPropagation:!1,el:{}})},_init:function(){BI.DownListCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popupview=BI.createWidget({type:"bi.down_list_popup",items:b.items,chooseType:b.chooseType,value:b.value}),this.popupview.on(BI.DownListPopup.EVENT_CHANGE,function(b){a.fireEvent(BI.DownListCombo.EVENT_CHANGE,b),a.downlistcombo.hideView()}),this.popupview.on(BI.DownListPopup.EVENT_SON_VALUE_CHANGE,function(b,c){a.fireEvent(BI.DownListCombo.EVENT_SON_VALUE_CHANGE,b,c),a.downlistcombo.hideView()}),this.downlistcombo=BI.createWidget({element:this,type:"bi.combo",trigger:b.trigger,isNeedAdjustWidth:!1,container:b.container,adjustLength:b.adjustLength,direction:b.direction,stopPropagation:b.stopPropagation,el:BI.createWidget(b.el,{type:"bi.icon_trigger",extraCls:b.iconCls?b.iconCls:"",width:b.width,height:b.height}),popup:{el:this.popupview,stopPropagation:!0,maxHeight:1e3,minWidth:140}}),this.downlistcombo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.DownListCombo.EVENT_BEFORE_POPUPVIEW)})},hideView:function(){this.downlistcombo.hideView()},showView:function(a){this.downlistcombo.showView(a)},populate:function(a){this.popupview.populate(a)},setValue:function(a){this.popupview.setValue(a)},getValue:function(){return this.popupview.getValue()}}),BI.DownListCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DownListCombo.EVENT_SON_VALUE_CHANGE="EVENT_SON_VALUE_CHANGE",BI.DownListCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.down_list_combo",BI.DownListCombo),BI.DownListGroup=BI.inherit(BI.Widget,{constants:{iconCls:"check-mark-ha-font"},_defaultConfig:function(){return BI.extend(BI.DownListGroup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-group",items:[{el:{}}]})},_init:function(){BI.DownListGroup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.downlistgroup=BI.createWidget({element:this,type:"bi.button_tree",items:a.items,chooseType:0,layouts:[{type:"bi.vertical",hgap:0,vgap:0}],value:a.value}),this.downlistgroup.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.DownListGroup.EVENT_CHANGE,arguments)})},getValue:function(){return this.downlistgroup.getValue()},setValue:function(a){this.downlistgroup.setValue(a)}}),BI.DownListGroup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_group",BI.DownListGroup),BI.DownListItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.DownListItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-down-list-item bi-list-item-active",cls:"",height:24,logic:{dynamic:!0},selected:!1,iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.DownListItem.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",hgap:a.textHgap,vgap:a.textVgap,lgap:a.textLgap,rgap:a.textRgap,text:a.text,value:a.value,keyword:a.keyword,height:a.height}),this.icon=BI.createWidget({type:"bi.center_adapt",width:36,height:a.height,items:[{el:{type:"bi.icon",width:a.iconWidth,height:a.iconHeight}}]}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,this.icon,this.text)}))))},setValue:function(){this.isReadOnly()||this.text.setValue.apply(this.text,arguments)},getValue:function(){return this.text.getValue()},setText:function(){this.text.setText.apply(this.text,arguments)},getText:function(){return this.text.getText()},doClick:function(){BI.DownListItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.DownListItem.EVENT_CHANGE,this.getValue(),this)},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)}}),BI.DownListItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_item",BI.DownListItem),BI.DownListGroupItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.DownListGroupItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-down-list-group-item",logic:{dynamic:!1},iconCls1:"dot-e-font",iconCls2:"pull-right-e-font"})},_init:function(){BI.DownListGroupItem.superclass._init.apply(this,arguments);var a=this.options,b=this;this.text=BI.createWidget({type:"bi.label",cls:"list-group-item-text",textAlign:"left",text:a.text,value:a.value,height:a.height}),this.icon1=BI.createWidget({type:"bi.icon_button",cls:a.iconCls1,width:36,forceNotSelected:!0,selected:this._digest(a.value)}),this.icon2=BI.createWidget({type:"bi.icon_button",cls:a.iconCls2,width:24,forceNotSelected:!0});var c=BI.createWidget({type:"bi.layout",width:24});BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.icon2,top:0,bottom:0,right:0}]}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",this.icon1,this.text,c)})))),this.element.hover(function(){b.isEnabled()&&b.hover()},function(){b.isEnabled()&&b.dishover()})},_digest:function(a){var b=this.options;return a=BI.isArray(a)?a:[a],BI.any(a,function(a,c){return BI.contains(b.childValues,c)})},hover:function(){BI.DownListGroupItem.superclass.hover.apply(this,arguments),this.icon1.element.addClass("hover"),this.icon2.element.addClass("hover")},dishover:function(){BI.DownListGroupItem.superclass.dishover.apply(this,arguments),this.icon1.element.removeClass("hover"),this.icon2.element.removeClass("hover")},doClick:function(){BI.DownListGroupItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.DownListGroupItem.EVENT_CHANGE,this.getValue())},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},setValue:function(a){this.icon1.setSelected(this._digest(a))}}),BI.DownListGroupItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_group_item",BI.DownListGroupItem),BI.DownListPopup=BI.inherit(BI.Pane,{constants:{nextIcon:"pull-right-e-font",height:24,iconHeight:12,iconWidth:12,hgap:0,vgap:0,border:1},_defaultConfig:function(){var a=BI.DownListPopup.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-down-list-popup",items:[],chooseType:BI.Selection.Multi})},_init:function(){BI.DownListPopup.superclass._init.apply(this,arguments),this.singleValues=[],this.childValueMap={},this.fatherValueMap={},this.items=BI.deepClone(this.options.items);var a=this,b=this.options,c=this._createChildren(this.items);this.popup=BI.createWidget({type:"bi.button_tree",items:BI.createItems(c,{},{adjustLength:-2}),layouts:[{type:"bi.vertical",hgap:this.constants.hgap,vgap:this.constants.vgap}],value:this._digest(b.value),chooseType:b.chooseType}),this.popup.on(BI.ButtonTree.EVENT_CHANGE,function(b,c){var d=b;if(BI.isNotNull(a.childValueMap[b])?(d=a.childValueMap[b],a.fireEvent(BI.DownListPopup.EVENT_SON_VALUE_CHANGE,d,a.fatherValueMap[b])):a.fireEvent(BI.DownListPopup.EVENT_CHANGE,d,c),!BI.contains(a.singleValues,d)){var e=a.getValue(),f=[];BI.each(e,function(a,b){b.value!=d&&f.push(b)}),a.setValue(f)}}),BI.createWidget({type:"bi.vertical",element:this,items:[this.popup],vgap:5})},_createChildren:function(a){var b=this,c=[];return BI.each(a,function(d,e){var f={type:"bi.down_list_group",items:[]};if(BI.each(e,function(a,c){BI.isNotEmptyArray(c.children)&&!BI.isEmpty(c.el)?(c.type="bi.combo_group",c.isDefaultInit=!0,c.cls="down-list-group",c.trigger="hover",c.isNeedAdjustWidth=!1,c.el.title=c.el.title||c.el.text,c.el.type="bi.down_list_group_item",c.el.logic={dynamic:!0},c.el.height=b.constants.height,c.el.iconCls2=b.constants.nextIcon,c.popup={lgap:1,el:{type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]},innerVGap:5,maxHeight:378},c.el.childValues=[],BI.each(c.children,function(a,d){var e=BI.deepClone(c.el.value),f=BI.deepClone(d.value);b.singleValues.push(d.value),d.type="bi.down_list_item",d.extraCls=" child-down-list-item",d.title=d.title||d.text,d.textRgap=10,d.isNeedAdjustWidth=!1,d.logic={dynamic:!0},d.father=e,b.fatherValueMap[b._createChildValue(e,f)]=e,b.childValueMap[b._createChildValue(e,f)]=f,d.value=b._createChildValue(e,f),c.el.childValues.push(d.value)})):(c.type="bi.down_list_item",c.title=c.title||c.text,c.textRgap=10,c.isNeedAdjustWidth=!1,c.logic={dynamic:!0});var d={};d.el=c,f.items.push(d)}),b._isGroup(f.items)&&BI.each(f.items,function(a,c){b.singleValues.push(c.el.value)}),c.push(f),b._needSpliter(d,a.length)){var g=BI.createWidget({type:"bi.vertical",items:[{el:{type:"bi.layout",cls:"bi-down-list-spliter bi-split-top cursor-pointer",height:0}}],cls:"bi-down-list-spliter-container cursor-pointer",vgap:5,lgap:10,rgap:0});c.push(g)}}),c},_isGroup:function(a){return a.length>1},_needSpliter:function(a,b){ -return a0?1:0}},setValue:function(a){a=a||{},this.position=a.position||BI.DynamicDateCard.OFFSET.CURRENT;var b=[],c=[];BI.isNotNull(a.year)&&(b.push(BI.DynamicDateCard.TYPE.YEAR),c.push(this._createValue(BI.DynamicDateCard.TYPE.YEAR,a.year))),BI.isNotNull(a.quarter)&&(b.push(BI.DynamicDateCard.TYPE.QUARTER),c.push(this._createValue(BI.DynamicDateCard.TYPE.QUARTER,a.quarter))),BI.isNotNull(a.month)&&(b.push(BI.DynamicDateCard.TYPE.MONTH),c.push(this._createValue(BI.DynamicDateCard.TYPE.MONTH,a.month))),BI.isNotNull(a.week)&&(b.push(BI.DynamicDateCard.TYPE.WEEK),c.push(this._createValue(BI.DynamicDateCard.TYPE.WEEK,a.week))),BI.isNotNull(a.day)&&(b.push(BI.DynamicDateCard.TYPE.DAY),c.push(this._createValue(BI.DynamicDateCard.TYPE.DAY,a.day))),BI.isNotNull(a.workDay)&&(b.push(BI.DynamicDateCard.TYPE.WORK_DAY),c.push(this._createValue(BI.DynamicDateCard.TYPE.WORK_DAY,a.workDay))),this.checkgroup.setValue(b),this.workDayBox.setSelected(BI.isNotNull(a.workDay)),this.resultPane.populate(this._getParamJson(c,a.position))},getValue:function(){var a=this,b={},c=this.checkgroup.getValue(),d=this.resultPane.getAllButtons();if(0!==c.length&&BI.each(d,function(c,d){var e=d.getValue();switch(e.dateType){case BI.DynamicDateCard.TYPE.YEAR:b.year=0===e.offset?-e.value:e.value;break;case BI.DynamicDateCard.TYPE.QUARTER:b.quarter=0===e.offset?-e.value:e.value;break;case BI.DynamicDateCard.TYPE.MONTH:b.month=0===e.offset?-e.value:e.value;break;case BI.DynamicDateCard.TYPE.WEEK:b.week=0===e.offset?-e.value:e.value;break;case BI.DynamicDateCard.TYPE.DAY:b.day=0===e.offset?-e.value:e.value}BI.isNull(e.dateType)&&(b.position=a.position||BI.DynamicDateCard.OFFSET.CURRENT)}),this.workDayBox.isSelected()){var e=d[0].getValue();b.workDay=0===e.offset?-e.value:e.value}return b}}),BI.shortcut("bi.dynamic_date_card",BI.DynamicDateCard),BI.extend(BI.DynamicDateCard,{TYPE:{YEAR:1,QUARTER:2,MONTH:3,WEEK:4,DAY:5,WORK_DAY:6},OFFSET:{CURRENT:1,BEGIN:2,END:3}}),BI.DynamicDateCombo=BI.inherit(BI.Single,{constants:{popupHeight:259,popupWidth:270,comboAdjustHeight:1,border:1},props:{baseCls:"bi-dynamic-date-combo bi-border bi-focus-shadow bi-border-radius",height:22,minDate:"1900-01-01",maxDate:"2099-12-31",format:"",allowEdit:!0},render:function(){var a=this,b=this.options;this.storeTriggerValue="";var c=BI.getDate();return this.storeValue=b.value,{type:"bi.htape",items:[{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button date-change-h-font",width:b.height,height:b.height,ref:function(){a.changeIcon=this}},width:b.height},{type:"bi.absolute",items:[{el:{type:"bi.combo",container:b.container,ref:function(){a.combo=this},toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:{type:"bi.dynamic_date_trigger",min:b.minDate,max:b.maxDate,format:b.format,allowEdit:b.allowEdit,height:b.height,value:b.value,ref:function(){a.trigger=this},listeners:[{eventName:BI.DynamicDateTrigger.EVENT_KEY_DOWN,action:function(){a.combo.isViewVisible()&&a.combo.hideView()}},{eventName:BI.DynamicDateTrigger.EVENT_STOP,action:function(){a.combo.isViewVisible()||a.combo.showView()}},{eventName:BI.DynamicDateTrigger.EVENT_TRIGGER_CLICK,action:function(){a.combo.toggle()}},{eventName:BI.DynamicDateTrigger.EVENT_FOCUS,action:function(){a.storeTriggerValue=a.trigger.getKey(),a.combo.isViewVisible()||a.combo.showView(),a.fireEvent(BI.DynamicDateCombo.EVENT_FOCUS)}},{eventName:BI.DynamicDateTrigger.EVENT_ERROR,action:function(){a.storeValue={type:BI.DynamicDateCombo.Static,value:{year:c.getFullYear(),month:c.getMonth()+1}},a.fireEvent(BI.DynamicDateCombo.EVENT_ERROR)}},{eventName:BI.DynamicDateTrigger.EVENT_VALID,action:function(){a.fireEvent(BI.DynamicDateCombo.EVENT_VALID)}},{eventName:BI.DynamicDateTrigger.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDateCombo.EVENT_CHANGE)}},{eventName:BI.DynamicDateTrigger.EVENT_CONFIRM,action:function(){if(!a.combo.isViewVisible()){var b=a.storeTriggerValue,c=a.trigger.getKey();BI.isNotEmptyString(c)&&!BI.isEqual(c,b)?(a.storeValue=a.trigger.getValue(),a.setValue(a.trigger.getValue())):BI.isEmptyString(c)&&(a.storeValue=null,a.trigger.setValue()),a._checkDynamicValue(a.storeValue),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}}}]},adjustLength:this.constants.comboAdjustHeight,popup:{el:{type:"bi.dynamic_date_popup",behaviors:b.behaviors,min:b.minDate,max:b.maxDate,value:b.value,ref:function(){a.popup=this},listeners:[{eventName:BI.DynamicDatePopup.BUTTON_CLEAR_EVENT_CHANGE,action:function(){a.setValue(),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicDatePopup.BUTTON_lABEL_EVENT_CHANGE,action:function(){var b=BI.getDate();a.setValue({type:BI.DynamicDateCombo.Static,value:{year:b.getFullYear(),month:b.getMonth()+1,day:b.getDate()}}),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicDatePopup.BUTTON_OK_EVENT_CHANGE,action:function(){var b=a.popup.getValue();a._checkValue(b)&&a.setValue(b),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicDatePopup.EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}}]},stopPropagation:!1},hideChecker:function(b){return 0===a.triggerBtn.element.find(b.target).length},listeners:[{eventName:BI.Combo.EVENT_BEFORE_POPUPVIEW,action:function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DynamicDateCombo.EVENT_BEFORE_POPUPVIEW)}}]},top:0,left:0,right:0,bottom:0},{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button date-font",width:b.height,height:b.height,listeners:[{eventName:BI.IconButton.EVENT_CHANGE,action:function(){a.combo.isViewVisible()||a.combo.showView()}}],ref:function(){a.triggerBtn=this}},top:0,right:0}]}],ref:function(b){a.comboWrapper=b}}},mounted:function(){this._checkDynamicValue(this.storeValue)},_checkDynamicValue:function(a){var b=this.options,c=null;switch(BI.isNotNull(a)&&(c=a.type),c){case BI.DynamicDateCombo.Dynamic:this.changeIcon.setVisible(!0),this.comboWrapper.attr("items")[0].width=b.height,this.comboWrapper.resize();break;default:this.comboWrapper.attr("items")[0].width=0,this.comboWrapper.resize(),this.changeIcon.setVisible(!1)}},_checkValue:function(a){switch(a.type){case BI.DynamicDateCombo.Dynamic:return BI.isNotEmptyObject(a.value);case BI.DynamicDateCombo.Static:default:return!0}},_defaultState:function(){},setValue:function(a){this.storeValue=a,this.trigger.setValue(a),this._checkDynamicValue(a)},getValue:function(){return this.storeValue},getKey:function(){return this.trigger.getKey()},hidePopupView:function(){this.combo.hideView()}}),BI.DynamicDateCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicDateCombo.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicDateCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DynamicDateCombo.EVENT_VALID="EVENT_VALID",BI.DynamicDateCombo.EVENT_ERROR="EVENT_ERROR",BI.DynamicDateCombo.EVENT_BEFORE_POPUPVIEW="BI.DynamicDateCombo.EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.dynamic_date_combo",BI.DynamicDateCombo),BI.extend(BI.DynamicDateCombo,{Static:1,Dynamic:2}),BI.DynamicDateParamItem=BI.inherit(BI.Widget,{props:{baseCls:"bi-dynamic-date-param-item",dateType:BI.DynamicDateCard.TYPE.YEAR,value:0,offset:0,height:24},render:function(){var a=this,b=this.options;return{type:"bi.htape",items:[{el:{type:"bi.sign_editor",cls:"bi-border",height:22,validationChecker:function(a){return BI.isNaturalNumber(a)},value:b.value,ref:function(){a.editor=this},errorText:function(a){return BI.isEmptyString(a)?BI.i18nText("BI-Basic_Please_Input_Content"):BI.i18nText("BI-Please_Input_Natural_Number")},allowBlank:!1,listeners:[{eventName:BI.SignEditor.EVENT_CONFIRM,action:function(){a.fireEvent(BI.DynamicDateParamItem.EVENT_CHANGE)}}]},width:60},{el:{type:"bi.label",height:24,text:this._getText()},width:b.dateType===BI.DynamicDateCard.TYPE.WORK_DAY?60:20},{type:"bi.text_value_combo",height:24,items:[{text:BI.i18nText("BI-Basic_Front"),value:0},{text:BI.i18nText("BI-Basic_Behind"),value:1}],ref:function(){a.offsetCombo=this},container:null,value:b.offset,listeners:[{eventName:BI.TextValueCombo.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDateParamItem.EVENT_CHANGE)}}]}]}},_getText:function(){var a="";switch(this.options.dateType){case BI.DynamicDateCard.TYPE.YEAR:a=BI.i18nText("BI-Basic_Year");break;case BI.DynamicDateCard.TYPE.QUARTER:a=BI.i18nText("BI-Basic_Single_Quarter");break;case BI.DynamicDateCard.TYPE.MONTH:a=BI.i18nText("BI-Basic_Month");break;case BI.DynamicDateCard.TYPE.WEEK:a=BI.i18nText("BI-Basic_Week");break;case BI.DynamicDateCard.TYPE.DAY:a=BI.i18nText("BI-Basic_Day");break;case BI.DynamicDateCard.TYPE.WORK_DAY:default:a=BI.i18nText("BI-Basic_Work_Day")}return a},setValue:function(a){a=a||{},a.value=a.value||0,a.offset=a.offset||0,this.editor.setValue(a.value),this.offsetCombo.setValue(a.offset)},getValue:function(){return{dateType:this.options.dateType,value:this.editor.getValue(),offset:this.offsetCombo.getValue()[0]}}}),BI.DynamicDateParamItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.dynamic_date_param_item",BI.DynamicDateParamItem),BI.DynamicDatePopup=BI.inherit(BI.Widget,{constants:{tabHeight:30,buttonHeight:24},props:{baseCls:"bi-dynamic-date-popup",width:248,height:344},_init:function(){BI.DynamicDatePopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this.constants;this.storeValue={type:BI.DynamicDateCombo.Static},BI.createWidget({element:this,type:"bi.vtape",items:[{el:this._getTabJson()},{el:{type:"bi.grid",items:[[{type:"bi.text_button",cls:"bi-high-light bi-split-top",shadow:!0,text:BI.i18nText("BI-Basic_Clear"),textHeight:c.buttonHeight-1,listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDatePopup.BUTTON_CLEAR_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-left bi-split-right bi-high-light bi-split-top",shadow:!0,textHeight:c.buttonHeight-1,text:BI.i18nText("BI-Multi_Date_Today"),ref:function(){a.textButton=this},listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDatePopup.BUTTON_lABEL_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-high-light bi-split-top",textHeight:c.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_OK"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDatePopup.BUTTON_OK_EVENT_CHANGE)}}]}]]},height:24}]}),this.setValue(b.value)},_getTabJson:function(){var a=this,b=this.options;return{type:"bi.tab",ref:function(){a.dateTab=this},tab:{type:"bi.linear_segment",cls:"bi-split-bottom",height:this.constants.tabHeight,items:BI.createItems([{text:BI.i18nText("BI-Multi_Date_YMD"),value:BI.DynamicDateCombo.Static},{text:BI.i18nText("BI-Basic_Dynamic_Title"),value:BI.DynamicDateCombo.Dynamic}],{textAlign:"center"})},cardCreator:function(c){switch(c){case BI.DynamicDateCombo.Dynamic:return{type:"bi.dynamic_date_card",listeners:[{eventName:"EVENT_CHANGE",action:function(){a._setInnerValue(a.year,c)}}],ref:function(){a.dynamicPane=this}};case BI.DynamicDateCombo.Static:default:return{type:"bi.date_calendar_popup",behaviors:b.behaviors,min:a.options.min,max:a.options.max,listeners:[{eventName:BI.DateCalendarPopup.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDatePopup.EVENT_CHANGE)}}],ref:function(){a.ymd=this}}}},listeners:[{eventName:BI.Tab.EVENT_CHANGE,action:function(){var b=a.dateTab.getSelect();switch(b){case BI.DynamicDateCombo.Static:var c=BI.DynamicDateHelper.getCalculation(a.dynamicPane.getValue());a.ymd.setValue({year:c.getFullYear(),month:c.getMonth()+1,day:c.getDate()}),a._setInnerValue();break;case BI.DynamicDateCombo.Dynamic:default:a.storeValue&&a.storeValue.type===BI.DynamicDateCombo.Dynamic?a.dynamicPane.setValue(a.storeValue.value):a.dynamicPane.setValue({year:0}),a._setInnerValue()}}}]}},_setInnerValue:function(){if(this.dateTab.getSelect()===BI.DynamicDateCombo.Static)this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today")),this.textButton.setEnable(!0);else{var a=BI.DynamicDateHelper.getCalculation(this.dynamicPane.getValue());a=BI.print(a,"%Y-%X-%d"),this.textButton.setValue(a),this.textButton.setEnable(!1)}},_checkValueValid:function(a){return BI.isNull(a)||BI.isEmptyObject(a)||BI.isEmptyString(a)},setValue:function(a){this.storeValue=a;var b,c,d=this;switch(a=a||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value||a,this.dateTab.setSelect(b),b){case BI.DynamicDateCombo.Dynamic:this.dynamicPane.setValue(c),d._setInnerValue();break;case BI.DynamicDateCombo.Static:default:if(this._checkValueValid(c)){var e=BI.getDate();this.ymd.setValue({year:e.getFullYear(),month:e.getMonth()+1,day:e.getDate()}),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"))}else this.ymd.setValue(c),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"));this.textButton.setEnable(!0)}},getValue:function(){return{type:this.dateTab.getSelect(),value:this.dateTab.getValue()}}}),BI.DynamicDatePopup.EVENT_CHANGE="EVENT_CHANGE",BI.DynamicDatePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DynamicDatePopup.BUTTON_lABEL_EVENT_CHANGE="BUTTON_lABEL_EVENT_CHANGE",BI.DynamicDatePopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.shortcut("bi.dynamic_date_popup",BI.DynamicDatePopup),BI.DynamicDateTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,yearLength:4,yearMonthLength:6,yearFullMonthLength:7,compareFormat:"%Y-%X-%d"},props:{extraCls:"bi-date-trigger",min:"1900-01-01",max:"2099-12-31",height:24,format:"",allowEdit:!0},_init:function(){BI.DynamicDateTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.storeTriggerValue="",this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(c){var d=a._getStandardDateStr(c),e=d.match(/\d+/g);return!BI.isKey(b.format)&&a._autoAppend(c,e),a._dateCheck(d)&&BI.checkDateLegal(d)&&a._checkVoid({year:0|e[0],month:0|e[1],day:0|e[2]})},quitChecker:function(){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,watermark:BI.i18nText("BI-Basic_Unrestricted"),errorText:function(){var c="";return BI.isKey(b.format)||(c=a.editor.isEditing()?BI.i18nText("BI-Date_Trigger_Error_Text"):BI.i18nText("BI-Year_Trigger_Invalid_Text")),c},title:BI.bind(this._getTitle,this)}),this.editor.on(BI.SignEditor.EVENT_KEY_DOWN,function(){a.fireEvent(BI.DynamicDateTrigger.EVENT_KEY_DOWN)}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.storeTriggerValue=a.getKey(),a.fireEvent(BI.DynamicDateTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.DynamicDateTrigger.EVENT_STOP)}),this.editor.on(BI.SignEditor.EVENT_VALID,function(){a.fireEvent(BI.DynamicDateTrigger.EVENT_VALID)}),this.editor.on(BI.SignEditor.EVENT_ERROR,function(){a.fireEvent(BI.DynamicDateTrigger.EVENT_ERROR)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();if(BI.isNotNull(b)&&a.editor.setState(b),BI.isNotEmptyString(b)&&!BI.isEqual(a.storeTriggerValue,a.getKey())){var c=a._getStandardDateStr(b),d=c.match(/\d+/g);a.storeValue={type:BI.DynamicDateCombo.Static,value:{year:0|d[0],month:0|d[1],day:0|d[2]}}}a.fireEvent(BI.DynamicDateTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.DynamicDateTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.DynamicDateTrigger.EVENT_CHANGE)}),BI.createWidget({type:"bi.htape",element:this,items:[{el:this.editor},{el:BI.createWidget(),width:24}]}),!b.allowEdit&&BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.text",title:BI.bind(this._getTitle,this)},left:0,right:24,top:0,bottom:0}]}),this.setValue(b.value)},_getTitle:function(){var a=this.storeValue||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value;switch(b){case BI.DynamicDateCombo.Dynamic:var d=this._getText(c),e=BI.getDate();e=BI.DynamicDateHelper.getCalculation(c);var f=BI.print(e,this._getFormatString());return BI.isEmptyString(d)?f:d+":"+f;case BI.DynamicDateCombo.Static:default:return BI.isNull(c)||BI.isNull(c.day)?"":BI.print(BI.getDate(c.year,c.month-1,c.day),this._getFormatString())}},_getStandardDateStr:function(a){var b=this._const,c=[0,1,2],d=this._getFormatString().match(/%./g);BI.each(d,function(a,b){switch(b){case"%Y":case"%y":c[0]=a;break;case"%X":case"%x":c[1]=a;break;case"%d":case"%e":default:c[2]=a}});var e=a.match(/\d+/g),f=[];return BI.each(e,function(a){f[a]=e[c[a]]}),f.length===c.length&&2===f[0].length?BI.print(BI.parseDateTime(f.join("-"),b.compareFormat),b.compareFormat):f.join("-")},_getFormatString:function(){return this.options.format||this._const.compareFormat},_dateCheck:function(a){return BI.print(BI.parseDateTime(a,"%Y-%x-%d"),"%Y-%x-%d")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%d"),"%Y-%X-%d")===a||BI.print(BI.parseDateTime(a,"%Y-%x-%e"),"%Y-%x-%e")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%e"),"%Y-%X-%e")===a},_checkVoid:function(a){return!BI.checkDateVoid(a.year,a.month,a.day,this.options.min,this.options.max)[0]},_autoAppend:function(a,b){if(BI.isNotNull(b)&&BI.checkDateLegal(a))switch(a.length){case this._const.yearLength:this._yearCheck(a)&&this.editor.setValue(a+"-");break;case this._const.yearMonthLength:case this._const.yearFullMonthLength:var c=a.split("-")[1];(BI.isNotNull(c)&&2===c.length||this._monthCheck(a))&&this.editor.setValue(a+"-")}},_yearCheck:function(a){var b=BI.print(BI.parseDateTime(a,this._getFormatString()),this._const.compareFormat);return BI.print(BI.parseDateTime(a,"%Y"),"%Y")===a&&b>=this.options.min&&b<=this.options.max},_monthCheck:function(a){var b=BI.parseDateTime(a,this._getFormatString()),c=BI.print(b,this._const.compareFormat);return b.getMonth()>=0&&(BI.print(BI.parseDateTime(a,"%Y-%X"),"%Y-%X")===a||BI.print(BI.parseDateTime(a,"%Y-%x"),"%Y-%x")===a)&&c>=this.options.min&&c<=this.options.max},_setInnerValue:function(a){var b=BI.print(a,this._getFormatString());this.editor.setState(b),this.editor.setValue(b)},_getText:function(a){function b(a,b){switch(b){case BI.DynamicDateCard.OFFSET.BEGIN:return a+BI.i18nText("BI-Basic_Begin_Start");case BI.DynamicDateCard.OFFSET.END:return a+BI.i18nText("BI-Basic_End_Stop");case BI.DynamicDateCard.OFFSET.CURRENT:default:return BI.i18nText("BI-Basic_Current_Day")}}var c="",d="";return BI.isNotNull(a.year)&&(0!==BI.parseInt(a.year)&&(c+=Math.abs(a.year)+BI.i18nText("BI-Basic_Year")+(a.year<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Year"),a.position)),BI.isNotNull(a.quarter)&&(0!==BI.parseInt(a.quarter)&&(c+=Math.abs(a.quarter)+BI.i18nText("BI-Basic_Single_Quarter")+(a.quarter<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Single_Quarter"),a.position)),BI.isNotNull(a.month)&&(0!==BI.parseInt(a.month)&&(c+=Math.abs(a.month)+BI.i18nText("BI-Basic_Month")+(a.month<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Month"),a.position)),BI.isNotNull(a.week)&&(0!==BI.parseInt(a.week)&&(c+=Math.abs(a.week)+BI.i18nText("BI-Basic_Week")+(a.week<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Week"),a.position)),BI.isNotNull(a.day)&&(0!==BI.parseInt(a.day)&&(c+=Math.abs(a.day)+BI.i18nText("BI-Basic_Day")+(a.day<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=1===BI.size(a)?b(BI.i18nText("BI-Basic_Month"),a.position):""),BI.isNotNull(a.workDay)&&0!==BI.parseInt(a.workDay)&&(c+=Math.abs(a.workDay)+BI.i18nText("BI-Basic_Work_Day")+(a.workDay<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),c+d},setValue:function(a){var b,c,d=BI.getDate();switch(this.storeValue=a,BI.isNotNull(a)&&(b=a.type||BI.DynamicDateCombo.Static,c=a.value||a),b){case BI.DynamicDateCombo.Dynamic:var e=this._getText(c);d=BI.DynamicDateHelper.getCalculation(c),this._setInnerValue(d,e);break;case BI.DynamicDateCombo.Static:default:if(BI.isNull(c)||BI.isNull(c.day))this.editor.setState(""),this.editor.setValue("");else{var f=BI.print(BI.getDate(c.year,c.month-1,c.day),this._getFormatString());this.editor.setState(f),this.editor.setValue(f)}}},getKey:function(){return this.editor.getValue()},getValue:function(){return this.storeValue}}),BI.DynamicDateTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicDateTrigger.EVENT_START="EVENT_START",BI.DynamicDateTrigger.EVENT_STOP="EVENT_STOP",BI.DynamicDateTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicDateTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.DynamicDateTrigger.EVENT_VALID="EVENT_VALID",BI.DynamicDateTrigger.EVENT_ERROR="EVENT_ERROR",BI.DynamicDateTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.DynamicDateTrigger.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.shortcut("bi.dynamic_date_trigger",BI.DynamicDateTrigger),BI.DynamicDateTimeCombo=BI.inherit(BI.Single,{constants:{popupHeight:259,popupWidth:270,comboAdjustHeight:1,border:1},props:{baseCls:"bi-dynamic-date-combo bi-border bi-focus-shadow",height:22,minDate:"1900-01-01",maxDate:"2099-12-31",format:"",allowEdit:!0},render:function(){var a=this,b=this.options;this.storeTriggerValue="";var c=BI.getDate();return this.storeValue=b.value,{type:"bi.htape",items:[{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button date-change-h-font",width:b.height,height:b.height,ref:function(){a.changeIcon=this}},width:b.height},{type:"bi.absolute",items:[{el:{type:"bi.combo",container:b.container,ref:function(){a.combo=this},toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:{type:"bi.dynamic_date_time_trigger",min:b.minDate,max:b.maxDate,allowEdit:b.allowEdit,format:b.format,height:b.height,value:b.value,ref:function(){a.trigger=this},listeners:[{eventName:BI.DynamicDateTimeTrigger.EVENT_KEY_DOWN,action:function(){a.combo.isViewVisible()&&a.combo.hideView()}},{eventName:BI.DynamicDateTimeTrigger.EVENT_STOP,action:function(){a.combo.isViewVisible()||a.combo.showView()}},{eventName:BI.DynamicDateTimeTrigger.EVENT_TRIGGER_CLICK,action:function(){a.combo.toggle()}},{eventName:BI.DynamicDateTimeTrigger.EVENT_FOCUS,action:function(){a.storeTriggerValue=a.trigger.getKey(),a.combo.isViewVisible()||a.combo.showView(),a.fireEvent(BI.DynamicDateTimeCombo.EVENT_FOCUS)}},{eventName:BI.DynamicDateTimeTrigger.EVENT_ERROR,action:function(){a.storeValue={type:BI.DynamicDateTimeCombo.Static,value:{year:c.getFullYear(),month:c.getMonth()+1}},a.fireEvent(BI.DynamicDateTimeCombo.EVENT_ERROR)}},{eventName:BI.DynamicDateTimeTrigger.EVENT_VALID,action:function(){a.fireEvent(BI.DynamicDateTimeCombo.EVENT_VALID)}},{eventName:BI.DynamicDateTimeTrigger.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDateTimeCombo.EVENT_CHANGE)}},{eventName:BI.DynamicDateTimeTrigger.EVENT_CONFIRM,action:function(){if(!a.combo.isViewVisible()){var b=a.storeTriggerValue,c=a.trigger.getKey();BI.isNotEmptyString(c)&&!BI.isEqual(c,b)?(a.storeValue=a.trigger.getValue(),a.setValue(a.trigger.getValue())):BI.isEmptyString(c)&&(a.storeValue=null,a.trigger.setValue()),a._checkDynamicValue(a.storeValue),a.fireEvent(BI.DynamicDateTimeCombo.EVENT_CONFIRM)}}}]},adjustLength:this.constants.comboAdjustHeight,popup:{el:{type:"bi.dynamic_date_time_popup",behaviors:b.behaviors,min:b.minDate,max:b.maxDate,value:b.value,ref:function(){a.popup=this},listeners:[{eventName:BI.DynamicDateTimePopup.BUTTON_CLEAR_EVENT_CHANGE,action:function(){a.setValue(),a.combo.hideView(),a.fireEvent(BI.DynamicDateTimeCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicDateTimePopup.BUTTON_lABEL_EVENT_CHANGE,action:function(){var b=BI.getDate();a.setValue({type:BI.DynamicDateTimeCombo.Static,value:{year:b.getFullYear(),month:b.getMonth()+1,day:b.getDate(),hour:0,minute:0,second:0}}),a.combo.hideView(),a.fireEvent(BI.DynamicDateTimeCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicDateTimePopup.BUTTON_OK_EVENT_CHANGE,action:function(){var b=a.popup.getValue();a._checkValue(b)&&a.setValue(b),a.combo.hideView(),a.fireEvent(BI.DynamicDateTimeCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicDateTimePopup.EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicDateTimeCombo.EVENT_CONFIRM)}}]},stopPropagation:!1},listeners:[{eventName:BI.Combo.EVENT_BEFORE_POPUPVIEW,action:function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DynamicDateTimeCombo.EVENT_BEFORE_POPUPVIEW)}}],hideChecker:function(b){return 0===a.triggerBtn.element.find(b.target).length}},top:0, -left:0,right:0,bottom:0},{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button date-font",width:b.height,height:b.height,listeners:[{eventName:BI.IconButton.EVENT_CHANGE,action:function(){a.combo.isViewVisible()||a.combo.showView()}}],ref:function(){a.triggerBtn=this}},top:0,right:0}]}],ref:function(b){a.comboWrapper=b}}},mounted:function(){this._checkDynamicValue(this.storeValue)},_checkDynamicValue:function(a){var b=this.options,c=null;switch(BI.isNotNull(a)&&(c=a.type),c){case BI.DynamicDateTimeCombo.Dynamic:this.changeIcon.setVisible(!0),this.comboWrapper.attr("items")[0].width=b.height,this.comboWrapper.resize();break;default:this.comboWrapper.attr("items")[0].width=0,this.comboWrapper.resize(),this.changeIcon.setVisible(!1)}},_checkValue:function(a){switch(a.type){case BI.DynamicDateCombo.Dynamic:return BI.isNotEmptyObject(a.value);case BI.DynamicDateCombo.Static:default:return!0}},setValue:function(a){this.storeValue=a,this.trigger.setValue(a),this._checkDynamicValue(a)},getValue:function(){return this.storeValue},getKey:function(){return this.trigger.getKey()},hidePopupView:function(){this.combo.hideView()},isValid:function(){return this.trigger.isValid()}}),BI.DynamicDateTimeCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicDateTimeCombo.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicDateTimeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DynamicDateTimeCombo.EVENT_VALID="EVENT_VALID",BI.DynamicDateTimeCombo.EVENT_ERROR="EVENT_ERROR",BI.DynamicDateTimeCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.dynamic_date_time_combo",BI.DynamicDateTimeCombo),BI.extend(BI.DynamicDateTimeCombo,{Static:1,Dynamic:2}),BI.DynamicDateTimePopup=BI.inherit(BI.Widget,{constants:{tabHeight:30,buttonHeight:24},props:{baseCls:"bi-dynamic-date-time-popup",width:248,height:385},_init:function(){BI.DynamicDateTimePopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this.constants;this.storeValue={type:BI.DynamicDateCombo.Static},BI.createWidget({element:this,type:"bi.vtape",items:[{el:this._getTabJson()},{el:{type:"bi.grid",items:[[{type:"bi.text_button",cls:"bi-high-light bi-split-top",textHeight:c.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_Clear"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDateTimePopup.BUTTON_CLEAR_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-left bi-split-right bi-high-light bi-split-top",textHeight:c.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Multi_Date_Today"),ref:function(){a.textButton=this},listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDateTimePopup.BUTTON_lABEL_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-high-light bi-split-top",textHeight:c.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_OK"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicDateTimePopup.BUTTON_OK_EVENT_CHANGE)}}]}]]},height:24}]}),this.setValue(b.value)},_getTabJson:function(){var a=this,b=this.options;return{type:"bi.tab",ref:function(){a.dateTab=this},tab:{type:"bi.linear_segment",cls:"bi-split-bottom",height:this.constants.tabHeight,items:BI.createItems([{text:BI.i18nText("BI-Multi_Date_YMD"),value:BI.DynamicDateCombo.Static},{text:BI.i18nText("BI-Basic_Dynamic_Title"),value:BI.DynamicDateCombo.Dynamic}],{textAlign:"center"})},cardCreator:function(c){switch(c){case BI.DynamicDateCombo.Dynamic:return{type:"bi.dynamic_date_card",listeners:[{eventName:"EVENT_CHANGE",action:function(){a._setInnerValue(a.year,c)}}],ref:function(){a.dynamicPane=this}};case BI.DynamicDateCombo.Static:default:return{type:"bi.vtape",items:[{type:"bi.date_calendar_popup",behaviors:b.behaviors,min:a.options.min,max:a.options.max,ref:function(){a.ymd=this}},{el:{type:"bi.dynamic_date_time_select",cls:"bi-split-top",ref:function(){a.timeSelect=this}},height:40}]}}},listeners:[{eventName:BI.Tab.EVENT_CHANGE,action:function(){var b=a.dateTab.getSelect();switch(b){case BI.DynamicDateCombo.Static:var c=BI.DynamicDateHelper.getCalculation(a.dynamicPane.getValue());a.ymd.setValue({year:c.getFullYear(),month:c.getMonth()+1,day:c.getDate()}),a.timeSelect.setValue(),a._setInnerValue();break;case BI.DynamicDateCombo.Dynamic:default:a.storeValue&&a.storeValue.type===BI.DynamicDateCombo.Dynamic?a.dynamicPane.setValue(a.storeValue.value):a.dynamicPane.setValue({year:0}),a._setInnerValue()}}}]}},_setInnerValue:function(){if(this.dateTab.getSelect()===BI.DynamicDateCombo.Static)this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today")),this.textButton.setEnable(!0);else{var a=BI.DynamicDateHelper.getCalculation(this.dynamicPane.getValue());a=BI.print(a,"%Y-%X-%d"),this.textButton.setValue(a),this.textButton.setEnable(!1)}},_checkValueValid:function(a){return BI.isNull(a)||BI.isEmptyObject(a)||BI.isEmptyString(a)},setValue:function(a){this.storeValue=a;var b,c,d=this;switch(a=a||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value||a,this.dateTab.setSelect(b),b){case BI.DynamicDateCombo.Dynamic:this.dynamicPane.setValue(c),d._setInnerValue();break;case BI.DynamicDateCombo.Static:default:if(this._checkValueValid(c)){var e=BI.getDate();this.ymd.setValue({year:e.getFullYear(),month:e.getMonth()+1,day:e.getDate()}),this.timeSelect.setValue(),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"))}else this.ymd.setValue(c),this.timeSelect.setValue({hour:c.hour,minute:c.minute,second:c.second}),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"));this.textButton.setEnable(!0)}},getValue:function(){var a=this.dateTab.getSelect();return{type:a,value:a===BI.DynamicDateTimeCombo.Static?BI.extend(this.ymd.getValue(),this.timeSelect.getValue()):this.dynamicPane.getValue()}}}),BI.DynamicDateTimePopup.EVENT_CHANGE="EVENT_CHANGE",BI.DynamicDateTimePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DynamicDateTimePopup.BUTTON_lABEL_EVENT_CHANGE="BUTTON_lABEL_EVENT_CHANGE",BI.DynamicDateTimePopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.shortcut("bi.dynamic_date_time_popup",BI.DynamicDateTimePopup),BI.DynamicDateTimeSelect=BI.inherit(BI.Widget,{props:{baseCls:"bi-date-time-select"},render:function(){var a=this;return{type:"bi.center_adapt",items:[{type:"bi.vertical_adapt",items:[{el:{type:"bi.number_editor",ref:function(){a.hour=this},validationChecker:function(a){return BI.isNaturalNumber(a)&&BI.parseInt(a)<24},errorText:function(a){return BI.isNumeric(a)?BI.i18nText("BI-Basic_Input_From_To_Number",'"00-23"'):BI.i18nText("BI-Numerical_Interval_Input_Data")},listeners:[{eventName:BI.SignEditor.EVENT_CONFIRM,action:function(){var b=this.getValue();a._checkHour(b),this.setValue(a._formatValueToDoubleDigit(b)),a.fireEvent(BI.DynamicDateTimeSelect.EVENT_CONFIRM)}},{eventName:BI.SignEditor.EVENT_CHANGE,action:function(){var b=a._autoSwitch(this.getValue(),BI.DynamicDateTimeSelect.HOUR);this.setValue(b)}}],width:60,height:24}},{type:"bi.label",text:":",width:20},{type:"bi.number_editor",ref:function(){a.minute=this},validationChecker:function(a){return BI.isNaturalNumber(a)&&BI.parseInt(a)<60},errorText:function(a){return BI.isNumeric(a)?BI.i18nText("BI-Basic_Input_From_To_Number",'"00-59"'):BI.i18nText("BI-Numerical_Interval_Input_Data")},listeners:[{eventName:BI.SignEditor.EVENT_CONFIRM,action:function(){var b=this.getValue();a._checkMinute(b),this.setValue(a._formatValueToDoubleDigit(b),BI.DynamicDateTimeSelect.MINUTE),a.fireEvent(BI.DynamicDateTimeSelect.EVENT_CONFIRM)}},{eventName:BI.SignEditor.EVENT_CHANGE,action:function(){var b=a._autoSwitch(this.getValue(),BI.DynamicDateTimeSelect.MINUTE);this.setValue(b)}}],width:60,height:24},{type:"bi.label",text:":",width:20},{type:"bi.number_editor",ref:function(){a.second=this},validationChecker:function(a){return BI.isNaturalNumber(a)&&BI.parseInt(a)<60},errorText:function(a){return BI.isNumeric(a)?BI.i18nText("BI-Basic_Input_From_To_Number",'"00-59"'):BI.i18nText("BI-Numerical_Interval_Input_Data")},listeners:[{eventName:BI.SignEditor.EVENT_CONFIRM,action:function(){var b=this.getValue();a._checkSecond(b),this.setValue(a._formatValueToDoubleDigit(b)),a.fireEvent(BI.DynamicDateTimeSelect.EVENT_CONFIRM)}}],width:60,height:24}]}]}},_checkBorder:function(a){a=a||{},this._checkHour(a.hour),this._checkMinute(a.minute),this._checkSecond(a.second)},_checkHour:function(a){this.hour.setDownEnable(BI.parseInt(a)>0),this.hour.setUpEnable(BI.parseInt(a)<23)},_checkMinute:function(a){this.minute.setDownEnable(BI.parseInt(a)>0),this.minute.setUpEnable(BI.parseInt(a)<59)},_checkSecond:function(a){this.second.setDownEnable(BI.parseInt(a)>0),this.second.setUpEnable(BI.parseInt(a)<59)},_autoSwitch:function(a,b){var c=0,d=a+"";switch(b){case BI.DynamicDateTimeSelect.HOUR:c=2;break;case BI.DynamicDateTimeSelect.MINUTE:c=5}if(1===d.length&&BI.parseInt(d)>c&&(d="0"+d),2===d.length)switch(b){case BI.DynamicDateTimeSelect.HOUR:this.hour.isEditing()&&this.minute.focus();break;case BI.DynamicDateTimeSelect.MINUTE:this.minute.isEditing()&&this.second.focus();break;case BI.DynamicDateTimeSelect.SECOND:}return d},_formatValueToDoubleDigit:function(a){(BI.isNull(a)||BI.isEmptyString(a))&&(a=0);var b=BI.parseInt(a);return b<10&&(b="0"+b),b},_assertValue:function(a){return a=a||{},a.hour=this._formatValueToDoubleDigit(a.hour)||"00",a.minute=this._formatValueToDoubleDigit(a.minute)||"00",a.second=this._formatValueToDoubleDigit(a.second)||"00",a},getValue:function(){return{hour:BI.parseInt(this.hour.getValue()),minute:BI.parseInt(this.minute.getValue()),second:BI.parseInt(this.second.getValue())}},setValue:function(a){a=this._assertValue(a),this.hour.setValue(a.hour),this.minute.setValue(a.minute),this.second.setValue(a.second),this._checkBorder(a)}}),BI.DynamicDateTimeSelect.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.dynamic_date_time_select",BI.DynamicDateTimeSelect),BI.extend(BI.DynamicDateTimeSelect,{HOUR:1,MINUTE:2,SECOND:3}),BI.DynamicDateTimeTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,yearLength:4,yearMonthLength:6,yearFullMonthLength:7,compareFormat:"%Y-%X-%d %H:%M:%S"},props:{extraCls:"bi-date-time-trigger",min:"1900-01-01",max:"2099-12-31",height:24,format:"",allowEdit:!0},_init:function(){BI.DynamicDateTimeTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.storeTriggerValue="",this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(c){var d=a._getStandardDateStr(c),e=d.match(/\d+/g);return!BI.isKey(b.format)&&a._autoAppend(c,e),a._dateCheck(d)&&BI.checkDateLegal(d)&&a._checkVoid({year:0|e[0],month:0|e[1],day:0|e[2]})},quitChecker:function(){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,watermark:BI.i18nText("BI-Basic_Unrestricted"),errorText:function(){var c="";return BI.isKey(b.format)||(c=a.editor.isEditing()?BI.i18nText("BI-Basic_Date_Time_Error_Text"):BI.i18nText("BI-Year_Trigger_Invalid_Text")),c},title:BI.bind(this._getTitle,this)}),this.editor.on(BI.SignEditor.EVENT_KEY_DOWN,function(){a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_KEY_DOWN)}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.storeTriggerValue=a.getKey(),a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_STOP)}),this.editor.on(BI.SignEditor.EVENT_VALID,function(){a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_VALID)}),this.editor.on(BI.SignEditor.EVENT_ERROR,function(){a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_ERROR)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();if(BI.isNotNull(b)&&a.editor.setState(b),BI.isNotEmptyString(b)&&!BI.isEqual(a.storeTriggerValue,a.getKey())){var c=a._getStandardDateStr(b),d=c.match(/\d+/g);a.storeValue={type:BI.DynamicDateCombo.Static,value:{year:0|d[0],month:0|d[1],day:0|d[2],hour:0|d[3],minute:0|d[4],second:0|d[5]}}}a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.DynamicDateTimeTrigger.EVENT_CHANGE)}),BI.createWidget({type:"bi.htape",element:this,items:[{el:this.editor},{el:BI.createWidget(),width:24}]}),!b.allowEdit&&BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.text",title:BI.bind(this._getTitle,this)},left:0,right:24,top:0,bottom:0}]}),this.setValue(b.value)},_getTitle:function(){var a=this.storeValue||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value;switch(b){case BI.DynamicDateCombo.Dynamic:var d=this._getText(c),e=BI.DynamicDateHelper.getCalculation(c),f=BI.print(e,this._getFormatString());return BI.isEmptyString(d)?f:d+":"+f;case BI.DynamicDateCombo.Static:default:return BI.isNull(c)||BI.isNull(c.day)?"":BI.print(BI.getDate(c.year,c.month-1,c.day,c.hour||0,c.minute||0,c.second||0),this._getFormatString())}},_getStandardDateStr:function(a){var b=[],c=!1,d=this._getFormatString().match(/%./g);BI.each(d,function(a,d){switch(d){case"%Y":case"%y":b[0]=a;break;case"%X":case"%x":b[1]=a;break;case"%d":case"%e":b[2]=a;break;case"%S":c=!0}});var e=a.match(/\d+/g),f=[];BI.each(e.slice(0,3),function(a){f[a]=e[b[a]]});var g=e.slice(3);2!==g.length||c||g.push("00");var h=g.join(":"),i=f.slice(0,3).join("-");return BI.isNotEmptyString(h)&&(i+=" "+h),i},_getFormatString:function(){return this.options.format||this._const.compareFormat},_dateCheck:function(a){return BI.print(BI.parseDateTime(a,"%Y-%x-%d %H:%M:%S"),"%Y-%x-%d %H:%M:%S")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%d %H:%M:%S"),"%Y-%X-%d %H:%M:%S")===a||BI.print(BI.parseDateTime(a,"%Y-%x-%e %H:%M:%S"),"%Y-%x-%e %H:%M:%S")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%e %H:%M:%S"),"%Y-%X-%e %H:%M:%S")===a||BI.print(BI.parseDateTime(a,"%Y-%x-%d"),"%Y-%x-%d")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%d"),"%Y-%X-%d")===a||BI.print(BI.parseDateTime(a,"%Y-%x-%e"),"%Y-%x-%e")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%e"),"%Y-%X-%e")===a},_checkVoid:function(a){return!BI.checkDateVoid(a.year,a.month,a.day,this.options.min,this.options.max)[0]},_autoAppend:function(a,b){if(BI.isNotNull(b)&&BI.checkDateLegal(a))switch(a.length){case this._const.yearLength:this._yearCheck(a)&&this.editor.setValue(a+"-");break;case this._const.yearMonthLength:case this._const.yearFullMonthLength:var c=a.split("-")[1];(BI.isNotNull(c)&&2===c.length||this._monthCheck(a))&&this.editor.setValue(a+"-")}},_yearCheck:function(a){var b=BI.print(BI.parseDateTime(a,"%Y-%X-%d"),"%Y-%X-%d");return BI.print(BI.parseDateTime(a,"%Y"),"%Y")===a&&b>=this.options.min&&b<=this.options.max},_monthCheck:function(a){var b=BI.parseDateTime(a,"%Y-%X-%d"),c=BI.print(b,"%Y-%X-%d");return b.getMonth()>0&&(BI.print(BI.parseDateTime(a,"%Y-%X"),"%Y-%X")===a||BI.print(BI.parseDateTime(a,"%Y-%x"),"%Y-%x")===a)&&c>=this.options.min&&c<=this.options.max},_setInnerValue:function(a){var b=BI.print(a,this._getFormatString());this.editor.setState(b),this.editor.setValue(b)},_getText:function(a){function b(a,b){switch(b){case BI.DynamicDateCard.OFFSET.BEGIN:return a+BI.i18nText("BI-Basic_Begin_Start");case BI.DynamicDateCard.OFFSET.END:return a+BI.i18nText("BI-Basic_End_Stop");case BI.DynamicDateCard.OFFSET.CURRENT:default:return BI.i18nText("BI-Basic_Current_Day")}}var c="",d="";return BI.isNotNull(a.year)&&(0!==BI.parseInt(a.year)&&(c+=Math.abs(a.year)+BI.i18nText("BI-Basic_Year")+(a.year<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Year"),a.position)),BI.isNotNull(a.quarter)&&(0!==BI.parseInt(a.quarter)&&(c+=Math.abs(a.quarter)+BI.i18nText("BI-Basic_Single_Quarter")+(a.quarter<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Single_Quarter"),a.position)),BI.isNotNull(a.month)&&(0!==BI.parseInt(a.month)&&(c+=Math.abs(a.month)+BI.i18nText("BI-Basic_Month")+(a.month<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Month"),a.position)),BI.isNotNull(a.week)&&(0!==BI.parseInt(a.week)&&(c+=Math.abs(a.week)+BI.i18nText("BI-Basic_Week")+(a.week<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=b(BI.i18nText("BI-Basic_Week"),a.position)),BI.isNotNull(a.day)&&(0!==BI.parseInt(a.day)&&(c+=Math.abs(a.day)+BI.i18nText("BI-Basic_Day")+(a.day<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),d=1===BI.size(a)?b(BI.i18nText("BI-Basic_Month"),a.position):""),BI.isNotNull(a.workDay)&&0!==BI.parseInt(a.workDay)&&(c+=Math.abs(a.workDay)+BI.i18nText("BI-Basic_Work_Day")+(a.workDay<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),c+d},setValue:function(a){var b,c,d=BI.getDate();switch(this.storeValue=a,BI.isNotNull(a)&&(b=a.type||BI.DynamicDateCombo.Static,c=a.value||a),b){case BI.DynamicDateCombo.Dynamic:var e=this._getText(c);d=BI.DynamicDateHelper.getCalculation(c),this._setInnerValue(d,e);break;case BI.DynamicDateCombo.Static:default:if(BI.isNull(c)||BI.isNull(c.day))this.editor.setState(""),this.editor.setValue("");else{var f=BI.print(BI.getDate(c.year,c.month-1,c.day,c.hour||0,c.minute||0,c.second||0),this._getFormatString());this.editor.setState(f),this.editor.setValue(f)}}},getKey:function(){return this.editor.getValue()},getValue:function(){return this.storeValue},isValid:function(){return this.editor.isValid()}}),BI.DynamicDateTimeTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicDateTimeTrigger.EVENT_START="EVENT_START",BI.DynamicDateTimeTrigger.EVENT_STOP="EVENT_STOP",BI.DynamicDateTimeTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicDateTimeTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.DynamicDateTimeTrigger.EVENT_VALID="EVENT_VALID",BI.DynamicDateTimeTrigger.EVENT_ERROR="EVENT_ERROR",BI.DynamicDateTimeTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.DynamicDateTimeTrigger.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.shortcut("bi.dynamic_date_time_trigger",BI.DynamicDateTimeTrigger),BI.SearchEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SearchEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-search-editor bi-border bi-focus-shadow",height:24,errorText:"",watermark:BI.i18nText("BI-Basic_Search"),validationChecker:BI.emptyFn,quitChecker:BI.emptyFn})},_init:function(){this.options.height-=2,BI.SearchEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,watermark:b.watermark,allowBlank:!0,hgap:1,errorText:b.errorText,validationChecker:b.validationChecker,quitChecker:b.quitChecker}),this.clear=BI.createWidget({type:"bi.icon_button",stopEvent:!0,cls:"close-font"}),this.clear.on(BI.IconButton.EVENT_CHANGE,function(){a.setValue(""),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.STOPEDIT),a.fireEvent(BI.SearchEditor.EVENT_CHANGE),a.fireEvent(BI.SearchEditor.EVENT_CLEAR)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:{type:"bi.icon_label",cls:"search-font"},width:24},{el:a.editor},{el:this.clear,width:24}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.SearchEditor.EVENT_FOCUS)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.SearchEditor.EVENT_BLUR)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.SearchEditor.EVENT_CLICK)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a._checkClear(),a.fireEvent(BI.SearchEditor.EVENT_CHANGE)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.SearchEditor.EVENT_KEY_DOWN,b)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.SearchEditor.EVENT_SPACE)}),this.editor.on(BI.Editor.EVENT_BACKSPACE,function(){a.fireEvent(BI.SearchEditor.EVENT_BACKSPACE)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.SearchEditor.EVENT_VALID)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.SearchEditor.EVENT_ERROR)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.SearchEditor.EVENT_ENTER)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.SearchEditor.EVENT_RESTRICT)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a._checkClear(),a.fireEvent(BI.SearchEditor.EVENT_EMPTY)}),this.editor.on(BI.Editor.EVENT_REMOVE,function(){a.fireEvent(BI.SearchEditor.EVENT_REMOVE)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a.fireEvent(BI.SearchEditor.EVENT_CONFIRM)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a.fireEvent(BI.SearchEditor.EVENT_CHANGE_CONFIRM)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.SearchEditor.EVENT_START)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.SearchEditor.EVENT_PAUSE)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.SearchEditor.EVENT_STOP)}),this.clear.invisible()},_checkClear:function(){this.getValue()?this.clear.visible():this.clear.invisible()},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},getValue:function(){if(this.isValid()){var a=this.editor.getValue().match(/[\S]+/g);return BI.isNull(a)?"":a[a.length-1]}},getKeywords:function(){var a=this.editor.getLastValidValue(),b=a.match(/[\S]+/g);return BI.isEndWithBlank(a)?b.concat([" "]):b},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a),BI.isKey(a)&&this.clear.visible()},isEditing:function(){return this.editor.isEditing()},isValid:function(){return this.editor.isValid()}}),BI.SearchEditor.EVENT_CHANGE="EVENT_CHANGE",BI.SearchEditor.EVENT_FOCUS="EVENT_FOCUS",BI.SearchEditor.EVENT_BLUR="EVENT_BLUR",BI.SearchEditor.EVENT_CLICK="EVENT_CLICK",BI.SearchEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.SearchEditor.EVENT_SPACE="EVENT_SPACE",BI.SearchEditor.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.SearchEditor.EVENT_CLEAR="EVENT_CLEAR",BI.SearchEditor.EVENT_START="EVENT_START",BI.SearchEditor.EVENT_PAUSE="EVENT_PAUSE",BI.SearchEditor.EVENT_STOP="EVENT_STOP",BI.SearchEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SearchEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.SearchEditor.EVENT_VALID="EVENT_VALID",BI.SearchEditor.EVENT_ERROR="EVENT_ERROR",BI.SearchEditor.EVENT_ENTER="EVENT_ENTER",BI.SearchEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.SearchEditor.EVENT_REMOVE="EVENT_REMOVE",BI.SearchEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.search_editor",BI.SearchEditor),BI.SmallSearchEditor=BI.inherit(BI.SearchEditor,{_defaultConfig:function(){var a=BI.SmallSearchEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-small-search-editor",height:20})},_init:function(){BI.SmallSearchEditor.superclass._init.apply(this,arguments)}}),BI.shortcut("bi.small_search_editor",BI.SmallSearchEditor),BI.TextEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.TextEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-text-editor bi-border bi-focus-shadow",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!1,watermark:"",errorText:"",height:24})},_init:function(){BI.TextEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNumber(b.height)&&this.element.css({height:b.height-2}),BI.isNumber(b.width)&&this.element.css({width:b.width-2}),this.editor=BI.createWidget({type:"bi.editor",height:b.height-2,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,title:b.title,tipType:b.tipType,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.TextEditor.EVENT_FOCUS)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.TextEditor.EVENT_BLUR)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.TextEditor.EVENT_CLICK)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.TextEditor.EVENT_CHANGE)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.TextEditor.EVENT_KEY_DOWN)}),this.editor.on(BI.Editor.EVENT_SPACE,function(b){a.fireEvent(BI.TextEditor.EVENT_SPACE)}),this.editor.on(BI.Editor.EVENT_BACKSPACE,function(b){a.fireEvent(BI.TextEditor.EVENT_BACKSPACE)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.TextEditor.EVENT_VALID)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a.fireEvent(BI.TextEditor.EVENT_CONFIRM)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a.fireEvent(BI.TextEditor.EVENT_CHANGE_CONFIRM)}),this.editor.on(BI.Editor.EVENT_REMOVE,function(b){a.fireEvent(BI.TextEditor.EVENT_REMOVE)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.TextEditor.EVENT_START)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.TextEditor.EVENT_PAUSE)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.TextEditor.EVENT_STOP)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.TextEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.TextEditor.EVENT_ENTER)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.TextEditor.EVENT_RESTRICT)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.TextEditor.EVENT_EMPTY)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]})},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isValid:function(){return this.editor.isValid()},setValue:function(a){this.editor.setValue(a)},getValue:function(){return this.editor.getValue()}}),BI.TextEditor.EVENT_CHANGE="EVENT_CHANGE",BI.TextEditor.EVENT_FOCUS="EVENT_FOCUS",BI.TextEditor.EVENT_BLUR="EVENT_BLUR",BI.TextEditor.EVENT_CLICK="EVENT_CLICK",BI.TextEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.TextEditor.EVENT_SPACE="EVENT_SPACE",BI.TextEditor.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.TextEditor.EVENT_START="EVENT_START",BI.TextEditor.EVENT_PAUSE="EVENT_PAUSE",BI.TextEditor.EVENT_STOP="EVENT_STOP",BI.TextEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.TextEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.TextEditor.EVENT_VALID="EVENT_VALID",BI.TextEditor.EVENT_ERROR="EVENT_ERROR",BI.TextEditor.EVENT_ENTER="EVENT_ENTER",BI.TextEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.TextEditor.EVENT_REMOVE="EVENT_REMOVE",BI.TextEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.text_editor",BI.TextEditor),BI.SmallTextEditor=BI.inherit(BI.TextEditor,{_defaultConfig:function(){var a=BI.SmallTextEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-small-text-editor",height:20})},_init:function(){BI.SmallTextEditor.superclass._init.apply(this,arguments)}}),BI.shortcut("bi.small_text_editor",BI.SmallTextEditor),BI.IntervalSlider=BI.inherit(BI.Single,{_constant:{EDITOR_WIDTH:58,EDITOR_R_GAP:60,EDITOR_HEIGHT:30,SLIDER_WIDTH_HALF:15,SLIDER_WIDTH:30,SLIDER_HEIGHT:30,TRACK_HEIGHT:24},props:{baseCls:"bi-interval-slider bi-slider-track",digit:!1,unit:""},render:function(){var a=this,b=this._constant;return this.enable=!1,this.valueOne="",this.valueTwo="",this.calculation=new BI.AccurateCalculationModel,this.grayTrack=BI.createWidget({type:"bi.layout",cls:"gray-track",height:6}),this.blueTrack=BI.createWidget({type:"bi.layout",cls:"blue-track bi-high-light-background",height:6}),this.track=this._createTrackWrapper(),this.labelOne=BI.createWidget({type:"bi.sign_text_editor",cls:"slider-editor-button",text:this.options.unit,allowBlank:!1,width:b.EDITOR_WIDTH,validationChecker:function(b){return a._checkValidation(b)}}),this.labelOne.element.hover(function(){a.labelOne.element.removeClass("bi-border").addClass("bi-border")},function(){a.labelOne.element.removeClass("bi-border")}),this.labelOne.on(BI.Editor.EVENT_CONFIRM,function(){var b=a.valueOne,c=BI.parseFloat(this.getValue());a.valueOne=c;var d=a._getPercentByValue(c),e=BI.parseFloat(d.toFixed(1));a._setSliderOnePosition(e),a._setBlueTrack(),a._checkLabelPosition(b,a.valueTwo,a.valueOne,a.valueTwo),a.fireEvent(BI.IntervalSlider.EVENT_CHANGE)}),this.labelTwo=BI.createWidget({type:"bi.sign_text_editor",cls:"slider-editor-button",text:this.options.unit,allowBlank:!1,width:b.EDITOR_WIDTH,validationChecker:function(b){return a._checkValidation(b)}}),this.labelTwo.element.hover(function(){a.labelTwo.element.removeClass("bi-border").addClass("bi-border")},function(){a.labelTwo.element.removeClass("bi-border")}),this.labelTwo.on(BI.Editor.EVENT_CONFIRM,function(){var b=a.valueTwo,c=BI.parseFloat(this.getValue());a.valueTwo=c;var d=a._getPercentByValue(c),e=BI.parseFloat(d.toFixed(1));a._setSliderTwoPosition(e),a._setBlueTrack(),a._checkLabelPosition(a.valueOne,b,a.valueOne,a.valueTwo),a.fireEvent(BI.IntervalSlider.EVENT_CHANGE)}),this.sliderOne=BI.createWidget({type:"bi.single_slider_button"}),this.sliderTwo=BI.createWidget({type:"bi.single_slider_button"}),this._draggable(this.sliderOne,!0),this._draggable(this.sliderTwo,!1),this._setVisible(!1),{type:"bi.absolute",element:this,items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.track,width:"100%",height:b.TRACK_HEIGHT}]}],hgap:7,height:b.TRACK_HEIGHT},top:23,left:0,width:"100%"},this._createLabelWrapper(),this._createSliderWrapper()]}},_rePosBySizeAfterMove:function(a,b){var c=this.options,d=100*a/this._getGrayTrackLength(),e=BI.parseFloat(d.toFixed(1)),f=this._getValueByPercent(e);f=this._assertValue(f),f=c.digit===!1?f:f.toFixed(c.digit);var g=this.valueOne,h=this.valueTwo;b?(this._setSliderOnePosition(e),this.labelOne.setValue(f),this.valueOne=f,this._checkLabelPosition(g,h,f,this.valueTwo)):(this._setSliderTwoPosition(e),this.labelTwo.setValue(f),this.valueTwo=f,this._checkLabelPosition(g,h,this.valueOne,f)),this._setBlueTrack()},_rePosBySizeAfterStop:function(a,b){var c=100*a/this._getGrayTrackLength(),d=BI.parseFloat(c.toFixed(1));b?this._setSliderOnePosition(d):this._setSliderTwoPosition(d)},_draggable:function(a,b){function c(a){return BI.clamp(a,0,d._getGrayTrackLength())}var d=this,e=(this.options,!1),f=0,g=0,h=0,i=new BI.MouseMoveTracker(function(j){i.isDragging()&&(e=!0,g+=j,f=c(h+g),a.element.addClass("dragging"),d._rePosBySizeAfterMove(f,b))},function(){e===!0&&(f=c(f),d._rePosBySizeAfterStop(f,b),f=0,g=0,h=f,e=!1),a.element.removeClass("dragging"),i.releaseMouseMoves(),d.fireEvent(BI.IntervalSlider.EVENT_CHANGE)},window);a.element.on("mousedown",function(b){a.isEnabled()&&(h=this.offsetLeft,c(h),i.captureMouseMoves(b))})},_createLabelWrapper:function(){var a=this._constant;return{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.labelOne,top:0,left:"0%"}]},{type:"bi.absolute",items:[{el:this.labelTwo,top:0,left:"100%"}]}],rgap:a.EDITOR_R_GAP,height:a.SLIDER_HEIGHT},top:0,left:0,width:"100%"}},_createSliderWrapper:function(){var a=this._constant;return{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.sliderOne,top:0,left:"0%"}]},{type:"bi.absolute",items:[{el:this.sliderTwo,top:0,left:"100%"}]}],hgap:a.SLIDER_WIDTH_HALF,height:a.SLIDER_HEIGHT},top:20,left:0,width:"100%"}},_createTrackWrapper:function(){return BI.createWidget({type:"bi.absolute",items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.grayTrack,top:0,left:0,width:"100%"},{el:this.blueTrack,top:0,left:0,width:"0%"}]}],hgap:8,height:8},top:8,left:0,width:"100%"}]})},_checkValidation:function(a){var b=this.options,c=!1,d=(a+"").split(".")[1];return BI.isEmptyString(d)||BI.isNumeric(a)&&!(BI.isNull(a)||athis.max)&&(b.digit===!1?c=!0:(d=d||"",c=d.length===b.digit)),c},_checkOverlap:function(){var a=this.labelOne.element[0].offsetLeft,b=this.labelTwo.element[0].offsetLeft;a<=b?b-a<90?this.labelTwo.element.css({top:40}):this.labelTwo.element.css({top:0}):a-b<90?this.labelTwo.element.css({top:40}):this.labelTwo.element.css({top:0})},_checkLabelPosition:function(a,b,c,d,e){if(a=BI.parseFloat(a), -b=BI.parseFloat(b),c=BI.parseFloat(c),d=BI.parseFloat(d),a<=b&&c>d||a>=b&&c-1){d=b.split("e");var e=BI.size(d[0].split(".")[1]),f=BI.parseInt(d[1].substring(1));return e-f}return d=b.split("."),d.length>1?d[1].length:0},_assertValue:function(a){return a<=this.min?this.min:a>=this.max?this.max:a},_setEnable:function(a){BI.IntervalSlider.superclass._setEnable.apply(this,[a]),a?this.blueTrack.element.removeClass("disabled-blue-track").addClass("blue-track"):this.blueTrack.element.removeClass("blue-track").addClass("disabled-blue-track")},getValue:function(){return this.valueOne<=this.valueTwo?{min:this.valueOne,max:this.valueTwo}:{min:this.valueTwo,max:this.valueOne}},setMinAndMax:function(a){var b=BI.parseFloat(a.min),c=BI.parseFloat(a.max);!isNaN(b)&&!isNaN(c)&&c>=b&&(this.min=b,this.max=c,this.valueOne=b,this.valueTwo=c,this.precision=this._getPrecision(),this._setDraggableEnable(!0)),c===b&&this._setDraggableEnable(!1)},setValue:function(a){var b=this.options,c=BI.parseFloat(a.min),d=BI.parseFloat(a.max);c=b.digit===!1?c:c.toFixed(b.digit),d=b.digit===!1?d:d.toFixed(b.digit),isNaN(c)||isNaN(d)||(this._checkValidation(c)&&(this.valueOne=this.valueOne<=this.valueTwo?c:d),this._checkValidation(d)&&(this.valueTwo=this.valueOne<=this.valueTwo?d:c),cthis.max&&(this.valueTwo=this.max))},reset:function(){this._setVisible(!1),this.enable=!1,this.valueOne="",this.valueTwo="",this.min=NaN,this.max=NaN,this._setBlueTrackWidth(0)},populate:function(){isNaN(this.min)||isNaN(this.max)||(this.enable=!0,this._setVisible(!0),this._setErrorText(),(BI.isNumeric(this.valueOne)||BI.isNotEmptyString(this.valueOne))&&(BI.isNumeric(this.valueTwo)||BI.isNotEmptyString(this.valueTwo))?(this.labelOne.setValue(this.valueOne),this.labelTwo.setValue(this.valueTwo),this._setAllPosition(this._getPercentByValue(this.valueOne),this._getPercentByValue(this.valueTwo))):(this.labelOne.setValue(this.min),this.labelTwo.setValue(this.max),this._setAllPosition(0,100)))}}),BI.IntervalSlider.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.interval_slider",BI.IntervalSlider),BI.AccurateCalculationModel=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.AccurateCalculationModel.superclass._defaultConfig.apply(this,arguments),{baseCls:""})},_init:function(){BI.AccurateCalculationModel.superclass._init.apply(this,arguments)},_getMagnitude:function(a){for(var b="1",c=0;c0)var d=b;else{var d=a;c=0-c}for(var e=0;e=b.numDecimal.length?a.numDecimal.length:b.numDecimal.length}function d(a,b){for(var c=b-a.length,d=0;d=BI.parseInt(f.numDecimal))var i=(BI.parseInt(e.numDecimal)-BI.parseInt(f.numDecimal)).toString(),j=d(i,h);else{g--;var k=this._getMagnitude(h),i=(k+BI.parseInt(e.numDecimal)-BI.parseInt(f.numDecimal)).toString(),j=d(i,h)}var l=g+"."+j;return BI.parseFloat(l)},_accurateAddition:function(a,b){function c(a,b){for(var c=b-a.length,d=0;db)var e=d.numInteger.slice(0,d.numInteger.length-b),f=d.numInteger.slice(-b);else var e="0",f=c(d.numInteger,b);var g=e+"."+f+d.numDecimal;return BI.parseFloat(g)},accurateSubtraction:function(a,b){return a>=0&&b>=0?a>=b?this._accurateSubtraction(a,b):-this._accurateSubtraction(b,a):a>=0&&b<0?this._accurateAddition(a,-b):a<0&&b>=0?-this._accurateAddition(-a,b):a<0&&b<0?a>=b?this._accurateSubtraction(-b,-a):this._accurateSubtraction(-a,-b):void 0},accurateAddition:function(a,b){return a>=0&&b>=0?this._accurateAddition(a,b):a>=0&&b<0?this.accurateSubtraction(a,-b):a<0&&b>=0?this.accurateSubtraction(b,-a):a<0&&b<0?-this._accurateAddition(-a,-b):void 0},accurateMultiplication:function(a,b){return a>=0&&b>=0?this._accurateMultiplication(a,b):a>=0&&b<0?-this._accurateMultiplication(a,-b):a<0&&b>=0?-this._accurateMultiplication(-a,b):a<0&&b<0?this._accurateMultiplication(-a,-b):void 0},accurateDivisionTenExponent:function(a,b){return a>=0?this._accurateDivisionTenExponent(a,b):-this._accurateDivisionTenExponent(-a,b)}}),BI.MonthCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MonthCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-month-combo",behaviors:{},height:24})},_init:function(){BI.MonthCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.month_trigger",value:b.value}),this.trigger.on(BI.MonthTrigger.EVENT_CONFIRM,function(b){a.combo.isViewVisible()||(this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getValue()):this.getKey()||a.setValue(),a.fireEvent(BI.MonthCombo.EVENT_CONFIRM))}),this.trigger.on(BI.MonthTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.MonthTrigger.EVENT_START,function(){a.combo.hideView()}),this.trigger.on(BI.MonthTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.popup=BI.createWidget({type:"bi.month_popup",behaviors:b.behaviors,value:b.value}),this.popup.on(BI.MonthPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MonthCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,element:this,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,el:this.popup}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MonthCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return BI.isNull(this.popup)?this.options.value||"":this.popup.getValue()||""}}),BI.MonthCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.MonthCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.month_combo",BI.MonthCombo),BI.MonthPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MonthPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-month-popup",behaviors:{}})},_init:function(){BI.MonthPopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=[1,7,2,8,3,9,4,10,5,11,6,12],d=[];d.push(c.slice(0,2)),d.push(c.slice(2,4)),d.push(c.slice(4,6)),d.push(c.slice(6,8)),d.push(c.slice(8,10)),d.push(c.slice(10,12)),d=BI.map(d,function(a,b){return BI.map(b,function(a,b){return{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"center",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:23,width:38,value:b,text:b}})}),this.month=BI.createWidget({type:"bi.button_group",element:this,behaviors:b.behaviors,items:BI.createItems(d,{}),layouts:[BI.LogicFactory.createLogic("table",BI.extend({dynamic:!0},{columns:2,rows:6,columnSize:[.5,.5],rowSize:25})),{type:"bi.center_adapt",vgap:1,hgap:2}],value:b.value}),this.month.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.MonthPopup.EVENT_CHANGE)})},getValue:function(){return this.month.getValue()[0]},setValue:function(a){a=BI.parseInt(a),this.month.setValue([a])}}),BI.MonthPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.month_popup",BI.MonthPopup),BI.MonthTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2},_defaultConfig:function(){return BI.extend(BI.MonthTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-month-trigger bi-border",height:24})},_init:function(){BI.MonthTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(a){return""===a||BI.isPositiveInteger(a)&&a>=1&&a<=12},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:BI.i18nText("BI-Month_Trigger_Error_Text")}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.MonthTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.MonthTrigger.EVENT_CHANGE)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.MonthTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.MonthTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.MonthTrigger.EVENT_STOP)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",text:BI.i18nText("BI-Multi_Date_Month"),baseCls:"bi-trigger-month-text",width:b.height},width:b.height},{el:{type:"bi.trigger_icon_button",width:b.height},width:b.height}]}),this.setValue(b.value)},setValue:function(a){return BI.isNotNull(a)?(this.editor.setState(a+1),this.editor.setValue(a+1),void this.editor.setTitle(a+1)):(this.editor.setState(""),this.editor.setValue(""),void this.editor.setTitle(""))},getKey:function(){return 0|this.editor.getValue()},getValue:function(){return this.editor.getValue()-1}}),BI.MonthTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.MonthTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.MonthTrigger.EVENT_START="EVENT_START",BI.MonthTrigger.EVENT_STOP="EVENT_STOP",BI.MonthTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.month_trigger",BI.MonthTrigger),BI.DownListCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DownListCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-down-list-combo",height:24,items:[],adjustLength:0,direction:"bottom",trigger:"click",container:null,stopPropagation:!1,el:{}})},_init:function(){BI.DownListCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popupview=BI.createWidget({type:"bi.multi_layer_down_list_popup",items:b.items,chooseType:b.chooseType,value:b.value}),this.popupview.on(BI.DownListPopup.EVENT_CHANGE,function(b){a.fireEvent(BI.DownListCombo.EVENT_CHANGE,b),a.downlistcombo.hideView()}),this.popupview.on(BI.DownListPopup.EVENT_SON_VALUE_CHANGE,function(b,c){a.fireEvent(BI.DownListCombo.EVENT_SON_VALUE_CHANGE,b,c),a.downlistcombo.hideView()}),this.downlistcombo=BI.createWidget({element:this,type:"bi.combo",trigger:b.trigger,isNeedAdjustWidth:!1,container:b.container,adjustLength:b.adjustLength,direction:b.direction,stopPropagation:b.stopPropagation,el:BI.createWidget(b.el,{type:"bi.icon_trigger",extraCls:b.iconCls?b.iconCls:"pull-down-font",width:b.width,height:b.height}),popup:{el:this.popupview,stopPropagation:!0,maxHeight:1e3}}),this.downlistcombo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.DownListCombo.EVENT_BEFORE_POPUPVIEW)})},hideView:function(){this.downlistcombo.hideView()},showView:function(a){this.downlistcombo.showView(a)},populate:function(a){this.popupview.populate(a)},setValue:function(a){this.popupview.setValue(a)},getValue:function(){return this.popupview.getValue()}}),BI.DownListCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DownListCombo.EVENT_SON_VALUE_CHANGE="EVENT_SON_VALUE_CHANGE",BI.DownListCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.multi_layer_down_list_combo",BI.DownListCombo),BI.MultiLayerDownListPopup=BI.inherit(BI.Pane,{constants:{nextIcon:"pull-right-e-font",height:25,iconHeight:12,iconWidth:12,hgap:0,vgap:0,border:1},_defaultConfig:function(){var a=BI.MultiLayerDownListPopup.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-down-list-popup",items:[],chooseType:BI.Selection.Multi})},_init:function(){BI.MultiLayerDownListPopup.superclass._init.apply(this,arguments),this.singleValues=[],this.childValueMap={},this.fatherValueMap={};var a=this,b=this.options,c=this._createPopupItems(b.items);this.popup=BI.createWidget({type:"bi.button_tree",items:BI.createItems(c,{},{adjustLength:-2}),layouts:[{type:"bi.vertical",hgap:this.constants.hgap,vgap:this.constants.vgap}],value:this._digest(b.value),chooseType:b.chooseType}),this.popup.on(BI.ButtonTree.EVENT_CHANGE,function(b,c){var d=b;if(BI.isNotNull(a.childValueMap[b])){d=a.childValueMap[b];var e=a.fatherValueMap[b],f=(e+"").split("_");a.fireEvent(BI.MultiLayerDownListPopup.EVENT_SON_VALUE_CHANGE,d,f.length>1?f:e)}else a.fireEvent(BI.MultiLayerDownListPopup.EVENT_CHANGE,d,c);if(!BI.contains(a.singleValues,d)){var g=a.getValue(),h=[];BI.each(g,function(a,b){b.value!=d&&h.push(b)}),a.setValue(h)}}),BI.createWidget({type:"bi.vertical",element:this,items:[this.popup],vgap:5})},_createPopupItems:function(a){var b=this,c=[];return BI.each(a,function(d,e){var f={type:"bi.down_list_group",items:[]};if(BI.each(e,function(a,c){BI.isNotEmptyArray(c.children)&&!BI.isEmpty(c.el)?(c.type="bi.combo_group",c.cls="down-list-group",c.trigger="hover",c.isNeedAdjustWidth=!1,c.el.title=c.el.title||c.el.text,c.el.type="bi.down_list_group_item",c.el.logic={dynamic:!0},c.el.height=b.constants.height,c.el.iconCls2=b.constants.nextIcon,c.popup={lgap:1,el:{type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]},innerVGap:5},c.el.childValues=[],BI.each(c.children,function(a,d){d=d.el?BI.extend(d.el,{children:d.children}):d;var e=BI.deepClone(c.el.value),f=BI.deepClone(d.value);b.singleValues.push(d.value),d.type="bi.down_list_item",d.extraCls=" child-down-list-item",d.title=d.title||d.text,d.textRgap=10,d.isNeedAdjustWidth=!1,d.logic={dynamic:!0},d.father=e,b.fatherValueMap[b._createChildValue(e,f)]=e,b.childValueMap[b._createChildValue(e,f)]=f,d.value=b._createChildValue(e,f),c.el.childValues.push(d.value),BI.isNotEmptyArray(d.children)&&(d.type="bi.down_list_group_item",b._createChildren(d),d.height=b.constants.height,d.iconCls2=b.constants.nextIcon,c.el.childValues=BI.concat(c.el.childValues,d.childValues))})):(c.type="bi.down_list_item",c.title=c.title||c.text,c.textRgap=10,c.isNeedAdjustWidth=!1,c.logic={dynamic:!0});var d={};d.el=c,f.items.push(d)}),b._isGroup(f.items)&&BI.each(f.items,function(a,c){b.singleValues.push(c.el.value)}),c.push(f),b._needSpliter(d,a.length)){var g=BI.createWidget({type:"bi.vertical",items:[{el:{type:"bi.layout",cls:"bi-down-list-spliter bi-border-top cursor-pointer",height:0}}],cls:"bi-down-list-spliter-container cursor-pointer",vgap:5,lgap:10});c.push(g)}}),c},_createChildren:function(a){var b=this;a.childValues=[],BI.each(a.children,function(c,d){var e=BI.deepClone(a.value),f=BI.deepClone(d.value);d.type="bi.down_list_item",d.title=d.title||d.text,d.textRgap=10,d.isNeedAdjustWidth=!1,d.logic={dynamic:!0},d.father=e,b.fatherValueMap[b._createChildValue(e,f)]=e,b.childValueMap[b._createChildValue(e,f)]=f,d.value=b._createChildValue(e,f),a.childValues.push(d.value)})},_isGroup:function(a){return a.length>1},_needSpliter:function(a,b){return a1?g:f}else e.value=d;b.push(e)}),b}}),BI.MultiLayerDownListPopup.EVENT_CHANGE="EVENT_CHANGE",BI.MultiLayerDownListPopup.EVENT_SON_VALUE_CHANGE="EVENT_SON_VALUE_CHANGE",BI.shortcut("bi.multi_layer_down_list_popup",BI.MultiLayerDownListPopup),BI.MultiLayerSelectTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer_select_tree-combo",isDefaultInit:!1,height:24,text:"",items:[],value:"",attributes:{tabIndex:0}})},_init:function(){BI.MultiLayerSelectTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items,value:b.value}),this.popup=BI.createWidget({type:"bi.multilayer_select_tree_popup",isDefaultInit:b.isDefaultInit,items:b.items,value:b.value}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.MultiLayerSelectTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiLayerSelectTreeCombo.EVENT_CHANGE)})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.MultiLayerSelectTreeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_tree_combo",BI.MultiLayerSelectTreeCombo),BI.MultiLayerSelectLevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectLevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-select-level-tree",isDefaultInit:!1,items:[],itemsCreator:BI.emptyFn,value:"",scrollable:!0})},_init:function(){BI.MultiLayerSelectLevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b,c){var d=this;return BI.each(a,function(e,f){var g={};f.layer=b,BI.isKey(f.id)||(f.id=BI.UUID()),g.pNode=c,f.isParent===!0||f.parent===!0||BI.isNotEmptyArray(f.children)?(g.type="bi.multilayer_select_tree_mid_plus_group_node",e===a.length-1&&(g.type="bi.multilayer_select_tree_last_plus_group_node",g.isLastNode=!0),0!==e||c||(g.type="bi.multilayer_select_tree_first_plus_group_node"),0!==e||e!==a.length-1||c||(g.type="bi.multilayer_select_tree_plus_group_node"),BI.defaults(f,g),d._formatItems(f.children,b+1,f)):(g.type="bi.multilayer_single_tree_mid_tree_leaf_item",0!==e||c||(g.type="bi.multilayer_single_tree_first_tree_leaf_item"),e===a.length-1&&(g.type="bi.multilayer_single_tree_last_tree_leaf_item"),BI.defaults(f,g))}),a},_assertId:function(a){BI.each(a,function(a,b){b.id=b.id||BI.UUID()})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",cls:"tree-view display-table",expander:{type:"bi.select_tree_expander",isDefaultInit:c.isDefaultInit,el:{},popup:{type:"bi.custom_tree"}},items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),itemsCreator:c.itemsCreator,value:c.value,el:{type:"bi.button_tree",chooseType:BI.Selection.Single,layouts:[{type:"bi.vertical"}]}}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.MultiLayerSelectLevelTree.EVENT_CHANGE,arguments)}),BI.createWidget({type:"bi.adaptive",element:this,scrollable:c.scrollable,items:[this.tree]})},populate:function(a){this.tree.populate(this._formatItems(BI.Tree.transformToTreeFormat(a),0))},setValue:function(a){this.tree.setValue(a)},getValue:function(){return BI.uniq(this.tree.getValue())},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.MultiLayerSelectLevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_level_tree",BI.MultiLayerSelectLevelTree),BI.MultiLayerSelectTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-select-tree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),isDefaultInit:!1,itemsCreator:BI.emptyFn,items:[],value:""})},_init:function(){BI.MultiLayerSelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.multilayer_select_level_tree",isDefaultInit:b.isDefaultInit,items:b.items,value:b.value,itemsCreator:b.itemsCreator,scrollable:null}),BI.createWidget({type:"bi.vertical",scrolly:!1,scrollable:!0,element:this,vgap:5,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.MultiLayerSelectLevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.MultiLayerSelectTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.MultiLayerSelectTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.MultiLayerSelectTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_tree_popup",BI.MultiLayerSelectTreePopup),BI.MultiLayerSelectTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-first-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_first_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});for(var c=[],d=b.pNode;d;)d.isLastNode&&c.push(d.layer),d=d.pNode;var e=[];BI.count(0,b.layer,function(a){e.push({type:"bi.layout",cls:BI.contains(c,a)?"":"base-line-conn-background",width:12,height:b.height})}),e.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,12),items:[e]})},isOnce:function(){return!0},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_first_plus_group_node",BI.MultiLayerSelectTreeFirstPlusGroupNode),BI.MultiLayerSelectTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-last-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_last_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});for(var c=[],d=b.pNode;d;)d.isLastNode&&c.push(d.layer),d=d.pNode;var e=[];BI.count(0,b.layer,function(a){e.push({type:"bi.layout",cls:BI.contains(c,a)?"":"base-line-conn-background",width:12,height:b.height})}),e.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,12),items:[e]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_last_plus_group_node",BI.MultiLayerSelectTreeLastPlusGroupNode),BI.MultiLayerSelectTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-mid-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_mid_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});for(var c=[],d=b.pNode;d;)d.isLastNode&&c.push(d.layer),d=d.pNode;var e=[];BI.count(0,b.layer,function(a){e.push({type:"bi.layout",cls:BI.contains(c,a)?"":"base-line-conn-background",width:12,height:b.height})}),e.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,12),items:[e]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_mid_plus_group_node",BI.MultiLayerSelectTreeMidPlusGroupNode),BI.MultiLayerSelectTreePlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreePlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-first-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.MultiLayerSelectTreePlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});for(var c=[],d=b.pNode;d;)d.isLastNode&&c.push(d.layer),d=d.pNode;var e=[];BI.count(0,b.layer,function(a){e.push({type:"bi.layout",cls:BI.contains(c,a)?"":"base-line-conn-background",width:12,height:b.height})}),e.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,12),items:[e]})},isOnce:function(){return!0},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments); -},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreePlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreePlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_plus_group_node",BI.MultiLayerSelectTreePlusGroupNode),BI.MultiLayerSingleTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-singletree-combo",isDefaultInit:!1,height:24,text:"",itemsCreator:BI.emptyFn,items:[],value:"",attributes:{tabIndex:0}})},_init:function(){BI.MultiLayerSingleTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items,value:b.value}),this.popup=BI.createWidget({type:"bi.multilayer_single_tree_popup",isDefaultInit:b.isDefaultInit,itemsCreator:b.itemsCreator,items:b.items,value:b.value}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.MultiLayerSingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiLayerSingleTreeCombo.EVENT_CHANGE)})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.MultiLayerSingleTreeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_tree_combo",BI.MultiLayerSingleTreeCombo),BI.MultiLayerSingleLevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleLevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-single-level-tree",isDefaultInit:!1,items:[],itemsCreator:BI.emptyFn,chooseType:BI.Selection.Single,scrollable:!0})},_init:function(){BI.MultiLayerSingleLevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b,c){var d=this;return BI.each(a,function(e,f){var g={};f.layer=b,BI.isKey(f.id)||(f.id=BI.UUID()),g.pNode=c,f.isParent===!0||f.parent===!0||BI.isNotEmptyArray(f.children)?(g.type="bi.multilayer_single_tree_mid_plus_group_node",e===a.length-1&&(g.type="bi.multilayer_single_tree_last_plus_group_node",g.isLastNode=!0),0!==e||c||(g.type="bi.multilayer_single_tree_first_plus_group_node"),0!==e||e!==a.length-1||c||(g.type="bi.multilayer_single_tree_plus_group_node"),BI.defaults(f,g),d._formatItems(f.children,b+1,f)):(g.type="bi.multilayer_single_tree_mid_tree_leaf_item",0!==e||c||(g.type="bi.multilayer_single_tree_first_tree_leaf_item"),e===a.length-1&&(g.type="bi.multilayer_single_tree_last_tree_leaf_item"),BI.defaults(f,g))}),a},_assertId:function(a){BI.each(a,function(a,b){b.id=b.id||BI.UUID()})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",cls:"tree-view display-table",expander:{isDefaultInit:c.isDefaultInit,el:{},popup:{type:"bi.custom_tree"}},items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),value:c.value,itemsCreator:function(a,b){c.itemsCreator(a,function(a){b(BI.Tree.transformToTreeFormat(a),0)})},el:{type:"bi.button_tree",chooseType:c.chooseType,layouts:[{type:"bi.vertical"}]}}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a,c){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.MultiLayerSingleLevelTree.EVENT_CHANGE,c)}),BI.createWidget({type:"bi.adaptive",element:this,scrollable:c.scrollable,items:[this.tree]})},populate:function(a){this.tree.populate(this._formatItems(BI.Tree.transformToTreeFormat(a),0))},setValue:function(a){this.tree.setValue(a)},getValue:function(){return BI.filter(BI.uniq(this.tree.getValue()),function(a,b){return BI.isNotNull(b)})},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.MultiLayerSingleLevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_level_tree",BI.MultiLayerSingleLevelTree),BI.MultiLayerSingleTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-singletree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),isDefaultInit:!1,itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.MultiLayerSingleTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.multilayer_single_level_tree",isDefaultInit:b.isDefaultInit,items:b.items,itemsCreator:b.itemsCreator,value:b.value,scrollable:null}),BI.createWidget({type:"bi.vertical",scrolly:!1,scrollable:!0,element:this,vgap:5,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.MultiLayerSingleLevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.MultiLayerSingleTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.MultiLayerSingleTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.MultiLayerSingleTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_tree_popup",BI.MultiLayerSingleTreePopup),BI.MultiLayerSingleTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-first-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:24})},_init:function(){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this.options;this.node=this._createNode();for(var b=[],c=a.pNode;c;)c.isLastNode&&b.push(c.layer),c=c.pNode;var d=[];BI.count(0,a.layer,function(c){d.push({type:"bi.layout",cls:BI.contains(b,c)?"":"base-line-conn-background",width:12,height:a.height})}),d.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(a.layer,12),items:[d]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)},_createNode:function(){var a=this,b=this.options;return BI.createWidget({type:"bi.first_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,isLastNode:b.isLastNode,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword,listeners:[{eventName:BI.Controller.EVENT_CHANGE,action:function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}}]})}}),BI.shortcut("bi.multilayer_single_tree_first_plus_group_node",BI.MultiLayerSingleTreeFirstPlusGroupNode),BI.MultiLayerSingleTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-last-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:24})},_init:function(){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this.options;this.node=this._createNode();for(var b=[],c=a.pNode;c;)c.isLastNode&&b.push(c.layer),c=c.pNode;var d=[];BI.count(0,a.layer,function(c){d.push({type:"bi.layout",cls:BI.contains(b,c)?"":"base-line-conn-background",width:12,height:a.height})}),d.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(a.layer,12),items:[d]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)},_createNode:function(){var a=this,b=this.options;return BI.createWidget({type:"bi.last_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword,listeners:[{eventName:BI.Controller.EVENT_CHANGE,action:function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}}]})}}),BI.shortcut("bi.multilayer_single_tree_last_plus_group_node",BI.MultiLayerSingleTreeLastPlusGroupNode),BI.MultiLayerSingleTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-mid-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:24})},_init:function(){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this.options;this.node=this._createNode();for(var b=[],c=a.pNode;c;)c.isLastNode&&b.push(c.layer),c=c.pNode;var d=[];BI.count(0,a.layer,function(c){d.push({type:"bi.layout",cls:BI.contains(b,c)?"":"base-line-conn-background",width:12,height:a.height})}),d.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(a.layer,12),items:[d]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)},_createNode:function(){var a=this,b=this.options;return BI.createWidget({type:"bi.mid_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword,listeners:[{eventName:BI.Controller.EVENT_CHANGE,action:function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}}]})}}),BI.shortcut("bi.multilayer_single_tree_mid_plus_group_node",BI.MultiLayerSingleTreeMidPlusGroupNode),BI.MultiLayerSingleTreePlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreePlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:24})},_init:function(){BI.MultiLayerSingleTreePlusGroupNode.superclass._init.apply(this,arguments);var a=this.options;this.node=this._createNode();for(var b=[],c=a.pNode;c;)c.isLastNode&&b.push(c.layer),c=c.pNode;var d=[];BI.count(0,a.layer,function(c){d.push({type:"bi.layout",cls:BI.contains(b,c)?"":"base-line-conn-background",width:12,height:a.height})}),d.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(a.layer,12),items:[d]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreePlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreePlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)},_createNode:function(){var a=this,b=this.options;return BI.createWidget({type:"bi.plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,isLastNode:b.isLastNode,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword,listeners:[{eventName:BI.Controller.EVENT_CHANGE,action:function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}}]})}}),BI.shortcut("bi.multilayer_single_tree_plus_group_node",BI.MultiLayerSingleTreePlusGroupNode),BI.MultiLayerSingleTreeFirstTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-first-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:24})},_init:function(){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.first_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});for(var c=[],d=b.pNode;d;)d.isLastNode&&c.push(d.layer),d=d.pNode;var e=[];BI.count(0,b.layer,function(a){e.push({type:"bi.layout",cls:BI.contains(c,a)?"":"base-line-conn-background",width:12,height:b.height})}),e.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,12),items:[e]})},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_first_tree_leaf_item",BI.MultiLayerSingleTreeFirstTreeLeafItem),BI.MultiLayerSingleTreeLastTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeLastTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-last-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:24})},_init:function(){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.last_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});for(var c=[],d=b.pNode;d;)d.isLastNode&&c.push(d.layer),d=d.pNode;var e=[];BI.count(0,b.layer,function(a){e.push({type:"bi.layout",cls:BI.contains(c,a)?"":"base-line-conn-background",width:12,height:b.height})}),e.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,12),items:[e]})},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_last_tree_leaf_item",BI.MultiLayerSingleTreeLastTreeLeafItem),BI.MultiLayerSingleTreeMidTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeMidTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-mid-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:24})},_init:function(){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.mid_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py,keyword:b.keyword}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});for(var c=[],d=b.pNode;d;)d.isLastNode&&c.push(d.layer),d=d.pNode;var e=[];BI.count(0,b.layer,function(a){e.push({type:"bi.layout",cls:BI.contains(c,a)?"":"base-line-conn-background",width:12,height:b.height})}),e.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,12),items:[e]})},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_mid_tree_leaf_item",BI.MultiLayerSingleTreeMidTreeLeafItem),BI.MultiSelectCheckPane=BI.inherit(BI.Widget,{constants:{height:12,lgap:10,tgap:10,bgap:5},_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-pane bi-background",items:[],itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,onClickContinueSelect:BI.emptyFn})},_init:function(){BI.MultiSelectCheckPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue=b.value||{},this.display=BI.createWidget({type:"bi.display_selected_list",items:b.items,itemsCreator:function(c,d){return c=BI.extend(c||{},{selectedValues:a.storeValue.value}),a.storeValue.type===BI.Selection.Multi?void d({items:BI.map(a.storeValue.value,function(a,c){var d=b.valueFormatter(c)||c;return{text:d,value:c,title:d}})}):void b.itemsCreator(c,d)}}),this.continueSelect=BI.createWidget({type:"bi.text_button",text:BI.i18nText("BI-Continue_Select"),cls:"multi-select-check-selected bi-high-light"}),this.continueSelect.on(BI.TextButton.EVENT_CHANGE,function(){b.onClickContinueSelect()}),BI.createWidget({type:"bi.vtape",element:this,items:[{height:this.constants.height,el:{type:"bi.vertical_adapt",cls:"multi-select-continue-select",items:[{el:{type:"bi.label",text:BI.i18nText("BI-Selected_Data")},lgap:this.constants.lgap},{el:this.continueSelect,lgap:this.constants.lgap}]},tgap:this.constants.tgap},{height:"fill",el:this.display,tgap:this.constants.bgap}]})},setValue:function(a){this.storeValue=a||{}},empty:function(){this.display.empty()},populate:function(){this.display.populate.apply(this.display,arguments)}}),BI.shortcut("bi.multi_select_check_pane",BI.MultiSelectCheckPane),BI.DisplaySelectedList=BI.inherit(BI.Pane,{constants:{height:24,lgap:10},_defaultConfig:function(){return BI.extend(BI.DisplaySelectedList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-display-list",itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.DisplaySelectedList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.hasNext=!1,this.button_group=BI.createWidget({type:"bi.list_pane",element:this,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},items:this._createItems(b.items),chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,layouts:[{type:"bi.vertical",lgap:10}]},itemsCreator:function(c,d){b.itemsCreator(c,function(b){a.hasNext=!!b.hasNext,d(a._createItems(b.items))})},hasNext:function(){return a.hasNext}})},_createItems:function(a){return BI.createItems(a,{type:"bi.icon_text_item",cls:"cursor-default check-font icon-size-12 display-list-item bi-tips",once:!0,invalid:!0,selected:!0,height:this.constants.height,logic:{dynamic:!0}})},empty:function(){this.button_group.empty()},populate:function(a){0===arguments.length?this.button_group.populate():this.button_group.populate(this._createItems(a))}}),BI.shortcut("bi.display_selected_list",BI.DisplaySelectedList),BI.MultiSelectCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24,attributes:{tabIndex:0}})},_init:function(){BI.MultiSelectCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,a._startValue):BI.pushDistinct(a.storeValue.value,a._startValue)),a.trigger.getSearcher().setState(a.storeValue),a.trigger.getCounter().setButtonChecked(a.storeValue)};this.storeValue=b.value||{},this._assertValue(this.storeValue),this.requesting=!1,this.trigger=BI.createWidget({type:"bi.multi_select_trigger",height:b.height,text:b.text,masker:{offset:{left:0,top:0,right:0,bottom:25}},valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator(c,function(b){1===c.times&&BI.isNotNull(c.keywords)&&a.trigger.setValue(BI.deepClone(a.getValue())),d.apply(a,arguments)})},value:this.storeValue}),this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){a._setStartValue(""),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){a._setStartValue("")}),this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE,function(){if(this.getSearcher().hasMatched()){var b=this.getSearcher().getKeyword();a._join({type:BI.Selection.Multi,value:[b]},function(){a.combo.setValue(a.storeValue),a._setStartValue(b),c(),a.populate(),a._setStartValue("")})}}),this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue("")):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){this.getCounter().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,container:b.container,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_select_popup_view",ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c()})}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM,action:function(){a._defaultState()}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CLEAR,action:function(){a.setValue(),a._defaultState()}}],itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getCounter().adjustView(),a.trigger.getSearcher().adjustView()})}},value:b.value,hideChecker:function(a){return 0===d.element.find(a.target).length}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a.populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:a.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM)});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"multi-select-trigger-icon-button"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.trigger.getCounter().hideView(),a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Multi?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this.requesting=!0,e.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_ALL_DATA,keywords:a},function(a){var b=BI.map(a.items,"value");c(b)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),this.requesting=!0,d.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_ALL_DATA,keywords:[this.trigger.getKey()]},function(d){var e=BI.map(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,c.storeValue.assist&&c.storeValue.assist.push(g[b]),delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&(c.storeValue.assist&&c.storeValue.assist.push(h[e[a]]),delete h[e[a]]),BI.isNull(i[e[a]])&&(BI.remove(c.storeValue.assist,b),j.push(b))}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.wants2Quit===!0&&(c.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this;this.options;b(),a()},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),BI.remove(c.storeValue.assist,b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,c.storeValue.assist&&c.storeValue.assist.push(d[b]),delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.combo.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.extend(BI.MultiSelectCombo,{REQ_GET_DATA_LENGTH:1,REQ_GET_ALL_DATA:-1}),BI.MultiSelectCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.multi_select_combo",BI.MultiSelectCombo),BI.MultiSelectInsertCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectInsertCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-insert-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24,attributes:{tabIndex:0},allowEdit:!0})},_init:function(){BI.MultiSelectInsertCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,a._startValue):BI.pushDistinct(a.storeValue.value,a._startValue)),a.trigger.getSearcher().setState(a.storeValue),a.trigger.getCounter().setButtonChecked(a.storeValue)};this.storeValue=b.value||{},this.requesting=!1,this.trigger=BI.createWidget({type:"bi.multi_select_insert_trigger",allowEdit:b.allowEdit,height:b.height,text:b.text,masker:{offset:{left:0,top:0,right:0,bottom:25}},valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator(c,function(b){1===c.times&&BI.isNotNull(c.keywords)&&a.trigger.setValue(BI.deepClone(a.getValue())),d.apply(a,arguments)})},value:b.value}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_START,function(){a._setStartValue(""),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_STOP,function(){a._setStartValue("")}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_PAUSE,function(){this.getSearcher().hasMatched()&&a._addItem(c)}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_ADD_ITEM,function(){this.getSearcher().hasMatched()||(a._addItem(c),a.trigger.stopEditing())}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue("")):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_CHANGE,function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){this.getCounter().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,el:this.trigger,adjustLength:1,container:b.container,popup:{type:"bi.multi_select_popup_view",ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c()})}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM,action:function(){a._defaultState()}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CLEAR,action:function(){a.setValue(),a._defaultState()}}],itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getCounter().adjustView(),a.trigger.getSearcher().adjustView()})}},value:b.value,hideChecker:function(a){return 0===d.element.find(a.target).length}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a.populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:a.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM)});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"multi-select-trigger-icon-button"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.trigger.getCounter().hideView(),a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]})},_addItem:function(a){var b=this,c=this.trigger.getSearcher().getKeyword();this._join({type:BI.Selection.Multi,value:[c]},function(){b.storeValue.type===BI.Selection.Multi&&BI.pushDistinct(b.storeValue.value,c),b.combo.setValue(b.storeValue),b._setStartValue(c),a(),b.populate(),b._setStartValue("")})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Multi?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this.requesting=!0,e.itemsCreator({type:BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA, -keywords:a},function(a){var b=BI.map(a.items,"value");c(b)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),this.requesting=!0,d.itemsCreator({type:BI.MultiSelectInsertCombo.REQ_GET_ALL_DATA,keywords:[this.trigger.getKey()]},function(d){var e=BI.map(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,c.storeValue.assist&&c.storeValue.assist.push(g[b]),delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&(c.storeValue.assist&&c.storeValue.assist.push(h[e[a]]),delete h[e[a]]),BI.isNull(i[e[a]])&&(BI.remove(c.storeValue.assist,b),j.push(b))}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.wants2Quit===!0&&(c.fireEvent(BI.MultiSelectInsertCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this;this.options;b(),a()},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),BI.remove(c.storeValue.assist,b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,c.storeValue.assist&&c.storeValue.assist.push(d[b]),delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.combo.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.extend(BI.MultiSelectInsertCombo,{REQ_GET_DATA_LENGTH:1,REQ_GET_ALL_DATA:-1}),BI.MultiSelectInsertCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.multi_select_insert_combo",BI.MultiSelectInsertCombo),BI.MultiSelectInsertNoBarCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectInsertNoBarCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-insert-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24,attributes:{tabIndex:0}})},_init:function(){BI.MultiSelectInsertNoBarCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,a._startValue):BI.pushDistinct(a.storeValue.value,a._startValue)),a.trigger.getSearcher().setState(a.storeValue),a.trigger.getCounter().setButtonChecked(a.storeValue)};this.storeValue={type:BI.Selection.Multi,value:b.value||[]},this.requesting=!1,this.trigger=BI.createWidget({type:"bi.multi_select_insert_trigger",height:b.height,text:b.text,masker:{offset:{left:0,top:0,right:0,bottom:25}},valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator(c,function(b){1===c.times&&BI.isNotNull(c.keywords)&&a.trigger.setValue({type:BI.Selection.Multi,value:a.getValue()}),d.apply(a,arguments)})},value:{type:BI.Selection.Multi,value:b.value}}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_START,function(){a._setStartValue(""),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_STOP,function(){a._setStartValue("")}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_PAUSE,function(){this.getSearcher().hasMatched()&&a._addItem(c)}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_ADD_ITEM,function(){this.getSearcher().hasMatched()||(a._addItem(c),a.trigger.stopEditing())}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue("")):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_CHANGE,function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){this.getCounter().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,container:b.container,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_select_no_bar_popup_view",ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c()})}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM,action:function(){a._defaultState()}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CLEAR,action:function(){a.setValue(),a._defaultState()}}],itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getCounter().adjustView(),a.trigger.getSearcher().adjustView()})}},value:{type:BI.Selection.Multi,value:b.value},hideChecker:function(a){return 0===d.element.find(a.target).length}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a.populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:a.fireEvent(BI.MultiSelectInsertNoBarCombo.EVENT_CONFIRM)});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"multi-select-trigger-icon-button"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.trigger.getCounter().hideView(),a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]})},_addItem:function(a){var b=this,c=this.trigger.getSearcher().getKeyword();this._join({type:BI.Selection.Multi,value:[c]},function(){b.storeValue.type===BI.Selection.Multi&&BI.pushDistinct(b.storeValue.value,c),b.combo.setValue(b.storeValue),b._setStartValue(c),a(),b.populate(),b._setStartValue("")})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Multi?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this.requesting=!0,e.itemsCreator({type:BI.MultiSelectInsertNoBarCombo.REQ_GET_ALL_DATA,keywords:a},function(a){var b=BI.map(a.items,"value");c(b)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),this.requesting=!0,d.itemsCreator({type:BI.MultiSelectInsertNoBarCombo.REQ_GET_ALL_DATA,keywords:[this.trigger.getKey()]},function(d){var e=BI.map(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,c.storeValue.assist&&c.storeValue.assist.push(g[b]),delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&(c.storeValue.assist&&c.storeValue.assist.push(h[e[a]]),delete h[e[a]]),BI.isNull(i[e[a]])&&(BI.remove(c.storeValue.assist,b),j.push(b))}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.wants2Quit===!0&&(c.fireEvent(BI.MultiSelectInsertNoBarCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this;this.options;b(),a()},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),BI.remove(c.storeValue.assist,b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,c.storeValue.assist&&c.storeValue.assist.push(d[b]),delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},setValue:function(a){this.storeValue={type:BI.Selection.Multi,value:a||[]},this.combo.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue.value)},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.extend(BI.MultiSelectInsertNoBarCombo,{REQ_GET_DATA_LENGTH:1,REQ_GET_ALL_DATA:-1}),BI.MultiSelectInsertNoBarCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.multi_select_insert_no_bar_combo",BI.MultiSelectInsertNoBarCombo),BI.MultiSelectInsertTrigger=BI.inherit(BI.Trigger,{constants:{height:14,rgap:4,lgap:4},_defaultConfig:function(){return BI.extend(BI.MultiSelectInsertTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-trigger bi-border",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,searcher:{},switcher:{},adapter:null,masker:{},allowEdit:!0})},_init:function(){BI.MultiSelectInsertTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;b.height&&this.setHeight(b.height-2),this.searcher=BI.createWidget(b.searcher,{type:"bi.multi_select_insert_searcher",height:b.height,text:b.text,itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,popup:{},adapter:b.adapter,masker:b.masker,value:b.value}),this.searcher.on(BI.MultiSelectInsertSearcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_START)}),this.searcher.on(BI.MultiSelectInsertSearcher.EVENT_ADD_ITEM,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_ADD_ITEM)}),this.searcher.on(BI.MultiSelectInsertSearcher.EVENT_PAUSE,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_PAUSE)}),this.searcher.on(BI.MultiSelectInsertSearcher.EVENT_SEARCHING,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_SEARCHING,arguments)}),this.searcher.on(BI.MultiSelectInsertSearcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_STOP)}),this.searcher.on(BI.MultiSelectInsertSearcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_CHANGE,arguments)}),this.numberCounter=BI.createWidget(b.switcher,{type:"bi.multi_select_check_selected_switcher",valueFormatter:b.valueFormatter,itemsCreator:b.itemsCreator,adapter:b.adapter,masker:b.masker,value:b.value}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK)}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW)});var c=BI.createWidget({type:"bi.right_vertical_adapt",hgap:4,items:[{el:this.numberCounter}]}),d=BI.createWidget({type:"bi.htape",element:this,items:[{el:this.searcher,width:"fill"},{el:c,width:0},{el:BI.createWidget(),width:24}]});!b.allowEdit&&BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.layout"},left:0,right:24,top:0,bottom:0}]}),this.numberCounter.on(BI.Events.VIEW,function(b){BI.nextTick(function(){d.attr("items")[1].width=b===!0?a.numberCounter.element.outerWidth()+8:0,d.resize()})}),this.element.click(function(b){a.element.find(b.target).length>0&&a.numberCounter.hideView()})},getCounter:function(){return this.numberCounter},getSearcher:function(){return this.searcher},stopEditing:function(){this.searcher.stopSearch(),this.numberCounter.hideView()},setAdapter:function(a){this.searcher.setAdapter(a),this.numberCounter.setAdapter(a)},setValue:function(a){this.searcher.setValue(a),this.numberCounter.setValue(a)},getKey:function(){return this.searcher.getKey()},getValue:function(){return this.searcher.getValue()}}),BI.MultiSelectInsertTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK="EVENT_COUNTER_CLICK",BI.MultiSelectInsertTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectInsertTrigger.EVENT_START="EVENT_START",BI.MultiSelectInsertTrigger.EVENT_STOP="EVENT_STOP",BI.MultiSelectInsertTrigger.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectInsertTrigger.EVENT_SEARCHING="EVENT_SEARCHING",BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW="EVENT_BEFORE_COUNTER_POPUPVIEW",BI.MultiSelectInsertTrigger.EVENT_ADD_ITEM="EVENT_ADD_ITEM",BI.shortcut("bi.multi_select_insert_trigger",BI.MultiSelectInsertTrigger),BI.MultiSelectLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-loader",logic:{dynamic:!0},el:{height:400},valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.storeValue=b.value||{},this._assertValue(this.storeValue),this.button_group=BI.createWidget({type:"bi.select_list",logic:b.logic,toolbar:{type:"bi.multi_select_bar",cls:"bi-list-item-active",iconWrapperWidth:36},el:BI.extend({onLoaded:b.onLoaded,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},b.el),itemsCreator:function(d,e){var f=a._startValue;a.storeValue&&(d=BI.extend(d||{},{selectedValues:BI.isKey(f)&&a.storeValue.type===BI.Selection.Multi?a.storeValue.value.concat(f):a.storeValue.value})),b.itemsCreator(d,function(g){c=g.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=BI.map(a.storeValue.value,function(c,d){var e=b.valueFormatter(d)||d;return{text:e,value:d,title:e,selected:a.storeValue.type===BI.Selection.Multi}});if(BI.isKey(a._startValue)&&!BI.contains(a.storeValue.value,a._startValue)){var j=b.valueFormatter(f)||f;i.unshift({text:j,value:f,title:j,selected:!0})}h=a._createItems(i)}e(h.concat(a._createItems(g.items)),g.keyword||""),1===d.times&&a.storeValue&&(BI.isKey(f)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,f):BI.pushDistinct(a.storeValue.value,f)),a.setValue(a.storeValue)),1===d.times&&a._scrollToTop()})},hasNext:function(){return c},value:this.storeValue}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Top),BI.extend({scrolly:!0,vgap:5},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Top,this.button_group)})))),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",logic:this.options.logic,cls:"bi-list-item-active",height:24,selected:this.isAllSelected(),iconWrapperWidth:36})},_scrollToTop:function(){var a=this;BI.delay(function(){a.button_group.element.scrollTop(0)},30)},isAllSelected:function(){return this.button_group.isAllSelected()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},setStartValue:function(a){this._startValue=a},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.button_group.setValue(this.storeValue)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){arguments[0]=this._createItems(a),this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a-10)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.MultiSelectLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_loader",BI.MultiSelectLoader),BI.MultiSelectNoBarLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectNoBarLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-loader",logic:{dynamic:!0},el:{height:400},valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectNoBarLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.storeValue=b.value||{},this._assertValue(this.storeValue),this.button_group=BI.createWidget(BI.extend({type:"bi.list_pane",onLoaded:b.onLoaded,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}},itemsCreator:function(d,e){var f=a._startValue;a.storeValue&&(d=BI.extend(d||{},{selectedValues:BI.isKey(f)&&a.storeValue.type===BI.Selection.Multi?a.storeValue.value.concat(f):a.storeValue.value})),b.itemsCreator(d,function(g){c=g.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=BI.map(a.storeValue.value,function(c,d){var e=b.valueFormatter(d)||d;return{text:e,value:d,title:e,selected:a.storeValue.type===BI.Selection.Multi}});if(BI.isKey(a._startValue)&&!BI.contains(a.storeValue.value,a._startValue)){var j=b.valueFormatter(f)||f;i.unshift({text:j,value:f,title:j,selected:!0})}h=a._createItems(i)}e(h.concat(a._createItems(g.items)),g.keyword||""),1===d.times&&a.storeValue&&(BI.isKey(f)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,f):BI.pushDistinct(a.storeValue.value,f)),a.setValue(a.storeValue)),1===d.times&&a._scrollToTop()})},hasNext:function(){return c},value:this.storeValue},b.el)),BI.createWidget({type:"bi.vertical",element:this,items:[this.button_group],vgap:5}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectNoBarLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",cls:"bi-list-item-active",logic:this.options.logic,height:24,iconWrapperWidth:36})},_scrollToTop:function(){var a=this;BI.delay(function(){a.button_group.element.scrollTop(0)},30)},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},setStartValue:function(a){this._startValue=a},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.button_group.setValue(this.storeValue.value)},getValue:function(){return{type:BI.Selection.Multi,value:this.button_group.getValue()}},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){arguments[0]=this._createItems(a),this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.element.css({"max-height":a+"px"})},resetWidth:function(){}}),BI.MultiSelectNoBarLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_no_bar_loader",BI.MultiSelectNoBarLoader),BI.MultiSelectPopupView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectPopupView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-popup-view",maxWidth:"auto",minWidth:135,maxHeight:400,valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectPopupView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.loader=BI.createWidget({type:"bi.multi_select_loader",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:b.onLoaded,value:b.value}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,element:this,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.loader,value:b.value}),this.popupView.on(BI.MultiPopupView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectPopupView.EVENT_CHANGE)}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.MultiSelectPopupView.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM)}})},isAllSelected:function(){return this.loader.isAllSelected()},setStartValue:function(a){this.loader.setStartValue(a)},setValue:function(a){this.popupView.setValue(a)},getValue:function(){return this.popupView.getValue()},populate:function(a){this.popupView.populate.apply(this.popupView,arguments)},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.MultiSelectPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiSelectPopupView.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.multi_select_popup_view",BI.MultiSelectPopupView),BI.MultiSelectNoBarPopupView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectNoBarPopupView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-popup-view",maxWidth:"auto",minWidth:135,maxHeight:400,valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectNoBarPopupView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.loader=BI.createWidget({type:"bi.multi_select_no_bar_loader",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:b.onLoaded,value:b.value}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,element:this,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.loader,value:b.value}),this.popupView.on(BI.MultiPopupView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectNoBarPopupView.EVENT_CHANGE)}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.MultiSelectNoBarPopupView.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.MultiSelectNoBarPopupView.EVENT_CLICK_CONFIRM)}})},setStartValue:function(a){this.loader.setStartValue(a)},setValue:function(a){this.popupView.setValue(a)},getValue:function(){return this.popupView.getValue()},populate:function(a){this.popupView.populate.apply(this.popupView,arguments)},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.MultiSelectNoBarPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectNoBarPopupView.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiSelectNoBarPopupView.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.multi_select_no_bar_popup_view",BI.MultiSelectNoBarPopupView),BI.MultiSelectTrigger=BI.inherit(BI.Trigger,{constants:{height:14,rgap:4,lgap:4},_defaultConfig:function(){return BI.extend(BI.MultiSelectTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-trigger bi-border",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,searcher:{},switcher:{},adapter:null,masker:{},allowEdit:!0})},_init:function(){BI.MultiSelectTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;b.height&&this.setHeight(b.height-2),this.searcher=BI.createWidget(b.searcher,{type:"bi.multi_select_searcher",height:b.height,text:b.text,itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,popup:{},adapter:b.adapter,masker:b.masker,value:b.value}),this.searcher.on(BI.MultiSelectSearcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_START)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_PAUSE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_PAUSE)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_SEARCHING,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_SEARCHING,arguments)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_STOP)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_CHANGE,arguments)}),this.numberCounter=BI.createWidget(b.switcher,{type:"bi.multi_select_check_selected_switcher",valueFormatter:b.valueFormatter,itemsCreator:b.itemsCreator,adapter:b.adapter,masker:b.masker,value:b.value}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK)}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW)});var c=BI.createWidget({type:"bi.right_vertical_adapt",hgap:4,items:[{el:this.numberCounter}]}),d=BI.createWidget({type:"bi.htape",element:this,items:[{el:this.searcher,width:"fill"},{el:c,width:0},{el:BI.createWidget(),width:24}]});!b.allowEdit&&BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.layout"},left:0,right:24,top:0,bottom:0}]}),this.numberCounter.on(BI.Events.VIEW,function(b){BI.nextTick(function(){d.attr("items")[1].width=b===!0?a.numberCounter.element.outerWidth()+8:0,d.resize()})}),this.element.click(function(b){a.element.find(b.target).length>0&&a.numberCounter.hideView()})},getCounter:function(){return this.numberCounter},getSearcher:function(){return this.searcher},stopEditing:function(){this.searcher.stopSearch(),this.numberCounter.hideView()},setAdapter:function(a){this.searcher.setAdapter(a),this.numberCounter.setAdapter(a)},setValue:function(a){this.searcher.setValue(a),this.numberCounter.setValue(a)},getKey:function(){return this.searcher.getKey()},getValue:function(){return this.searcher.getValue()}}),BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.MultiSelectTrigger.EVENT_COUNTER_CLICK="EVENT_COUNTER_CLICK",BI.MultiSelectTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectTrigger.EVENT_START="EVENT_START",BI.MultiSelectTrigger.EVENT_STOP="EVENT_STOP",BI.MultiSelectTrigger.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectTrigger.EVENT_SEARCHING="EVENT_SEARCHING",BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW="EVENT_BEFORE_COUNTER_POPUPVIEW",BI.shortcut("bi.multi_select_trigger",BI.MultiSelectTrigger),BI.MultiSelectSearchInsertPane=BI.inherit(BI.Widget,{constants:{height:24,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiSelectSearchInsertPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-search-pane bi-card",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.MultiSelectSearchInsertPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tooltipClick=BI.createWidget({type:"bi.label",invisible:!0,text:BI.i18nText("BI-Click_Blank_To_Select"),cls:"multi-select-toolbar",height:this.constants.height}),this.addNotMatchTip=BI.createWidget({type:"bi.text_button",invisible:!0,text:BI.i18nText("BI-Basic_Click_To_Add_Text",""),height:this.constants.height,cls:"bi-high-light",hgap:5,handler:function(){a.fireEvent(BI.MultiSelectSearchInsertPane.EVENT_ADD_ITEM,b.keywordGetter())}}),this.loader=BI.createWidget({type:"bi.multi_select_search_loader",keywordGetter:b.keywordGetter,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator.apply(a,[c,function(c){d(c),a.setKeyword(b.keywordGetter())}])},value:b.value}),this.loader.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.resizer=BI.createWidget({type:"bi.vtape",element:this,items:[{type:"bi.vertical",items:[this.tooltipClick,this.addNotMatchTip],height:this.constants.height},{el:this.loader}]})},setKeyword:function(a){var b,c=this.loader.getAllButtons().length>0&&(b=this.loader.getAllButtons()[0])&&a===b.getValue();this.tooltipClick.setVisible(c),this.addNotMatchTip.setVisible(!c),!c&&this.addNotMatchTip.setText(BI.i18nText("BI-Basic_Click_To_Add_Text",a))},isAllSelected:function(){return this.loader.isAllSelected()},hasMatched:function(){return this.tooltipClick.isVisible()},setValue:function(a){this.loader.setValue(a)},getValue:function(){return this.loader.getValue()},empty:function(){this.loader.empty()},populate:function(a){this.loader.populate.apply(this.loader,arguments)}}),BI.MultiSelectSearchInsertPane.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectSearchInsertPane.EVENT_ADD_ITEM="EVENT_ADD_ITEM",BI.shortcut("bi.multi_select_search_insert_pane",BI.MultiSelectSearchInsertPane),BI.MultiSelectSearchLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectSearchLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-search-loader",itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectSearchLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.storeValue=BI.deepClone(b.value),this.button_group=BI.createWidget({type:"bi.select_list",toolbar:{type:"bi.multi_select_bar",cls:"bi-list-item-active",iconWrapperWidth:36},element:this,logic:{dynamic:!1},value:b.value,el:{tipText:BI.i18nText("BI-No_Select"),el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},itemsCreator:function(d,e){a.storeValue&&(d=BI.extend(d||{},{selectedValues:a.storeValue.value})),b.itemsCreator(d,function(f){var g=f.keyword=b.keywordGetter();c=f.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=a._filterValues(a.storeValue);h=a._createItems(i)}e(h.concat(a._createItems(f.items)),g),1===d.times&&a.storeValue&&a.setValue(a.storeValue)})},hasNext:function(){return c}}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectSearchLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",logic:{dynamic:!1},height:24,selected:this.isAllSelected(),cls:"bi-list-item-active",iconWrapperWidth:36})},isAllSelected:function(){return this.button_group.isAllSelected()},_filterValues:function(a){var b=this.options,c=b.keywordGetter(),d=BI.deepClone(a.value)||[],e=BI.map(d,function(a,c){return{text:b.valueFormatter(c)||c,value:c}});if(BI.isKey(c)){var f=BI.Func.getSearchResult(e,c);d=f.match.concat(f.find)}return BI.map(d,function(b,c){return{text:c.text,title:c.text,value:c.value,selected:a.type===BI.Selection.All}})},setValue:function(a){this.storeValue=BI.deepClone(a),this.button_group.setValue(a)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.MultiSelectSearchLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_search_loader",BI.MultiSelectSearchLoader),BI.MultiSelectSearchPane=BI.inherit(BI.Widget,{constants:{height:24,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiSelectSearchPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-search-pane bi-card",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.MultiSelectSearchPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tooltipClick=BI.createWidget({type:"bi.label",invisible:!0,text:BI.i18nText("BI-Click_Blank_To_Select"),cls:"multi-select-toolbar",height:this.constants.height}),this.loader=BI.createWidget({type:"bi.multi_select_search_loader",keywordGetter:b.keywordGetter,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator.apply(a,[c,function(c){d(c),a.setKeyword(b.keywordGetter()); -}])},value:b.value}),this.loader.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.resizer=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.tooltipClick,height:0},{el:this.loader}]}),this.tooltipClick.setVisible(!1)},setKeyword:function(a){var b,c=this.loader.getAllButtons().length>0&&(b=this.loader.getAllButtons()[0])&&a===b.getValue();c!==this.tooltipClick.isVisible()&&(this.tooltipClick.setVisible(c),this.resizer.attr("items")[0].height=c?this.constants.height:0,this.resizer.resize())},isAllSelected:function(){return this.loader.isAllSelected()},hasMatched:function(){return this.tooltipClick.isVisible()},setValue:function(a){this.loader.setValue(a)},getValue:function(){return this.loader.getValue()},empty:function(){this.loader.empty()},populate:function(a){this.loader.populate.apply(this.loader,arguments)}}),BI.MultiSelectSearchPane.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_search_pane",BI.MultiSelectSearchPane),BI.MultiSelectCheckSelectedButton=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckSelectedButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-selected-button",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectCheckSelectedButton.superclass._init.apply(this,arguments);var a=this,b=this.options;this.numberCounter=BI.createWidget({type:"bi.text_button",element:this,hgap:4,text:"0",textAlign:"center",textHeight:16,cls:"bi-high-light-background count-tip"}),this.numberCounter.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.numberCounter.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedButton.EVENT_CHANGE,arguments)}),this.numberCounter.element.hover(function(){a.numberCounter.setTag(a.numberCounter.getText()),a.numberCounter.setText(BI.i18nText("BI-Check_Selected"))},function(){a.numberCounter.setText(a.numberCounter.getTag())}),this.setVisible(!1),BI.isNotNull(b.value)&&this.setValue(b.value)},setValue:function(a){var b=this,c=this.options;return a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[]),a.type===BI.Selection.All?void c.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_DATA_LENGTH},function(c){var d=c.count-a.value.length;BI.nextTick(function(){b.numberCounter.setText(d),b.setVisible(d>0)})}):void BI.nextTick(function(){b.numberCounter.setText(a.value.length),b.setVisible(a.value.length>0)})},getValue:function(){}}),BI.MultiSelectCheckSelectedButton.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_check_selected_button",BI.MultiSelectCheckSelectedButton),BI.MultiSelectEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-editor",el:{}})},_init:function(){BI.MultiSelectEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.state_editor",element:this,height:b.height,watermark:BI.i18nText("BI-Basic_Search"),allowBlank:!0,value:b.value,text:b.text,tipType:b.tipType,warningTitle:b.warningTitle}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.StateEditor.EVENT_PAUSE,function(){a.fireEvent(BI.MultiSelectEditor.EVENT_PAUSE)}),this.editor.on(BI.StateEditor.EVENT_CLICK_LABEL,function(){})},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},setState:function(a){this.editor.setState(a)},setValue:function(a){this.editor.setValue(a)},setTipType:function(a){this.editor.setTipType(a)},getValue:function(){var a=this.editor.getState();return BI.isArray(a)&&a.length>0?a[a.length-1]:""},getKeywords:function(){var a=this.editor.getLastValidValue(),b=a.match(/[\S]+/g);return BI.isEndWithBlank(a)?b.concat([" "]):b},populate:function(a){}}),BI.MultiSelectEditor.EVENT_PAUSE="MultiSelectEditor.EVENT_PAUSE",BI.shortcut("bi.multi_select_editor",BI.MultiSelectEditor),BI.MultiSelectInsertSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectInsertSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-searcher",itemsCreator:BI.emptyFn,el:{},popup:{},valueFormatter:BI.emptyFn,adapter:null,masker:{},text:BI.i18nText("BI-Basic_Please_Select")})},_init:function(){BI.MultiSelectInsertSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.multi_select_editor",height:b.height,text:b.text}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,height:b.height,isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},el:this.editor,popup:BI.extend({type:"bi.multi_select_search_insert_pane",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){var e=a.editor.getValue();c.keywords=[e],this.setKeyword(e),b.itemsCreator(c,d)},value:b.value,listeners:[{eventName:BI.MultiSelectSearchInsertPane.EVENT_ADD_ITEM,action:function(){a.fireEvent(BI.MultiSelectInsertSearcher.EVENT_ADD_ITEM)}}]},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectInsertSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiSelectInsertSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectInsertSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectInsertSearcher.EVENT_CHANGE,arguments)}),this.searcher.on(BI.Searcher.EVENT_SEARCHING,function(){var b=this.getKeywords();a.fireEvent(BI.MultiSelectInsertSearcher.EVENT_SEARCHING,b)}),BI.isNotNull(b.value)&&this.setState(b.value)},adjustView:function(){this.searcher.adjustView()},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setAdapter:function(a){this.searcher.setAdapter(a)},setState:function(a){var b=this.options;if(a||(a={}),a.value||(a.value=[]),a.type===BI.Selection.All)if(0===a.value.length)this.editor.setState(BI.Selection.All);else if(BI.size(a.assist)<=20){var c="";BI.each(a.assist,function(a,d){c+=0===a?""+(b.valueFormatter(d+"")||d):","+(b.valueFormatter(d+"")||d)}),this.editor.setState(c)}else this.editor.setState(BI.Selection.Multi);else if(0===a.value.length)this.editor.setState(BI.Selection.None);else if(BI.size(a.value)<=20){var c="";BI.each(a.value,function(a,d){c+=0===a?""+(b.valueFormatter(d+"")||d):","+(b.valueFormatter(d+"")||d)}),this.editor.setState(c)}else this.editor.setState(BI.Selection.Multi)},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiSelectInsertSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiSelectInsertSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectInsertSearcher.EVENT_START="EVENT_START",BI.MultiSelectInsertSearcher.EVENT_STOP="EVENT_STOP",BI.MultiSelectInsertSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectInsertSearcher.EVENT_SEARCHING="EVENT_SEARCHING",BI.MultiSelectInsertSearcher.EVENT_ADD_ITEM="EVENT_ADD_ITEM",BI.shortcut("bi.multi_select_insert_searcher",BI.MultiSelectInsertSearcher),BI.MultiSelectSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-searcher",itemsCreator:BI.emptyFn,el:{},popup:{},valueFormatter:BI.emptyFn,adapter:null,masker:{},text:BI.i18nText("BI-Basic_Please_Select")})},_init:function(){BI.MultiSelectSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.multi_select_editor",height:b.height,text:b.text}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,height:b.height,isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},el:this.editor,popup:BI.extend({type:"bi.multi_select_search_pane",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){var e=a.editor.getValue();c.keywords=[e],this.setKeyword(e),b.itemsCreator(c,d)},value:b.value},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiSelectSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_CHANGE,arguments)}),this.searcher.on(BI.Searcher.EVENT_SEARCHING,function(){var b=this.getKeywords();a.fireEvent(BI.MultiSelectSearcher.EVENT_SEARCHING,b)}),BI.isNotNull(b.value)&&this.setState(b.value)},adjustView:function(){this.searcher.adjustView()},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setAdapter:function(a){this.searcher.setAdapter(a)},setState:function(a){var b=this.options;if(a||(a={}),a.value||(a.value=[]),a.type===BI.Selection.All)if(0===a.value.length)this.editor.setState(BI.Selection.All);else if(BI.size(a.assist)<=20){var c="";BI.each(a.assist,function(a,d){c+=0===a?""+(b.valueFormatter(d+"")||d):","+(b.valueFormatter(d+"")||d)}),this.editor.setState(c)}else this.editor.setState(BI.Selection.Multi);else if(0===a.value.length)this.editor.setState(BI.Selection.None);else if(BI.size(a.value)<=20){var c="";BI.each(a.value,function(a,d){c+=0===a?""+(b.valueFormatter(d+"")||d):","+(b.valueFormatter(d+"")||d)}),this.editor.setState(c)}else this.editor.setState(BI.Selection.Multi)},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiSelectSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiSelectSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectSearcher.EVENT_START="EVENT_START",BI.MultiSelectSearcher.EVENT_STOP="EVENT_STOP",BI.MultiSelectSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectSearcher.EVENT_SEARCHING="EVENT_SEARCHING",BI.shortcut("bi.multi_select_searcher",BI.MultiSelectSearcher),BI.MultiSelectCheckSelectedSwitcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckSelectedSwitcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-selected-switcher",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,el:{},popup:{},adapter:null,masker:{}})},_init:function(){BI.MultiSelectCheckSelectedSwitcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.button=BI.createWidget(b.el,{type:"bi.multi_select_check_selected_button",itemsCreator:b.itemsCreator,value:b.value}),this.button.on(BI.Events.VIEW,function(){a.fireEvent(BI.Events.VIEW,arguments)}),this.switcher=BI.createWidget({type:"bi.switcher",toggle:!1,element:this,el:this.button,popup:BI.extend({type:"bi.multi_select_check_pane",valueFormatter:b.valueFormatter,itemsCreator:b.itemsCreator,onClickContinueSelect:function(){a.switcher.hideView()},value:b.value},b.popup),adapter:b.adapter,masker:b.masker}),this.switcher.on(BI.Switcher.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE)}),this.switcher.on(BI.Switcher.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW)}),this.switcher.on(BI.Switcher.EVENT_AFTER_POPUPVIEW,function(){var a=this;BI.nextTick(function(){a.populate()})}),this.switcher.element.click(function(a){a.stopPropagation()})},adjustView:function(){this.switcher.adjustView()},hideView:function(){this.switcher.empty(),this.switcher.hideView()},setAdapter:function(a){this.switcher.setAdapter(a)},setValue:function(a){this.switcher.setValue(a)},setButtonChecked:function(a){this.button.setValue(a)},getValue:function(){},populate:function(a){this.switcher.populate.apply(this.switcher,arguments)}}),BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE="MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE",BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW="MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.multi_select_check_selected_switcher",BI.MultiSelectCheckSelectedSwitcher),BI.MultiSelectInsertList=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectInsertList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-insert-list",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectInsertList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue=b.value||{};var c=function(){BI.isKey(a._startValue)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,a._startValue):BI.pushDistinct(a.storeValue.value,a._startValue))};this.adapter=BI.createWidget({type:"bi.multi_select_loader",cls:"popup-multi-select-list bi-border-left bi-border-right bi-border-bottom",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,logic:{dynamic:!0},el:{},value:b.value}),this.adapter.on(BI.MultiSelectLoader.EVENT_CHANGE,function(){a.storeValue=this.getValue(),c(),a.fireEvent(BI.MultiSelectInsertList.EVENT_CHANGE)}),this.searcherPane=BI.createWidget({type:"bi.multi_select_search_insert_pane",cls:"bi-border-left bi-border-right bi-border-bottom",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.trigger.getKeyword()},itemsCreator:function(c,d){c.keywords=[a.trigger.getKeyword()],this.setKeyword(c.keywords[0]),b.itemsCreator(c,d)},listeners:[{eventName:BI.MultiSelectSearchInsertPane.EVENT_ADD_ITEM,action:function(){var b=a.trigger.getKeyword();a.trigger.hasMatched()||(a.storeValue.type===BI.Selection.Multi&&BI.pushDistinct(a.storeValue.value,b),a._showAdapter(),a.adapter.setValue(a.storeValue),a.adapter.populate(),a.storeValue.type===BI.Selection.Multi&&a.fireEvent(BI.MultiSelectInsertList.EVENT_CHANGE))}}]}),this.searcherPane.setVisible(!1),this.trigger=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},adapter:this.adapter,popup:this.searcherPane,height:200,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane(),a._setStartValue(""),this.setValue(BI.deepClone(a.storeValue))}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),a._setStartValue(""),a.adapter.setValue(a.storeValue),a.adapter.populate()}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){var b=this.getKeyword();this.hasMatched()&&a._join({type:BI.Selection.Multi,value:[b]},function(){a.storeValue.type===BI.Selection.Multi&&BI.pushDistinct(a.storeValue.value,b),a._showAdapter(),a.adapter.setValue(a.storeValue),a._setStartValue(b),c(),a.adapter.populate(),a._setStartValue(""),a.fireEvent(BI.MultiSelectInsertList.EVENT_CHANGE)}),a._showAdapter()}},{eventName:BI.Searcher.EVENT_SEARCHING,action:function(){var b=this.getKeywords(),d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.adapter.setValue(a.storeValue),c(),a.adapter.populate(),a._setStartValue("")):(a.adapter.setValue(a.storeValue),c())})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c(),a.fireEvent(BI.MultiSelectInsertList.EVENT_CHANGE)}):a._join(this.getValue(),function(){c(),a.fireEvent(BI.MultiSelectInsertList.EVENT_CHANGE)})}}],value:b.value}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.trigger,height:24},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:30,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},_defaultState:function(){this.trigger.stopEditing()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Multi?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),b()}var d=this,e=this.options;this._assertValue(this.storeValue),this._allData?c(this._allData):e.itemsCreator({type:BI.MultiSelectInsertList.REQ_GET_ALL_DATA},function(a){d._allData=BI.map(a.items,"value"),c(d._allData)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),d.itemsCreator({type:BI.MultiSelectInsertList.REQ_GET_ALL_DATA,keywords:[c.trigger.getKeyword()]},function(d){var e=BI.map(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void b()}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&delete h[e[a]],BI.isNull(i[e[a]])&&j.push(b)}),c.storeValue.value=j.concat(BI.values(h)),b()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void b()}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.adapter.setStartValue(a)},isAllSelected:function(){return this.adapter.isAllSelected()},resize:function(){},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.adapter.setValue(this.storeValue),this.trigger.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this._count=null,this._allData=null,this.adapter.populate.apply(this.adapter,arguments),this.trigger.populate.apply(this.trigger,arguments)}}),BI.extend(BI.MultiSelectInsertList,{REQ_GET_DATA_LENGTH:1,REQ_GET_ALL_DATA:-1}),BI.MultiSelectInsertList.EVENT_CHANGE="BI.MultiSelectInsertList.EVENT_CHANGE",BI.shortcut("bi.multi_select_insert_list",BI.MultiSelectInsertList),BI.MultiSelectInsertNoBarList=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectInsertNoBarList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-insert-list",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectInsertNoBarList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={type:BI.Selection.Multi,value:b.value||[]};var c=function(){BI.isKey(a._startValue)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,a._startValue):BI.pushDistinct(a.storeValue.value,a._startValue))};this.adapter=BI.createWidget({type:"bi.multi_select_no_bar_loader",cls:"popup-multi-select-list bi-border-left bi-border-right bi-border-bottom",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,logic:{dynamic:!1},el:{},value:{type:BI.Selection.Multi,value:b.value||[]}}),this.adapter.on(BI.MultiSelectLoader.EVENT_CHANGE,function(){a.storeValue=this.getValue(),c(),a.fireEvent(BI.MultiSelectInsertNoBarList.EVENT_CHANGE)}),this.searcherPane=BI.createWidget({type:"bi.multi_select_search_insert_pane",cls:"bi-border-left bi-border-right bi-border-bottom",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.trigger.getKeyword()},itemsCreator:function(c,d){c.keywords=[a.trigger.getKeyword()],this.setKeyword(c.keywords[0]),b.itemsCreator(c,d)},listeners:[{eventName:BI.MultiSelectSearchInsertPane.EVENT_ADD_ITEM,action:function(){var b=a.trigger.getKeyword();a.trigger.hasMatched()||(a.storeValue.type===BI.Selection.Multi&&BI.pushDistinct(a.storeValue.value,b),a._showAdapter(),a.adapter.setValue(a.storeValue),a.adapter.populate(),a.storeValue.type===BI.Selection.Multi&&a.fireEvent(BI.MultiSelectInsertNoBarList.EVENT_CHANGE))}}]}),this.searcherPane.setVisible(!1),this.trigger=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},adapter:this.adapter,popup:this.searcherPane,height:200,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane(),a._setStartValue(""),this.setValue(BI.deepClone(a.storeValue))}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),a._setStartValue(""),a.adapter.setValue(a.storeValue),a.adapter.populate()}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){var b=this.getKeyword();this.hasMatched()&&a._join({type:BI.Selection.Multi,value:[b]},function(){a.storeValue.type===BI.Selection.Multi&&BI.pushDistinct(a.storeValue.value,b),a._showAdapter(),a.adapter.setValue(a.storeValue),a._setStartValue(b),c(),a.adapter.populate(),a._setStartValue(""),a.fireEvent(BI.MultiSelectInsertNoBarList.EVENT_CHANGE)})}},{eventName:BI.Searcher.EVENT_SEARCHING,action:function(){var b=this.getKeywords(),d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.adapter.setValue(a.storeValue),c(),a.adapter.populate(),a._setStartValue("")):(a.adapter.setValue(a.storeValue),c())})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c(),a.fireEvent(BI.MultiSelectInsertNoBarList.EVENT_CHANGE)}):a._join(this.getValue(),function(){c(),a.fireEvent(BI.MultiSelectInsertNoBarList.EVENT_CHANGE)})}}],value:{type:BI.Selection.Multi,value:b.value||[]}}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.trigger,height:24},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:30,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},_defaultState:function(){this.trigger.stopEditing()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Multi?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),b()}var d=this,e=this.options;this._assertValue(this.storeValue),this._allData?c(this._allData):e.itemsCreator({type:BI.MultiSelectInsertNoBarList.REQ_GET_ALL_DATA},function(a){d._allData=BI.map(a.items,"value"),c(d._allData)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),d.itemsCreator({type:BI.MultiSelectInsertNoBarList.REQ_GET_ALL_DATA,keywords:[c.trigger.getKeyword()]},function(d){var e=BI.map(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void b()}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&delete h[e[a]],BI.isNull(i[e[a]])&&j.push(b)}),c.storeValue.value=j.concat(BI.values(h)),b()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void b()}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.adapter.setStartValue(a)},isAllSelected:function(){return this.adapter.isAllSelected()},resize:function(){},setValue:function(a){this.storeValue={type:BI.Selection.Multi,value:a||[]},this.adapter.setValue(this.storeValue),this.trigger.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue.value)},populate:function(){this._count=null,this._allData=null,this.adapter.populate.apply(this.adapter,arguments),this.trigger.populate.apply(this.trigger,arguments)}}),BI.extend(BI.MultiSelectInsertNoBarList,{REQ_GET_DATA_LENGTH:1,REQ_GET_ALL_DATA:-1}),BI.MultiSelectInsertNoBarList.EVENT_CHANGE="BI.MultiSelectInsertNoBarList.EVENT_CHANGE",BI.shortcut("bi.multi_select_insert_no_bar_list",BI.MultiSelectInsertNoBarList),BI.MultiSelectList=BI.inherit(BI.Widget,{_constant:{EDITOR_HEIGHT:24},_defaultConfig:function(){return BI.extend(BI.MultiSelectList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-list",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={};var c=function(){BI.isKey(a._startValue)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,a._startValue):BI.pushDistinct(a.storeValue.value,a._startValue))};this.adapter=BI.createWidget({type:"bi.multi_select_loader",cls:"popup-multi-select-list bi-border-left bi-border-right bi-border-bottom",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,logic:{dynamic:!1},el:{}}),this.adapter.on(BI.MultiSelectLoader.EVENT_CHANGE,function(){a.storeValue=this.getValue(),a._adjust(function(){c(),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)})}),this.searcherPane=BI.createWidget({type:"bi.multi_select_search_pane",cls:"bi-border-left bi-border-right bi-border-bottom",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.trigger.getKeyword()},itemsCreator:function(c,d){c.keywords=[a.trigger.getKeyword()],this.setKeyword(c.keywords[0]),b.itemsCreator(c,d)}}),this.searcherPane.setVisible(!1),this.trigger=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},adapter:this.adapter,popup:this.searcherPane,height:200,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane(),a._setStartValue(""),this.setValue(BI.deepClone(a.storeValue))}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),a._setStartValue(""),a.adapter.setValue(a.storeValue),a.adapter.populate()}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){var b=this.getKeyword();this.hasMatched()&&a._join({type:BI.Selection.Multi,value:[b]},function(){a._showAdapter(),a.adapter.setValue(a.storeValue),a._setStartValue(b),c(),a.adapter.populate(),a._setStartValue(""),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)})}},{eventName:BI.Searcher.EVENT_SEARCHING,action:function(){var b=this.getKeyword(),d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.adapter.setValue(a.storeValue),c(),a.adapter.populate(),a._setStartValue("")):(a.adapter.setValue(a.storeValue),c())})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c(),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)}):a._join(this.getValue(),function(){c(),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)})}}]}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.trigger,height:this._constant.EDITOR_HEIGHT},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:this._constant.EDITOR_HEIGHT,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},_defaultState:function(){this.trigger.stopEditing()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Multi?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this._allData?c(this._allData):e.itemsCreator({type:BI.MultiSelectList.REQ_GET_ALL_DATA},function(a){d._allData=BI.map(a.items,"value"),c(d._allData)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),d.itemsCreator({type:BI.MultiSelectList.REQ_GET_ALL_DATA,keywords:[this.trigger.getKey()]},function(d){var e=BI.map(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&delete h[e[a]],BI.isNull(i[e[a]])&&j.push(b)}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.storeValue.type===BI.Selection.All&&c.storeValue.value.length>=c._count?c.storeValue={type:BI.Selection.Multi,value:[]}:c.storeValue.type===BI.Selection.Multi&&c.storeValue.value.length>=c._count&&(c.storeValue={type:BI.Selection.All,value:[]})}var c=this,d=this.options;this._count?(b(),a()):d.itemsCreator({type:BI.MultiSelectList.REQ_GET_DATA_LENGTH},function(d){c._count=d.count,b(),a()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.adapter.setStartValue(a)},isAllSelected:function(){return this.adapter.isAllSelected()},resize:function(){},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.adapter.setValue(this.storeValue),this.trigger.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this._count=null,this._allData=null,this.adapter.populate.apply(this.adapter,arguments),this.trigger.populate.apply(this.trigger,arguments)}}),BI.extend(BI.MultiSelectList,{REQ_GET_DATA_LENGTH:1,REQ_GET_ALL_DATA:-1}),BI.MultiSelectList.EVENT_CHANGE="BI.MultiSelectList.EVENT_CHANGE",BI.shortcut("bi.multi_select_list",BI.MultiSelectList),BI.MultiSelectTree=BI.inherit(BI.Single,{_constant:{EDITOR_HEIGHT:24},_defaultConfig:function(){return BI.extend(BI.MultiSelectTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-tree",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectTree.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={value:{}},this.adapter=BI.createWidget({type:"bi.multi_select_tree_popup",itemsCreator:b.itemsCreator}),this.adapter.on(BI.MultiSelectTreePopup.EVENT_CHANGE,function(){a.searcher.isSearching()?a.storeValue={value:a.searcherPane.getValue()}:a.storeValue={value:a.adapter.getValue()},a.setSelectedValue(a.storeValue.value),a.fireEvent(BI.MultiSelectTree.EVENT_CHANGE)}),this.searcherPane=BI.createWidget({ -type:"bi.multi_tree_search_pane",cls:"bi-border-left bi-border-right bi-border-bottom",keywordGetter:function(){return a.searcher.getKeyword()},itemsCreator:function(c,d){c.keyword=a.searcher.getKeyword(),b.itemsCreator(c,d)}}),this.searcherPane.setVisible(!1),this.searcher=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(b,c){c({keyword:a.searcher.getKeyword()})},adapter:this.adapter,popup:this.searcherPane,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane()}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),BI.nextTick(function(){a.adapter.populate()})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(){a.searcher.isSearching()?a.storeValue={value:a.searcherPane.getValue()}:a.storeValue={value:a.adapter.getValue()},a.setSelectedValue(a.storeValue.value),a.fireEvent(BI.MultiSelectTree.EVENT_CHANGE)}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){a._showAdapter()}}]}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.searcher,height:this._constant.EDITOR_HEIGHT},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:this._constant.EDITOR_HEIGHT,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},resize:function(){},setSelectedValue:function(a){this.storeValue.value=a||{},this.adapter.setSelectedValue(a),this.searcherPane.setSelectedValue(a),this.searcher.setValue({value:a||{}})},setValue:function(a){this.adapter.setValue(a)},stopSearch:function(){this.searcher.stopSearch()},updateValue:function(a){this.adapter.updateValue(a)},getValue:function(){return this.storeValue.value},populate:function(){this.searcher.populate.apply(this.searcher,arguments),this.adapter.populate.apply(this.adapter,arguments)}}),BI.MultiSelectTree.EVENT_CHANGE="BI.MultiSelectTree.EVENT_CHANGE",BI.shortcut("bi.multi_select_tree",BI.MultiSelectTree),BI.MultiSelectTreePopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-tree-popup bi-border-left bi-border-right bi-border-bottom",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popup=BI.createWidget({type:"bi.async_tree",element:this,itemsCreator:b.itemsCreator}),this.popup.on(BI.TreeView.EVENT_AFTERINIT,function(){a.fireEvent(BI.MultiSelectTreePopup.EVENT_AFTER_INIT)}),this.popup.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectTreePopup.EVENT_CHANGE)})},hasChecked:function(){return this.popup.hasChecked()},getValue:function(){return this.popup.getValue()},setValue:function(a){a||(a={}),this.popup.setValue(a)},setSelectedValue:function(a){a||(a={}),this.popup.setSelectedValue(a)},updateValue:function(a){this.popup.updateValue(a),this.popup.refresh()},populate:function(a){this.popup.stroke(a)}}),BI.MultiSelectTreePopup.EVENT_AFTER_INIT="BI.MultiSelectTreePopup.EVENT_AFTER_INIT",BI.MultiSelectTreePopup.EVENT_CHANGE="BI.MultiSelectTreePopup.EVENT_CHANGE",BI.shortcut("bi.multi_select_tree_popup",BI.MultiSelectTreePopup),BI.MultiTreeCheckPane=BI.inherit(BI.Pane,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiTreeCheckPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-check-pane bi-background",onClickContinueSelect:BI.emptyFn,el:{type:"bi.display_tree"}})},_init:function(){BI.MultiTreeCheckPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.selectedValues={};var c=BI.createWidget({type:"bi.text_button",text:BI.i18nText("BI-Continue_Select"),cls:"multi-tree-check-selected"});c.on(BI.TextButton.EVENT_CHANGE,function(){b.onClickContinueSelect(),BI.nextTick(function(){a.empty()})});var d=BI.createWidget({type:"bi.left",cls:"multi-tree-continue-select",items:[{el:{type:"bi.label",text:BI.i18nText("BI-Selected_Data")},lgap:this.constants.lgap,tgap:this.constants.tgap},{el:c,lgap:this.constants.lgap,tgap:this.constants.tgap}]});this.display=BI.createWidget(b.el,{type:"bi.display_tree",cls:"bi-multi-tree-display",itemsCreator:function(a,c){a.type=BI.TreeView.REQ_TYPE_GET_SELECTED_DATA,b.itemsCreator(a,c)},value:(b.value||{}).value}),this.display.on(BI.Events.AFTERINIT,function(){a.fireEvent(BI.Events.AFTERINIT)}),this.display.on(BI.TreeView.EVENT_INIT,function(){d.setVisible(!1)}),this.display.on(BI.TreeView.EVENT_AFTERINIT,function(){d.setVisible(!0)}),BI.createWidget({type:"bi.vtape",element:this,items:[{height:this.constants.height,el:d},{height:"fill",el:this.display}]})},empty:function(){this.display.empty()},populate:function(a){this.display.stroke(a)},setValue:function(a){a||(a={}),this.display.setSelectedValue(a.value)},getValue:function(){}}),BI.MultiTreeCheckPane.EVENT_CONTINUE_CLICK="EVENT_CONTINUE_CLICK",BI.shortcut("bi.multi_tree_check_pane",BI.MultiTreeCheckPane),BI.MultiTreeCombo=BI.inherit(BI.Single,{constants:{offset:{top:0,left:0,right:0,bottom:25}},_defaultConfig:function(){return BI.extend(BI.MultiTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24})},_init:function(){function a(){h()?b.storeValue={value:b.trigger.getValue()}:i()&&(b.storeValue={value:b.combo.getValue()}),b.trigger.setValue(b.storeValue)}BI.MultiTreeCombo.superclass._init.apply(this,arguments);var b=this,c=this.options,d=!1,e=!1;this.storeValue={value:c.value||{}},this.trigger=BI.createWidget({type:"bi.multi_select_trigger",height:c.height,valueFormatter:c.valueFormatter,masker:{offset:this.constants.offset},searcher:{type:"bi.multi_tree_searcher",itemsCreator:c.itemsCreator},switcher:{el:{type:"bi.multi_tree_check_selected_button"},popup:{type:"bi.multi_tree_check_pane",itemsCreator:c.itemsCreator}},value:{value:c.value||{}}}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,container:c.container,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_tree_popup_view",ref:function(){b.popup=this,b.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiTreePopup.EVENT_AFTERINIT,action:function(){b.trigger.getCounter().adjustView(),d=!0,e===!0&&a()}},{eventName:BI.MultiTreePopup.EVENT_CHANGE,action:function(){f=!0;var a={type:BI.Selection.Multi,value:this.hasChecked()?this.getValue():{}};b.trigger.getSearcher().setState(a),b.trigger.getCounter().setButtonChecked(a)}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CONFIRM,action:function(){b.combo.hideView()}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CLEAR,action:function(){g=!0,b.setValue(),b._defaultState()}}],itemsCreator:c.itemsCreator,onLoaded:function(){BI.nextTick(function(){b.trigger.getCounter().adjustView(),b.trigger.getSearcher().adjustView()})}},value:{value:c.value||{}},hideChecker:function(a){return 0===j.element.find(a.target).length}});var f=!1,g=!1,h=function(){return b.trigger.getSearcher().isSearching()},i=function(){return b.combo.isViewVisible()};this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){b.storeValue={value:b.combo.getValue()},this.setValue(b.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){b.storeValue={value:this.getValue()},b.combo.setValue(b.storeValue),BI.nextTick(function(){i()&&b.combo.populate()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){e===!1&&(e=!0),d===!0&&(e=null,a())}),this.trigger.on(BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK,function(){b.combo.toggle()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){b.combo.isViewVisible()||b.combo.showView()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(){var a=this.getSearcher().hasChecked(),b={type:BI.Selection.Multi,value:a?{1:1}:{}};this.getSearcher().setState(a?BI.Selection.Multi:BI.Selection.None),this.getCounter().setButtonChecked(b)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){h()||(f===!0&&(b.storeValue={value:b.combo.getValue()},f=!1),b.combo.setValue(b.storeValue),b.populate())}),this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW,function(){h()?(b.trigger.stopEditing(),b.fireEvent(BI.MultiTreeCombo.EVENT_CONFIRM)):i()&&(b.trigger.stopEditing(),b.storeValue={value:b.combo.getValue()},g===!0&&(b.storeValue={value:{}}),b.fireEvent(BI.MultiTreeCombo.EVENT_CONFIRM)),g=!1,f=!1});var j=BI.createWidget({type:"bi.trigger_icon_button",width:c.height,height:c.height,cls:"multi-select-trigger-icon-button"});j.on(BI.TriggerIconButton.EVENT_CHANGE,function(){b.trigger.getCounter().hideView(),b.combo.isViewVisible()?b.combo.hideView():b.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:j,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},setValue:function(a){this.storeValue.value=a||{},this.combo.setValue({value:a||{}})},getValue:function(){return this.storeValue.value},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.MultiTreeCombo.EVENT_CONFIRM="MultiTreeCombo.EVENT_CONFIRM",BI.shortcut("bi.multi_tree_combo",BI.MultiTreeCombo),BI.MultiTreeInsertCombo=BI.inherit(BI.Single,{constants:{offset:{top:0,left:0,right:0,bottom:25}},_defaultConfig:function(){return BI.extend(BI.MultiTreeInsertCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-insert-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24,allowEdit:!0})},_init:function(){function a(){h()?b.storeValue={value:b.trigger.getValue()}:i()&&(b.storeValue={value:b.combo.getValue()}),b.trigger.setValue(b.storeValue)}BI.MultiTreeInsertCombo.superclass._init.apply(this,arguments);var b=this,c=this.options,d=!1,e=!1;this.storeValue={value:c.value||{}},this.trigger=BI.createWidget({type:"bi.multi_select_trigger",allowEdit:c.allowEdit,height:c.height,valueFormatter:c.valueFormatter,masker:{offset:this.constants.offset},searcher:{type:"bi.multi_tree_searcher",itemsCreator:c.itemsCreator,popup:{type:"bi.multi_tree_search_insert_pane",listeners:[{eventName:BI.MultiTreeSearchInsertPane.EVENT_ADD_ITEM,action:function(){b.storeValue.value[b.trigger.getSearcher().getKeyword()]={},b._assertShowValue(),b.combo.setValue(b.storeValue),b.trigger.stopEditing()}}]}},switcher:{el:{type:"bi.multi_tree_check_selected_button"},popup:{type:"bi.multi_tree_check_pane",itemsCreator:c.itemsCreator}},value:{value:c.value||{}}}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,container:c.container,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_tree_popup_view",ref:function(){b.popup=this,b.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiTreePopup.EVENT_AFTERINIT,action:function(){b.trigger.getCounter().adjustView(),d=!0,e===!0&&a()}},{eventName:BI.MultiTreePopup.EVENT_CHANGE,action:function(){f=!0;var a={type:BI.Selection.Multi,value:this.hasChecked()?this.getValue():{}};b.trigger.getSearcher().setState(a),b.trigger.getCounter().setButtonChecked(a)}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CONFIRM,action:function(){b.combo.hideView()}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CLEAR,action:function(){g=!0,b.setValue(),b._defaultState()}}],itemsCreator:c.itemsCreator,onLoaded:function(){BI.nextTick(function(){b.trigger.getCounter().adjustView(),b.trigger.getSearcher().adjustView()})}},value:{value:c.value||{}},hideChecker:function(a){return 0===j.element.find(a.target).length}});var f=!1,g=!1,h=function(){return b.trigger.getSearcher().isSearching()},i=function(){return b.combo.isViewVisible()};this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){b.storeValue={value:b.combo.getValue()},this.setValue(b.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){b.storeValue={value:this.getValue()},b.combo.setValue(b.storeValue),BI.nextTick(function(){i()&&b.combo.populate()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){e===!1&&(e=!0),d===!0&&(e=null,a())}),this.trigger.on(BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK,function(){b.combo.toggle()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){b.combo.isViewVisible()||b.combo.showView()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(){var a=this.getSearcher().hasChecked(),b={type:BI.Selection.Multi,value:a?{1:1}:{}};this.getSearcher().setState(a?BI.Selection.Multi:BI.Selection.None),this.getCounter().setButtonChecked(b)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){h()||(f===!0&&(b.storeValue={value:b.combo.getValue()},f=!1),b.combo.setValue(b.storeValue),b.populate())}),this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW,function(){h()?(b.trigger.stopEditing(),b.fireEvent(BI.MultiTreeInsertCombo.EVENT_CONFIRM)):i()&&(b.trigger.stopEditing(),b.storeValue={value:b.combo.getValue()},g===!0&&(b.storeValue={value:{}}),b.fireEvent(BI.MultiTreeInsertCombo.EVENT_CONFIRM)),g=!1,f=!1});var j=BI.createWidget({type:"bi.trigger_icon_button",width:c.height,height:c.height,cls:"multi-select-trigger-icon-button"});j.on(BI.TriggerIconButton.EVENT_CHANGE,function(){b.trigger.getCounter().hideView(),b.combo.isViewVisible()?b.combo.hideView():b.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:j,right:0,top:0,bottom:0}]})},_assertShowValue:function(){this.trigger.getSearcher().setState(this.storeValue),this.trigger.getCounter().setButtonChecked(this.storeValue)},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},setValue:function(a){this.storeValue.value=a||{},this.combo.setValue({value:a||{}})},getValue:function(){return this.storeValue.value},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.MultiTreeInsertCombo.EVENT_CONFIRM="MultiTreeInsertCombo.EVENT_CONFIRM",BI.shortcut("bi.multi_tree_insert_combo",BI.MultiTreeInsertCombo),BI.MultiTreeListCombo=BI.inherit(BI.Single,{constants:{offset:{top:0,left:0,right:0,bottom:25}},_defaultConfig:function(){return BI.extend(BI.MultiTreeListCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-list-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24,allowEdit:!0})},_init:function(){function a(){h()?b.storeValue={value:b.trigger.getValue()}:i()&&(b.storeValue={value:b.combo.getValue()}),b.trigger.setValue(b.storeValue)}BI.MultiTreeListCombo.superclass._init.apply(this,arguments);var b=this,c=this.options,d=!1,e=!1;this.storeValue={value:c.value||[]},this.trigger=BI.createWidget({type:"bi.multi_select_trigger",allowEdit:c.allowEdit,height:c.height,valueFormatter:c.valueFormatter,masker:{offset:this.constants.offset},searcher:{type:"bi.multi_list_tree_searcher",itemsCreator:c.itemsCreator,popup:{type:"bi.multi_tree_search_insert_pane",el:{type:"bi.list_part_tree"},listeners:[{eventName:BI.MultiTreeSearchInsertPane.EVENT_ADD_ITEM,action:function(){b.storeValue.value.unshift([b.trigger.getSearcher().getKeyword()]),b._assertShowValue(),b.combo.setValue(b.storeValue),b.trigger.stopEditing()}}]}},switcher:{el:{type:"bi.multi_tree_check_selected_button"},popup:{type:"bi.multi_tree_check_pane",el:{type:"bi.list_display_tree"},itemsCreator:c.itemsCreator}},value:{value:c.value||{}}}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,container:c.container,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_tree_popup_view",ref:function(){b.popup=this,b.trigger.setAdapter(this)},el:{type:"bi.list_async_tree"},listeners:[{eventName:BI.MultiTreePopup.EVENT_AFTERINIT,action:function(){b.trigger.getCounter().adjustView(),d=!0,e===!0&&a()}},{eventName:BI.MultiTreePopup.EVENT_CHANGE,action:function(){f=!0;var a={type:BI.Selection.Multi,value:this.hasChecked()?this.getValue():[]};b.trigger.getSearcher().setState(a),b.trigger.getCounter().setButtonChecked(a)}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CONFIRM,action:function(){b.combo.hideView()}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CLEAR,action:function(){g=!0,b.setValue(),b._defaultState()}}],itemsCreator:c.itemsCreator,onLoaded:function(){BI.nextTick(function(){b.trigger.getCounter().adjustView(),b.trigger.getSearcher().adjustView()})}},value:{value:c.value||{}},hideChecker:function(a){return 0===j.element.find(a.target).length}});var f=!1,g=!1,h=function(){return b.trigger.getSearcher().isSearching()},i=function(){return b.combo.isViewVisible()};this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){b.storeValue={value:b.combo.getValue()},this.setValue(b.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){b.storeValue={value:this.getValue()},b.combo.setValue(b.storeValue),BI.nextTick(function(){i()&&b.combo.populate()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){e===!1&&(e=!0),d===!0&&(e=null,a())}),this.trigger.on(BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK,function(){b.combo.toggle()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){b.combo.isViewVisible()||b.combo.showView()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(){var a=this.getSearcher().hasChecked(),b={type:BI.Selection.Multi,value:a?{1:1}:{}};this.getSearcher().setState(a?BI.Selection.Multi:BI.Selection.None),this.getCounter().setButtonChecked(b)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){h()||(f===!0&&(b.storeValue={value:b.combo.getValue()},f=!1),b.combo.setValue(b.storeValue),b.populate())}),this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW,function(){h()?(b.trigger.stopEditing(),b.fireEvent(BI.MultiTreeListCombo.EVENT_CONFIRM)):i()&&(b.trigger.stopEditing(),b.storeValue={value:b.combo.getValue()},g===!0&&(b.storeValue={value:[]}),b.fireEvent(BI.MultiTreeListCombo.EVENT_CONFIRM)),g=!1,f=!1});var j=BI.createWidget({type:"bi.trigger_icon_button",width:c.height,height:c.height,cls:"multi-select-trigger-icon-button"});j.on(BI.TriggerIconButton.EVENT_CHANGE,function(){b.trigger.getCounter().hideView(),b.combo.isViewVisible()?b.combo.hideView():b.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:j,right:0,top:0,bottom:0}]})},_assertShowValue:function(){this.trigger.getSearcher().setState(this.storeValue),this.trigger.getCounter().setButtonChecked(this.storeValue)},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},setValue:function(a){this.storeValue.value=a||[],this.combo.setValue({value:a||[]})},getValue:function(){return this.storeValue.value},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.MultiTreeListCombo.EVENT_CONFIRM="MultiTreeListCombo.EVENT_CONFIRM",BI.shortcut("bi.multi_tree_list_combo",BI.MultiTreeListCombo),BI.MultiTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-popup",maxWidth:"auto",minWidth:100,maxHeight:400,onLoaded:BI.emptyFn,el:{type:"bi.async_tree"}})},_init:function(){BI.MultiTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=b.value;this.selectedValues={},this.tree=BI.createWidget(b.el,{type:"bi.async_tree",height:400,cls:"popup-view-tree",itemsCreator:b.itemsCreator,onLoaded:b.onLoaded,value:c.value||{}}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",element:this,stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.tree}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.MultiTreePopup.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.MultiTreePopup.EVENT_CLICK_CONFIRM)}}),this.tree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreePopup.EVENT_CHANGE)}),this.tree.on(BI.TreeView.EVENT_AFTERINIT,function(){a.fireEvent(BI.MultiTreePopup.EVENT_AFTERINIT)})},getValue:function(){return this.tree.getValue()},setValue:function(a){a||(a={}),this.tree.setSelectedValue(a.value)},populate:function(a){this.tree.stroke(a)},hasChecked:function(){return this.tree.hasChecked()},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.MultiTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreePopup.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiTreePopup.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.MultiTreePopup.EVENT_AFTERINIT="EVENT_AFTERINIT",BI.shortcut("bi.multi_tree_popup_view",BI.MultiTreePopup),BI.MultiTreeCheckSelectedButton=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiTreeCheckSelectedButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-check-selected-button",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiTreeCheckSelectedButton.superclass._init.apply(this,arguments);var a=this;this.indicator=BI.createWidget({type:"bi.icon_button",cls:"check-font trigger-check-selected icon-size-12",width:15,height:15,stopPropagation:!0}),this.checkSelected=BI.createWidget({type:"bi.text_button",cls:"trigger-check-selected",invisible:!0,hgap:4,text:BI.i18nText("BI-Check_Selected"),textAlign:"center",textHeight:15}),this.checkSelected.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.checkSelected.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedButton.EVENT_CHANGE,arguments)}),BI.createWidget({type:"bi.horizontal",element:this,items:[this.indicator,this.checkSelected]}),this.element.hover(function(){a.indicator.setVisible(!1),a.checkSelected.setVisible(!0)},function(){a.indicator.setVisible(!0),a.checkSelected.setVisible(!1)}),this.setVisible(!1)},setValue:function(a){a||(a={}),this.setVisible(BI.size(a.value)>0)}}),BI.MultiTreeCheckSelectedButton.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_tree_check_selected_button",BI.MultiTreeCheckSelectedButton),BI.MultiTreeSearchInsertPane=BI.inherit(BI.Widget,{constants:{height:24},props:{baseCls:"bi-multi-tree-search-insert-pane bi-card",itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn,el:{type:"bi.part_tree"}},render:function(){var a=this,b=this.options;return{type:"bi.absolute",items:[{el:{type:"bi.text_button",invisible:!0,ref:function(b){a.addTip=b},text:BI.i18nText("BI-Basic_Click_To_Add_Text",""),height:this.constants.height,cls:"bi-high-light",handler:function(){a.fireEvent(BI.MultiTreeSearchInsertPane.EVENT_ADD_ITEM,b.keywordGetter())}},top:5,left:0,right:0},{el:BI.extend({type:"bi.part_tree",tipText:BI.i18nText("BI-No_Select"),itemsCreator:function(c,d){c.keyword=b.keywordGetter(),b.itemsCreator(c,function(c){d(c),a.setKeyword(b.keywordGetter(),c.items)})},ref:function(b){a.partTree=b},value:b.value,listeners:[{eventName:BI.Controller.EVENT_CHANGE,action:function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}},{eventName:BI.TreeView.EVENT_CHANGE,action:function(){a.fireEvent(BI.MultiTreeSearchInsertPane.EVENT_CHANGE)}}]},b.el),left:0,top:0,bottom:0,right:0}]}},setKeyword:function(a,b){var c=BI.isEmptyArray(b);this.addTip.setVisible(c),this.partTree.setVisible(!c),c&&this.addTip.setText(BI.i18nText("BI-Basic_Click_To_Add_Text",a))},hasChecked:function(){return this.partTree.hasChecked()},setValue:function(a){this.setSelectedValue(a.value)},setSelectedValue:function(a){a||(a={}),this.partTree.setSelectedValue(a)},getValue:function(){return this.partTree.getValue()},empty:function(){this.partTree.empty()},populate:function(a){this.partTree.stroke.apply(this.partTree,arguments)}}),BI.MultiTreeSearchInsertPane.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreeSearchInsertPane.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiTreeSearchInsertPane.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.MultiTreeSearchInsertPane.EVENT_ADD_ITEM="EVENT_ADD_ITEM",BI.shortcut("bi.multi_tree_search_insert_pane",BI.MultiTreeSearchInsertPane),BI.MultiTreeSearchPane=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiTreeSearchPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-search-pane bi-card",itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.MultiTreeSearchPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.partTree=BI.createWidget({type:"bi.part_tree",element:this,tipText:BI.i18nText("BI-No_Select"),itemsCreator:function(a,c){a.keyword=b.keywordGetter(),b.itemsCreator(a,c)},value:b.value}),this.partTree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.partTree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreeSearchPane.EVENT_CHANGE)})},hasChecked:function(){return this.partTree.hasChecked()},setValue:function(a){this.setSelectedValue(a.value)},setSelectedValue:function(a){a||(a={}),this.partTree.setSelectedValue(a)},getValue:function(){return this.partTree.getValue()},empty:function(){this.partTree.empty()},populate:function(a){this.partTree.stroke.apply(this.partTree,arguments)}}),BI.MultiTreeSearchPane.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreeSearchPane.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiTreeSearchPane.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.multi_tree_search_pane",BI.MultiTreeSearchPane),BI.MultiListTreeSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiListTreeSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-searcher",itemsCreator:BI.emptyFn,valueFormatter:function(a){return a},popup:{},adapter:null,masker:{}})},_init:function(){BI.MultiListTreeSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.multi_select_editor",height:b.height,el:{type:"bi.simple_state_editor",height:b.height}}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,isAutoSearch:!1,isAutoSync:!1,onSearch:function(b,c){c({keyword:a.editor.getValue()})},el:this.editor,popup:BI.extend({type:"bi.multi_tree_search_pane",keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){c.keyword=a.editor.getValue(),b.itemsCreator(c,d)},value:b.value},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiListTreeSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiListTreeSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiListTreeSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiListTreeSearcher.EVENT_CHANGE,arguments)}),BI.isNotNull(b.value)&&this.setState(b.value)},adjustView:function(){this.searcher.adjustView()},setAdapter:function(a){this.searcher.setAdapter(a)},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setState:function(a){var b=this.options;a||(a={}),a.value||(a.value=[]);var c=0;if(BI.isNumber(a))this.editor.setState(a);else if(0===BI.size(a.value))this.editor.setState(BI.Selection.None);else{var d="";BI.each(a.value,function(a,e){var f=BI.last(e);d+=(b.valueFormatter(f+"")||f)+"; ",c++}),c>20?this.editor.setState(BI.Selection.Multi):this.editor.setState(d)}},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiListTreeSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiListTreeSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiListTreeSearcher.EVENT_START="EVENT_START",BI.MultiListTreeSearcher.EVENT_STOP="EVENT_STOP",BI.MultiListTreeSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.shortcut("bi.multi_list_tree_searcher",BI.MultiListTreeSearcher),BI.MultiTreeSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiTreeSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-searcher",itemsCreator:BI.emptyFn,valueFormatter:function(a){return a},popup:{},adapter:null,masker:{}})},_init:function(){BI.MultiTreeSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.multi_select_editor",height:b.height,el:{type:"bi.simple_state_editor",height:b.height}}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,isAutoSearch:!1,isAutoSync:!1,onSearch:function(b,c){c({keyword:a.editor.getValue()})},el:this.editor,popup:BI.extend({type:"bi.multi_tree_search_pane",keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){c.keyword=a.editor.getValue(),b.itemsCreator(c,d)},value:b.value},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiTreeSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_CHANGE,arguments)}),BI.isNotNull(b.value)&&this.setState(b.value)},adjustView:function(){this.searcher.adjustView()},setAdapter:function(a){this.searcher.setAdapter(a)},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setState:function(a){function b(a){var e="",f=0,g=BI.size(a);return BI.each(a,function(a,h){f++;var i=b(h);e+=(c.valueFormatter(a+"")||a)+(""===i?"":":"+i)+(f===g?"":","),""===i&&d++}),e}var c=this.options;a||(a={}),a.value||(a.value={});var d=0;if(BI.isNumber(a))this.editor.setState(a);else if(0===BI.size(a.value))this.editor.setState(BI.Selection.None);else{var e="";BI.each(a.value,function(a,f){var g=b(f);e+=(c.valueFormatter(a+"")||a)+(""===g?"":":"+g)+"; ",""===g&&d++}),d>20?this.editor.setState(BI.Selection.Multi):this.editor.setState(e)}},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiTreeSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiTreeSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreeSearcher.EVENT_START="EVENT_START",BI.MultiTreeSearcher.EVENT_STOP="EVENT_STOP",BI.MultiTreeSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.shortcut("bi.multi_tree_searcher",BI.MultiTreeSearcher),BI.NumberEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.NumberEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-number-editor bi-border bi-focus-shadow",validationChecker:function(){return!0},valueFormatter:function(a){return a},value:0,allowBlank:!1,errorText:"",step:1})},_init:function(){BI.NumberEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height-2,allowBlank:b.allowBlank,value:b.valueFormatter(b.value),validationChecker:b.validationChecker,errorText:b.errorText}),this.editor.on(BI.TextEditor.EVENT_CHANGE,function(){b.value=BI.parseFloat(this.getValue()),a.fireEvent(BI.NumberEditor.EVENT_CHANGE)}),this.editor.on(BI.TextEditor.EVENT_CONFIRM,function(){this.setValue(BI.parseFloat(this.getValue())),a.fireEvent(BI.NumberEditor.EVENT_CONFIRM)}),this.topBtn=BI.createWidget({type:"bi.icon_button",forceNotSelected:!0, -trigger:"lclick,",cls:"add-up-font top-button bi-border-left bi-list-item-active2 icon-size-12"}),this.topBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(b.step),a.fireEvent(BI.NumberEditor.EVENT_CHANGE),a.fireEvent(BI.NumberEditor.EVENT_CONFIRM)}),this.bottomBtn=BI.createWidget({type:"bi.icon_button",trigger:"lclick,",forceNotSelected:!0,cls:"minus-down-font bottom-button bi-border-left bi-list-item-active2 icon-size-12"}),this.bottomBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(-b.step),a.fireEvent(BI.NumberEditor.EVENT_CHANGE),a.fireEvent(BI.NumberEditor.EVENT_CONFIRM)}),BI.createWidget({type:"bi.htape",height:b.height-2,element:this,items:[this.editor,{el:{type:"bi.grid",columns:1,rows:2,items:[{column:0,row:0,el:this.topBtn},{column:0,row:1,el:this.bottomBtn}]},width:23}]})},focus:function(){this.editor.focus()},isEditing:function(){return this.editor.isEditing()},_finetuning:function(a){var b=BI.parseFloat(this.getValue());this.setValue(BI.add(b,a))},setUpEnable:function(a){this.topBtn.setEnable(!!a)},setDownEnable:function(a){this.bottomBtn.setEnable(!!a)},getValue:function(){return this.options.value},setValue:function(a){var b=this.options;b.value=a,this.editor.setValue(b.valueFormatter(a))}}),BI.NumberEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.NumberEditor.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.number_editor",BI.NumberEditor),BI.NumberInterval=BI.inherit(BI.Single,{constants:{typeError:"typeBubble",numberError:"numberBubble",signalError:"signalBubble",editorWidth:114,columns:5,width:24,rows:1,numberErrorCls:"number-error",border:1,less:0,less_equal:1,numTip:"",adjustYOffset:2},_defaultConfig:function(){var a=BI.NumberInterval.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-number-interval",height:24,validation:"valid",closeMin:!0})},_init:function(){var a=this,b=this.constants,c=this.options;BI.NumberInterval.superclass._init.apply(this,arguments),this.smallEditor=BI.createWidget({type:"bi.number_interval_single_editor",height:c.height-2,watermark:BI.i18nText("BI-Basic_Unrestricted"),allowBlank:!0,value:c.min,level:"warning",tipType:"success",title:function(){return a.smallEditor&&a.smallEditor.getValue()},quitChecker:function(){return!1},validationChecker:function(c){return!!BI.isNumeric(c)||(a.smallEditorBubbleType=b.typeError,!1)},cls:"number-interval-small-editor bi-border"}),this.smallTip=BI.createWidget({type:"bi.label",text:c.numTip,height:c.height-2,invisible:!0}),BI.createWidget({type:"bi.absolute",element:this.smallEditor.element,items:[{el:this.smallTip,top:0,right:5}]}),this.bigEditor=BI.createWidget({type:"bi.number_interval_single_editor",height:c.height-2,watermark:BI.i18nText("BI-Basic_Unrestricted"),allowBlank:!0,value:c.max,level:"warning",tipType:"success",title:function(){return a.bigEditor&&a.bigEditor.getValue()},quitChecker:function(){return!1},validationChecker:function(c){return!!BI.isNumeric(c)||(a.bigEditorBubbleType=b.typeError,!1)},cls:"number-interval-big-editor bi-border"}),this.bigTip=BI.createWidget({type:"bi.label",text:c.numTip,height:c.height-2,invisible:!0}),BI.createWidget({type:"bi.absolute",element:this.bigEditor.element,items:[{el:this.bigTip,top:0,right:5}]}),this.smallCombo=BI.createWidget({type:"bi.icon_combo",cls:"number-interval-small-combo bi-border-top bi-border-bottom bi-border-right",height:c.height-2,items:[{text:"("+BI.i18nText("BI-Less_Than")+")",iconCls:"less-font",value:0},{text:"("+BI.i18nText("BI-Less_And_Equal")+")",value:1,iconCls:"less-equal-font"}]}),c.closeMin===!0?this.smallCombo.setValue(1):this.smallCombo.setValue(0),this.bigCombo=BI.createWidget({type:"bi.icon_combo",cls:"number-interval-big-combo bi-border-top bi-border-bottom bi-border-left",height:c.height-2,items:[{text:"("+BI.i18nText("BI-Less_Than")+")",iconCls:"less-font",value:0},{text:"("+BI.i18nText("BI-Less_And_Equal")+")",value:1,iconCls:"less-equal-font"}]}),c.closeMax===!0?this.bigCombo.setValue(1):this.bigCombo.setValue(0),this.label=BI.createWidget({type:"bi.label",text:BI.i18nText("BI-Basic_Value"),textHeight:c.height-2*b.border,width:b.width-2*b.border,height:c.height-2*b.border,level:"warning",tipType:"warning"}),this.left=BI.createWidget({type:"bi.htape",items:[{el:a.smallEditor},{el:a.smallCombo,width:b.width-b.border}]}),this.right=BI.createWidget({type:"bi.htape",items:[{el:a.bigCombo,width:b.width-b.border},{el:a.bigEditor,lgap:1}]}),BI.createWidget({element:a,type:"bi.center",hgap:15,height:c.height,items:[{type:"bi.absolute",items:[{el:a.left,left:-15,right:0,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:0,right:-15,top:0,bottom:0}]}]}),BI.createWidget({element:a,type:"bi.horizontal_auto",items:[a.label]}),a._setValidEvent(a.bigEditor,b.bigEditor),a._setValidEvent(a.smallEditor,b.smallEditor),a._setErrorEvent(a.bigEditor,b.bigEditor),a._setErrorEvent(a.smallEditor,b.smallEditor),a._setBlurEvent(a.bigEditor),a._setBlurEvent(a.smallEditor),a._setFocusEvent(a.bigEditor),a._setFocusEvent(a.smallEditor),a._setComboValueChangedEvent(a.bigCombo),a._setComboValueChangedEvent(a.smallCombo),a._setEditorValueChangedEvent(a.bigEditor),a._setEditorValueChangedEvent(a.smallEditor),a._checkValidation()},_checkValidation:function(){var a=this,b=this.constants,c=this.options;if(a._setTitle(""),BI.Bubbles.hide(b.typeError),BI.Bubbles.hide(b.numberError),BI.Bubbles.hide(b.signalError),!a.smallEditor.isValid()||!a.bigEditor.isValid())return a.element.removeClass("number-error"),c.validation="invalid",b.typeError;if(BI.isEmptyString(a.smallEditor.getValue())||BI.isEmptyString(a.bigEditor.getValue()))return a.element.removeClass("number-error"),c.validation="valid","";var d=parseFloat(a.smallEditor.getValue()),e=parseFloat(a.bigEditor.getValue()),f=a.bigCombo.getValue(),g=a.smallCombo.getValue();return f[0]===b.less_equal&&g[0]===b.less_equal?d>e?(a.element.addClass("number-error"),c.validation="invalid",b.numberError):(a.element.removeClass("number-error"),c.validation="valid",""):d>e?(a.element.addClass("number-error"),c.validation="invalid",b.numberError):d===e?(a.element.addClass("number-error"),c.validation="invalid",b.signalError):(a.element.removeClass("number-error"),c.validation="valid","")},_setTitle:function(a){var b=this;b.bigEditor.setTitle(a),b.smallEditor.setTitle(a),b.label.setTitle(a)},_setFocusEvent:function(a){var b=this,c=this.constants;a.on(BI.NumberIntervalSingleEidtor.EVENT_FOCUS,function(){switch(b._setTitle(""),b._checkValidation()){case c.typeError:BI.Bubbles.show(c.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset});break;case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset});break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset});break;default:return}})},_setBlurEvent:function(a){var b=this.constants,c=this;a.on(BI.NumberIntervalSingleEidtor.EVENT_BLUR,function(){switch(BI.Bubbles.hide(b.typeError),BI.Bubbles.hide(b.numberError),BI.Bubbles.hide(b.signalError),c._checkValidation()){case b.typeError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data"));break;case b.numberError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value"));break;case b.signalError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value"));break;default:c._setTitle("")}})},_setErrorEvent:function(a){var b=this.constants,c=this;a.on(BI.NumberIntervalSingleEidtor.EVENT_ERROR,function(){c._checkValidation(),BI.Bubbles.show(b.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),c,{offsetStyle:"left",adjustYOffset:b.adjustYOffset}),c.fireEvent(BI.NumberInterval.EVENT_ERROR)})},_setValidEvent:function(a){var b=this,c=this.constants;a.on(BI.NumberIntervalSingleEidtor.EVENT_VALID,function(){switch(b._checkValidation()){case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset}),b.fireEvent(BI.NumberInterval.EVENT_ERROR);break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset}),b.fireEvent(BI.NumberInterval.EVENT_ERROR);break;default:b.fireEvent(BI.NumberInterval.EVENT_VALID)}})},_setEditorValueChangedEvent:function(a){var b=this,c=this.constants;a.on(BI.NumberIntervalSingleEidtor.EVENT_CHANGE,function(){switch(b._checkValidation()){case c.typeError:BI.Bubbles.show(c.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset});break;case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset});break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"left",adjustYOffset:c.adjustYOffset})}b.fireEvent(BI.NumberInterval.EVENT_CHANGE)}),a.on(BI.NumberIntervalSingleEidtor.EVENT_CONFIRM,function(){b.fireEvent(BI.NumberInterval.EVENT_CONFIRM)})},_setComboValueChangedEvent:function(a){var b=this,c=this.constants;a.on(BI.IconCombo.EVENT_CHANGE,function(){switch(b._checkValidation()){case c.typeError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data")),b.fireEvent(BI.NumberInterval.EVENT_ERROR);break;case c.numberError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value")),b.fireEvent(BI.NumberInterval.EVENT_ERROR);break;case c.signalError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value")),b.fireEvent(BI.NumberInterval.EVENT_ERROR);break;default:b.fireEvent(BI.NumberInterval.EVENT_CHANGE),b.fireEvent(BI.NumberInterval.EVENT_CONFIRM),b.fireEvent(BI.NumberInterval.EVENT_VALID)}})},isStateValid:function(){return"valid"===this.options.validation},setMinEnable:function(a){this.smallEditor.setEnable(a)},setCloseMinEnable:function(a){this.smallCombo.setEnable(a)},setMaxEnable:function(a){this.bigEditor.setEnable(a)},setCloseMaxEnable:function(a){this.bigCombo.setEnable(a)},showNumTip:function(){this.smallTip.setVisible(!0),this.bigTip.setVisible(!0)},hideNumTip:function(){this.smallTip.setVisible(!1),this.bigTip.setVisible(!1)},setNumTip:function(a){this.smallTip.setText(a),this.bigTip.setText(a)},getNumTip:function(){return this.smallTip.getText()},setValue:function(a){a=a||{};var b,c=this;(BI.isNumeric(a.min)||BI.isEmptyString(a.min))&&c.smallEditor.setValue(a.min),BI.isNotNull(a.min)||c.smallEditor.setValue(""),(BI.isNumeric(a.max)||BI.isEmptyString(a.max))&&c.bigEditor.setValue(a.max),BI.isNotNull(a.max)||c.bigEditor.setValue(""),BI.isNull(a.closeMin)||(b=a.closeMin===!0?1:0,c.smallCombo.setValue(b)),BI.isNull(a.closeMax)||(b=a.closeMax===!0?1:0,c.bigCombo.setValue(b)),this._checkValidation()},getValue:function(){var a=this,b={},c=a.smallCombo.getValue(),d=a.bigCombo.getValue();return b.min=a.smallEditor.getValue(),b.max=a.bigEditor.getValue(),0===c[0]?b.closeMin=!1:b.closeMin=!0,0===d[0]?b.closeMax=!1:b.closeMax=!0,b},destroyed:function(){var a=this.constants;BI.Bubbles.remove(a.typeError),BI.Bubbles.remove(a.numberError),BI.Bubbles.remove(a.signalError)}}),BI.NumberInterval.EVENT_CHANGE="EVENT_CHANGE",BI.NumberInterval.EVENT_CONFIRM="EVENT_CONFIRM",BI.NumberInterval.EVENT_VALID="EVENT_VALID",BI.NumberInterval.EVENT_ERROR="EVENT_ERROR",BI.shortcut("bi.number_interval",BI.NumberInterval),BI.NumberIntervalSingleEidtor=BI.inherit(BI.Single,{props:{baseCls:"bi-number-interval-single-editor",tipType:"success",title:""},render:function(){var a=this,b=this.options;return{type:"bi.vertical",items:[{type:"bi.editor",ref:function(b){a.editor=b},height:b.height-2,watermark:b.watermark,allowBlank:b.allowBlank,value:b.value,level:b.level,quitChecker:b.quitChecker,validationChecker:b.validationChecker,listeners:[{eventName:BI.Editor.EVENT_ERROR,action:function(){a.fireEvent(BI.NumberIntervalSingleEidtor.EVENT_ERROR,arguments)}},{eventName:BI.Editor.EVENT_FOCUS,action:function(){a.fireEvent(BI.NumberIntervalSingleEidtor.EVENT_FOCUS,arguments)}},{eventName:BI.Editor.EVENT_BLUR,action:function(){a.fireEvent(BI.NumberIntervalSingleEidtor.EVENT_BLUR,arguments)}},{eventName:BI.Editor.EVENT_VALID,action:function(){a.fireEvent(BI.NumberIntervalSingleEidtor.EVENT_VALID,arguments)}},{eventName:BI.Editor.EVENT_CHANGE,action:function(){a.fireEvent(BI.NumberIntervalSingleEidtor.EVENT_CHANGE,arguments)}},{eventName:BI.Editor.EVENT_CONFIRM,action:function(){a.fireEvent(BI.NumberIntervalSingleEidtor.EVENT_CONFIRM,arguments)}},{eventName:BI.Editor.EVENT_CHANGE_CONFIRM,action:function(){a.fireEvent(BI.NumberIntervalSingleEidtor.EVENT_CHANGE_CONFIRM,arguments)}}]}]}},isValid:function(){return this.editor.isValid()},getValue:function(){return this.editor.getValue()},setTitle:function(a){return this.editor.setTitle(a)},setValue:function(a){return this.editor.setValue(a)}}),BI.NumberIntervalSingleEidtor.EVENT_FOCUS="EVENT_FOCUS",BI.NumberIntervalSingleEidtor.EVENT_BLUR="EVENT_BLUR",BI.NumberIntervalSingleEidtor.EVENT_ERROR="EVENT_ERROR",BI.NumberIntervalSingleEidtor.EVENT_VALID="EVENT_VALID",BI.NumberIntervalSingleEidtor.EVENT_CHANGE="EVENT_CHANGE",BI.NumberIntervalSingleEidtor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.NumberIntervalSingleEidtor.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.number_interval_single_editor",BI.NumberIntervalSingleEidtor),BI.QuarterCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.QuarterCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-quarter-combo",behaviors:{},height:25})},_init:function(){BI.QuarterCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue="",this.trigger=BI.createWidget({type:"bi.quarter_trigger",value:b.value}),this.trigger.on(BI.QuarterTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.QuarterTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.QuarterTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.trigger.on(BI.QuarterTrigger.EVENT_CONFIRM,function(){a.combo.isViewVisible()||(this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getKey()):this.getKey()||a.setValue(),a.fireEvent(BI.QuarterCombo.EVENT_CONFIRM))}),this.popup=BI.createWidget({type:"bi.quarter_popup",behaviors:b.behaviors,value:b.value}),this.popup.on(BI.QuarterPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.QuarterCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,element:this,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,el:this.popup}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return BI.isNull(this.popup)?this.options.value||"":this.popup.getValue()||""}}),BI.QuarterCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.quarter_combo",BI.QuarterCombo),BI.QuarterPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.QuarterPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-quarter-popup",behaviors:{}})},_init:function(){BI.QuarterPopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=[{text:BI.Date._QN[1],value:1},{text:BI.Date._QN[2],value:2},{text:BI.Date._QN[3],value:3},{text:BI.Date._QN[4],value:4}];c=BI.map(c,function(a,b){return BI.extend(b,{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"left",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:25})}),this.quarter=BI.createWidget({type:"bi.button_group",element:this,behaviors:b.behaviors,items:BI.createItems(c,{}),layouts:[{type:"bi.vertical"}],value:b.value}),this.quarter.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.MonthPopup.EVENT_CHANGE)})},getValue:function(){return this.quarter.getValue()[0]},setValue:function(a){this.quarter.setValue([a])}}),BI.QuarterPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.quarter_popup",BI.QuarterPopup),BI.QuarterTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,textWidth:40},_defaultConfig:function(){return BI.extend(BI.QuarterTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-quarter-trigger bi-border",height:24})},_init:function(){BI.QuarterTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(a){return""===a||BI.isPositiveInteger(a)&&a>=1&&a<=4},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:BI.i18nText("BI-Quarter_Trigger_Error_Text")}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.QuarterTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.QuarterTrigger.EVENT_CHANGE)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.QuarterTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.QuarterTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.QuarterTrigger.EVENT_STOP)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",baseCls:"bi-trigger-quarter-text",text:BI.i18nText("BI-Multi_Date_Quarter"),width:c.textWidth},width:c.textWidth},{el:{type:"bi.trigger_icon_button",width:b.height},width:b.height}]}),this.setValue(b.value)},setValue:function(a){a=a||"",this.editor.setState(a),this.editor.setValue(a),this.editor.setTitle(a)},getKey:function(){return this.editor.getValue()}}),BI.QuarterTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.QuarterTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.QuarterTrigger.EVENT_START="EVENT_START",BI.QuarterTrigger.EVENT_STOP="EVENT_STOP",BI.QuarterTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.quarter_trigger",BI.QuarterTrigger),BI.SearchMultiTextValueCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.SearchMultiTextValueCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-combo bi-search-multi-text-value-combo",height:24,items:[]})},_init:function(){BI.SearchMultiTextValueCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,a._startValue):BI.pushDistinct(a.storeValue.value,a._startValue)),a._updateAllValue(),a._checkError(),a.trigger.getSearcher().setState(a.storeValue),a.trigger.getCounter().setButtonChecked(a.storeValue)};this.storeValue=BI.deepClone(b.value||{}),this._updateAllValue(),this._assertValue(this.storeValue),this._checkError(),this.requesting=!1,this.trigger=BI.createWidget({type:"bi.search_multi_select_trigger",text:b.text,height:b.height,masker:{offset:{left:0,top:0,right:0,bottom:25}},allValueGetter:function(){return a.allValue},valueFormatter:b.valueFormatter,itemsCreator:function(b,c){a._itemsCreator(b,function(d){1===b.times&&BI.isNotNull(b.keywords)&&a.trigger.setValue(BI.deepClone(a.getValue())),c.apply(a,arguments)})},value:this.storeValue,warningTitle:b.warningTitle}),this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){a._setStartValue(""),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){a._setStartValue("")}),this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE,function(){if(this.getSearcher().hasMatched()){var b=this.getSearcher().getKeyword();a._join({type:BI.Selection.Multi,value:[b]},function(){a.combo.setValue(a.storeValue),a._setStartValue(b),c(),a._populate(),a._setStartValue("")})}}),this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue("")):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){this.getCounter().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,container:b.container,el:this.trigger,adjustLength:1,popup:{type:"bi.search_multi_select_popup_view",ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c()})}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM,action:function(){a._defaultState()}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CLEAR,action:function(){a.setValue(),a._defaultState()}}],itemsCreator:BI.bind(a._itemsCreator,this),valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getCounter().adjustView(),a.trigger.getSearcher().adjustView()})}},value:b.value,hideChecker:function(a){return 0===d.element.find(a.target).length}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a._populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:(c(),a.fireEvent(BI.SearchMultiTextValueCombo.EVENT_CONFIRM))});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"multi-select-trigger-icon-button"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.trigger.getCounter().hideView(),a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]}),this._checkError()},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){var b=this.options;a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[]),BI.remove(a.value,function(a,c){return!BI.contains(BI.map(b.items,"value"),c)})},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Multi?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),d._adjust(b)}var d=this;this.options;this._assertValue(this.storeValue),this.requesting=!0,this._itemsCreator({type:BI.SearchMultiTextValueCombo.REQ_GET_ALL_DATA,keywords:a},function(a){var b=BI.map(a.items,"value");c(b)})},_joinAll:function(a,b){var c=this;this.options;this._assertValue(a),this.requesting=!0,this._itemsCreator({type:BI.SearchMultiTextValueCombo.REQ_GET_ALL_DATA,keywords:[this.trigger.getKey()]},function(d){var e=BI.map(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,c.storeValue.assist&&c.storeValue.assist.push(g[b]),delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&(c.storeValue.assist&&c.storeValue.assist.push(h[e[a]]),delete h[e[a]]),BI.isNull(i[e[a]])&&(BI.remove(c.storeValue.assist,b),j.push(b))}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.storeValue.type===BI.Selection.All&&c.storeValue.value.length>=c._count?c.storeValue={type:BI.Selection.Multi,value:[]}:c.storeValue.type===BI.Selection.Multi&&c.storeValue.value.length>=c._count&&(c.storeValue={type:BI.Selection.All,value:[]}),c._updateAllValue(),c._checkError(),c.wants2Quit===!0&&(c.fireEvent(BI.SearchMultiTextValueCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this;this.options;this._count?(b(),a()):this._itemsCreator({type:BI.SearchMultiTextValueCombo.REQ_GET_DATA_LENGTH},function(d){c._count=d.count,b(),a()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),BI.remove(c.storeValue.assist,b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,c.storeValue.assist&&c.storeValue.assist.push(d[b]),delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},_getItemsByTimes:function(a,b){for(var c=[],d=100*(b-1);a[d]&&d<100*b;d++)c.push(a[d]);return c},_hasNextByTimes:function(a,b){return 100*b0&&a.numberCounter.hideView()})},getCounter:function(){return this.numberCounter},getSearcher:function(){return this.searcher},stopEditing:function(){this.searcher.stopSearch(),this.numberCounter.hideView()},setAdapter:function(a){this.searcher.setAdapter(a),this.numberCounter.setAdapter(a)},setValue:function(a){this.searcher.setValue(a),this.numberCounter.setValue(a)},setTipType:function(a){this.searcher.setTipType(a)},getKey:function(){return this.searcher.getKey()},getValue:function(){return this.searcher.getValue()}}),BI.SearchMultiSelectTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.SearchMultiSelectTrigger.EVENT_COUNTER_CLICK="EVENT_COUNTER_CLICK",BI.SearchMultiSelectTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.SearchMultiSelectTrigger.EVENT_START="EVENT_START",BI.SearchMultiSelectTrigger.EVENT_STOP="EVENT_STOP",BI.SearchMultiSelectTrigger.EVENT_PAUSE="EVENT_PAUSE",BI.SearchMultiSelectTrigger.EVENT_SEARCHING="EVENT_SEARCHING",BI.SearchMultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW="EVENT_BEFORE_COUNTER_POPUPVIEW",BI.shortcut("bi.search_multi_select_trigger",BI.SearchMultiSelectTrigger),BI.SearchMultiSelectLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SearchMultiSelectLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-loader",logic:{dynamic:!0},el:{height:400},valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.SearchMultiSelectLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.storeValue=b.value||{},this._assertValue(this.storeValue),this.button_group=BI.createWidget({type:"bi.select_list",element:this,logic:b.logic,el:BI.extend({onLoaded:b.onLoaded,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},b.el),itemsCreator:function(d,e){var f=a._startValue;a.storeValue&&(d=BI.extend(d||{},{selectedValues:BI.isKey(f)&&a.storeValue.type===BI.Selection.Multi?a.storeValue.value.concat(f):a.storeValue.value})),b.itemsCreator(d,function(g){c=g.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=BI.map(a.storeValue.value,function(c,d){var e=b.valueFormatter(d)||d;return{text:e,value:d,title:e,selected:a.storeValue.type===BI.Selection.Multi}});if(BI.isKey(a._startValue)&&!BI.contains(a.storeValue.value,a._startValue)){var j=b.valueFormatter(f)||f; -i.unshift({text:j,value:f,title:j,selected:!0})}h=a._createItems(i)}e(h.concat(a._createItems(g.items)),g.keyword||""),1===d.times&&a.storeValue&&(BI.isKey(f)&&(a.storeValue.type===BI.Selection.All?BI.remove(a.storeValue.value,f):BI.pushDistinct(a.storeValue.value,f)),a.setValue(a.storeValue)),1===d.times&&a._scrollToTop()})},hasNext:function(){return c},value:this.storeValue}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.SearchMultiSelectLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",logic:this.options.logic,cls:"bi-list-item-active",height:24,selected:this.isAllSelected(),iconWrapperWidth:36})},_scrollToTop:function(){var a=this;BI.delay(function(){a.button_group.element.scrollTop(0)},30)},isAllSelected:function(){return this.button_group.isAllSelected()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},setStartValue:function(a){this._startValue=a},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.button_group.setValue(this.storeValue)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){arguments[0]=this._createItems(a),this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.SearchMultiSelectLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.search_multi_select_loader",BI.SearchMultiSelectLoader),BI.SearchMultiSelectPopupView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SearchMultiSelectPopupView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-popup-view",maxWidth:"auto",minWidth:135,maxHeight:400,valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.SearchMultiSelectPopupView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.loader=BI.createWidget({type:"bi.search_multi_select_loader",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:b.onLoaded,value:b.value}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,element:this,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.loader,value:b.value}),this.popupView.on(BI.MultiPopupView.EVENT_CHANGE,function(){a.fireEvent(BI.SearchMultiSelectPopupView.EVENT_CHANGE)}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.SearchMultiSelectPopupView.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.SearchMultiSelectPopupView.EVENT_CLICK_CONFIRM)}})},isAllSelected:function(){return this.loader.isAllSelected()},setStartValue:function(a){this.loader.setStartValue(a)},setValue:function(a){this.popupView.setValue(a)},getValue:function(){return this.popupView.getValue()},populate:function(a){this.popupView.populate.apply(this.popupView,arguments)},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.SearchMultiSelectPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.SearchMultiSelectPopupView.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.SearchMultiSelectPopupView.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.search_multi_select_popup_view",BI.SearchMultiSelectPopupView),BI.SearchMultiSelectSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SearchMultiSelectSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-searcher",itemsCreator:BI.emptyFn,el:{},popup:{},valueFormatter:BI.emptyFn,adapter:null,masker:{}})},_init:function(){BI.SearchMultiSelectSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.multi_select_editor",height:b.height,text:b.text,tipType:b.tipType,warningTitle:b.warningTitle}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,height:b.height,isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},el:this.editor,popup:BI.extend({type:"bi.multi_select_search_pane",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){var e=a.editor.getValue();c.keywords=[e],this.setKeyword(e),b.itemsCreator(c,d)},value:b.value},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.SearchMultiSelectSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.SearchMultiSelectSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.SearchMultiSelectSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.SearchMultiSelectSearcher.EVENT_CHANGE,arguments)}),this.searcher.on(BI.Searcher.EVENT_SEARCHING,function(){var b=this.getKeywords();a.fireEvent(BI.SearchMultiSelectSearcher.EVENT_SEARCHING,b)}),BI.isNotNull(b.value)&&this.setState(b.value)},adjustView:function(){this.searcher.adjustView()},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setAdapter:function(a){this.searcher.setAdapter(a)},setState:function(a){var b=this.options,c={};if(c.type=a.type,c.value=b.allValueGetter()||[],c.assist=a.assist,c.type===BI.Selection.All)if(0===c.value.length)this.editor.setState(BI.Selection.All);else if(BI.size(c.assist)<=20){var d="";BI.each(c.assist,function(a,c){d+=0===a?""+(b.valueFormatter(c+"")||c):","+(b.valueFormatter(c+"")||c)}),this.editor.setState(d)}else this.editor.setState(BI.Selection.Multi);else if(0===c.value.length)this.editor.setState(BI.Selection.None);else if(BI.size(c.value)<=20){var d="";BI.each(c.value,function(a,c){d+=0===a?""+(b.valueFormatter(c+"")||c):","+(b.valueFormatter(c+"")||c)}),this.editor.setState(d)}else this.editor.setState(BI.Selection.Multi)},setTipType:function(a){this.editor.setTipType(a)},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.SearchMultiSelectSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.SearchMultiSelectSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.SearchMultiSelectSearcher.EVENT_START="EVENT_START",BI.SearchMultiSelectSearcher.EVENT_STOP="EVENT_STOP",BI.SearchMultiSelectSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.SearchMultiSelectSearcher.EVENT_SEARCHING="EVENT_SEARCHING",BI.shortcut("bi.search_multi_select_searcher",BI.SearchMultiSelectSearcher),BI.SelectTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-first-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.SelectTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.first_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,keyword:b.keyword,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_first_plus_group_node",BI.SelectTreeFirstPlusGroupNode),BI.SelectTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-last-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.SelectTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.last_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,keyword:b.keyword,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_last_plus_group_node",BI.SelectTreeLastPlusGroupNode),BI.SelectTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-mid-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.SelectTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.mid_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,keyword:b.keyword,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_mid_plus_group_node",BI.SelectTreeMidPlusGroupNode),BI.SelectTreePlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreePlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:24})},_init:function(){BI.SelectTreePlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,keyword:b.keyword,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:24,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreePlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_plus_group_node",BI.SelectTreePlusGroupNode),BI.SelectTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-combo",height:30,text:"",items:[],value:"",attributes:{tabIndex:0}})},_init:function(){BI.SelectTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items,value:b.value}),this.popup=BI.createWidget({type:"bi.select_level_tree",items:b.items,value:b.value}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.SingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView()})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.shortcut("bi.select_tree_combo",BI.SelectTreeCombo),BI.SelectTreeExpander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectTreeExpander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-expander",trigger:"",toggle:!0,direction:"bottom",isDefaultInit:!0,el:{},popup:{}})},_init:function(){BI.SelectTreeExpander.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(b.el),this.trigger.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&this.isSelected()&&a.expander.setValue([]),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.expander=BI.createWidget({type:"bi.expander",element:this,trigger:b.trigger,toggle:b.toggle,direction:b.direction,isDefaultInit:b.isDefaultInit,el:this.trigger,popup:b.popup}),this.expander.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.trigger.setSelected(!1),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},setValue:function(a){BI.contains(a,this.trigger.getValue())?(this.trigger.setSelected(!0),this.expander.setValue([])):(this.trigger.setSelected(!1),this.expander.setValue(a))},getValue:function(){return this.trigger.isSelected()?[this.trigger.getValue()]:this.expander.getValue()},populate:function(a){this.expander.populate(a)}}),BI.shortcut("bi.select_tree_expander",BI.SelectTreeExpander),BI.SelectTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.SelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-level-tree",tipText:BI.i18nText("BI-No_Selected_Item"),items:[],value:""})},_formatItems:function(a,b,c){var d=this;return BI.each(a,function(e,f){var g={layer:b};f.id=f.id||BI.UUID(),g.pNode=c,f.isParent===!0||f.parent===!0||BI.isNotEmptyArray(f.children)?(g.type="bi.select_tree_mid_plus_group_node",e===a.length-1&&(g.type="bi.select_tree_last_plus_group_node",g.isLastNode=!0),0!==e||c||(g.type="bi.select_tree_first_plus_group_node"),0===e&&e===a.length-1&&(g.type="bi.select_tree_plus_group_node"),BI.defaults(f,g),d._formatItems(f.children,b+1,f)):(g.type="bi.mid_tree_leaf_item",0!==e||c||(g.type="bi.first_tree_leaf_item"),e===a.length-1&&(g.type="bi.last_tree_leaf_item"),BI.defaults(f,g))}),a},_init:function(){BI.SelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.level_tree",expander:{type:"bi.select_tree_expander",isDefaultInit:!0},items:this._formatItems(BI.Tree.transformToTreeFormat(b.items),0),value:b.value,chooseType:BI.Selection.Single}),BI.createWidget({type:"bi.vertical",element:this,vgap:5,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.LevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.SelectTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.SelectTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(this._formatItems(BI.Tree.transformToTreeFormat(a)))}}),BI.SelectTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.select_level_tree",BI.SelectTreePopup),BI.SingleSelectSearchLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleSelectSearchLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-search-loader",allowNoSelect:!1,itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.SingleSelectSearchLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.button_group=BI.createWidget({type:"bi.single_select_list",allowNoSelect:b.allowNoSelect,element:this,logic:{dynamic:!1},value:b.value,el:{tipText:BI.i18nText("BI-No_Select"),el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},itemsCreator:function(d,e){a.storeValue&&(d=BI.extend(d||{},{selectedValues:[a.storeValue]})),b.itemsCreator(d,function(f){var g=f.keyword=b.keywordGetter();c=f.hasNext;var h=[];if(1===d.times&&BI.isNotNull(a.storeValue)){var i=a._filterValues(a.storeValue);h=a._createItems(i)}e(h.concat(a._createItems(f.items)),g||""),1===d.times&&a.storeValue&&a.setValue(a.storeValue)})},hasNext:function(){return c}}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SingleSelectList.EVENT_CHANGE,function(){a.fireEvent(BI.SingleSelectSearchLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:this.options.allowNoSelect?"bi.single_select_item":"bi.single_select_combo_item",cls:"bi-list-item-active",logic:{dynamic:!1},height:25,selected:!1})},_filterValues:function(a){var b=this.options,c=b.keywordGetter(),d=a||[],e=BI.map(BI.isArray(d)?d:[d],function(a,c){return{text:b.valueFormatter(c)||c,value:c}});if(BI.isKey(c)){var f=BI.Func.getSearchResult(e,c);d=f.match.concat(f.find)}return BI.map(d,function(a,b){return{text:b.text,title:b.text,value:b.value,selected:!1}})},setValue:function(a){this.storeValue=a,this.button_group.setValue(a)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.SingleSelectSearchLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_select_search_loader",BI.SingleSelectSearchLoader),BI.SingleSelectSearchInsertPane=BI.inherit(BI.Widget,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.SingleSelectSearchInsertPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-search-pane bi-card",allowNoSelect:!1,itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.SingleSelectSearchInsertPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tooltipClick=BI.createWidget({type:"bi.label",invisible:!0,text:BI.i18nText("BI-Click_Blank_To_Select"),cls:"multi-select-toolbar",height:this.constants.height}),this.addNotMatchTip=BI.createWidget({type:"bi.text_button",invisible:!0,text:BI.i18nText("BI-Basic_Click_To_Add_Text",""),height:this.constants.height,cls:"bi-high-light",hgap:5,handler:function(){a.fireEvent(BI.SingleSelectSearchInsertPane.EVENT_ADD_ITEM,b.keywordGetter())}}),this.loader=BI.createWidget({type:"bi.single_select_search_loader",allowNoSelect:b.allowNoSelect,keywordGetter:b.keywordGetter,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator.apply(a,[c,function(c){d(c),a.setKeyword(b.keywordGetter())}])},value:b.value}),this.loader.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.resizer=BI.createWidget({type:"bi.vtape",element:this,items:[{type:"bi.vertical",items:[this.tooltipClick,this.addNotMatchTip],height:this.constants.height},{el:this.loader}]})},setKeyword:function(a){var b,c=this.loader.getAllButtons().length>0&&(b=this.loader.getAllButtons()[0])&&a===b.getValue();this.tooltipClick.setVisible(c),this.addNotMatchTip.setVisible(!c),!c&&this.addNotMatchTip.setText(BI.i18nText("BI-Basic_Click_To_Add_Text",a))},hasMatched:function(){return this.tooltipClick.isVisible()},setValue:function(a){this.loader.setValue(a)},getValue:function(){return this.loader.getValue()},empty:function(){this.loader.empty()},populate:function(a){this.loader.populate.apply(this.loader,arguments)}}),BI.SingleSelectSearchInsertPane.EVENT_CHANGE="EVENT_CHANGE",BI.SingleSelectSearchInsertPane.EVENT_ADD_ITEM="EVENT_ADD_ITEM",BI.shortcut("bi.single_select_search_insert_pane",BI.SingleSelectSearchInsertPane),BI.SingleSelectSearchPane=BI.inherit(BI.Widget,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.SingleSelectSearchPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-search-pane bi-card",allowNoSelect:!1,itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.SingleSelectSearchPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tooltipClick=BI.createWidget({type:"bi.label",invisible:!0,text:BI.i18nText("BI-Click_Blank_To_Select"),cls:"multi-select-toolbar",height:this.constants.height}),this.loader=BI.createWidget({type:"bi.single_select_search_loader",allowNoSelect:b.allowNoSelect,keywordGetter:b.keywordGetter,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator.apply(a,[c,function(c){d(c),a.setKeyword(b.keywordGetter())}])},value:b.value}),this.loader.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.resizer=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.tooltipClick,height:0},{el:this.loader}]}),this.tooltipClick.setVisible(!1)},setKeyword:function(a){var b,c=this.loader.getAllButtons().length>0&&(b=this.loader.getAllButtons()[0])&&a===b.getValue();c!==this.tooltipClick.isVisible()&&(this.tooltipClick.setVisible(c),this.resizer.attr("items")[0].height=c?this.constants.height:0,this.resizer.resize())},hasMatched:function(){return this.tooltipClick.isVisible()},setValue:function(a){this.loader.setValue(a)},getValue:function(){return this.loader.getValue()},empty:function(){this.loader.empty()},populate:function(a){this.loader.populate.apply(this.loader,arguments)}}),BI.SingleSelectSearchPane.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_select_search_pane",BI.SingleSelectSearchPane),BI.SingleSelectCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.SingleSelectCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-combo",allowNoSelect:!1,itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24,attributes:{tabIndex:0}})},_init:function(){BI.SingleSelectCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&(a.storeValue=a._startValue),a.trigger.getSearcher().setState(a.storeValue)};this.storeValue=b.value,this.requesting=!1,this.trigger=BI.createWidget({type:"bi.single_select_trigger",height:b.height,allowNoSelect:b.allowNoSelect,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator(c,function(b){1===c.times&&BI.isNotNull(c.keywords)&&a.trigger.setValue(a.getValue()),d.apply(a,arguments)})},text:b.text,value:this.storeValue}),this.trigger.on(BI.SingleSelectTrigger.EVENT_START,function(){a._setStartValue(),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.SingleSelectTrigger.EVENT_STOP,function(){a._setStartValue()}),this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE,function(){if(this.getSearcher().hasMatched()){var b=this.getSearcher().getKeyword();a.combo.setValue(a.storeValue),a._setStartValue(b),c(),a.populate(),a._setStartValue()}}),this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue()):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.SingleSelectTrigger.EVENT_CHANGE,function(b,d){a.storeValue=this.getValue(),c(),a._defaultState()}),this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,toggle:!1,el:this.trigger,adjustLength:1,popup:{type:"bi.single_select_popup_view",allowNoSelect:b.allowNoSelect,ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.SingleSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c(),a._defaultState()})}}],itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getSearcher().adjustView()})}},hideChecker:function(a){return 0===d.element.find(a.target).length},value:b.value}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a.populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:a.fireEvent(BI.SingleSelectCombo.EVENT_CONFIRM)});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"single-select-trigger-icon-button"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&BI.remove(d.storeValue.value,b)}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this.requesting=!0,e.itemsCreator({type:BI.SingleSelectCombo.REQ_GET_ALL_DATA,keywords:a},function(a){var b=BI.map(a.items,"value");c(b)})},_adjust:function(a){function b(){c.wants2Quit===!0&&(c.fireEvent(BI.SingleSelectCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this,d=this.options;this._count?(b(),a()):d.itemsCreator({type:BI.SingleSelectCombo.REQ_GET_DATA_LENGTH},function(d){c._count=d.count,b(),a()})},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},setValue:function(a){this.storeValue=a,this._assertValue(this.storeValue),this.combo.setValue(this.storeValue)},getValue:function(){return this.storeValue},populate:function(){this._count=null,this.combo.populate.apply(this.combo,arguments)}}),BI.extend(BI.SingleSelectCombo,{REQ_GET_DATA_LENGTH:0,REQ_GET_ALL_DATA:-1}),BI.SingleSelectCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.single_select_combo",BI.SingleSelectCombo),BI.SingleSelectInsertCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.SingleSelectInsertCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-combo",allowNoSelect:!1,itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:24,attributes:{tabIndex:0}})},_init:function(){BI.SingleSelectInsertCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&(a.storeValue=a._startValue),a.trigger.getSearcher().setState(a.storeValue)};this.storeValue=b.value,this.requesting=!1,this.trigger=BI.createWidget({type:"bi.single_select_trigger",height:b.height,allowNoSelect:b.allowNoSelect,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator(c,function(b){1===c.times&&BI.isNotNull(c.keywords)&&a.trigger.setValue(a.getValue()),d.apply(a,arguments)})},text:b.text,value:this.storeValue,searcher:{popup:{type:"bi.single_select_search_insert_pane",listeners:[{eventName:BI.SingleSelectSearchInsertPane.EVENT_ADD_ITEM,action:function(){a.trigger.getSearcher().hasMatched()||(a.storeValue=a.trigger.getSearcher().getKeyword(),c(),a._defaultState())}}]}}}),this.trigger.on(BI.SingleSelectTrigger.EVENT_START,function(){a._setStartValue(),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.SingleSelectTrigger.EVENT_STOP,function(){a._setStartValue()}),this.trigger.on(BI.SingleSelectTrigger.EVENT_PAUSE,function(){var b=this.getSearcher().getKeyword();a.storeValue=b,a.combo.setValue(a.storeValue),a._setStartValue(b),c(),a.populate(),a._setStartValue()}),this.trigger.on(BI.SingleSelectTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue()):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.SingleSelectTrigger.EVENT_CHANGE,function(b,d){a.storeValue=this.getValue(),c(),a._defaultState()}),this.trigger.on(BI.SingleSelectTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,toggle:!1,el:this.trigger,adjustLength:1,popup:{type:"bi.single_select_popup_view",allowNoSelect:b.allowNoSelect,ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.SingleSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c(),a._defaultState()})}}],itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getSearcher().adjustView()})}},hideChecker:function(a){return 0===d.element.find(a.target).length},value:b.value}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a.populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:a.fireEvent(BI.SingleSelectInsertCombo.EVENT_CONFIRM); -});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"single-select-trigger-icon-button"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&BI.remove(d.storeValue.value,b)}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this.requesting=!0,e.itemsCreator({type:BI.SingleSelectInsertCombo.REQ_GET_ALL_DATA,keywords:a},function(a){var b=BI.map(a.items,"value");c(b)})},_adjust:function(a){function b(){c.wants2Quit===!0&&(c.fireEvent(BI.SingleSelectInsertCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this;this.options;b(),a()},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},setValue:function(a){this.storeValue=a,this._assertValue(this.storeValue),this.combo.setValue(this.storeValue)},getValue:function(){return this.storeValue},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.extend(BI.SingleSelectInsertCombo,{REQ_GET_DATA_LENGTH:0,REQ_GET_ALL_DATA:-1}),BI.SingleSelectInsertCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.single_select_insert_combo",BI.SingleSelectInsertCombo),BI.SingleSelectComboItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.SingleSelectComboItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-single-select-radio-item",logic:{dynamic:!1},height:24})},_init:function(){BI.SingleSelectComboItem.superclass._init.apply(this,arguments);var a=this.options;this.radio=BI.createWidget({type:"bi.radio"}),this.text=BI.createWidget({type:"bi.label",cls:"list-item-text",textAlign:"left",whiteSpace:"nowrap",textHeight:a.height,height:a.height,hgap:a.hgap,text:a.text,keyword:a.keyword,value:a.value,py:a.py}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",{type:"bi.center_adapt",items:[this.radio],width:26},this.text)}))))},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.SingleSelectComboItem.superclass.doClick.apply(this,arguments),this.radio.setSelected(this.isSelected())},setSelected:function(a){BI.SingleSelectComboItem.superclass.setSelected.apply(this,arguments),this.radio.setSelected(a)}}),BI.shortcut("bi.single_select_combo_item",BI.SingleSelectComboItem),BI.SingleSelectList=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleSelectList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-list",direction:BI.Direction.Top,logic:{dynamic:!0},items:[],itemsCreator:BI.emptyFn,hasNext:BI.emptyFn,onLoaded:BI.emptyFn,el:{type:"bi.list_pane"},allowNoSelect:!1})},_init:function(){BI.SingleSelectList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.list=BI.createWidget(b.el,{type:"bi.list_pane",items:b.items,itemsCreator:function(c,d){1===c.times&&a.toolbar&&a.toolbar.setVisible(!1),b.itemsCreator(c,function(b){d.apply(a,arguments),1===c.times&&(a.toolbar&&a.toolbar.setVisible(b&&b.length>0),a.toolbar&&a.toolbar.setEnable(b&&b.length>0))})},onLoaded:b.onLoaded,hasNext:b.hasNext,value:b.value}),this.list.on(BI.Controller.EVENT_CHANGE,function(b,c,d){b===BI.Events.CLICK&&a.fireEvent(BI.SingleSelectList.EVENT_CHANGE,c,d),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(b.direction),BI.extend({scrolly:!0},b.logic,{items:b.allowNoSelect?BI.LogicFactory.createLogicItemsByDirection(b.direction,{type:"bi.single_select_item",height:24,forceNotSelected:!0,text:BI.i18nText("BI-Basic_No_Select"),ref:function(b){a.toolbar=b},listeners:[{eventName:BI.Controller.EVENT_CHANGE,action:function(b){b===BI.Events.CLICK&&(a.list.setValue(),a.fireEvent(BI.SingleSelectList.EVENT_CHANGE)),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}}]},this.list):BI.LogicFactory.createLogicItemsByDirection(b.direction,this.list)}))))},hasPrev:function(){return this.list.hasPrev()},hasNext:function(){return this.list.hasNext()},prependItems:function(a){this.list.prependItems.apply(this.list,arguments)},addItems:function(a){this.list.addItems.apply(this.list,arguments)},setValue:function(a){this.list.setValue([a])},getValue:function(){return this.list.getValue()[0]},empty:function(){this.list.empty()},populate:function(a){this.list.populate.apply(this.list,arguments)},resetHeight:function(a){this.list.resetHeight?this.list.resetHeight(a):this.list.element.css({"max-height":a+"px"})},setNotSelectedValue:function(){this.list.setNotSelectedValue.apply(this.list,arguments)},getNotSelectedValue:function(){return this.list.getNotSelectedValue()},getAllButtons:function(){return this.list.getAllButtons()},getAllLeaves:function(){return this.list.getAllLeaves()},getSelectedButtons:function(){return this.list.getSelectedButtons()},getNotSelectedButtons:function(){return this.list.getNotSelectedButtons()},getIndexByValue:function(a){return this.list.getIndexByValue(a)},getNodeById:function(a){return this.list.getNodeById(a)},getNodeByValue:function(a){return this.list.getNodeByValue(a)}}),BI.SingleSelectList.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_select_list",BI.SingleSelectList),BI.SingleSelectLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleSelectLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-loader",logic:{dynamic:!0},allowNoSelect:!1,valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.SingleSelectLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.storeValue=b.value,this.button_group=BI.createWidget({type:"bi.single_select_list",allowNoSelect:b.allowNoSelect,logic:b.logic,el:BI.extend({onLoaded:b.onLoaded,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},b.el),itemsCreator:function(d,e){var f=a._startValue;BI.isNotNull(a.storeValue)&&(d=BI.extend(d||{},{selectedValues:[a.storeValue]})),b.itemsCreator(d,function(g){c=g.hasNext;var h=[];if(1===d.times&&BI.isNotNull(a.storeValue)){var i=BI.map([a.storeValue],function(a,c){var d=b.valueFormatter(c)||c;return{text:d,value:c,title:d,selected:!0}});h=a._createItems(i)}e(h.concat(a._createItems(g.items)),g.keyword||""),1===d.times&&a.storeValue&&(BI.isKey(f)&&(a.storeValue=f),a.setValue(a.storeValue)),1===d.times&&a._scrollToTop()})},hasNext:function(){return c},value:this.storeValue}),BI.createWidget({type:"bi.vertical",element:this,items:[this.button_group],vgap:5}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SingleSelectList.EVENT_CHANGE,function(){a.fireEvent(BI.SingleSelectLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:this.options.allowNoSelect?"bi.single_select_item":"bi.single_select_combo_item",logic:this.options.logic,cls:"bi-list-item-active",height:24,selected:!1})},_scrollToTop:function(){var a=this;BI.delay(function(){a.button_group.element.scrollTop(0)},30)},_assertValue:function(a){},setStartValue:function(a){this._startValue=a},setValue:function(a){this.storeValue=a,this._assertValue(this.storeValue),this.button_group.setValue(this.storeValue)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.SingleSelectLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_select_loader",BI.SingleSelectLoader),BI.SingleSelectPopupView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleSelectPopupView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-popup-view",allowNoSelect:!1,maxWidth:"auto",minWidth:135,maxHeight:400,valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.SingleSelectPopupView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.loader=BI.createWidget({type:"bi.single_select_loader",allowNoSelect:b.allowNoSelect,itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:b.onLoaded,value:b.value}),this.popupView=BI.createWidget({type:"bi.popup_view",stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,element:this,el:this.loader,value:b.value}),this.popupView.on(BI.MultiPopupView.EVENT_CHANGE,function(){a.fireEvent(BI.SingleSelectPopupView.EVENT_CHANGE)})},setStartValue:function(a){this.loader.setStartValue(a)},setValue:function(a){this.popupView.setValue(a)},getValue:function(){return this.popupView.getValue()},populate:function(a){this.popupView.populate.apply(this.popupView,arguments)},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.SingleSelectPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_select_popup_view",BI.SingleSelectPopupView),BI.SingleSelectTrigger=BI.inherit(BI.Trigger,{constants:{height:14,rgap:4,lgap:4},_defaultConfig:function(){return BI.extend(BI.SingleSelectTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-trigger bi-border",allowNoSelect:!1,itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,searcher:{},switcher:{},adapter:null,masker:{}})},_init:function(){BI.SingleSelectTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;b.height&&this.setHeight(b.height-2),this.searcher=BI.createWidget(b.searcher,{type:"bi.single_select_searcher",allowNoSelect:b.allowNoSelect,text:b.text,height:b.height,itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,popup:{},adapter:b.adapter,masker:b.masker,value:b.value}),this.searcher.on(BI.SingleSelectSearcher.EVENT_START,function(){a.fireEvent(BI.SingleSelectTrigger.EVENT_START)}),this.searcher.on(BI.SingleSelectSearcher.EVENT_PAUSE,function(){a.fireEvent(BI.SingleSelectTrigger.EVENT_PAUSE)}),this.searcher.on(BI.SingleSelectSearcher.EVENT_SEARCHING,function(){a.fireEvent(BI.SingleSelectTrigger.EVENT_SEARCHING,arguments)}),this.searcher.on(BI.SingleSelectSearcher.EVENT_STOP,function(){a.fireEvent(BI.SingleSelectTrigger.EVENT_STOP)}),this.searcher.on(BI.SingleSelectSearcher.EVENT_CHANGE,function(){a.fireEvent(BI.SingleSelectTrigger.EVENT_CHANGE,arguments)});BI.createWidget({type:"bi.htape",element:this,items:[{el:this.searcher,width:"fill"},{el:BI.createWidget(),width:24}]})},getSearcher:function(){return this.searcher},stopEditing:function(){this.searcher.stopSearch()},setAdapter:function(a){this.searcher.setAdapter(a)},setValue:function(a){this.searcher.setValue(a)},getKey:function(){return this.searcher.getKey()},getValue:function(){return this.searcher.getValue()}}),BI.SingleSelectTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.SingleSelectTrigger.EVENT_COUNTER_CLICK="EVENT_COUNTER_CLICK",BI.SingleSelectTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.SingleSelectTrigger.EVENT_START="EVENT_START",BI.SingleSelectTrigger.EVENT_STOP="EVENT_STOP",BI.SingleSelectTrigger.EVENT_PAUSE="EVENT_PAUSE",BI.SingleSelectTrigger.EVENT_SEARCHING="EVENT_SEARCHING",BI.SingleSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW="EVENT_BEFORE_COUNTER_POPUPVIEW",BI.shortcut("bi.single_select_trigger",BI.SingleSelectTrigger),BI.SingleSelectInsertList=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.SingleSelectInsertList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-insert-list",allowNoSelect:!1,itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.SingleSelectInsertList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue=b.value;var c=function(){BI.isKey(a._startValue)&&(a.storeValue=a._startValue)};this.adapter=BI.createWidget({type:"bi.single_select_loader",allowNoSelect:b.allowNoSelect,cls:"popup-single-select-list bi-border-left bi-border-right bi-border-bottom",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,logic:{dynamic:!0},el:{},value:b.value}),this.adapter.on(BI.SingleSelectLoader.EVENT_CHANGE,function(){a.storeValue=this.getValue(),c(),a.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE)}),this.searcherPane=BI.createWidget({type:"bi.single_select_search_pane",allowNoSelect:b.allowNoSelect,cls:"bi-border-left bi-border-right bi-border-bottom",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.trigger.getKeyword()},itemsCreator:function(c,d){c.keywords=[a.trigger.getKeyword()],this.setKeyword(c.keywords[0]),b.itemsCreator(c,d)}}),this.searcherPane.setVisible(!1),this.trigger=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},adapter:this.adapter,popup:this.searcherPane,height:200,masker:!1,value:b.value,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane(),a._setStartValue(),this.setValue(BI.deepClone(a.storeValue))}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),a._setStartValue(),a.adapter.setValue(a.storeValue),a.adapter.populate()}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){var b=this.getKeyword();a.storeValue=b,a._showAdapter(),a.adapter.setValue(a.storeValue),a._setStartValue(b),c(),a.adapter.populate(),a._setStartValue(),a.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE)}},{eventName:BI.Searcher.EVENT_SEARCHING,action:function(){var b=this.getKeyword(),d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.adapter.setValue(a.storeValue),c(),a.adapter.populate(),a._setStartValue()):(a.adapter.setValue(a.storeValue),c())})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a.fireEvent(BI.SingleSelectInsertList.EVENT_CHANGE)}}]}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.trigger,height:24},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:24,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},_defaultState:function(){this.trigger.stopEditing()},_assertValue:function(){},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&(d.storeValue.type===BI.Selection.Single?BI.pushDistinct(d.storeValue.value,b):BI.remove(d.storeValue.value,b))}),b()}var d=this,e=this.options;this._assertValue(this.storeValue),this._allData?c(this._allData):e.itemsCreator({type:BI.SingleSelectInsertList.REQ_GET_ALL_DATA},function(a){d._allData=BI.map(a.items,"value"),c(d._allData)})},_setStartValue:function(a){this._startValue=a,this.adapter.setStartValue(a)},isAllSelected:function(){return this.adapter.isAllSelected()},resize:function(){},setValue:function(a){this.storeValue=a,this.adapter.setValue(this.storeValue),this.trigger.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this._count=null,this._allData=null,this.adapter.populate.apply(this.adapter,arguments),this.trigger.populate.apply(this.trigger,arguments)}}),BI.extend(BI.SingleSelectInsertList,{REQ_GET_DATA_LENGTH:0,REQ_GET_ALL_DATA:-1}),BI.SingleSelectInsertList.EVENT_CHANGE="BI.SingleSelectInsertList.EVENT_CHANGE",BI.shortcut("bi.single_select_insert_list",BI.SingleSelectInsertList),BI.SingleSelectEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleSelectEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-editor",el:{}})},_init:function(){BI.SingleSelectEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.state_editor",element:this,height:b.height,watermark:BI.i18nText("BI-Basic_Search"),allowBlank:!0,value:b.value,text:b.text}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.StateEditor.EVENT_PAUSE,function(){a.fireEvent(BI.SingleSelectEditor.EVENT_PAUSE)}),this.editor.on(BI.StateEditor.EVENT_CLICK_LABEL,function(){})},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},setState:function(a){this.editor.setState(a)},setValue:function(a){this.editor.setValue(a)},getValue:function(){var a=this.editor.getState();return BI.isArray(a)&&a.length>0?a[a.length-1]:""},getKeywords:function(){var a=this.editor.getLastValidValue(),b=a.match(/[\S]+/g);return BI.isEndWithBlank(a)?b.concat([" "]):b},populate:function(a){}}),BI.SingleSelectEditor.EVENT_PAUSE="SingleSelectEditor.EVENT_PAUSE",BI.shortcut("bi.single_select_editor",BI.SingleSelectEditor),BI.SingleSelectSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleSelectSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-select-searcher",itemsCreator:BI.emptyFn,el:{},popup:{},valueFormatter:BI.emptyFn,adapter:null,masker:{},allowNoSelect:!1})},_init:function(){BI.SingleSelectSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.single_select_editor",height:b.height,text:b.text}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,height:b.height,isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},el:this.editor,popup:BI.extend({type:"bi.single_select_search_pane",allowNoSelect:b.allowNoSelect,valueFormatter:b.valueFormatter,keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){var e=a.editor.getValue();c.keywords=[e],this.setKeyword(e),b.itemsCreator(c,d)},value:b.value},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.SingleSelectSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.SingleSelectSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.SingleSelectSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.SingleSelectSearcher.EVENT_CHANGE,arguments)}),this.searcher.on(BI.Searcher.EVENT_SEARCHING,function(){var b=this.getKeywords();a.fireEvent(BI.SingleSelectSearcher.EVENT_SEARCHING,b)}),BI.isNotNull(b.value)&&this.setState(b.value)},adjustView:function(){this.searcher.adjustView()},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setAdapter:function(a){this.searcher.setAdapter(a)},setState:function(a){var b=this.options;BI.isNull(a)?this.editor.setState(BI.Selection.None):this.editor.setState(b.valueFormatter(a+"")||a+"")},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.SingleSelectSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.SingleSelectSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.SingleSelectSearcher.EVENT_START="EVENT_START",BI.SingleSelectSearcher.EVENT_STOP="EVENT_STOP",BI.SingleSelectSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.SingleSelectSearcher.EVENT_SEARCHING="EVENT_SEARCHING",BI.shortcut("bi.single_select_searcher",BI.SingleSelectSearcher),BI.SignTextEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SignTextEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-sign-initial-editor",validationChecker:BI.emptyFn,text:"",height:24})},_init:function(){BI.SignTextEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:4,vgap:2,value:b.value,validationChecker:b.validationChecker,allowBlank:!1}),this.text=BI.createWidget({type:"bi.text_button",cls:"sign-editor-text",title:function(){return a.getValue()},textAlign:b.textAlign,height:b.height,hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.selectAll()}}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.SignTextEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.SignTextEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.SignTextEditor.EVENT_CHANGE_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a._checkText()}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint(),a._checkText()},_checkText:function(){var a=this.options;BI.nextTick(BI.bind(function(){if(""===this.editor.getValue())this.text.setValue(a.watermark||""),this.text.element.addClass("bi-water-mark");else{var b=this.editor.getValue();b=BI.isEmpty(b)||b==a.text?a.text:b+a.text,this.text.setValue(b),this.text.element.removeClass("bi-water-mark")}},this))},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},setTitle:function(a){this.text.setTitle(a)},setWarningTitle:function(a){this.text.setWarningTitle(a)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint(),this._checkText()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a),this._checkText()},getValue:function(){return this.editor.getValue()},getState:function(){return this.text.getValue()},setState:function(a){var b=this.options;this._showHint(),a=BI.isEmpty(a)||a==b.text?b.text:a+b.text,this.text.setValue(a)}}),BI.SignTextEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SignTextEditor.EVENT_CHANGE_CONFIRM="EVENT_CHANGE_CONFIRM",BI.SignTextEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.shortcut("bi.sign_text_editor",BI.SignTextEditor),BI.SliderIconButton=BI.inherit(BI.Widget,{props:{baseCls:"bi-single-slider-button"},constants:{LARGE_SIZE:16,NORMAL_SIZE:12,LARGE_OFFSET:4,NORMAL_OFFSET:6},render:function(){var a=this;return{type:"bi.absolute",ref:function(){a.wrapper=this},items:[{el:{type:"bi.text_button",forceNotSelected:!0,cls:"slider-button bi-list-item-select3 bi-high-light-border",ref:function(){a.slider=this}}}]}}}),BI.shortcut("bi.single_slider_button",BI.SliderIconButton),BI.SingleSlider=BI.inherit(BI.Widget,{_constant:{EDITOR_WIDTH:90,EDITOR_HEIGHT:30,SLIDER_WIDTH_HALF:15,SLIDER_WIDTH:30,SLIDER_HEIGHT:30,TRACK_HEIGHT:24},props:{baseCls:"bi-single-slider bi-slider-track",digit:!1,unit:""},render:function(){var a=this,b=this.options,c=this._constant;this.enable=!1,this.value="",this.grayTrack=BI.createWidget({type:"bi.layout",cls:"gray-track",height:6}),this.blueTrack=BI.createWidget({type:"bi.layout",cls:"blue-track bi-high-light-background",height:6}),this.track=this._createTrackWrapper(),this.slider=BI.createWidget({type:"bi.single_slider_button"}),this._draggable(this.slider);var d=BI.createWidget({type:"bi.vertical",items:[{type:"bi.absolute",items:[this.slider]}],hgap:c.SLIDER_WIDTH_HALF,height:c.SLIDER_HEIGHT});return d.element.click(function(d){if(a.enable&&a.isEnabled()){var e=d.clientX-a.element.offset().left-c.SLIDER_WIDTH_HALF,f=a.track.element[0].scrollWidth,g=0;e<0&&(g=0),e>0&&ef-c.SLIDER_WIDTH&&(g=100);var h=BI.parseFloat(g.toFixed(1));a._setAllPosition(h);var i=a._getValueByPercent(h);i=b.digit===!1?i:i.toFixed(b.digit),a.label.setValue(i),a.value=i,a.fireEvent(BI.SingleSlider.EVENT_CHANGE)}}),this.label=BI.createWidget({type:"bi.sign_text_editor",cls:"slider-editor-button",text:b.unit,width:c.EDITOR_WIDTH-2,allowBlank:!1,textAlign:"center",validationChecker:function(b){return a._checkValidation(b)}}),this.label.element.hover(function(){a.label.element.removeClass("bi-border").addClass("bi-border")},function(){a.label.element.removeClass("bi-border")}),this.label.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=BI.parseFloat(this.getValue()),c=a._getPercentByValue(b),d=BI.parseFloat(c.toFixed(1));a._setAllPosition(d),this.setValue(b),a.value=b,a.fireEvent(BI.SingleSlider.EVENT_CHANGE)}),this._setVisible(!1),{type:"bi.absolute",items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.track,width:"100%",height:c.TRACK_HEIGHT}]}],hgap:7,height:c.TRACK_HEIGHT},top:23,left:0,width:"100%"},{el:d,top:20,left:0,width:"100%"},{el:{type:"bi.vertical",items:[{type:"bi.horizontal_auto",items:[this.label]}],height:c.EDITOR_HEIGHT},top:0,left:0,width:"100%"}]}},_draggable:function(a){function b(a){return BI.clamp(a,0,c._getGrayTrackLength())}var c=this,d=this.options,e=!1,f=0,g=0,h=0,i=new BI.MouseMoveTracker(function(j){if(i.isDragging()){e=!0,g+=j,f=b(h+g),a.element.addClass("dragging");var k=100*f/c._getGrayTrackLength(),l=BI.parseFloat(k.toFixed(1));c._setBlueTrack(l),c._setLabelPosition(l),c._setSliderPosition(l);var m=c._getValueByPercent(l);m=d.digit===!1?m:m.toFixed(d.digit),c.label.setValue(m),c.value=m,c.fireEvent(BI.SingleSlider.EVENT_CHANGE)}},function(){if(e===!0){f=b(f);var d=100*f/c._getGrayTrackLength(),j=BI.parseFloat(d.toFixed(1));c._setSliderPosition(j),f=0,g=0,h=f,e=!1}a.element.removeClass("dragging"),i.releaseMouseMoves(),c.fireEvent(BI.SingleSlider.EVENT_CHANGE)},window);a.element.on("mousedown",function(c){a.isEnabled()&&(h=this.offsetLeft,b(h),i.captureMouseMoves(c))})},_createTrackWrapper:function(){return BI.createWidget({type:"bi.absolute",items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.grayTrack,top:0,left:0,width:"100%"},{el:this.blueTrack,top:0,left:0,width:"0%"}]}],hgap:8,height:8},top:8,left:0,width:"100%"}]})},_checkValidation:function(a){var b=this.options,c=!1;if(BI.isNumeric(a)&&!(BI.isNull(a)||athis.max))if(b.digit===!1)c=!0;else{var d=(a+"").split(".")[1]||"";c=d.length===b.digit}return c},_setBlueTrack:function(a){this.blueTrack.element.css({width:a+"%"})},_setLabelPosition:function(a){},_setSliderPosition:function(a){this.slider.element.css({left:a+"%"})},_setAllPosition:function(a){this._setSliderPosition(a),this._setLabelPosition(a),this._setBlueTrack(a)},_setVisible:function(a){this.slider.setVisible(a),this.label.setVisible(a)},_getGrayTrackLength:function(){return this.grayTrack.element[0].scrollWidth},_getValueByPercent:function(a){var b=BI.parseInt(10*a);return(this.max-this.min)*b/1e3+this.min},_getPercentByValue:function(a){return 100*(a-this.min)/(this.max-this.min)},getValue:function(){return this.value},setValue:function(a){var b=this.options;a=BI.parseFloat(a),a=b.digit===!1?a:a.toFixed(b.digit),isNaN(a)||(this._checkValidation(a)&&(this.value=a),a>this.max&&(this.value=this.max),ab&&(this.min=b,this.max=c)},reset:function(){this._setVisible(!1),this.enable=!1,this.value="",this.min=0,this.max=0,this._setBlueTrack(0)},populate:function(){isNaN(this.min)||isNaN(this.max)||(this._setVisible(!0),this.enable=!0,this.label.setErrorText(BI.i18nText("BI-Basic_Please_Enter_Number_Between",this.min,this.max)),BI.isNumeric(this.value)||BI.isNotEmptyString(this.value)?(this.label.setValue(this.value),this._setAllPosition(this._getPercentByValue(this.value))):(this.label.setValue(this.max),this._setAllPosition(100)))}}),BI.SingleSlider.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_slider",BI.SingleSlider),BI.SingleSliderLabel=BI.inherit(BI.Widget,{_constant:{EDITOR_WIDTH:90,EDITOR_HEIGHT:20,HEIGHT:20,SLIDER_WIDTH_HALF:15,SLIDER_WIDTH:30,SLIDER_HEIGHT:30,TRACK_HEIGHT:24},_defaultConfig:function(){return BI.extend(BI.SingleSliderLabel.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-slider-label bi-slider-track",digit:!1,unit:""})},_init:function(){BI.SingleSliderLabel.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._constant;this.enable=!1,this.value="",this.grayTrack=BI.createWidget({type:"bi.layout",cls:"gray-track",height:6}),this.blueTrack=BI.createWidget({type:"bi.layout",cls:"blue-track bi-high-light-background",height:6}),this.track=this._createTrackWrapper(),this.slider=BI.createWidget({type:"bi.single_slider_button"}),this._draggable(this.slider);var d=BI.createWidget({type:"bi.vertical",items:[{type:"bi.absolute",items:[this.slider]}],hgap:c.SLIDER_WIDTH_HALF,height:c.SLIDER_HEIGHT});d.element.click(function(d){if(a.enable&&a.isEnabled()){var e=d.clientX-a.element.offset().left-c.SLIDER_WIDTH_HALF,f=a.track.element[0].scrollWidth,g=0;e<0&&(g=0),e>0&&ef-c.SLIDER_WIDTH&&(g=100);var h=BI.parseFloat(g.toFixed(1));a._setAllPosition(h);var i=a._getValueByPercent(h);i=b.digit===!1?i:i.toFixed(b.digit),a.label.setText(i+b.unit),a.value=i,a.fireEvent(BI.SingleSliderLabel.EVENT_CHANGE)}}),this.label=BI.createWidget({type:"bi.label",height:c.HEIGHT,width:c.EDITOR_WIDTH-2}),this._setVisible(!1),BI.createWidget({type:"bi.absolute",element:this,items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.track,width:"100%",height:c.TRACK_HEIGHT}]}],hgap:7,height:c.TRACK_HEIGHT},top:13,left:0,width:"100%"},{el:d,top:10,left:0,width:"100%"},{el:{type:"bi.vertical",items:[{type:"bi.horizontal_auto",items:[this.label]}],height:c.EDITOR_HEIGHT},top:0,left:0,width:"100%"}]})},_draggable:function(a){function b(a){return BI.clamp(a,0,c._getGrayTrackLength())}var c=this,d=this.options,e=!1,f=0,g=0,h=0,i=new BI.MouseMoveTracker(function(j){if(i.isDragging()){e=!0,g+=j,f=b(h+g),a.element.addClass("dragging");var k=100*f/c._getGrayTrackLength(),l=BI.parseFloat(k.toFixed(1));c._setBlueTrack(l),c._setLabelPosition(l),c._setSliderPosition(l);var m=c._getValueByPercent(l);m=d.digit===!1?m:m.toFixed(d.digit),c.label.setValue(m+d.unit), -c.value=m,c.fireEvent(BI.SingleSliderLabel.EVENT_CHANGE)}},function(){if(e===!0){f=b(f);var d=100*f/c._getGrayTrackLength(),j=BI.parseFloat(d.toFixed(1));c._setSliderPosition(j),f=0,g=0,h=f,e=!1}a.element.removeClass("dragging"),i.releaseMouseMoves(),c.fireEvent(BI.SingleSliderLabel.EVENT_CHANGE)},window);a.element.on("mousedown",function(c){a.isEnabled()&&(h=this.offsetLeft,b(h),i.captureMouseMoves(c))})},_createTrackWrapper:function(){return BI.createWidget({type:"bi.absolute",items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.grayTrack,top:0,left:0,width:"100%"},{el:this.blueTrack,top:0,left:0,width:"0%"}]}],hgap:8,height:8},top:8,left:0,width:"100%"}]})},_checkValidation:function(a){return BI.isNumeric(a)&&!(BI.isNull(a)||athis.max)},_setBlueTrack:function(a){this.blueTrack.element.css({width:a+"%"})},_setLabelPosition:function(a){},_setSliderPosition:function(a){this.slider.element.css({left:a+"%"})},_setAllPosition:function(a){this._setSliderPosition(a),this._setLabelPosition(a),this._setBlueTrack(a)},_setVisible:function(a){this.slider.setVisible(a),this.label.setVisible(a)},_getGrayTrackLength:function(){return this.grayTrack.element[0].scrollWidth},_getValueByPercent:function(a){var b=BI.parseInt(10*a);return(this.max-this.min)*b/1e3+this.min},_getPercentByValue:function(a){return 100*(a-this.min)/(this.max-this.min)},_setEnable:function(a){BI.SingleSliderLabel.superclass._setEnable.apply(this,[a]),a?this.blueTrack.element.removeClass("disabled-blue-track").addClass("blue-track"):this.blueTrack.element.removeClass("blue-track").addClass("disabled-blue-track")},getValue:function(){return this.value},setValue:function(a){var b=this.options;a=BI.parseFloat(a),a=b.digit===!1?a:a.toFixed(b.digit),isNaN(a)||(this._checkValidation(a)&&(this.value=a),a>this.max&&(this.value=this.max),ab&&(this.min=b,this.max=c)},reset:function(){this._setVisible(!1),this.enable=!1,this.value="",this.min=0,this.max=0,this._setBlueTrack(0)},populate:function(){var a=this.options;isNaN(this.min)||isNaN(this.max)||(this._setVisible(!0),this.enable=!0,BI.isNumeric(this.value)||BI.isNotEmptyString(this.value)?(this.label.setValue(this.value+a.unit),this._setAllPosition(this._getPercentByValue(this.value))):(this.label.setValue(this.max+a.unit),this._setAllPosition(100)))}}),BI.SingleSliderLabel.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_slider_label",BI.SingleSliderLabel),BI.SingleSliderNormal=BI.inherit(BI.Widget,{_constant:{HEIGHT:28,SLIDER_WIDTH_HALF:15,SLIDER_WIDTH:30,SLIDER_HEIGHT:30,TRACK_HEIGHT:24},props:{baseCls:"bi-single-slider-normal bi-slider-track",minMax:{min:0,max:100}},render:function(){var a=this,b=this._constant,c=this._createTrack();this.slider=BI.createWidget({type:"bi.single_slider_button"}),this._draggable(this.slider);var d=BI.createWidget({type:"bi.vertical",items:[{type:"bi.absolute",items:[this.slider]}],hgap:b.SLIDER_WIDTH_HALF,height:b.SLIDER_HEIGHT});return d.element.click(function(c){if(a.enable&&a.isEnabled()){var d=c.clientX-a.element.offset().left-b.SLIDER_WIDTH_HALF,e=a.track.element[0].scrollWidth,f=0;d<0&&(f=0),d>0&&de-b.SLIDER_WIDTH&&(f=100);var g=BI.parseFloat(f.toFixed(1));a._setAllPosition(g);var h=a._getValueByPercent(g);a.value=h,a.fireEvent(BI.SingleSlider.EVENT_CHANGE)}}),{type:"bi.absolute",element:this,items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:c,width:"100%",height:b.TRACK_HEIGHT}]}],hgap:7,height:b.TRACK_HEIGHT},top:3,left:0,width:"100%"},{el:d,top:0,left:0,width:"100%"}]}},_draggable:function(a){function b(a){return BI.clamp(a,0,c._getGrayTrackLength())}var c=this,d=this.options,e=!1,f=0,g=0,h=0,i=new BI.MouseMoveTracker(function(j){if(i.isDragging()){e=!0,g+=j,f=b(h+g),a.element.addClass("dragging");var k=100*f/c._getGrayTrackLength(),l=BI.parseFloat(k.toFixed(1));c._setBlueTrack(l),c._setSliderPosition(l);var m=c._getValueByPercent(l);m=d.digit===!1?m:m.toFixed(d.digit),c.value=m,c.fireEvent(BI.SingleSliderNormal.EVENT_DRAG,m)}},function(){if(e===!0){f=b(f);var d=100*f/c._getGrayTrackLength(),j=BI.parseFloat(d.toFixed(1));c._setSliderPosition(j),f=0,g=0,h=f,e=!1}a.element.removeClass("dragging"),i.releaseMouseMoves(),c.fireEvent(BI.SingleSlider.EVENT_CHANGE)},window);a.element.on("mousedown",function(c){a.isEnabled()&&(h=this.offsetLeft,b(h),i.captureMouseMoves(c))})},_createTrack:function(){var a=this;this._constant;return this.grayTrack=BI.createWidget({type:"bi.layout",cls:"gray-track",height:6}),this.blueTrack=BI.createWidget({type:"bi.layout",cls:"blue-track bi-high-light-background",height:6}),this.options.color&&this.blueTrack.element.css({"background-color":this.options.color}),{type:"bi.absolute",items:[{el:{type:"bi.vertical",items:[{type:"bi.absolute",items:[{el:this.grayTrack,top:0,left:0,width:"100%"},{el:this.blueTrack,top:0,left:0,width:"0%"}]}],hgap:8,height:8},top:8,left:0,width:"100%"}],ref:function(b){a.track=b}}},_checkValidation:function(a){return!(BI.isNull(a)||athis.max)},_setBlueTrack:function(a){this.blueTrack.element.css({width:a+"%"})},_setSliderPosition:function(a){this.slider.element.css({left:a+"%"})},_setAllPosition:function(a){this._setSliderPosition(a),this._setBlueTrack(a)},_setVisible:function(a){this.slider.setVisible(a)},_getGrayTrackLength:function(){return this.grayTrack.element[0].scrollWidth},_getValueByPercent:function(a){var b=BI.parseInt(10*a);return(this.max-this.min)*b/1e3+this.min},_getPercentByValue:function(a){return 100*(a-this.min)/(this.max-this.min)},_setEnable:function(a){BI.SingleSliderNormal.superclass._setEnable.apply(this,[a]),a?this.blueTrack.element.removeClass("disabled-blue-track").addClass("blue-track"):this.blueTrack.element.removeClass("blue-track").addClass("disabled-blue-track")},getValue:function(){return this.value},setValue:function(a){var b=BI.parseFloat(a);isNaN(b)||(this._checkValidation(b)&&(this.value=b),b>this.max&&(this.value=this.max),bb&&(this.min=b,this.max=c)},reset:function(){this._setVisible(!1),this.enable=!1,this.value="",this.min=0,this.max=0,this._setBlueTrack(0)},populate:function(){isNaN(this.min)||isNaN(this.max)||(this._setVisible(!0),this.enable=!0,BI.isNumeric(this.value)||BI.isNotEmptyString(this.value)?this._setAllPosition(this._getPercentByValue(this.value)):this._setAllPosition(100))}}),BI.SingleSliderNormal.EVENT_DRAG="EVENT_DRAG",BI.shortcut("bi.single_slider_normal",BI.SingleSliderNormal),BI.SingleTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-combo",trigger:{},height:24,text:"",items:[],value:"",attributes:{tabIndex:0}})},_init:function(){BI.SingleTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(BI.extend({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items,value:b.value},b.trigger)),this.popup=BI.createWidget({type:"bi.single_level_tree",items:b.items,value:b.value}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.SingleTreeCombo.EVENT_BEFORE_POPUPVIEW,arguments)}),this.popup.on(BI.SingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.SingleTreeCombo.EVENT_CHANGE)})},populate:function(a){this.combo.populate(a)},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.SingleTreeCombo.EVENT_CHANGE="SingleTreeCombo.EVENT_CHANGE",BI.SingleTreeCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.single_tree_combo",BI.SingleTreeCombo),BI.SingleTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.SingleTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-level-tree",tipText:BI.i18nText("BI-No_Selected_Item"),items:[],value:""})},_init:function(){BI.SingleTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.level_tree",expander:{isDefaultInit:!0},items:b.items,value:b.value,chooseType:BI.Selection.Single}),BI.createWidget({type:"bi.vertical",element:this,vgap:5,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.LevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.SingleTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.SingleTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.SingleTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_level_tree",BI.SingleTreePopup),BI.SingleTreeTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SingleTreeTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-trigger",height:24,text:"",items:[],value:""})},_init:function(){BI.SingleTreeTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.select_text_trigger",element:this,text:a.text,items:a.items,height:a.height,value:a.value})},_checkTitle:function(){var a=this,b=this.getValue();BI.any(this.options.items,function(c,d){if(BI.contains(b,d.value))return a.trigger.setTitle(d.text||d.value),!0})},setValue:function(a){a=BI.isArray(a)?a:[a],this.options.value=a,this.trigger.setValue(a),this._checkTitle()},getValue:function(){return this.options.value||[]},populate:function(a){BI.SingleTreeTrigger.superclass.populate.apply(this,arguments),this.trigger.populate(a)}}),BI.shortcut("bi.single_tree_trigger",BI.SingleTreeTrigger),!function(){BI.TimePopup=BI.inherit(BI.Widget,{props:{baseCls:"bi-date-time-popup",height:68},render:function(){var a=this,b=this.options;return{type:"bi.vtape",items:[{el:{type:"bi.center_adapt",cls:"bi-split-top",items:[{type:"bi.dynamic_date_time_select",value:b.value,ref:function(b){a.timeSelect=b}}]},hgap:10,height:44},{el:{type:"bi.grid",items:[[{type:"bi.text_button",cls:"bi-high-light bi-split-top",shadow:!0,text:BI.i18nText("BI-Basic_Clears"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.TimePopup.BUTTON_CLEAR_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-left bi-split-right bi-high-light bi-split-top",shadow:!0,text:BI.i18nText("BI-Basic_Now"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.TimePopup.BUTTON_NOW_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-high-light bi-split-top",shadow:!0,text:BI.i18nText("BI-Basic_OK"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.TimePopup.BUTTON_OK_EVENT_CHANGE)}}]}]]},height:24}]}},setValue:function(a){this._checkValueValid(a)?this.timeSelect.setValue():this.timeSelect.setValue({hour:a.hour,minute:a.minute,second:a.second})},getValue:function(){return this.timeSelect.getValue()},_checkValueValid:function(a){return BI.isNull(a)||BI.isEmptyObject(a)||BI.isEmptyString(a)}}),BI.TimePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.TimePopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.TimePopup.BUTTON_NOW_EVENT_CHANGE="BUTTON_NOW_EVENT_CHANGE",BI.TimePopup.CALENDAR_EVENT_CHANGE="CALENDAR_EVENT_CHANGE",BI.shortcut("bi.time_popup",BI.TimePopup)}(),!function(){BI.TimeCombo=BI.inherit(BI.Single,{constants:{popupHeight:80,popupWidth:240,comboAdjustHeight:1,border:1},props:{baseCls:"bi-time-combo bi-border bi-border-radius",width:78,height:22,format:"",allowEdit:!1},render:function(){var a=this,b=this.options;this.storeTriggerValue="",this.storeValue=b.value;var c={type:"bi.time_popup",value:b.value,listeners:[{eventName:BI.TimePopup.BUTTON_CLEAR_EVENT_CHANGE,action:function(){a.setValue(),a.hidePopupView(),a.fireEvent(BI.TimeCombo.EVENT_CONFIRM)}},{eventName:BI.TimePopup.BUTTON_OK_EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.hidePopupView(),a.fireEvent(BI.TimeCombo.EVENT_CONFIRM)}},{eventName:BI.TimePopup.BUTTON_NOW_EVENT_CHANGE,action:function(){a._setNowTime()}}],ref:function(b){a.popup=b}};return{type:"bi.htape",items:[{type:"bi.absolute",items:[{el:{type:"bi.combo",container:b.container,toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:{type:"bi.time_trigger",allowEdit:b.allowEdit,format:b.format,value:b.value,ref:function(b){a.trigger=b},listeners:[{eventName:"EVENT_KEY_DOWN",action:function(){a.combo.isViewVisible()&&a.combo.hideView()}},{eventName:"EVENT_STOP",action:function(){a.combo.isViewVisible()||a.combo.showView()}},{eventName:"EVENT_FOCUS",action:function(){a.storeTriggerValue=a.trigger.getKey(),a.combo.isViewVisible()||a.combo.showView(),a.fireEvent("EVENT_FOCUS")}},{eventName:"EVENT_ERROR",action:function(){var b=BI.getDate();a.storeValue={hour:b.getHours(),minute:b.getMinutes(),second:b.getSeconds()},a.fireEvent("EVENT_ERROR")}},{eventName:"EVENT_VALID",action:function(){a.fireEvent("EVENT_VALID")}},{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}},{eventName:"EVENT_CONFIRM",action:function(){if(!a.combo.isViewVisible()){var b=a.storeTriggerValue,c=a.trigger.getKey();BI.isNotEmptyString(c)&&!BI.isEqual(c,b)?(a.storeValue=a.trigger.getValue(),a.setValue(a.trigger.getValue())):BI.isEmptyString(c)&&(a.storeValue=null,a.trigger.setValue()),a.fireEvent("EVENT_CONFIRM")}}}]},adjustLength:this.constants.comboAdjustHeight,popup:{el:c,width:this.constants.popupWidth,stopPropagation:!1},hideChecker:function(b){return 0===a.triggerBtn.element.find(b.target).length},listeners:[{eventName:BI.Combo.EVENT_BEFORE_POPUPVIEW,action:function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.TimeCombo.EVENT_BEFORE_POPUPVIEW)}}],ref:function(b){a.combo=b}},top:0,left:0,right:22,bottom:0},{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button time-font icon-size-16",width:22,height:22,listeners:[{eventName:BI.IconButton.EVENT_CHANGE,action:function(){a.combo.isViewVisible()||a.combo.showView()}}],ref:function(b){a.triggerBtn=b}},top:0,right:0}]}]}},setValue:function(a){this.storeValue=a,this.trigger.setValue(a)},getValue:function(){return this.storeValue},hidePopupView:function(){this.combo.hideView()},_setNowTime:function(){var a=BI.getDate(),b={hour:a.getHours(),minute:a.getMinutes(),second:a.getSeconds()};this.setValue(b),this.hidePopupView(),this.fireEvent(BI.TimeCombo.EVENT_CONFIRM)}}),BI.TimeCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.TimeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.TimeCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.time_combo",BI.TimeCombo)}(),!function(){BI.TimeTrigger=BI.inherit(BI.Trigger,{_const:{COMPARE_FORMAT:"%H:%M:%S",COMPLETE_COMPARE_FORMAT:"%Y-%M-%d %H:%M:%S",FORMAT_ARRAY:["%H:%M:%S","%I:%M:%S","%l:%M:%S","%k:%M:%S","%l:%M:%S %p","%l:%M:%S %P","%l:%M","%k:%M","%I:%M","%H:%M","%M:%S"],DEFAULT_DATE_STRING:"2000-01-01"},props:{extraCls:"bi-time-trigger",value:{},format:"",allowEdit:!1},render:function(){var a=this,b=this.options;return this.storeTriggerValue="",this.storeValue=b.value,{type:"bi.absolute",items:[{el:{type:"bi.sign_editor",height:b.height,validationChecker:function(b){return a._dateCheck(b)},quitChecker:function(){return!1},ref:function(b){a.editor=b},value:this._formatValue(b.value),hgap:4,allowBlank:!0,watermark:BI.i18nText("BI-Basic_Unrestricted"),title:BI.bind(this._getTitle,this),listeners:[{eventName:"EVENT_KEY_DOWN",action:function(){a.fireEvent("EVENT_KEY_DOWN")}},{eventName:"EVENT_FOCUS",action:function(){a.storeTriggerValue=a.getKey(),a.fireEvent("EVENT_FOCUS")}},{eventName:"EVENT_STOP",action:function(){a.fireEvent("EVENT_STOP")}},{eventName:"EVENT_VALID",action:function(){a.fireEvent("EVENT_VALID")}},{eventName:"EVENT_ERROR",action:function(){a.fireEvent("EVENT_ERROR")}},{eventName:"EVENT_CONFIRM",action:function(){var b=a.editor.getValue();if(BI.isNotNull(b)&&a.editor.setState(b),BI.isNotEmptyString(b)&&!BI.isEqual(a.storeTriggerValue,a.getKey())){var c=b.match(/\d+/g);a.storeValue={hour:0|c[0],minute:0|c[1],second:0|c[2]}}a.fireEvent("EVENT_CONFIRM")}},{eventName:"EVENT_START",action:function(){a.fireEvent("EVENT_START")}},{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}]},left:0,right:0,top:0,bottom:0},{el:{type:"bi.text",invisible:b.allowEdit,cls:"show-text",title:BI.bind(this._getTitle,this),hgap:4},left:0,right:0,top:0,bottom:0}]}},_dateCheck:function(a){var b=this._const;return BI.any(b.FORMAT_ARRAY,function(c,d){return BI.print(BI.parseDateTime(b.DEFAULT_DATE_STRING+" "+a,b.COMPLETE_COMPARE_FORMAT),d)===a})},_getTitle:function(){var a=this.storeValue||{},b=BI.getDate();return BI.print(BI.getDate(b.getFullYear(),0,1,a.hour,a.minute,a.second),this._getFormatString())},_getFormatString:function(){return this.options.format||this._const.COMPARE_FORMAT},_formatValue:function(a){var b=BI.getDate();return BI.isNotEmptyObject(a)?BI.print(BI.getDate(b.getFullYear(),b.getMonth(),b.getDay(),a.hour,a.minute,a.second),this._getFormatString()):BI.i18nText("BI-Basic_Unrestricted")},getKey:function(){return this.editor.getValue()},setValue:function(a){this.storeValue=a,this.editor.setValue(this._formatValue(a))},getValue:function(){return this.storeValue}}),BI.shortcut("bi.time_trigger",BI.TimeTrigger)}(),BI.DateInterval=BI.inherit(BI.Single,{constants:{height:24,width:24,lgap:15,offset:0,timeErrorCls:"time-error"},_defaultConfig:function(){var a=BI.DateInterval.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-date-interval",minDate:"1900-01-01",maxDate:"2099-12-31"})},_init:function(){var a=this,b=this.options;BI.DateInterval.superclass._init.apply(this,arguments),b.value=b.value||{},this.left=this._createCombo(b.value.start),this.right=this._createCombo(b.value.end),this.label=BI.createWidget({type:"bi.label",height:this.constants.height,width:this.constants.width,text:"-"}),BI.createWidget({element:a,type:"bi.center",height:this.constants.height,items:[{type:"bi.absolute",items:[{el:a.left,left:this.constants.offset,right:this.constants.width/2,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:this.constants.width/2,right:this.constants.offset,top:0,bottom:0}]}]}),BI.createWidget({type:"bi.horizontal_auto",element:this,items:[a.label]})},_createCombo:function(a){var b=this,c=this.options,d=BI.createWidget({type:"bi.dynamic_date_combo",behaviors:c.behaviors,value:a});return d.on(BI.DynamicDateCombo.EVENT_ERROR,function(){b._clearTitle(),BI.Bubbles.hide("error"),b.element.removeClass(b.constants.timeErrorCls),b.fireEvent(BI.DateInterval.EVENT_ERROR)}),d.on(BI.DynamicDateCombo.EVENT_VALID,function(){BI.Bubbles.hide("error");var a=b.left.getKey(),c=b.right.getKey();b._check(a,c)&&b._compare(a,c)?(b._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),b.element.addClass(b.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),b,{offsetStyle:"center"}),b.fireEvent(BI.DateInterval.EVENT_ERROR)):(b._clearTitle(),b.element.removeClass(b.constants.timeErrorCls))}),d.on(BI.DynamicDateCombo.EVENT_FOCUS,function(){BI.Bubbles.hide("error");var a=b.left.getKey(),c=b.right.getKey();b._check(a,c)&&b._compare(a,c)?(b._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),b.element.addClass(b.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),b,{offsetStyle:"center"}),b.fireEvent(BI.DateInterval.EVENT_ERROR)):(b._clearTitle(),b.element.removeClass(b.constants.timeErrorCls))}),d.on(BI.DynamicDateCombo.EVENT_BEFORE_POPUPVIEW,function(){b.left.hidePopupView(),b.right.hidePopupView()}),d.on(BI.DynamicDateCombo.EVENT_CONFIRM,function(){BI.Bubbles.hide("error");var a=b.left.getKey(),c=b.right.getKey();b._check(a,c)&&b._compare(a,c)?(b._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),b.element.addClass(b.constants.timeErrorCls),b.fireEvent(BI.DateInterval.EVENT_ERROR)):(b._clearTitle(),b.element.removeClass(b.constants.timeErrorCls),b.fireEvent(BI.DateInterval.EVENT_CHANGE))}),d},_dateCheck:function(a){return BI.print(BI.parseDateTime(a,"%Y-%x-%d"),"%Y-%x-%d")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%d"),"%Y-%X-%d")===a||BI.print(BI.parseDateTime(a,"%Y-%x-%e"),"%Y-%x-%e")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%e"),"%Y-%X-%e")===a},_checkVoid:function(a){var b=this.options;return!BI.checkDateVoid(a.year,a.month,a.day,b.minDate,b.maxDate)[0]},_check:function(a,b){var c=a.match(/\d+/g),d=b.match(/\d+/g);return this._dateCheck(a)&&BI.checkDateLegal(a)&&this._checkVoid({year:c[0],month:c[1],day:c[2]})&&this._dateCheck(b)&&BI.checkDateLegal(b)&&this._checkVoid({year:d[0],month:d[1],day:d[2]})},_compare:function(a,b){return a=BI.print(BI.parseDateTime(a,"%Y-%X-%d"),"%Y-%X-%d"),b=BI.print(BI.parseDateTime(b,"%Y-%X-%d"),"%Y-%X-%d"),BI.isNotNull(a)&&BI.isNotNull(b)&&a>b},_setTitle:function(a){this.left.setTitle(a),this.right.setTitle(a),this.label.setTitle(a)},_clearTitle:function(){this.left.setTitle(""),this.right.setTitle(""),this.label.setTitle("")},setValue:function(a){a=a||{},this.left.setValue(a.start),this.right.setValue(a.end)},getValue:function(){return{start:this.left.getValue(),end:this.right.getValue()}}}),BI.DateInterval.EVENT_VALID="EVENT_VALID",BI.DateInterval.EVENT_ERROR="EVENT_ERROR",BI.DateInterval.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.date_interval",BI.DateInterval),BI.TimeInterval=BI.inherit(BI.Single,{constants:{height:24,width:24,lgap:15,offset:0,timeErrorCls:"time-error"},_defaultConfig:function(){var a=BI.TimeInterval.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-time-interval",minDate:"1900-01-01",maxDate:"2099-12-31"})},_init:function(){var a=this,b=this.options;BI.TimeInterval.superclass._init.apply(this,arguments),b.value=b.value||{},this.left=this._createCombo(b.value.start),this.right=this._createCombo(b.value.end),this.label=BI.createWidget({type:"bi.label",height:this.constants.height,width:this.constants.width,text:"-"}),BI.createWidget({element:a,type:"bi.center",height:this.constants.height,items:[{type:"bi.absolute",items:[{el:a.left,left:this.constants.offset,right:this.constants.width/2,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:this.constants.width/2,right:this.constants.offset,top:0,bottom:0}]}]}),BI.createWidget({type:"bi.horizontal_auto",element:this,items:[a.label]})},_createCombo:function(a){var b=this,c=this.options,d=BI.createWidget({type:"bi.dynamic_date_time_combo",behaviors:c.behaviors,value:a});return d.on(BI.DynamicDateTimeCombo.EVENT_ERROR,function(){b._clearTitle(),BI.Bubbles.hide("error"),b.element.removeClass(b.constants.timeErrorCls),b.fireEvent(BI.TimeInterval.EVENT_ERROR)}),d.on(BI.DynamicDateTimeCombo.EVENT_VALID,function(){BI.Bubbles.hide("error");var a=b.left.getKey(),c=b.right.getKey();b.left.isValid()&&b.right.isValid()&&b._check(a,c)&&b._compare(a,c)?(b._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),b.element.addClass(b.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),b,{offsetStyle:"center"}),b.fireEvent(BI.TimeInterval.EVENT_ERROR)):(b._clearTitle(),b.element.removeClass(b.constants.timeErrorCls))}),d.on(BI.DynamicDateTimeCombo.EVENT_FOCUS,function(){BI.Bubbles.hide("error");var a=b.left.getKey(),c=b.right.getKey();b.left.isValid()&&b.right.isValid()&&b._check(a,c)&&b._compare(a,c)?(b._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),b.element.addClass(b.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),b,{offsetStyle:"center"}),b.fireEvent(BI.TimeInterval.EVENT_ERROR)):(b._clearTitle(),b.element.removeClass(b.constants.timeErrorCls))}),d.on(BI.DynamicDateTimeCombo.EVENT_BEFORE_POPUPVIEW,function(){b.left.hidePopupView(),b.right.hidePopupView()}),d.on(BI.DynamicDateTimeCombo.EVENT_CONFIRM,function(){BI.Bubbles.hide("error");var a=b.left.getKey(),c=b.right.getKey();b.left.isValid()&&b.right.isValid()&&b._check(a,c)&&b._compare(a,c)?(b._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),b.element.addClass(b.constants.timeErrorCls),b.fireEvent(BI.TimeInterval.EVENT_ERROR)):(b._clearTitle(),b.element.removeClass(b.constants.timeErrorCls),b.fireEvent(BI.TimeInterval.EVENT_CHANGE))}),d},_dateCheck:function(a){return BI.print(BI.parseDateTime(a,"%Y-%x-%d %H:%M:%S"),"%Y-%x-%d %H:%M:%S")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%d %H:%M:%S"),"%Y-%X-%d %H:%M:%S")===a||BI.print(BI.parseDateTime(a,"%Y-%x-%e %H:%M:%S"),"%Y-%x-%e %H:%M:%S")===a||BI.print(BI.parseDateTime(a,"%Y-%X-%e %H:%M:%S"),"%Y-%X-%e %H:%M:%S")===a},_checkVoid:function(a){var b=this.options;return!BI.checkDateVoid(a.year,a.month,a.day,b.minDate,b.maxDate)[0]},_check:function(a,b){var c=a.match(/\d+/g),d=b.match(/\d+/g);return this._dateCheck(a)&&BI.checkDateLegal(a)&&this._checkVoid({year:c[0],month:c[1],day:c[2]})&&this._dateCheck(b)&&BI.checkDateLegal(b)&&this._checkVoid({year:d[0],month:d[1],day:d[2]})},_compare:function(a,b){return a=BI.print(BI.parseDateTime(a,"%Y-%X-%d %H:%M:%S"),"%Y-%X-%d %H:%M:%S"),b=BI.print(BI.parseDateTime(b,"%Y-%X-%d %H:%M:%S"),"%Y-%X-%d %H:%M:%S"),BI.isNotNull(a)&&BI.isNotNull(b)&&a>b},_setTitle:function(a){this.left.setTitle(a),this.right.setTitle(a),this.label.setTitle(a)},_clearTitle:function(){this.left.setTitle(""),this.right.setTitle(""),this.label.setTitle("")},setValue:function(a){a=a||{},this.left.setValue(a.start),this.right.setValue(a.end)},getValue:function(){return{start:this.left.getValue(),end:this.right.getValue()}}}),BI.TimeInterval.EVENT_VALID="EVENT_VALID",BI.TimeInterval.EVENT_ERROR="EVENT_ERROR",BI.TimeInterval.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.time_interval",BI.TimeInterval),!function(){BI.TimePeriods=BI.inherit(BI.Single,{constants:{height:24,width:24,lgap:15,offset:0},props:{extraCls:"bi-time-interval",value:{}},render:function(){var a=this,b=this.options;return{type:"bi.absolute",height:this.constants.height,items:[{el:{type:"bi.horizontal_auto",items:[{type:"bi.label",height:this.constants.height,width:this.constants.width,text:"-",ref:function(b){a.label=b}}]},top:0,left:0,right:0,bottom:0},{el:{type:"bi.center",height:this.constants.height,items:[{type:"bi.absolute",items:[{el:BI.extend({ref:function(b){a.left=b}},this._createCombo(b.value.start)),left:this.constants.offset,right:this.constants.width/2,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:BI.extend({ref:function(b){a.right=b}},this._createCombo(b.value.end)),left:this.constants.width/2,right:this.constants.offset,top:0,bottom:0}]}]},top:0,left:0,right:0,bottom:0}]}},_createCombo:function(a){var b=this;return{type:"bi.time_combo",value:a,listeners:[{eventName:BI.TimeCombo.EVENT_BEFORE_POPUPVIEW,action:function(){b.left.hidePopupView(),b.right.hidePopupView()}},{eventName:BI.TimeCombo.EVENT_CHANGE,action:function(){b.fireEvent(BI.TimePeriods.EVENT_CHANGE)}},{eventName:BI.TimeCombo.EVENT_CONFIRM,action:function(){b.fireEvent(BI.TimePeriods.EVENT_CONFIRM)}}]}},setValue:function(a){a=a||{},this.left.setValue(a.start),this.right.setValue(a.end)},getValue:function(){return{start:this.left.getValue(),end:this.right.getValue()}}}),BI.TimePeriods.EVENT_CONFIRM="EVENT_CONFIRM",BI.TimePeriods.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.time_periods",BI.TimePeriods)}(),BI.DynamicYearCard=BI.inherit(BI.Widget,{props:{baseCls:"bi-year-card"},render:function(){var a=this;return{type:"bi.vertical",items:[{type:"bi.label",text:BI.i18nText("BI-Multi_Date_Relative_Current_Time"),textAlign:"left",height:24},{type:"bi.dynamic_date_param_item",ref:function(){a.item=this},listeners:[{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}]}],vgap:10,hgap:10}},_createValue:function(a,b){return{dateType:a,value:Math.abs(b),offset:b>0?1:0}},setValue:function(a){a=a||{year:0},this.item.setValue(this._createValue(BI.DynamicDateCard.TYPE.YEAR,a.year))},getValue:function(){var a=this.item.getValue();return{year:0===a.offset?-a.value:a.value}}}),BI.DynamicYearCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.dynamic_year_card",BI.DynamicYearCard),BI.StaticYearCard=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.StaticYearCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-card",behaviors:{},min:"1900-01-01",max:"2099-12-31"})},_createYearCalendar:function(a){var b=this.options,c=this._year,d=BI.createWidget({type:"bi.year_calendar",behaviors:b.behaviors,min:b.min,max:b.max,logic:{dynamic:!0},year:c+12*a});return d.setValue(this._year),d},_init:function(){BI.StaticYearCard.superclass._init.apply(this,arguments);var a=this,b=this.options;this.selectedYear=this._year=BI.getDate().getFullYear(),this.backBtn=BI.createWidget({type:"bi.icon_button",cls:"pre-page-h-font",width:25,height:25,value:-1,listeners:[{eventName:BI.IconButton.EVENT_CHANGE,action:function(){a.navigation.setSelect(a.navigation.getSelect()-1),a._checkLeftValid(),a._checkRightValid()}}]}),this.preBtn=BI.createWidget({type:"bi.icon_button",cls:"next-page-h-font",width:25,height:25,value:1,listeners:[{eventName:BI.IconButton.EVENT_CHANGE,action:function(){a.navigation.setSelect(a.navigation.getSelect()+1),a._checkLeftValid(),a._checkRightValid()}}]}),this.navigation=BI.createWidget({type:"bi.navigation",direction:"top",element:this,single:!0,logic:{dynamic:!0},tab:{type:"bi.htape",cls:"bi-split-top bi-split-bottom",height:30,items:[{el:{type:"bi.center_adapt",items:[a.backBtn]},width:25},{type:"bi.layout"},{el:{type:"bi.center_adapt",items:[a.preBtn]},width:25}]},cardCreator:BI.bind(this._createYearCalendar,this),afterCardShow:function(){this.setValue(a.selectedYear);var b=this.getSelectedCard();a.backBtn.setEnable(!b.isFrontYear()),a.preBtn.setEnable(!b.isFinalYear())}}),this.navigation.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedYear=this.getValue(),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.fireEvent(BI.StaticYearCard.EVENT_CHANGE,a.selectedYear)}),BI.isKey(b.value)&&this.setValue(b.value)},_checkLeftValid:function(){var a=(this.options,!0);return this.backBtn.setEnable(a),a},_checkRightValid:function(){var a=(this.options,!0);return this.preBtn.setEnable(a),a},getValue:function(){return{year:this.selectedYear}},setValue:function(a){var b=this.options;a=a||{};var c=a.year;BI.checkDateVoid(c,1,1,b.min,b.max)[0]?(c=BI.getDate().getFullYear(),this.selectedYear="",this.navigation.setSelect(BI.YearCalendar.getPageByYear(c)),this.navigation.setValue("")):(this.selectedYear=BI.parseInt(c),this.navigation.setSelect(BI.YearCalendar.getPageByYear(c)),this.navigation.setValue(this.selectedYear)),this._checkLeftValid(),this._checkRightValid()}}),BI.StaticYearCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.static_year_card",BI.StaticYearCard),BI.DynamicYearCombo=BI.inherit(BI.Widget,{props:{baseCls:"bi-year-combo bi-border bi-focus-shadow",behaviors:{},min:"1900-01-01",max:"2099-12-31",height:22},_init:function(){BI.DynamicYearCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue=b.value,this.trigger=BI.createWidget({type:"bi.dynamic_year_trigger",min:b.min,max:b.max,height:b.height,value:b.value||""}),this.trigger.on(BI.DynamicYearTrigger.EVENT_FOCUS,function(){a.storeTriggerValue=this.getKey()}),this.trigger.on(BI.DynamicYearTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DynamicYearTrigger.EVENT_STOP,function(){a.combo.showView()}),this.trigger.on(BI.DynamicYearTrigger.EVENT_ERROR,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DynamicYearTrigger.EVENT_CONFIRM,function(){ -a.combo.isViewVisible()||(this.getKey()&&this.getKey()!==a.storeTriggerValue?(a.storeValue=a.trigger.getValue(),a.setValue(a.storeValue)):this.getKey()||(a.storeValue=null,a.setValue()),a._checkDynamicValue(a.storeValue),a.fireEvent(BI.DynamicYearCombo.EVENT_CONFIRM))}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,stopPropagation:!1,el:{type:"bi.dynamic_year_popup",ref:function(){a.popup=this},listeners:[{eventName:BI.DynamicYearPopup.EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicYearCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearPopup.BUTTON_CLEAR_EVENT_CHANGE,action:function(){a.setValue(),a.combo.hideView(),a.fireEvent(BI.DynamicYearCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearPopup.BUTTON_lABEL_EVENT_CHANGE,action:function(){var b=BI.getDate();a.setValue({type:BI.DynamicYearCombo.Static,value:{year:b.getFullYear()}}),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearPopup.BUTTON_OK_EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}}],behaviors:b.behaviors,min:b.min,max:b.max},value:b.value||""}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DynamicYearCombo.EVENT_BEFORE_POPUPVIEW)}),BI.createWidget({type:"bi.htape",element:this,ref:function(){a.comboWrapper=this},items:[{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button date-change-h-font",width:24,height:24,ref:function(){a.changeIcon=this}},width:24},this.combo]}),this._checkDynamicValue(b.value)},_checkDynamicValue:function(a){var b=null;switch(BI.isNotNull(a)&&(b=a.type),b){case BI.DynamicYearCombo.Dynamic:this.changeIcon.setVisible(!0),this.comboWrapper.attr("items")[0].width=24,this.comboWrapper.resize();break;default:this.comboWrapper.attr("items")[0].width=0,this.comboWrapper.resize(),this.changeIcon.setVisible(!1)}},setValue:function(a){this.storeValue=a,this.trigger.setValue(a),this._checkDynamicValue(a)},getValue:function(){return this.storeValue}}),BI.DynamicYearCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicYearCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.dynamic_year_combo",BI.DynamicYearCombo),BI.extend(BI.DynamicYearCombo,{Static:1,Dynamic:2}),BI.DynamicYearPopup=BI.inherit(BI.Widget,{constants:{tabHeight:30,buttonHeight:24},props:{baseCls:"bi-year-popup",behaviors:{},min:"1900-01-01",max:"2099-12-31",width:180,height:240},render:function(){var a=this,b=(this.options,this.constants);return this.storeValue={type:BI.DynamicYearCombo.Static},{type:"bi.vtape",items:[{el:this._getTabJson()},{el:{type:"bi.grid",items:[[{type:"bi.text_button",cls:"bi-split-top bi-high-light",textHeight:b.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_Clear"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearPopup.BUTTON_CLEAR_EVENT_CHANGE)}}]},{type:"bi.text_button",textHeight:b.buttonHeight-1,cls:"bi-split-left bi-split-right bi-high-light bi-split-top",shadow:!0,text:BI.i18nText("BI-Basic_Current_Year"),ref:function(){a.textButton=this},listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearPopup.BUTTON_lABEL_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-top bi-high-light",textHeight:b.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_OK"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearPopup.BUTTON_OK_EVENT_CHANGE)}}]}]]},height:24}]}},_setInnerValue:function(){if(this.dateTab.getSelect()===BI.DynamicDateCombo.Static)this.textButton.setValue(BI.i18nText("BI-Basic_Current_Year")),this.textButton.setEnable(!0);else{var a=BI.DynamicDateHelper.getCalculation(this.dynamicPane.getValue());a=BI.print(a,"%Y"),this.textButton.setValue(a),this.textButton.setEnable(!1)}},_getTabJson:function(){var a=this,b=this.options;return{type:"bi.tab",ref:function(){a.dateTab=this},tab:{type:"bi.linear_segment",cls:"bi-split-bottom",height:this.constants.tabHeight,items:BI.createItems([{text:BI.i18nText("BI-Basic_Year_Fen"),value:BI.DynamicYearCombo.Static},{text:BI.i18nText("BI-Basic_Dynamic_Title"),value:BI.DynamicYearCombo.Dynamic}],{textAlign:"center"})},cardCreator:function(c){switch(c){case BI.DynamicYearCombo.Dynamic:return{type:"bi.dynamic_year_card",listeners:[{eventName:"EVENT_CHANGE",action:function(){a._setInnerValue(a.year,c)}}],ref:function(){a.dynamicPane=this}};case BI.DynamicYearCombo.Static:default:return{type:"bi.static_year_card",behaviors:b.behaviors,min:a.options.min,max:a.options.max,listeners:[{eventName:BI.StaticYearCard.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearPopup.EVENT_CHANGE)}}],ref:function(){a.year=this}}}},listeners:[{eventName:BI.Tab.EVENT_CHANGE,action:function(){var b=a.dateTab.getSelect();switch(b){case BI.DynamicYearCombo.Static:var c=BI.DynamicDateHelper.getCalculation(a.dynamicPane.getValue());a.year.setValue({year:c.getFullYear()}),a._setInnerValue();break;case BI.DynamicYearCombo.Dynamic:default:a.storeValue&&a.storeValue.type===BI.DynamicYearCombo.Dynamic?a.dynamicPane.setValue(a.storeValue.value):a.dynamicPane.setValue({year:0}),a._setInnerValue()}}}]}},setValue:function(a){this.storeValue=a;var b,c,d=this;switch(a=a||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value||a,this.dateTab.setSelect(b),b){case BI.DynamicDateCombo.Dynamic:this.dynamicPane.setValue(c),d._setInnerValue();break;case BI.DynamicDateCombo.Static:default:this.year.setValue(c),this.textButton.setValue(BI.i18nText("BI-Basic_Current_Year")),this.textButton.setEnable(!0)}},getValue:function(){return{type:this.dateTab.getSelect(),value:this.dateTab.getValue()}}}),BI.DynamicYearPopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.DynamicYearPopup.BUTTON_lABEL_EVENT_CHANGE="BUTTON_lABEL_EVENT_CHANGE",BI.DynamicYearPopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DynamicYearPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.dynamic_year_popup",BI.DynamicYearPopup),BI.DynamicYearTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2},_defaultConfig:function(){return BI.extend(BI.DynamicYearTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-year-trigger",min:"1900-01-01",max:"2099-12-31",height:24})},beforeInit:function(a){var b=this.options;b.title=BI.bind(this._titleCreator,this),a()},_init:function(){BI.DynamicYearTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(a){return""===a||BI.isPositiveInteger(a)&&!BI.checkDateVoid(a,1,1,b.min,b.max)[0]},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,watermark:BI.i18nText("BI-Basic_Unrestricted"),allowBlank:!0,errorText:function(){return BI.i18nText("BI-Year_Trigger_Invalid_Text")}}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.DynamicYearTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.DynamicYearTrigger.EVENT_STOP)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&a.editor.setValue(b),BI.isNotEmptyString(b)&&(a.storeValue={type:BI.DynamicDateCombo.Static,value:{year:b}}),a.fireEvent(BI.DynamicYearTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.DynamicYearTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_ERROR,function(){a.fireEvent(BI.DynamicYearTrigger.EVENT_ERROR)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",baseCls:"bi-trigger-year-text",text:BI.i18nText("BI-Multi_Date_Year"),width:b.height},width:b.height},{el:{type:"bi.trigger_icon_button",width:b.height},width:b.height}]}),this.setValue(b.value)},_getText:function(a){var b="";return BI.isNotNull(a.year)&&0!==BI.parseInt(a.year)&&(b+=Math.abs(a.year)+BI.i18nText("BI-Basic_Year")+(a.year<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),b},_setInnerValue:function(a,b){var c=BI.print(a,"%Y");this.editor.setState(c),this.editor.setValue(c)},_titleCreator:function(){var a=this.storeValue||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value;if(!this.editor.isValid())return"";switch(b){case BI.DynamicDateCombo.Dynamic:var d=this._getText(c),e=BI.getDate();e=BI.DynamicDateHelper.getCalculation(c);var f=BI.print(e,"%Y");return BI.isEmptyString(d)?f:d+":"+f;case BI.DynamicDateCombo.Static:default:return c=c||{},c.year}},setValue:function(a){var b,c,d=BI.getDate();switch(this.storeValue=a,BI.isNotNull(a)&&(b=a.type||BI.DynamicDateCombo.Static,c=a.value||a),b){case BI.DynamicDateCombo.Dynamic:var e=this._getText(c);d=BI.DynamicDateHelper.getCalculation(c),this._setInnerValue(d,e);break;case BI.DynamicDateCombo.Static:default:c=c||{},this.editor.setState(c.year),this.editor.setValue(c.year)}},getValue:function(){return this.storeValue},getKey:function(){return 0|this.editor.getValue()}}),BI.DynamicYearTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicYearTrigger.EVENT_ERROR="EVENT_ERROR",BI.DynamicYearTrigger.EVENT_START="EVENT_START",BI.DynamicYearTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicYearTrigger.EVENT_STOP="EVENT_STOP",BI.shortcut("bi.dynamic_year_trigger",BI.DynamicYearTrigger),BI.DynamicYearMonthCard=BI.inherit(BI.Widget,{props:{baseCls:"bi-year-month-card"},render:function(){var a=this;return{type:"bi.vertical",items:[{type:"bi.label",text:BI.i18nText("BI-Multi_Date_Relative_Current_Time"),textAlign:"left",height:24},{type:"bi.dynamic_date_param_item",ref:function(){a.year=this},listeners:[{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}]},{type:"bi.dynamic_date_param_item",dateType:BI.DynamicDateCard.TYPE.MONTH,ref:function(){a.month=this},listeners:[{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}]}],vgap:10,hgap:10}},_createValue:function(a,b){return{dateType:a,value:Math.abs(b),offset:b>0?1:0}},setValue:function(a){a=a||{year:0,month:0},this.year.setValue(this._createValue(BI.DynamicDateCard.TYPE.YEAR,a.year)),this.month.setValue(this._createValue(BI.DynamicDateCard.TYPE.MONTH,a.month))},getValue:function(){var a=this.year.getValue(),b=this.month.getValue();return{year:0===a.offset?-a.value:a.value,month:0===b.offset?-b.value:b.value}}}),BI.DynamicYearMonthCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.dynamic_year_month_card",BI.DynamicYearMonthCard),BI.StaticYearMonthCard=BI.inherit(BI.Widget,{props:{baseCls:"bi-static-year-month-card",behaviors:{}},_createMonths:function(){var a=[1,7,2,8,3,9,4,10,5,11,6,12],b=[];return b.push(a.slice(0,2)),b.push(a.slice(2,4)),b.push(a.slice(4,6)),b.push(a.slice(6,8)),b.push(a.slice(8,10)),b.push(a.slice(10,12)),BI.map(b,function(a,b){return BI.map(b,function(a,b){return{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"center",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:23,width:38,value:b,text:b}})})},render:function(){var a=this,b=this.options;return{type:"bi.vertical",items:[{type:"bi.year_picker",ref:function(){a.yearPicker=this},behaviors:b.behaviors,height:30,listeners:[{eventName:BI.YearPicker.EVENT_CHANGE,action:function(){var b=this.getValue();a.setValue({year:b,month:a.selectedMonth})}}]},{type:"bi.button_group",cls:"bi-split-top",behaviors:b.behaviors,ref:function(){a.month=this},items:this._createMonths(),layouts:[BI.LogicFactory.createLogic("table",BI.extend({dynamic:!0},{columns:2,rows:6,columnSize:[.5,.5],rowSize:25})),{type:"bi.center_adapt",vgap:1,hgap:2}],value:b.value,listeners:[{eventName:BI.ButtonGroup.EVENT_CHANGE,action:function(){a.selectedYear=a.yearPicker.getValue(),a.selectedMonth=this.getValue()[0],a.fireEvent(BI.StaticYearMonthCard.EVENT_CHANGE)}}]}]}},getValue:function(){return{year:this.selectedYear,month:this.selectedMonth}},setValue:function(a){var b=this.options,c={};if(c.year=a.year||0,c.month=a.month||0,0===c.year||0===c.month||BI.checkDateVoid(c.year,c.month,1,b.min,b.max)[0]){var d=c.year||BI.getDate().getFullYear();this.selectedYear=d,this.selectedMonth="",this.yearPicker.setValue(d),this.month.setValue()}else this.selectedYear=BI.parseInt(c.year),this.selectedMonth=BI.parseInt(c.month),this.yearPicker.setValue(this.selectedYear),this.month.setValue(this.selectedMonth)}}),BI.StaticYearMonthCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.static_year_month_card",BI.StaticYearMonthCard),BI.DynamicYearMonthCombo=BI.inherit(BI.Single,{props:{baseCls:"bi-year-month-combo bi-border bi-focus-shadow",behaviors:{},min:"1900-01-01",max:"2099-12-31",height:22},_init:function(){BI.DynamicYearMonthCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue=b.value,this.storeTriggerValue="",this.trigger=BI.createWidget({type:"bi.dynamic_year_month_trigger",min:b.min,max:b.max,height:b.height,value:b.value||""}),this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_KEY_DOWN,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_STOP,function(){a.combo.showView()}),this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR,function(){a.combo.isViewVisible()&&a.combo.hideView(),a.fireEvent(BI.DynamicYearMonthCombo.EVENT_ERROR)}),this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_VALID,function(){a.fireEvent(BI.DynamicYearMonthCombo.EVENT_VALID)}),this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM,function(){var b=a.storeTriggerValue,c=a.trigger.getKey();BI.isNotEmptyString(c)&&!BI.isEqual(c,b)&&(a.storeValue=a.trigger.getValue(),a.setValue(a.trigger.getValue())),a._checkDynamicValue(a.storeValue),a.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM)}),this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_FOCUS,function(){a.storeTriggerValue=a.trigger.getKey(),a.fireEvent(BI.DynamicYearMonthCombo.EVENT_FOCUS)}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:100,stopPropagation:!1,el:{type:"bi.dynamic_year_month_popup",ref:function(){a.popup=this},listeners:[{eventName:BI.DynamicYearMonthPopup.EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearMonthPopup.BUTTON_CLEAR_EVENT_CHANGE,action:function(){a.setValue(),a.combo.hideView(),a.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearMonthPopup.BUTTON_lABEL_EVENT_CHANGE,action:function(){var b=BI.getDate();a.setValue({type:BI.DynamicYearMonthCombo.Static,value:{year:b.getFullYear(),month:b.getMonth()+1}}),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearMonthPopup.BUTTON_OK_EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}}],behaviors:b.behaviors,min:b.min,max:b.max},value:b.value||""}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW)}),BI.createWidget({type:"bi.htape",element:this,ref:function(){a.comboWrapper=this},items:[{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button date-change-h-font",width:24,height:24,ref:function(){a.changeIcon=this}},width:24},this.combo]}),this._checkDynamicValue(b.value)},_checkDynamicValue:function(a){var b=null;switch(BI.isNotNull(a)&&(b=a.type),b){case BI.DynamicYearMonthCombo.Dynamic:this.changeIcon.setVisible(!0),this.comboWrapper.attr("items")[0].width=24,this.comboWrapper.resize();break;default:this.comboWrapper.attr("items")[0].width=0,this.comboWrapper.resize(),this.changeIcon.setVisible(!1)}},hideView:function(){this.combo.hideView()},setValue:function(a){this.storeValue=a,this.trigger.setValue(a),this._checkDynamicValue(a)},getValue:function(){return this.storeValue},getKey:function(){return this.trigger.getKey()},isValid:function(){return this.trigger.isValid()}}),BI.DynamicYearMonthCombo.EVENT_ERROR="EVENT_ERROR",BI.DynamicYearMonthCombo.EVENT_VALID="EVENT_VALID",BI.DynamicYearMonthCombo.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicYearMonthCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.dynamic_year_month_combo",BI.DynamicYearMonthCombo),BI.extend(BI.DynamicYearMonthCombo,{Static:1,Dynamic:2}),BI.DynamicYearMonthPopup=BI.inherit(BI.Widget,{constants:{tabHeight:30,buttonHeight:24},props:{baseCls:"bi-year-month-popup",behaviors:{},min:"1900-01-01",max:"2099-12-31",width:180,height:240},render:function(){var a=this,b=(this.options,this.constants);return this.storeValue={type:BI.DynamicYearMonthCombo.Static},{type:"bi.vtape",items:[{el:this._getTabJson()},{el:{type:"bi.grid",items:[[{type:"bi.text_button",cls:"bi-split-top bi-high-light",textHeight:b.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_Clear"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearMonthPopup.BUTTON_CLEAR_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-left bi-split-right bi-high-light bi-split-top",textHeight:b.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_Current_Month"),ref:function(){a.textButton=this},listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearMonthPopup.BUTTON_lABEL_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-top bi-high-light",textHeight:b.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_OK"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearMonthPopup.BUTTON_OK_EVENT_CHANGE)}}]}]]},height:24}]}},_setInnerValue:function(){if(this.dateTab.getSelect()===BI.DynamicDateCombo.Static)this.textButton.setValue(BI.i18nText("BI-Basic_Current_Month")),this.textButton.setEnable(!0);else{var a=BI.DynamicDateHelper.getCalculation(this.dynamicPane.getValue());a=BI.print(a,"%Y-%x"),this.textButton.setValue(a),this.textButton.setEnable(!1)}},_getTabJson:function(){var a=this,b=this.options;return{type:"bi.tab",ref:function(){a.dateTab=this},tab:{type:"bi.linear_segment",cls:"bi-split-bottom",height:this.constants.tabHeight,items:BI.createItems([{text:BI.i18nText("BI-Basic_Year_Month"),value:BI.DynamicYearCombo.Static},{text:BI.i18nText("BI-Basic_Dynamic_Title"),value:BI.DynamicYearCombo.Dynamic}],{textAlign:"center"})},cardCreator:function(c){switch(c){case BI.DynamicYearCombo.Dynamic:return{type:"bi.dynamic_year_month_card",listeners:[{eventName:"EVENT_CHANGE",action:function(){a._setInnerValue(a.year,c)}}],ref:function(){a.dynamicPane=this}};case BI.DynamicYearCombo.Static:default:return{type:"bi.static_year_month_card",behaviors:b.behaviors,min:a.options.min,max:a.options.max,listeners:[{eventName:BI.StaticYearMonthCard.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearMonthPopup.EVENT_CHANGE)}}],ref:function(){a.year=this}}}},listeners:[{eventName:BI.Tab.EVENT_CHANGE,action:function(){var b=a.dateTab.getSelect();switch(b){case BI.DynamicYearCombo.Static:var c=BI.DynamicDateHelper.getCalculation(a.dynamicPane.getValue());a.year.setValue({year:c.getFullYear(),month:c.getMonth()+1}),a._setInnerValue();break;case BI.DynamicYearCombo.Dynamic:default:a.storeValue&&a.storeValue.type===BI.DynamicYearCombo.Dynamic?a.dynamicPane.setValue(a.storeValue.value):a.dynamicPane.setValue({year:0}),a._setInnerValue()}}}]}},setValue:function(a){this.storeValue=a;var b,c,d=this;switch(a=a||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value||a,this.dateTab.setSelect(b),b){case BI.DynamicDateCombo.Dynamic:this.dynamicPane.setValue(c),d._setInnerValue();break;case BI.DynamicDateCombo.Static:default:this.year.setValue(c),this.textButton.setValue(BI.i18nText("BI-Basic_Current_Month")),this.textButton.setEnable(!0)}},getValue:function(){return{type:this.dateTab.getSelect(),value:this.dateTab.getValue()}}}),BI.DynamicYearMonthPopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.DynamicYearMonthPopup.BUTTON_lABEL_EVENT_CHANGE="BUTTON_lABEL_EVENT_CHANGE",BI.DynamicYearMonthPopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DynamicYearMonthPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.dynamic_year_month_popup",BI.DynamicYearMonthPopup),BI.DynamicYearMonthTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2},props:{extraCls:"bi-year-month-trigger",min:"1900-01-01",max:"2099-12-31",height:22},beforeInit:function(a){var b=this.options;b.title=BI.bind(this._titleCreator,this),a()},_init:function(){BI.DynamicYearMonthTrigger.superclass._init.apply(this,arguments);var a=this.options;this.yearEditor=this._createEditor(!0),this.monthEditor=this._createEditor(!1),BI.createWidget({element:this,type:"bi.htape",items:[{type:"bi.center",items:[{type:"bi.htape",items:[this.yearEditor,{el:{type:"bi.text_button",text:BI.i18nText("BI-Multi_Date_Year"),width:a.height},width:a.height}]},{type:"bi.htape",items:[this.monthEditor,{el:{type:"bi.text_button",text:BI.i18nText("BI-Multi_Date_Month"),width:a.height},width:a.height}]}]},{el:{type:"bi.trigger_icon_button",width:a.height},width:a.height}]}),this.setValue(a.value)},_createEditor:function(a){var b=this,c=this.options,d=this._const,e=BI.createWidget({type:"bi.sign_editor",height:c.height,validationChecker:function(b){return a?""===b||BI.isPositiveInteger(b)&&!BI.checkDateVoid(b,1,1,c.min,c.max)[0]:""===b||BI.isPositiveInteger(b)&&b>=1&&b<=12&&!BI.checkDateVoid(BI.getDate().getFullYear(),b,1,c.min,c.max)[0]},quitChecker:function(){return!1},watermark:BI.i18nText("BI-Basic_Unrestricted"),errorText:function(a){return BI.i18nText("BI-Year_Trigger_Invalid_Text")},hgap:d.hgap,vgap:d.vgap,allowBlank:!0});return e.on(BI.SignEditor.EVENT_KEY_DOWN,function(){b.fireEvent(BI.DynamicYearMonthTrigger.EVENT_KEY_DOWN)}),e.on(BI.SignEditor.EVENT_FOCUS,function(){b.fireEvent(BI.DynamicYearMonthTrigger.EVENT_FOCUS)}),e.on(BI.SignEditor.EVENT_STOP,function(){b.fireEvent(BI.DynamicYearMonthTrigger.EVENT_STOP)}),e.on(BI.SignEditor.EVENT_CONFIRM,function(){b._doEditorConfirm(e),b.fireEvent(BI.DynamicYearMonthTrigger.EVENT_CONFIRM)}),e.on(BI.SignEditor.EVENT_SPACE,function(){e.isValid()&&e.blur()}),e.on(BI.SignEditor.EVENT_START,function(){b.fireEvent(BI.DynamicYearMonthTrigger.EVENT_START)}),e.on(BI.SignEditor.EVENT_ERROR,function(){b.fireEvent(BI.DynamicYearMonthTrigger.EVENT_ERROR)}),e.on(BI.SignEditor.EVENT_VALID,function(){var a=b.yearEditor.getValue(),d=b.monthEditor.getValue();BI.isNotEmptyString(a)&&BI.isNotEmptyString(d)&&BI.isPositiveInteger(a)&&d>=1&&d<=12&&!BI.checkDateVoid(a,d,1,c.min,c.max)[0]&&b.fireEvent(BI.DynamicYearMonthTrigger.EVENT_VALID)}),e.on(BI.SignEditor.EVENT_CHANGE,function(){a&&b._autoSwitch(e)}),e},_titleCreator:function(){var a=this.storeValue||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value;if(!this.monthEditor.isValid()||!this.yearEditor.isValid())return"";switch(b){case BI.DynamicDateCombo.Dynamic:var d=this._getText(c),e=BI.getDate();e=BI.DynamicDateHelper.getCalculation(c);var f=BI.print(e,"%Y-%x");return BI.isEmptyString(d)?f:d+":"+f;case BI.DynamicDateCombo.Static:default:return c=c||{},this._getStaticTitle(c)}},_doEditorConfirm:function(a){var b=a.getValue();BI.isNotNull(b)&&a.setValue(b);var c=this.monthEditor.getValue();this.storeValue={type:BI.DynamicDateCombo.Static,value:{year:this.yearEditor.getValue(),month:BI.isEmptyString(this.monthEditor.getValue())?"":c}}},_yearCheck:function(a){var b=BI.print(BI.parseDateTime(a,"%Y-%X-%d"),"%Y-%X-%d");return BI.print(BI.parseDateTime(a,"%Y"),"%Y")===a&&b>=this.options.min&&b<=this.options.max},_autoSwitch:function(a){var b=a.getValue();BI.isNotEmptyString(b)&&BI.checkDateLegal(b)&&4===b.length&&this._yearCheck(b)&&(this._doEditorConfirm(a),this.fireEvent(BI.DynamicYearMonthTrigger.EVENT_CONFIRM),this.monthEditor.focus())},_getText:function(a){var b="";return BI.isNotNull(a.year)&&0!==BI.parseInt(a.year)&&(b+=Math.abs(a.year)+BI.i18nText("BI-Basic_Year")+(a.year<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),BI.isNotNull(a.month)&&0!==BI.parseInt(a.month)&&(b+=Math.abs(a.month)+BI.i18nText("BI-Basic_Month")+(a.month<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),b},_setInnerValue:function(a,b){this.yearEditor.setValue(a.getFullYear()),this.monthEditor.setValue(a.getMonth()+1)},_getStaticTitle:function(a){a=a||{};var b=!(BI.isNull(a.year)||BI.isEmptyString(a.year)),c=!(BI.isNull(a.month)||BI.isEmptyString(a.month));switch(b<<1|c){case 0:return"";case 1:return a.month;case 2:return a.year;case 3:default:return a.year+"-"+a.month}},setValue:function(a){var b,c,d=BI.getDate();switch(this.storeValue=a,BI.isNotNull(a)&&(b=a.type||BI.DynamicDateCombo.Static,c=a.value||a),b){case BI.DynamicDateCombo.Dynamic:var e=this._getText(c);d=BI.DynamicDateHelper.getCalculation(c),this._setInnerValue(d,e);break;case BI.DynamicDateCombo.Static:default:c=c||{};var f=BI.isNull(c.month)?null:c.month;this.yearEditor.setValue(c.year),this.monthEditor.setValue(f)}},getValue:function(){return this.storeValue},getKey:function(){return this.yearEditor.getValue()+"-"+this.monthEditor.getValue()},isValid:function(){return this.yearEditor.isValid()&&this.monthEditor.isValid()}}),BI.DynamicYearMonthTrigger.EVENT_VALID="EVENT_VALID",BI.DynamicYearMonthTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicYearMonthTrigger.EVENT_ERROR="EVENT_ERROR",BI.DynamicYearMonthTrigger.EVENT_START="EVENT_START",BI.DynamicYearMonthTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicYearMonthTrigger.EVENT_STOP="EVENT_STOP",BI.DynamicYearMonthTrigger.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.shortcut("bi.dynamic_year_month_trigger",BI.DynamicYearMonthTrigger),BI.YearMonthInterval=BI.inherit(BI.Single,{constants:{height:24,width:25,lgap:15,offset:-15,timeErrorCls:"time-error"},props:{extraCls:"bi-year-month-interval",minDate:"1900-01-01",maxDate:"2099-12-31"},_init:function(){var a=this,b=this.options;BI.YearMonthInterval.superclass._init.apply(this,arguments),b.value=b.value||{},this.left=this._createCombo(b.value.start),this.right=this._createCombo(b.value.end),this.label=BI.createWidget({type:"bi.label",height:this.constants.height,width:this.constants.width,text:"-"}),BI.createWidget({element:a,type:"bi.center",hgap:15,height:this.constants.height,items:[{type:"bi.absolute",items:[{el:a.left,left:this.constants.offset,right:0,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:0,right:this.constants.offset,top:0,bottom:0}]}]}),BI.createWidget({type:"bi.horizontal_auto",element:this,items:[a.label]})},_createCombo:function(a){var b=this,c=this.options,d=BI.createWidget({type:"bi.dynamic_year_month_combo",behaviors:c.behaviors,value:a,listeners:[{eventName:BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW,action:function(){b.fireEvent(BI.YearMonthInterval.EVENT_BEFORE_POPUPVIEW)}}]});return d.on(BI.DynamicYearMonthCombo.EVENT_ERROR,function(){b._clearTitle(),BI.Bubbles.hide("error"),b.element.removeClass(b.constants.timeErrorCls),b.fireEvent(BI.YearMonthInterval.EVENT_ERROR)}),d.on(BI.DynamicYearMonthCombo.EVENT_VALID,function(){b._checkValid()}),d.on(BI.DynamicYearMonthCombo.EVENT_FOCUS,function(){b._checkValid()}),d.on(BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW,function(){b.left.hideView(),b.right.hideView()}),d.on(BI.DynamicYearMonthCombo.EVENT_CONFIRM,function(){BI.Bubbles.hide("error");var a=b.left.getKey(),c=b.right.getKey();b.left.isValid()&&b.right.isValid()&&b._check(a,c)&&b._compare(a,c)?(b._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),b.element.addClass(b.constants.timeErrorCls),b.fireEvent(BI.YearMonthInterval.EVENT_ERROR)):(b._clearTitle(),b.element.removeClass(b.constants.timeErrorCls),b.fireEvent(BI.YearMonthInterval.EVENT_CHANGE))}),d},_dateCheck:function(a){return BI.print(BI.parseDateTime(a,"%Y-%x"),"%Y-%x")===a||BI.print(BI.parseDateTime(a,"%Y-%X"),"%Y-%X")===a},_checkVoid:function(a){var b=this.options;return!BI.checkDateVoid(a.year,a.month,1,b.minDate,b.maxDate)[0]},_check:function(a,b){var c=a.match(/\d+/g),d=b.match(/\d+/g),e="";BI.isNotNull(c)&&(e=(c[0]||"")+"-"+(c[1]||1));var f="";return BI.isNotNull(d)&&(f=(d[0]||"")+"-"+(d[1]||1)),this._dateCheck(e)&&BI.checkDateLegal(a)&&this._checkVoid({year:c[0],month:c[1],day:1})&&this._dateCheck(f)&&BI.checkDateLegal(b)&&this._checkVoid({year:d[0],month:d[1],day:1})},_compare:function(a,b){return a=BI.print(BI.parseDateTime(a,"%Y-%X"),"%Y-%X"),b=BI.print(BI.parseDateTime(b,"%Y-%X"),"%Y-%X"),BI.isNotNull(a)&&BI.isNotNull(b)&&a>b},_setTitle:function(a){this.setTitle(a)},_clearTitle:function(){this.setTitle("")},_checkValid:function(){var a=this;BI.Bubbles.hide("error");var b=a.left.getKey(),c=a.right.getKey();a.left.isValid()&&a.right.isValid()&&a._check(b,c)&&a._compare(b,c)?(a._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),a.element.addClass(a.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),a,{offsetStyle:"center"}),a.fireEvent(BI.YearMonthInterval.EVENT_ERROR)):(a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls))},setValue:function(a){a=a||{},this.left.setValue(a.start),this.right.setValue(a.end),this._checkValid()},getValue:function(){return{start:this.left.getValue(),end:this.right.getValue()}}}),BI.YearMonthInterval.EVENT_VALID="EVENT_VALID",BI.YearMonthInterval.EVENT_ERROR="EVENT_ERROR",BI.YearMonthInterval.EVENT_CHANGE="EVENT_CHANGE",BI.YearMonthInterval.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.year_month_interval",BI.YearMonthInterval),BI.DynamicYearQuarterCard=BI.inherit(BI.Widget,{props:{baseCls:"bi-year-month-card"},render:function(){var a=this;return{type:"bi.vertical",items:[{type:"bi.label",text:BI.i18nText("BI-Multi_Date_Relative_Current_Time"),textAlign:"left",height:24},{type:"bi.dynamic_date_param_item",ref:function(){a.year=this},listeners:[{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}]},{type:"bi.dynamic_date_param_item",dateType:BI.DynamicDateCard.TYPE.QUARTER,ref:function(){a.quarter=this},listeners:[{eventName:"EVENT_CHANGE",action:function(){a.fireEvent("EVENT_CHANGE")}}]}],vgap:10,hgap:10}},_createValue:function(a,b){return{dateType:a,value:Math.abs(b),offset:b>0?1:0}},setValue:function(a){a=a||{year:0,month:0},this.year.setValue(this._createValue(BI.DynamicDateCard.TYPE.YEAR,a.year)),this.quarter.setValue(this._createValue(BI.DynamicDateCard.TYPE.QUARTER,a.quarter))},getValue:function(){var a=this.year.getValue(),b=this.quarter.getValue();return{year:0===a.offset?-a.value:a.value,quarter:0===b.offset?-b.value:b.value}}}),BI.DynamicYearQuarterCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.dynamic_year_quarter_card",BI.DynamicYearQuarterCard),BI.StaticYearQuarterCard=BI.inherit(BI.Widget,{props:{baseCls:"bi-static-year-quarter-card",behaviors:{}},_createQuarter:function(){var a=[{text:BI.Date._QN[1],value:1},{text:BI.Date._QN[2],value:2},{text:BI.Date._QN[3],value:3},{text:BI.Date._QN[4],value:4}];return BI.map(a,function(a,b){return BI.extend(b,{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"center",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:24})})},render:function(){var a=this,b=this.options;return{type:"bi.vertical",items:[{type:"bi.year_picker",ref:function(){a.yearPicker=this},behaviors:b.behaviors,height:30,listeners:[{eventName:BI.YearPicker.EVENT_CHANGE,action:function(){var b=this.getValue();a.setValue({year:b,quarter:a.selectedQuarter})}}]},{type:"bi.button_group",behaviors:b.behaviors,ref:function(){a.quarter=this},items:this._createQuarter(),layouts:[{type:"bi.vertical",vgap:10}],value:b.value,listeners:[{eventName:BI.ButtonGroup.EVENT_CHANGE,action:function(){a.selectedYear=a.yearPicker.getValue(),a.selectedQuarter=this.getValue()[0],a.fireEvent(BI.StaticYearQuarterCard.EVENT_CHANGE)}}]}]}},getValue:function(){ -return{year:this.selectedYear,quarter:this.selectedQuarter}},setValue:function(a){var b=this.options,c={};if(c.year=a.year||0,c.quarter=a.quarter||0,0===c.quarter||0===c.year||BI.checkDateVoid(c.year,c.quarter,1,b.min,b.max)[0]){var d=c.year||BI.getDate().getFullYear();this.selectedYear=d,this.selectedQuarter="",this.yearPicker.setValue(d),this.quarter.setValue()}else this.selectedYear=BI.parseInt(c.year),this.selectedQuarter=BI.parseInt(c.quarter),this.yearPicker.setValue(this.selectedYear),this.quarter.setValue(this.selectedQuarter)}}),BI.StaticYearQuarterCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.static_year_quarter_card",BI.StaticYearQuarterCard),BI.DynamicYearQuarterCombo=BI.inherit(BI.Widget,{props:{baseCls:"bi-year-quarter-combo bi-border bi-focus-shadow",behaviors:{},min:"1900-01-01",max:"2099-12-31",height:22},_init:function(){BI.DynamicYearQuarterCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue=b.value,a.storeTriggerValue="",this.trigger=BI.createWidget({type:"bi.dynamic_year_quarter_trigger",min:b.min,max:b.max,height:b.height,value:b.value||""}),this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_KEY_DOWN,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_STOP,function(){a.combo.showView()}),this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_ERROR,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_CONFIRM,function(){var b=a.storeTriggerValue,c=a.trigger.getKey();BI.isNotEmptyString(c)&&!BI.isEqual(c,b)&&(a.storeValue=a.trigger.getValue(),a.setValue(a.trigger.getValue())),a._checkDynamicValue(a.storeValue),a.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM)}),this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_FOCUS,function(){a.storeTriggerValue=a.trigger.getKey()}),this.combo=BI.createWidget({type:"bi.combo",container:b.container,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,stopPropagation:!1,el:{type:"bi.dynamic_year_quarter_popup",ref:function(){a.popup=this},listeners:[{eventName:BI.DynamicYearQuarterPopup.EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearQuarterPopup.BUTTON_CLEAR_EVENT_CHANGE,action:function(){a.setValue(),a.combo.hideView(),a.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearQuarterPopup.BUTTON_lABEL_EVENT_CHANGE,action:function(){var b=BI.getDate();a.setValue({type:BI.DynamicYearMonthCombo.Static,value:{year:b.getFullYear(),quarter:BI.getQuarter(b)}}),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}},{eventName:BI.DynamicYearQuarterPopup.BUTTON_OK_EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM)}}],behaviors:b.behaviors,min:b.min,max:b.max},value:b.value||""}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DynamicYearQuarterCombo.EVENT_BEFORE_POPUPVIEW)}),BI.createWidget({type:"bi.htape",element:this,ref:function(){a.comboWrapper=this},items:[{el:{type:"bi.icon_button",cls:"bi-trigger-icon-button date-change-h-font",width:24,height:24,ref:function(){a.changeIcon=this}},width:24},this.combo]}),this._checkDynamicValue(b.value)},_checkDynamicValue:function(a){var b=null;switch(BI.isNotNull(a)&&(b=a.type),b){case BI.DynamicYearQuarterCombo.Dynamic:this.changeIcon.setVisible(!0),this.comboWrapper.attr("items")[0].width=24,this.comboWrapper.resize();break;default:this.comboWrapper.attr("items")[0].width=0,this.comboWrapper.resize(),this.changeIcon.setVisible(!1)}},setValue:function(a){this.storeValue=a,this.trigger.setValue(a),this._checkDynamicValue(a)},getValue:function(){return this.storeValue}}),BI.DynamicYearQuarterCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicYearQuarterCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.dynamic_year_quarter_combo",BI.DynamicYearQuarterCombo),BI.extend(BI.DynamicYearQuarterCombo,{Static:1,Dynamic:2}),BI.DynamicYearQuarterPopup=BI.inherit(BI.Widget,{constants:{tabHeight:30,buttonHeight:24},props:{baseCls:"bi-year-quarter-popup",behaviors:{},min:"1900-01-01",max:"2099-12-31",width:180,height:240},render:function(){var a=this,b=(this.options,this.constants);return this.storeValue={type:BI.DynamicYearQuarterCombo.Static},{type:"bi.vtape",items:[{el:this._getTabJson()},{el:{type:"bi.grid",items:[[{type:"bi.text_button",cls:"bi-split-top bi-high-light",shadow:!0,textHeight:b.buttonHeight-1,text:BI.i18nText("BI-Basic_Clear"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearQuarterPopup.BUTTON_CLEAR_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-left bi-split-right bi-high-light bi-split-top",textHeight:b.buttonHeight-1,shadow:!0,text:BI.i18nText("BI-Basic_Current_Quarter"),ref:function(){a.textButton=this},listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearQuarterPopup.BUTTON_lABEL_EVENT_CHANGE)}}]},{type:"bi.text_button",cls:"bi-split-top bi-high-light",shadow:!0,textHeight:b.buttonHeight-1,text:BI.i18nText("BI-Basic_OK"),listeners:[{eventName:BI.TextButton.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearQuarterPopup.BUTTON_OK_EVENT_CHANGE)}}]}]]},height:24}]}},_setInnerValue:function(){if(this.dateTab.getSelect()===BI.DynamicYearQuarterCombo.Static)this.textButton.setValue(BI.i18nText("BI-Basic_Current_Quarter")),this.textButton.setEnable(!0);else{var a=BI.DynamicDateHelper.getCalculation(this.dynamicPane.getValue());a=BI.print(a,"%Y-%Q"),this.textButton.setValue(a),this.textButton.setEnable(!1)}},_getTabJson:function(){var a=this,b=this.options;return{type:"bi.tab",ref:function(){a.dateTab=this},tab:{type:"bi.linear_segment",cls:"bi-split-bottom",height:this.constants.tabHeight,items:BI.createItems([{text:BI.i18nText("BI-Basic_Year_Quarter"),value:BI.DynamicYearQuarterCombo.Static},{text:BI.i18nText("BI-Basic_Dynamic_Title"),value:BI.DynamicYearQuarterCombo.Dynamic}],{textAlign:"center"})},cardCreator:function(c){switch(c){case BI.DynamicYearQuarterCombo.Dynamic:return{type:"bi.dynamic_year_quarter_card",listeners:[{eventName:"EVENT_CHANGE",action:function(){a._setInnerValue(a.year,c)}}],ref:function(){a.dynamicPane=this}};case BI.DynamicYearQuarterCombo.Static:default:return{type:"bi.static_year_quarter_card",behaviors:b.behaviors,min:a.options.min,max:a.options.max,listeners:[{eventName:BI.DynamicYearCard.EVENT_CHANGE,action:function(){a.fireEvent(BI.DynamicYearQuarterPopup.EVENT_CHANGE)}}],ref:function(){a.year=this}}}},listeners:[{eventName:BI.Tab.EVENT_CHANGE,action:function(){var b=a.dateTab.getSelect();switch(b){case BI.DynamicYearQuarterCombo.Static:var c=BI.DynamicDateHelper.getCalculation(a.dynamicPane.getValue());a.year.setValue({year:c.getFullYear(),quarter:BI.getQuarter(c)}),a._setInnerValue();break;case BI.DynamicYearQuarterCombo.Dynamic:default:a.storeValue&&a.storeValue.type===BI.DynamicYearQuarterCombo.Dynamic?a.dynamicPane.setValue(a.storeValue.value):a.dynamicPane.setValue({year:0}),a._setInnerValue()}}}]}},setValue:function(a){this.storeValue=a;var b,c,d=this;switch(a=a||{},b=a.type||BI.DynamicDateCombo.Static,c=a.value||a,this.dateTab.setSelect(b),b){case BI.DynamicDateCombo.Dynamic:this.dynamicPane.setValue(c),d._setInnerValue();break;case BI.DynamicDateCombo.Static:default:this.year.setValue(c),this.textButton.setValue(BI.i18nText("BI-Basic_Current_Quarter")),this.textButton.setEnable(!0)}},getValue:function(){return{type:this.dateTab.getSelect(),value:this.dateTab.getValue()}}}),BI.DynamicYearQuarterPopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.DynamicYearQuarterPopup.BUTTON_lABEL_EVENT_CHANGE="BUTTON_lABEL_EVENT_CHANGE",BI.DynamicYearQuarterPopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DynamicYearQuarterPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.dynamic_year_quarter_popup",BI.DynamicYearQuarterPopup),BI.DynamicYearQuarterTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2},props:{extraCls:"bi-year-quarter-trigger",min:"1900-01-01",max:"2099-12-31",height:22},_init:function(){BI.DynamicYearQuarterTrigger.superclass._init.apply(this,arguments);var a=this.options;this.yearEditor=this._createEditor(!0),this.quarterEditor=this._createEditor(!1),BI.createWidget({element:this,type:"bi.htape",items:[{type:"bi.center",items:[{type:"bi.htape",items:[this.yearEditor,{el:{type:"bi.text_button",text:BI.i18nText("BI-Multi_Date_Year"),width:a.height},width:a.height}]},{type:"bi.htape",items:[this.quarterEditor,{el:{type:"bi.text_button",text:BI.i18nText("BI-Multi_Date_Quarter"),width:24},width:24}]}]},{el:{type:"bi.trigger_icon_button",width:a.height},width:a.height}]}),this.setValue(a.value)},_createEditor:function(a){var b=this,c=this.options,d=this._const,e=BI.createWidget({type:"bi.sign_editor",height:c.height,validationChecker:function(b){return a?""===b||BI.isPositiveInteger(b)&&!BI.checkDateVoid(b,1,1,c.min,c.max)[0]:""===b||BI.isPositiveInteger(b)&&b>=1&&b<=4&&!BI.checkDateVoid(BI.getDate().getFullYear(),b,1,c.min,c.max)[0]},quitChecker:function(){return!1},errorText:function(a){return BI.i18nText("BI-Year_Trigger_Invalid_Text")},watermark:BI.i18nText("BI-Basic_Unrestricted"),hgap:d.hgap,vgap:d.vgap,title:"",allowBlank:!0});return e.on(BI.SignEditor.EVENT_KEY_DOWN,function(){b.fireEvent(BI.DynamicYearQuarterTrigger.EVENT_KEY_DOWN)}),e.on(BI.SignEditor.EVENT_FOCUS,function(){b.fireEvent(BI.DynamicYearQuarterTrigger.EVENT_FOCUS)}),e.on(BI.SignEditor.EVENT_STOP,function(){b.fireEvent(BI.DynamicYearQuarterTrigger.EVENT_STOP)}),e.on(BI.SignEditor.EVENT_CONFIRM,function(){b._doEditorConfirm(e),b.fireEvent(BI.DynamicYearQuarterTrigger.EVENT_CONFIRM)}),e.on(BI.SignEditor.EVENT_SPACE,function(){e.isValid()&&e.blur()}),e.on(BI.SignEditor.EVENT_START,function(){b.fireEvent(BI.DynamicYearQuarterTrigger.EVENT_START)}),e.on(BI.SignEditor.EVENT_ERROR,function(){b.fireEvent(BI.DynamicYearQuarterTrigger.EVENT_ERROR)}),e.on(BI.SignEditor.EVENT_CHANGE,function(){a&&b._autoSwitch(e)}),e},_doEditorConfirm:function(a){var b=a.getValue();BI.isNotNull(b)&&a.setValue(b);var c=this.quarterEditor.getValue();this.storeValue={type:BI.DynamicYearQuarterCombo.Static,value:{year:this.yearEditor.getValue(),quarter:BI.isEmptyString(this.quarterEditor.getValue())?"":c}},this.setTitle(this._getStaticTitle(this.storeValue.value))},_yearCheck:function(a){var b=BI.print(BI.parseDateTime(a,"%Y-%X-%d"),"%Y-%X-%d");return BI.print(BI.parseDateTime(a,"%Y"),"%Y")===a&&b>=this.options.min&&b<=this.options.max},_autoSwitch:function(a){var b=a.getValue();BI.isNotEmptyString(b)&&BI.checkDateLegal(b)&&4===b.length&&this._yearCheck(b)&&(this._doEditorConfirm(a),this.fireEvent(BI.DynamicYearQuarterTrigger.EVENT_CONFIRM),this.quarterEditor.focus())},_getStaticTitle:function(a){a=a||{};var b=!(BI.isNull(a.year)||BI.isEmptyString(a.year)),c=!(BI.isNull(a.quarter)||BI.isEmptyString(a.quarter));switch(b<<1|c){case 0:return"";case 1:return a.quarter;case 2:return a.year;case 3:default:return a.year+"-"+a.quarter}},_getText:function(a){var b="";return BI.isNotNull(a.year)&&0!==BI.parseInt(a.year)&&(b+=Math.abs(a.year)+BI.i18nText("BI-Basic_Year")+(a.year<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),BI.isNotNull(a.quarter)&&0!==BI.parseInt(a.quarter)&&(b+=Math.abs(a.quarter)+BI.i18nText("BI-Basic_Single_Quarter")+(a.quarter<0?BI.i18nText("BI-Basic_Front"):BI.i18nText("BI-Basic_Behind"))),b},_setInnerValue:function(a,b){var c=BI.print(a,"%Y-%Q");this.yearEditor.setValue(a.getFullYear()),this.quarterEditor.setValue(BI.getQuarter(a)),this.setTitle(BI.isEmptyString(b)?c:b+":"+c)},setValue:function(a){var b,c,d=BI.getDate();switch(this.storeValue=a,BI.isNotNull(a)&&(b=a.type||BI.DynamicYearQuarterCombo.Static,c=a.value||a),b){case BI.DynamicYearQuarterCombo.Dynamic:var e=this._getText(c);d=BI.DynamicDateHelper.getCalculation(c),this._setInnerValue(d,e);break;case BI.DynamicYearQuarterCombo.Static:default:c=c||{};var f=BI.isNull(c.quarter)?null:c.quarter;this.yearEditor.setValue(c.year),this.yearEditor.setTitle(c.year),this.quarterEditor.setValue(f),this.quarterEditor.setTitle(f),this.setTitle(this._getStaticTitle(c))}},getValue:function(){return this.storeValue},getKey:function(){return this.yearEditor.getValue()+"-"+this.quarterEditor.getValue()}}),BI.DynamicYearQuarterTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.DynamicYearQuarterTrigger.EVENT_ERROR="EVENT_ERROR",BI.DynamicYearQuarterTrigger.EVENT_START="EVENT_START",BI.DynamicYearQuarterTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.DynamicYearQuarterTrigger.EVENT_STOP="EVENT_STOP",BI.DynamicYearQuarterTrigger.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.shortcut("bi.dynamic_year_quarter_trigger",BI.DynamicYearQuarterTrigger),BI.AbstractAllValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractAllValueChooser.superclass._defaultConfig.apply(this,arguments),{width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_valueFormatter:function(a){var b=a;return BI.isNotNull(this.items)&&BI.some(this.items,function(c,d){if(d.value===a||d.value+""===a)return b=d.text,!0}),b},_itemsCreator:function(a,b){function c(c){var d=(a.keywords||[]).slice();if(a.keyword&&d.push(a.keyword),BI.each(d,function(a,b){var d=BI.Func.getSearchResult(c,b);c=d.match.concat(d.find)}),a.selectedValues){var e=BI.makeObject(a.selectedValues,!0);c=BI.filter(c,function(a,b){return!e[b.value]})}return a.type===BI.MultiSelectCombo.REQ_GET_ALL_DATA?void b({items:c}):a.type===BI.MultiSelectCombo.REQ_GET_DATA_LENGTH?void b({count:c.length}):void b({items:c,hasNext:!1})}var d=this,e=this.options;e.cache&&this.items?c(this.items):e.itemsCreator({},function(a){d.items=a,c(a)})}}),BI.AllValueChooserCombo=BI.inherit(BI.AbstractAllValueChooser,{_defaultConfig:function(){return BI.extend(BI.AllValueChooserCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-all-value-chooser-combo",width:200,height:24,items:null,itemsCreator:BI.emptyFn,cache:!0})},_init:function(){BI.AllValueChooserCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&(this.items=b.items),this.combo=BI.createWidget({type:"bi.multi_select_combo",text:b.text,element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height,value:{type:BI.Selection.Multi,value:b.value||[]}}),this.combo.on(BI.MultiSelectCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.AllValueChooserCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue({type:BI.Selection.Multi,value:a||[]})},getValue:function(){var a=this.combo.getValue()||{};return a.type===BI.Selection.All?a.assist:a.value||[]},populate:function(a){this.items=a,this.combo.populate.apply(this,arguments)}}),BI.AllValueChooserCombo.EVENT_CONFIRM="AllValueChooserCombo.EVENT_CONFIRM",BI.shortcut("bi.all_value_chooser_combo",BI.AllValueChooserCombo),BI.AllValueChooserPane=BI.inherit(BI.AbstractAllValueChooser,{_defaultConfig:function(){return BI.extend(BI.AllValueChooserPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-all-value-chooser-pane",width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_init:function(){BI.AllValueChooserPane.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&(this.items=b.items),this.list=BI.createWidget({type:"bi.multi_select_list",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.list.on(BI.MultiSelectList.EVENT_CHANGE,function(){a.fireEvent(BI.AllValueChooserPane.EVENT_CHANGE)})},setValue:function(a){this.list.setValue({type:BI.Selection.Multi,value:a||[]})},getValue:function(){var a=this.list.getValue()||{};return a.type===BI.Selection.All?a.assist:a.value||[]},populate:function(a){this.items=a,this.list.populate.apply(this.list,arguments)}}),BI.AllValueChooserPane.EVENT_CHANGE="AllValueChooserPane.EVENT_CHANGE",BI.shortcut("bi.all_value_chooser_pane",BI.AllValueChooserPane),BI.AllValueMultiTextValueCombo=BI.inherit(BI.Widget,{props:{baseCls:"bi-all-value-multi-text-value-combo",width:200,height:24,items:[]},render:function(){var a=this,b=this.options,c=this._digestValue(b.value);return{type:"bi.search_multi_text_value_combo",text:b.text,height:b.height,items:b.items,value:c,numOfPage:100,valueFormatter:b.valueFormatter,warningTitle:b.warningTitle,listeners:[{eventName:BI.SearchMultiTextValueCombo.EVENT_CONFIRM,action:function(){a.fireEvent(BI.AllValueMultiTextValueCombo.EVENT_CONFIRM)}}],ref:function(){a.combo=this}}},setValue:function(a){var b=this._digestValue(a);this.combo.setValue(b)},getValue:function(){var a=this.combo.getValue()||{};if(a.value=a.value||[],a.type===BI.Selection.All){var b=[];return BI.each(this.options.items,function(c,d){!BI.contains(a.value,d.value)&&b.push(d.value)}),b}return a.value||[]},populate:function(a){this.options.items=a,this.combo.populate.apply(this,arguments)},_digestValue:function(a){return{type:BI.Selection.Multi,value:a||[]}}}),BI.AllValueMultiTextValueCombo.EVENT_CONFIRM="AllValueMultiTextValueCombo.EVENT_CONFIRM",BI.shortcut("bi.all_value_multi_text_value_combo",BI.AllValueMultiTextValueCombo),BI.AbstractTreeValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractTreeValueChooser.superclass._defaultConfig.apply(this,arguments),{items:null,itemsCreator:BI.emptyFn})},_valueFormatter:function(a){var b=a;return BI.isNotNull(this.items)&&BI.some(this.items,function(c,d){if(d.value+""===a)return b=d.text,!0}),b},_initData:function(a){this.items=a;var b=BI.Tree.treeFormat(a);this.tree=new BI.Tree,this.tree.initTree(b)},_itemsCreator:function(a,b){function c(){switch(a.type){case BI.TreeView.REQ_TYPE_INIT_DATA:d._reqInitTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_ADJUST_DATA:d._reqAdjustTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_SELECT_DATA:d._reqSelectedTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_GET_SELECTED_DATA:d._reqDisplayTreeNode(a,b);break;default:d._reqTreeNode(a,b)}}var d=this,e=this.options;this.items?c():e.itemsCreator({},function(a){d._initData(a),c()})},_reqDisplayTreeNode:function(a,b){function c(a,b,g){return null==g||BI.isEmpty(g)?void BI.each(b.getChildren(),function(d,g){var h=BI.clone(a);h.push(g.value);var i=f._getChildCount(h);e(g,b.id,i),c(h,g,{})}):void BI.each(g,function(b){var h=f._getTreeNode(a,b);if(BI.isNull(h))e({id:BI.UUID(),text:b,value:b},BI.UUID(),0);else{var i=BI.clone(a);i.push(h.value),e(h,h.parent&&h.parent.id,d(g[b],i)),c(i,h,g[b])}})}function d(a,b){return null==a?0:BI.isEmpty(a)?f._getChildCount(b):BI.size(a)}function e(a,b,c){g.push({id:a.id,pId:b,text:a.text+(c>0?"("+BI.i18nText("BI-Basic_Altogether")+c+BI.i18nText("BI-Basic_Count")+")":""),value:a.value,open:!0})}var f=this,g=[],h=a.selectedValues;return null==h||BI.isEmpty(h)?void b({}):(c([],this.tree.getRoot(),h),void b({items:g}))},_reqSelectedTreeNode:function(a,b){function c(a){var b=m.concat(k);if(g(a,b))if(f(b))i._deleteNode(a,b);else{var c=[],j=e(m,k,[],c);j&&BI.isNotEmptyArray(c)&&BI.each(c,function(b,c){var e=i._getNode(a,c);e?i._deleteNode(a,c):d(a,c,BI.last(c))})}if(h(a,b)){var l=[],j=!1;f(b)?j=!0:(j=e(m,k,l),b=m),j===!0&&(d(a,b,k),l.length>0&&BI.each(l,function(b,c){i._buildTree(a,c)}))}}function d(a,b,c){var d=a,e=[],f=[];BI.some(b,function(g,h){var j=d[h];if(null==j){if(0===g)return!0;if(!BI.isEmpty(d))return!0;var k=b.slice(0,g),l=i._getChildren(k);if(f.push(k),e.push(l.length),g===b.length-1&&1===l.length&&l[0]===c)for(var m=e.length-1;m>=0&&1===e[m];m--)i._deleteNode(a,f[m]);else BI.each(l,function(a,e){return g===b.length-1&&e.value===c||void(d[e.value]={})});d=d[h]}else d=j})}function e(a,b,c,d){var f=BI.clone(a);if(f.push(b),i._isMatch(a,b,l))return d&&d.push(f),!0;var g=i._getChildren(f),h=[],j=!1;return BI.each(g,function(a,b){e(f,b.value,c,d)?j=!0:h.push(b.value)}),j===!0&&BI.each(h,function(a,b){var d=BI.clone(f);d.push(b),c.push(d)}),j}function f(a){for(var b=0,c=a.length;bj._const.perPage)break}if(1===a.times){var o=j._getAddedValueNode([],m);k=BI.concat(BI.filter(o,function(a,b){var c=BI.Func.getSearchResult([b.text||b.value],l);return c.find.length>0||c.match.length>0}),k)}return g}function d(a,b,c,i,k){if(j._isMatch(b,c,l)){var m=i||h(b,c);return e(b,c,!1,m,!i&&f(b,c),!0,k),[!0,m]}var n=BI.clone(b);n.push(c);var o=j._getChildren(n),p=!1,m=!1,q=i||g(b,c);return BI.each(o,function(b,c){var e=d(a+1,n,c.value,q,k);e[1]===!0&&(m=!0),e[0]===!0&&(p=!0)}),p===!0&&(m=q||h(b,c)&&m,e(b,c,!0,m,!1,!1,k)),[p,m]}function e(a,b,c,d,e,f,g){var h=j._getTreeNode(a,b);g.push({id:h.id,pId:h.pId,text:h.text,value:h.value,title:h.title,isParent:h.getChildrenLength()>0,open:c,checked:d,halfCheck:e,flag:f})}function f(a,b){var c=i(a);return null==c?null:BI.any(c,function(a,c){if(a===b&&null!=c&&!BI.isEmpty(c))return!0})}function g(a,b){var c=i(a);return null==c?null:BI.any(c,function(a,c){if(a===b&&null!=c&&BI.isEmpty(c))return!0})}function h(a,b){var c=i(a);return null!=c&&BI.any(c,function(a){if(a===b)return!0})}function i(a){var b=m;return null==b?null:(BI.every(a,function(a,c){return b=b[c],null!=b}),b)}var j=this,k=[],l=a.keyword||"",m=a.selectedValues,n=a.lastSearchValue||"",o=c();BI.nextTick(function(){b({hasNext:o.length>j._const.perPage,items:k,lastSearchValue:BI.last(o)})})},_reqTreeNode:function(a,b){function c(a,b){var c={};return BI.each(a,function(a,c){b=b[c]||{}}),BI.each(b,function(a,b){if(BI.isNull(b))return void(c[a]=[0,0]);if(BI.isEmpty(b))return void(c[a]=[2,0]);var d={};BI.each(b,function(a,b){(BI.isNull(b)||BI.isEmpty(b))&&(d[a]=!0)}),c[a]=[1,BI.size(d)]}),c}function d(a,b,c,d){var f=d.checked,g=d.half,h=!1,i=!1;if(BI.has(c,a))if(1===c[a][0]){var j=BI.clone(b);j.push(a);var k=e._getChildCount(j);k>0&&k!==c[a][1]&&(i=!0)}else 2===c[a][0]&&(h=!0);var l;return l=f||i||h?(h||f)&&!g||BI.has(c,a):BI.has(c,a),[l,i]}var e=this,f=[],g=a.times,h=a.checkState||{},i=a.parentValues||[],j=a.selectedValues||{},k={};k=c(i,j);for(var l=this._getChildren(i),m=(g-1)*this._const.perPage;l[m]&&m0,checked:n[0],halfCheck:n[1]})}0===i.length&&1===g&&(f=BI.concat(e._getAddedValueNode(i,j),f)),BI.nextTick(function(){b({items:f,hasNext:l.length>g*e._const.perPage})})},_getAddedValueNode:function(a,b){var c=this._getChildren(a);return BI.map(BI.difference(BI.keys(b),BI.map(c,"value")),function(a,b){return{id:BI.UUID(),pId:c.length>0?c[0].pId:BI.UUID(),value:b,text:b,times:1,isParent:!1,checked:!0,halfCheck:!1}})},_getNode:function(a,b){for(var c=a,d=0,e=b.length;d0&&BI.isEmpty(e);)c=d[d.length-1],d=d.slice(0,d.length-1),e=this._getNode(a,d),null!=e&&delete e[c]},_buildTree:function(a,b){var c=a;BI.each(b,function(a,b){BI.has(c,b)||(c[b]={}),c=c[b]})},_isMatch:function(a,b,c){var d=this._getTreeNode(a,b);if(!d)return!1;var e=BI.Func.getSearchResult([d.text||d.value],c);return e.find.length>0||e.match.length>0},_getTreeNode:function(a,b){var c,d=this,e=0;return this.tree.traverse(function(f){if(!d.tree.isRoot(f))return!(e>a.length)&&(e===a.length&&f.value===b?(c=f,!1):f.value!==a[e]||void e++)}),c},_getChildren:function(a){if(a.length>0)var b=BI.last(a),c=this._getTreeNode(a.slice(0,a.length-1),b);else var c=this.tree.getRoot();return c.getChildren()},_getChildCount:function(a){return this._getChildren(a).length}}),BI.AbstractListTreeValueChooser=BI.inherit(BI.AbstractTreeValueChooser,{_reqDisplayTreeNode:function(a,b){function c(a,b,c){BI.each(c,function(a,b){BI.each(b,function(a,c){var g=c,h=e._getTreeNode(b.slice(0,a),g);BI.isNull(h)?d({id:BI.UUID(),text:g,value:g,isLeaf:!0},BI.UUID()):(BI.has(f,h.id)||d(h,h.parent&&h.parent.id),f[h.id].isLeaf!==!0&&(f[h.id].isLeaf=a===b.length-1))})})}function d(a,b){f[a.id]={id:a.id,pId:b,text:a.text,value:a.value,open:!0,isLeaf:a.isLeaf}}var e=this,f={},g=a.selectedValues;return null==g||BI.isEmpty(g)?void b({}):(c([],this.tree.getRoot(),g),void b({items:BI.values(f)}))},_reqInitTreeNode:function(a,b){function c(){var b=g._getChildren([]),c=b.length;if(""!==k){for(var e=0,f=c;eg._const.perPage)break}if(1===a.times){var o=g._getAddedValueNode([],j);h=BI.concat(BI.filter(o,function(a,b){var c=BI.Func.getSearchResult([b.text||b.value],i);return c.find.length>0||c.match.length>0}),h)}return l}function d(a,b,c,h){if(g._isMatch(b,c,i)){var j=f(c);return e(b,c,!1,j,!0,h),[!0,j]}var k=BI.clone(b);k.push(c);var l=g._getChildren(k),m=!1,j=!1;return BI.each(l,function(b,c){var e=d(a+1,k,c.value,h);e[1]===!0&&(j=!0),e[0]===!0&&(m=!0)}),m===!0&&(j=f(c),e(b,c,!0,j,!1,h)),[m,j]}function e(a,b,c,d,e,f){var h=g._getTreeNode(a,b);f.push({id:h.id,pId:h.pId,text:h.text,value:h.value,title:h.title,isParent:h.getChildrenLength()>0,open:c,checked:d,halfCheck:!1,flag:e})}function f(a){return BI.any(j,function(b,c){return BI.last(c)===a})}var g=this,h=[],i=a.keyword||"",j=a.selectedValues,k=a.lastSearchValue||"",l=c();BI.nextTick(function(){b({hasNext:l.length>g._const.perPage,items:h,lastSearchValue:BI.last(l)})})},_reqTreeNode:function(a,b){function c(a){var b={};return BI.each(a,function(a,c){b[BI.last(c)]=[2,0]}),b}for(var d=this,e=[],f=a.times,g=a.parentValues||[],h=a.selectedValues||[],i=c(h),j=this._getChildren(g),k=(f-1)*this._const.perPage;j[k]&&k0,checked:l,halfCheck:!1})}0===g.length&&1===f&&(e=BI.concat(d._getAddedValueNode(g,h),e)),BI.nextTick(function(){b({items:e,hasNext:j.length>f*d._const.perPage})})},_getAddedValueNode:function(a,b){var c=this._getChildren(a),d=BI.flatten(BI.filter(b,function(a,b){return 1===b.length}));return BI.map(BI.difference(d,BI.map(c,"value")),function(a,b){return{id:BI.UUID(),pId:c.length>0?c[0].pId:BI.UUID(),value:b,text:b,times:1,isParent:!1,checked:!0,halfCheck:!1}})}}),BI.ListTreeValueChooserInsertCombo=BI.inherit(BI.AbstractListTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.ListTreeValueChooserInsertCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-list-tree-value-chooser-insert-combo",width:200,height:24,items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.ListTreeValueChooserInsertCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&this._initData(b.items),this.combo=BI.createWidget({type:"bi.multi_tree_list_combo",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.combo.on(BI.MultiTreeListCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.ListTreeValueChooserInsertCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.combo.getValue()},populate:function(a){this._initData(a),this.combo.populate.apply(this.combo,arguments)}}),BI.ListTreeValueChooserInsertCombo.EVENT_CONFIRM="ListTreeValueChooserInsertCombo.EVENT_CONFIRM",BI.shortcut("bi.list_tree_value_chooser_insert_combo",BI.ListTreeValueChooserInsertCombo),BI.TreeValueChooserInsertCombo=BI.inherit(BI.AbstractTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.TreeValueChooserInsertCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tree-value-chooser-insert-combo",width:200,height:24,items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.TreeValueChooserInsertCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&this._initData(b.items),this.combo=BI.createWidget({type:"bi.multi_tree_insert_combo",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.combo.on(BI.MultiTreeInsertCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.TreeValueChooserInsertCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.combo.getValue()},populate:function(a){this._initData(a),this.combo.populate.apply(this.combo,arguments)}}),BI.TreeValueChooserInsertCombo.EVENT_CONFIRM="TreeValueChooserInsertCombo.EVENT_CONFIRM",BI.shortcut("bi.tree_value_chooser_insert_combo",BI.TreeValueChooserInsertCombo),BI.TreeValueChooserCombo=BI.inherit(BI.AbstractTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.TreeValueChooserCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tree-value-chooser-combo",width:200,height:24,items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.TreeValueChooserCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&this._initData(b.items),this.combo=BI.createWidget({type:"bi.multi_tree_combo",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.combo.on(BI.MultiTreeCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.TreeValueChooserCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.combo.getValue()},populate:function(a){this._initData(a),this.combo.populate.apply(this.combo,arguments)}}),BI.TreeValueChooserCombo.EVENT_CONFIRM="TreeValueChooserCombo.EVENT_CONFIRM",BI.shortcut("bi.tree_value_chooser_combo",BI.TreeValueChooserCombo),BI.TreeValueChooserPane=BI.inherit(BI.AbstractTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.TreeValueChooserPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tree-value-chooser-pane",items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.TreeValueChooserPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.pane=BI.createWidget({type:"bi.multi_select_tree",element:this,itemsCreator:BI.bind(this._itemsCreator,this)}),this.pane.on(BI.MultiSelectTree.EVENT_CHANGE,function(){a.fireEvent(BI.TreeValueChooserPane.EVENT_CHANGE)}),BI.isNotNull(b.items)&&(this._initData(b.items), -this.populate())},setSelectedValue:function(a){this.pane.setSelectedValue(a)},setValue:function(a){this.pane.setValue(a)},getValue:function(){return this.pane.getValue()},populate:function(){this.pane.populate.apply(this.pane,arguments)}}),BI.TreeValueChooserPane.EVENT_CHANGE="TreeValueChooserPane.EVENT_CHANGE",BI.shortcut("bi.tree_value_chooser_pane",BI.TreeValueChooserPane),BI.AbstractValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractValueChooser.superclass._defaultConfig.apply(this,arguments),{items:null,itemsCreator:BI.emptyFn,cache:!0})},_valueFormatter:function(a){var b=a;return BI.isNotNull(this.items)&&BI.some(this.items,function(c,d){if(d.value+""===a)return b=d.text,!0}),b},_getItemsByTimes:function(a,b){for(var c=[],d=(b-1)*this._const.perPage;a[d]&&d this.model.connections.find(item => item.connectionName === this.model.connectionSelected), + datebaseTypeSelectedOne: () => getAllDatabaseTypes().find(item => item.databaseType === this.model.datebaseTypeSelected), + } + + actions = { + setPageIndex: (index: string) => { + this.model.pageIndex = index; + }, + setFilter:(filter: string) => { + this.model.filter = filter; + }, + setDatebaseTypeSelected: (datebaseTypeSelected: string) => { + this.model.datebaseTypeSelected = datebaseTypeSelected; + }, + } +} diff --git a/src/modules/app.service.ts b/src/modules/app.service.ts new file mode 100644 index 0000000..b0c8094 --- /dev/null +++ b/src/modules/app.service.ts @@ -0,0 +1,23 @@ +import { DATA_BASE_TYPES } from '@constants/constant'; +import { CONSTANT_PLUGIN_TYPES, CONSTANT_PLUGIN_SHOW, CONSTANT_PLUGIN_EDIT } from '@constants/plugin'; +import { DatabaseType } from './app.typings'; +export function getAllDatabaseTypes():DatabaseType[] { + return [ + ...DATA_BASE_TYPES, + ...BI.Constants.getConstant(CONSTANT_PLUGIN_TYPES).map(item => { + return { + ...item, + internal: false, + commonly: false, + }; + }), + ]; +} + +export function getPluginWidgetShow(plugin: string) { + return BI.Constants.getConstant(CONSTANT_PLUGIN_SHOW.replace('${databaseType}', plugin)); +} + +export function getPluginWidgetEdit(plugin: string) { + return BI.Constants.getConstant(CONSTANT_PLUGIN_EDIT.replace('${databaseType}', plugin)); +} diff --git a/src/modules/app.ts b/src/modules/app.ts new file mode 100644 index 0000000..e2b4927 --- /dev/null +++ b/src/modules/app.ts @@ -0,0 +1,78 @@ +import { shortcut, store } from '@core/core'; +import { Tab, Vtape, Absolute } from 'ui'; +import { TitleXtype } from './title/title'; +import { PAGE_INDEX } from './constants/constant'; +import { ConnectionXtype, DatebaseXtype, MaintainXtype, ConnectionPoolXtype } from './pages'; +import { AppModel, AppModelXtype } from './app.model'; +import '../less/index.less'; + +export const AppXtype = 'dec.dcm.main'; +@store(AppModelXtype) +@shortcut(AppXtype) +export class App extends BI.Widget { + tab: any; + + store: AppModel['store']; + model: AppModel['model']; + + watch = { + pageIndex: (index: string) => { + this.tab.setSelect(index); + }, + } + + render() { + return { + type: Vtape, + items: [ + { + el: { + type: TitleXtype, + cls: 'bi-border-bottom', + }, + height: 40, + }, + { + type: Absolute, + cls: 'bi-background', + items: [{ + el: { + type: Tab, + cls: 'bi-card', + single: true, + tgap: 10, + showIndex: this.model.pageIndex, + ref: (_ref: any) => { + this.tab = _ref; + }, + cardCreator: (index: string) => { + switch (index) { + case PAGE_INDEX.CONNECTION: + return { + type: ConnectionXtype, + }; + case PAGE_INDEX.DATEBASE: + return { + type: DatebaseXtype, + }; + case PAGE_INDEX.MAINTAIN: + return { + type: MaintainXtype, + }; + default: + return { + type: ConnectionPoolXtype, + }; + } + }, + }, + left: 10, + top: 10, + right: 10, + bottom: 10, + }], + }, + ], + }; + } +} diff --git a/src/modules/app.typings.d.ts b/src/modules/app.typings.d.ts new file mode 100644 index 0000000..2e1513f --- /dev/null +++ b/src/modules/app.typings.d.ts @@ -0,0 +1,12 @@ +export interface DatabaseType { + text: string; + databaseType: string; + driver?: string; + drivers?: string[]; + url?: string; + commonly: boolean; + internal: boolean; + type: string; + hasSchema?: boolean; + kerberos?: boolean; +} diff --git a/src/modules/components/collapse/collapse.model.ts b/src/modules/components/collapse/collapse.model.ts new file mode 100644 index 0000000..9ae58a6 --- /dev/null +++ b/src/modules/components/collapse/collapse.model.ts @@ -0,0 +1,17 @@ +import { model, Model } from '@core/core'; + +export const CollapseModelXtype = 'dec.dcm.model.components.collapse'; +@model(CollapseModelXtype) +export class CollapseModel extends Model { + state() { + return { + isCollapse: true, + }; + } + + actions = { + setCollapse: (isCollapse: boolean) => { + this.model.isCollapse = isCollapse; + }, + } +} diff --git a/src/modules/components/collapse/collapse.ts b/src/modules/components/collapse/collapse.ts new file mode 100644 index 0000000..64611ab --- /dev/null +++ b/src/modules/components/collapse/collapse.ts @@ -0,0 +1,65 @@ +import { IconLabel, Left, Label } from 'ui'; +import { shortcut, store } from '@core/core'; +import { CollapseModel, CollapseModelXtype } from './collapse.model'; + +export const EVENT_CHANGE = 'EVENT_CHANGE'; +export const CollapseXtype = 'dec.dcm.components.collapse'; +@shortcut(CollapseXtype) +@store(CollapseModelXtype) +export class Collapse extends BI.BasicButton { + props = { + name: '', + isCollapse: true, + } + + rightFont: any; + downFont: any; + + model: CollapseModel['model']; + store: CollapseModel['store']; + + watch = { + isCollapse: (isCollapse: boolean) => { + this.rightFont.setVisible(isCollapse); + this.downFont.setVisible(!isCollapse); + this.fireEvent(EVENT_CHANGE, isCollapse); + }, + } + + render() { + this.store.setCollapse(this.options.isCollapse); + + return { + type: Left, + items: [ + { + type: IconLabel, + height: 17, + cls: 'pull-right-font', + ref: (_ref: any) => { + this.rightFont = _ref; + }, + invisible: !this.model.isCollapse, + }, + { + type: IconLabel, + height: 17, + cls: 'pull-down-font', + ref: (_ref: any) => { + this.downFont = _ref; + }, + invisible: this.model.isCollapse, + }, + { + type: Label, + lgap: 2, + text: this.options.name, + }, + ], + }; + } + + doClick() { + this.store.setCollapse(!this.model.isCollapse); + } +} diff --git a/src/modules/components/test_status/test_status.model.ts b/src/modules/components/test_status/test_status.model.ts new file mode 100644 index 0000000..f5a07db --- /dev/null +++ b/src/modules/components/test_status/test_status.model.ts @@ -0,0 +1,17 @@ +import { model, Model } from '@core/core'; +import { TEST_STATUS } from '@constants/constant'; +export const TestStatusModelXtype = 'dec.dcm.model.components.test_status'; +@model(TestStatusModelXtype) +export class TestStatusModel extends Model { + state() { + return { + status: TEST_STATUS.LOADING, + }; + } + + actions = { + setStatus: (status: string) => { + this.model.status = status; + }, + } +} diff --git a/src/modules/components/test_status/test_status.ts b/src/modules/components/test_status/test_status.ts new file mode 100644 index 0000000..54be533 --- /dev/null +++ b/src/modules/components/test_status/test_status.ts @@ -0,0 +1,150 @@ +import { shortcut, store } from '@core/core'; +import { TestStatusModelXtype, TestStatusModel } from './test_status.model'; +import { CenterAdapt, Tab, Horizotal, Vertical } from 'ui'; +import { TEST_STATUS } from '@constants/constant'; +import { TipIconXtype } from './tip_icon/tip_icon'; +import { TipFailXtype, EVENT_CLOSE, EVENT_RELOAD, EVENT_DETAIL } from './tip_icon/tip_fail'; +export const TestStatusXtype = 'dec.dcm.components.test_status'; +export { + EVENT_CLOSE, + EVENT_RELOAD, +}; +@shortcut(TestStatusXtype) +@store(TestStatusModelXtype) +export class TestStatus extends BI.Widget { + props = { + loadingCls: '', + loadingText: '', + successCls: '', + successText: '', + failCls: '', + failText: '', + retryText: '', + } + + model: TestStatusModel['model']; + store: TestStatusModel['store']; + + tab: any; + failMessage: any; + detail: any; + + watch = { + status: (status: string) => { + this.tab.setSelect(status); + }, + } + + render() { + const { loadingCls, loadingText, successCls, successText, failCls, failText, retryText } = this.options; + + return { + type: CenterAdapt, + cls: 'bi-z-index-mask', + items: [ + { + type: Vertical, + items: [ + { + type: Tab, + cls: 'bi-card', + width: 450, + height: 250, + single: true, + showIndex: this.model.status, + ref: (_ref: any) => { + this.tab = _ref; + }, + cardCreator: (index: string) => { + switch (index) { + case TEST_STATUS.SUCCESS: + return { + type: TipIconXtype, + tipCls: successCls, + tipText: successText, + }; + case TEST_STATUS.FAIL: + return { + type: TipFailXtype, + tipCls: failCls, + tipText: failText, + retryText, + listeners: [ + { + eventName: EVENT_RELOAD, + action: () => { + this.fireEvent(EVENT_RELOAD); + this.detail.setVisible(false); + }, + }, + { + eventName: EVENT_CLOSE, + action: () => { + this.fireEvent(EVENT_CLOSE); + }, + }, + { + eventName: EVENT_DETAIL, + action: (isCollapse: boolean) => { + this.detail.setVisible(!isCollapse); + }, + }, + ], + }; + default: + return { + type: TipIconXtype, + tipCls: loadingCls, + tipText: loadingText, + }; + } + }, + }, + { + type: Vertical, + cls: 'bi-card', + invisible: true, + items: [ + { + type: Horizotal, + height: 73, + cls: 'bi-header-background', + tgap: 5, + bgap: 10, + hgap: 10, + scrolly: true, + items: [{ + type: 'bi.label', + whiteSpace: 'normal', + width: 400, + textAlign: 'left', + text: '', + ref: (_ref: any) => { + this.failMessage = _ref; + }, + }], + }, + ], + ref: (_ref: any) => { + this.detail = _ref; + }, + }, + ], + }, + ], + }; + } + + setSuccess() { + this.store.setStatus(TEST_STATUS.SUCCESS); + } + + setFail(message: string) { + this.store.setStatus(TEST_STATUS.FAIL); + this.failMessage.setText(message); + } + + setLoading() { + this.store.setStatus(TEST_STATUS.LOADING); + } +} diff --git a/src/modules/components/test_status/tip_icon/tip_fail.model.ts b/src/modules/components/test_status/tip_icon/tip_fail.model.ts new file mode 100644 index 0000000..ed0b17d --- /dev/null +++ b/src/modules/components/test_status/tip_icon/tip_fail.model.ts @@ -0,0 +1,18 @@ +import { model, Model } from '@core/core'; +export const TipFailModelXtype = 'dec.dcm.model.components.test_status.tip_fail'; +@model(TipFailModelXtype) +export class TipFailModel extends Model { + context: ['isCollapse']; + + state() { + return { + isCollapse: false, + }; + } + + actions = { + setIsCollapse: (isCollapse: boolean) => { + this.model.isCollapse = isCollapse; + }, + } +} diff --git a/src/modules/components/test_status/tip_icon/tip_fail.ts b/src/modules/components/test_status/tip_icon/tip_fail.ts new file mode 100644 index 0000000..1117637 --- /dev/null +++ b/src/modules/components/test_status/tip_icon/tip_fail.ts @@ -0,0 +1,92 @@ +import { shortcut, store } from '@core/core'; +import { Vertical, HorizotalAuto, CenterAdapt, Label, VerticalAdapt, Button } from 'ui'; +import { TipFailModel, TipFailModelXtype } from './tip_fail.model'; +export const TipFailXtype = 'dec.dcm.components.test_status.tip_fail'; +export const EVENT_CLOSE = 'EVENT_CLOSE'; +export const EVENT_RELOAD = 'EVENT_RELOAD'; +export const EVENT_DETAIL = 'EVENT_DETAIL'; +@shortcut(TipFailXtype) +@store(TipFailModelXtype) +export class TipFail extends BI.Widget { + props = { + tipCls: '', + tipText: '', + retryText: '', + } + + model: TipFailModel['model']; + store: TipFailModel['store']; + + detailButton: any; + + watch = { + isCollapse: (isCollapse: boolean) => { + this.detailButton.setText(isCollapse ? + BI.i18nText('Dec-Dcm_Connection_Handup_Information') : + BI.i18nText('Dec-Dcm_Connection_Detailed_Information')); + }, + } + + render() { + const { tipCls, tipText, retryText } = this.options; + + return { + type: CenterAdapt, + items: [ + { + type: Vertical, + items: [ + { + type: HorizotalAuto, + cls: tipCls, + bgap: 20, + items: [{ + type: 'bi.icon', + width: 96, + height: 96, + }], + }, { + type: Label, + height: 14, + bgap: 10, + text: tipText, + }, + { + type: VerticalAdapt, + hgap: 5, + items: [ + { + type: Button, + text: BI.i18nText('Dec-Dcm_Connection_Detailed_Information'), + level: 'ignore', + ref: (_ref: any) => { + this.detailButton = _ref; + }, + handler: () => { + this.store.setIsCollapse(!this.model.isCollapse); + this.fireEvent(EVENT_DETAIL, !this.model.isCollapse); + }, + }, + { + type: Button, + text: BI.i18nText('Dec-Dcm_Back'), + level: 'ignore', + handler: () => { + this.fireEvent(EVENT_CLOSE); + }, + }, + { + type: Button, + text: retryText, + handler: () => { + this.fireEvent(EVENT_RELOAD); + }, + }, + ], + }, + ], + }, + ], + }; + } +} diff --git a/src/modules/components/test_status/tip_icon/tip_icon.ts b/src/modules/components/test_status/tip_icon/tip_icon.ts new file mode 100644 index 0000000..8c04341 --- /dev/null +++ b/src/modules/components/test_status/tip_icon/tip_icon.ts @@ -0,0 +1,38 @@ +import { shortcut } from '@core/core'; +import { Vertical, HorizotalAuto, CenterAdapt, Label } from 'ui'; +export const TipIconXtype = 'dec.dcm.components.test_status.tip_icon'; +@shortcut(TipIconXtype) +export class TipIcon extends BI.Widget { + props = { + tipCls: '', + tipText: '', + } + render() { + const { tipCls, tipText } = this.options; + + return { + type: CenterAdapt, + items: [ + { + type: Vertical, + items: [ + { + type: HorizotalAuto, + cls: tipCls, + bgap: 20, + items: [{ + type: 'bi.icon', + width: 96, + height: 96, + }], + }, { + type: Label, + height: 14, + text: tipText, + }, + ], + }, + ], + }; + } +} diff --git a/src/modules/constants/constant.ts b/src/modules/constants/constant.ts new file mode 100644 index 0000000..977e946 --- /dev/null +++ b/src/modules/constants/constant.ts @@ -0,0 +1,466 @@ +import { CONSTANT_PLUGIN_TYPES } from './plugin'; + +export const PAGE_INDEX = { + CONNECTION: 'connection', + DATEBASE: 'datebase', + MAINTAIN: 'maintain', + POOL: 'pool', +}; + +export const DATEBASE_FILTER_TYPE = { + COMMONLY: 'commonly', + ALL: 'all', + OTHER: 'other', +}; + +BI.constant(CONSTANT_PLUGIN_TYPES, [ +]); +export const DATA_BASE_TYPES = [ + { + text: 'ADS', + databaseType: 'ads', + driver: 'com.mysql.jdbc.Driver', + url: 'jdbc:mysql://hostname:port/my_ads_db', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: 'Amazon Redshift', + databaseType: 'amazon-redshift', + driver: 'com.amazon.redshift.jdbc4.Driver', + drivers: ['com.amazon.redshift.jdbc4.Driver', 'com.amazon.redshift.jdbc41.Driver'], + url: 'jdbc:redshift://endpoint:port/database', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: 'APACHE IMPALA', + databaseType: 'apache-impala', + driver: 'com.cloudera.impala.jdbc41.Driver', + url: 'jdbc:impala://hostname:port/_impala_builtins', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: true, + }, + { + text: 'APACHE KYLIN', + databaseType: 'apache-kylin', + driver: 'org.apache.kylin.jdbc.Driver', + url: 'jdbc:kylin://hostname:port/', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, + { + text: 'APACHE Phoenix', + databaseType: 'apache-phoenix', + driver: 'org.apache.phoenix.jdbc.PhoenixDriver', + url: 'jdbc:phoenix:hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: true, + }, + { + text: 'DERBY', + databaseType: 'derby', + driver: 'org.apache.derby.jdbc.ClientDriver', + url: 'jdbc:derby://hostname:port/', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, + { + text: 'Gbase 8A', + databaseType: 'gbase-8a', + driver: 'com.gbase.jdbc.Driver', + url: 'jdbc:gbase://hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: 'Gbase 8S', + databaseType: 'gbase-8s', + driver: 'com.gbasedbt.jdbc.IfxDriver', + url: 'jdbc:gbasedbt-sqli://hostname:port/{database}', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, + { + text: 'Gbase 8T', + databaseType: 'gbase-8t', + driver: 'com.informix.jdbc.IfxDriver', + url: 'jdbc:informix-sqli://hostname:port/{database}:INFORMIXSERVER={server}', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, + { + text: 'H2', + databaseType: 'h2', + driver: 'org.h2.Driver', + url: 'jdbc:h2://${ENV_HOME}/../databaseName', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: '华为云DWS', + databaseType: 'hw-dws', + driver: 'org.postgresql.Driver', + url: 'jdbc:postgresql://hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: 'FusionInsight elk', + databaseType: 'hw-elk', + driver: 'org.postgresql.Driver', + url: 'jdbc:postgresql://hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: 'FusionInsight HD', + databaseType: 'hw-fusioninsight-hd', + driver: 'org.apache.hive.jdbc.HiveDriver', + url: 'jdbc:hive2://10.135.0.110:24002,10.135.0.67:24002,10.135.0.66:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;zk.principal=zookeeper/hadoop;principal=hive/hadoop.hadoop.com@HADOOP.COM;', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: 'GaussDB 200', + databaseType: 'hw-libr-a', + driver: 'org.postgresql.Driver', + url: 'jdbc:postgresql://hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, { + text: 'Hadoop Hive', + databaseType: 'hadoop-hive', + driver: 'org.apache.hive.jdbc.HiveDriver', + url: 'jdbc:hive2://hostname:port/databasename', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: true, + }, { + text: 'Hbase', + databaseType: 'hbase', + driver: 'org.apache.phoenix.jdbc.PhoenixDriver', + url: 'jdbc:phoenix:hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: true, + }, { + text: 'HP Vertica', + databaseType: 'hp-vertica', + driver: 'com.vertica.jdbc.Driver', + url: 'jdbc:vertica://hostname:port/databaseName', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'Hsql', + databaseType: 'hsql', + driver: 'com.fr.third.org.hsqldb.jdbcDriver', + url: 'jdbc:hsqldb:file:[PATH_TO_DB_FILES]', + commonly: true, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, { + text: 'IBM DB2', + databaseType: 'ibm-db2', + driver: 'com.ibm.db2.jcc.DB2Driver', + url: 'jdbc:db2://hostname:port/dbname', + commonly: true, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'INFORMIX', + databaseType: 'informix', + driver: 'com.informix.jdbc.IfxDriver', + url: 'jdbc:informix-sqli://hostname:port/{database}:INFORMIXSERVER={server}', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'KINGBASE', + databaseType: 'kingbase', + driver: 'com.kingbase.Driver', + url: 'jdbc:kingbase://hostname:port', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'Microsoft SQL Server', + databaseType: 'sql-server', + driver: 'com.microsoft.sqlserver.jdbc.SQLServerDriver', + url: 'jdbc:sqlserver://hostname:port;databaseName=', + commonly: true, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'MySQL', + databaseType: 'mysql', + driver: 'com.mysql.jdbc.Driver', + drivers: ['com.mysql.jdbc.Driver', 'org.gjt.mm.mysql.Driver'], + url: 'jdbc:mysql://hostname:port/dbname', + commonly: true, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, + { + text: 'Oracle', + databaseType: 'oracle', + driver: 'oracle.jdbc.driver.OracleDriver', + url: 'jdbc:oracle:thin:@hostname:port:databaseName', + commonly: true, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, + { + text: 'Pivotal Greenplum Database', + databaseType: 'pivotal-greenplum-database', + driver: 'org.postgresql.Driver', + url: 'jdbc:postgresql://hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'Postgresql', + databaseType: 'postgresql', + driver: 'org.postgresql.Driver', + url: 'jdbc:postgresql://hostname:port/dbname', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'Presto', + databaseType: 'presto', + driver: 'com.facebook.presto.jdbc.PrestoDriver', + url: 'jdbc:presto://hostname:port/catalog', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'SAP HANA', + databaseType: 'sap-hana', + driver: 'com.sap.db.jdbc.Driver', + url: 'jdbc:sap://hostname:port?reconnect=true', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'SAP Sybase', + databaseType: 'sap-sybase', + driver: 'com.sybase.jdbc4.jdbc.SybDriver', + url: 'jdbc:sybase:Tds:hostname:port/databasename', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: true, + kerberos: false, + }, { + text: 'SPARK', + databaseType: 'spark', + driver: 'org.apache.hive.jdbc.HiveDriver', + url: 'jdbc:hive2://hostname:port/databasename', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: true, + }, { + text: 'Sqlite', + databaseType: 'sqlite', + driver: 'org.sqlite.JDBC', + url: 'jdbc:sqlite:[PATH_TO_DB_FILES]', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, { + text: 'TeraData', + databaseType: 'teradata', + driver: 'com.ncr.teradata.TeraDriver', + url: 'jdbc:teradata://hostname:port/CLIENT_CHARSET=EUC_CN,TMODE=TERA,CHARSET=ASCII,LOB_SUPPORT', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: false, + }, { + text: 'TRANSWARP INCEPTOR', + databaseType: 'transwarp-inceptor', + driver: 'org.apache.hive.jdbc.HiveDriver', + url: 'jdbc:hive2://hostname:port/databasename', + commonly: false, + internal: true, + type: 'jdbc', + hasSchema: false, + kerberos: true, + }, { + text: 'JNDI', + databaseType: 'jndi', + driver: '', + url: '', + commonly: false, + internal: true, + type: 'jndi', + hasSchema: false, + kerberos: false, + }, + ...BI.Constants.getConstant(CONSTANT_PLUGIN_TYPES).map(item => { + return { + ...item, + internal: false, + commonly: false, + }; + }), +]; + +export const CONNECT_CHARSET = [ + { + text: '自动', + value: '', + }, + { + text: 'GBK', + value: 'GBK', + }, + { + text: 'BIG5', + value: 'BIG5', + }, + { + text: 'ISO-8859-1', + value: 'ISO-8859-1', + }, + { + text: 'UTF-8', + value: 'UTF-8', + }, + { + text: 'UTF-16', + value: 'UTF-16', + }, + { + text: 'EUC_JP', + value: 'EUC_JP', + }, + { + text: 'EUC_KR', + value: 'EUC_KR', + }, + { + text: 'CP850', + value: 'CP850', + }, +]; + +export const TEST_STATUS = { + LOADING: 'loading', + SUCCESS: 'success', + FAIL: 'fail', +}; + +export const DEFAULT_JNDI_DATA = { + jndiname: '', + originalCharsetName: '', + newCharsetName: '', + contextHashtable: { + 'java.naming.factory.initial': '', + 'java.naming.provider.url': '', + 'java.naming.factory.object': '', + 'java.naming.factory.state': '', + 'java.naming.factory.url.pkgs': '', + 'java.naming.dns.url': '', + 'java.naming.authoritative': '', + 'java.naming.batchsize': '', + 'java.naming.referral': '', + 'java.naming.security.protocol': '', + 'java.naming.security.authentication': '', + 'java.naming.security.principal': '', + 'java.naming.security.credentials': '', + 'java.naming.language': '', + 'java.naming.applet': '', + }, +}; + +export const DEFAULT_JDBC_POOL = { + initialSize: 0, + maxActive: 50, + maxIdle: 10, + maxWait: 10000, + testOnBorrow: false, + testOnReturn: false, + testWhileIdle: false, + timeBetweenEvictionRunsMillis: -1, + numTestsPerEvictionRun: 3, + minEvictableIdleTimeMillis: 1800, +}; + diff --git a/src/modules/constants/env.ts b/src/modules/constants/env.ts new file mode 100644 index 0000000..5f267f7 --- /dev/null +++ b/src/modules/constants/env.ts @@ -0,0 +1,13 @@ +const fineServletURL = Dec ? Dec.fineServletURL : '/webroot/decision'; +export const ReqPrefix = `${fineServletURL}/V10/config/connection`; +export const ImgPrefix = `${fineServletURL}/resources?path=/com/fr/web/resources/dist/images/2x/icon/database/`; + +export const connectionType = DecCst ? DecCst.Connect.ConnectionType : { + JDBC: 'jdbc', + JNDI: 'jndi', +}; + +export const editStatusEvent = DecCst ? DecCst.Connect.EditStatusEvent : { + OPEN: 'getConnectionStatus', + SHUTDOWN: 'shutdownConnectionStatus', +}; diff --git a/src/modules/constants/plugin.ts b/src/modules/constants/plugin.ts new file mode 100644 index 0000000..6037508 --- /dev/null +++ b/src/modules/constants/plugin.ts @@ -0,0 +1,3 @@ +export const CONSTANT_PLUGIN_TYPES = 'dec.constant.database.conf.connect.types'; +export const CONSTANT_PLUGIN_SHOW = 'dec.constant.database.conf.connect.form.${databaseType}.show'; +export const CONSTANT_PLUGIN_EDIT = 'dec.constant.database.conf.connect.form.${databaseType}.edit'; diff --git a/src/modules/core/core.ts b/src/modules/core/core.ts new file mode 100644 index 0000000..a4c222a --- /dev/null +++ b/src/modules/core/core.ts @@ -0,0 +1,43 @@ +type Constructor = new(...args: any[]) => T; + +export function shortcut(className: string) { + return function decorator(Base: Constructor): void { + BI.shortcut(className, Base); + }; +} + +export function store(modelName: string) { + return function decorator(Base: Constructor): void { + Base.prototype._store = () => BI.Models.getModel(modelName); + }; +} + +export function model(className: string) { + return function decorator(Base: Constructor): void { + BI.model(className, Base); + }; +} + +export class Model extends Fix.Model { + model: {[key in keyof U['context']]: U['context'][key]} & {[key in keyof ReturnType]: ReturnType[key]} & {[key in keyof this['computed']]: ReturnType} & {[key: string]: undefined}; + + store: this['actions']; + + state(): {[key: string]: any} { + return {}; + } + + // context: Partial; + + context: string[]; + + actions:{[key: string]: (...args: any[]) => any}; + + // childContext: (keyof this['$$childContext'])[]; + + childContext: string[]; + + $$childContext: {[key in keyof this['computed']]: ReturnType} & {[key in keyof ReturnType]: ReturnType[key]}; + + computed: {[key: string]: () => any}; +} diff --git a/src/modules/crud/api.ts b/src/modules/crud/api.ts new file mode 100644 index 0000000..b6f241b --- /dev/null +++ b/src/modules/crud/api.ts @@ -0,0 +1,42 @@ +import { Connection, TestRequest, ConnectionPoolType } from './crud.typings'; + +export interface Api { + /** + * 是否是平台 + */ + isDec: boolean; + + /** + * 获取已添加的数据连接 + */ + getConnectionlist(): Promise<{data: Connection[]}>; + + /** + * 删除数据连接 + * @param connectionName 数据连接名称 + */ + deleteConnection(connectionName: string): Promise<{data: string}>; + + /** + * 添加数据连接 + * @param data + */ + addConnection(data: Connection): Promise<{data: string}>; + + /** + * 更新数据连接 + */ + updateConnection(data: Connection): Promise<{data: string}>; + + /** + * 测试数据连接 + * @param data + */ + testConnection(data: Connection): Promise; + + /** + * 获取连接池数据 + * @param name + */ + getConnectionPool(name: string): Promise<{data: ConnectionPoolType}>; +} diff --git a/src/modules/crud/apiFactory.ts b/src/modules/crud/apiFactory.ts new file mode 100644 index 0000000..653431f --- /dev/null +++ b/src/modules/crud/apiFactory.ts @@ -0,0 +1,14 @@ +import { DecisionApi } from './decision.api'; +import { DesignApi } from './design.api'; +import { Api } from './api'; + +export class ApiFactory { + isDec = true; + create():Api { + if (this.isDec) { + return new DecisionApi(); + } + + return new DesignApi(); + } +} diff --git a/src/modules/crud/crud.service.ts b/src/modules/crud/crud.service.ts new file mode 100644 index 0000000..1b69160 --- /dev/null +++ b/src/modules/crud/crud.service.ts @@ -0,0 +1,113 @@ +import 'es6-promise/auto'; +import axios, { AxiosResponse, AxiosError } from 'axios'; +import { CrudReqOpts, CrudParams } from './crud.typings.d'; +import { ReqPrefix } from '../constants/env'; + +export function paramsSerializer(params: { [key: string]: any }) { + return Object.keys(params || {}) + .map(paramKey => { + const paramValue = params[paramKey]; + + let value = ''; + + if (BI.isObject(paramValue)) { + value = BI.encodeURIComponent(JSON.stringify(paramValue)); + } else { + value = paramValue; + } + + return BI.isNull(value) ? '' : `${paramKey}=${value}`; + }) + .filter(v => v !== '') + .join('&'); +} +function getCookieByName(name: string):string { + let value = null; + const regExpName = new RegExp(name); + document.cookie.split(';').forEach((item: string) => { + if (item.match(regExpName)) { + value = item.split(`${name}=`)[1]; + + return false; + } + }); + + return value; +} + +export async function request(reqOptions: CrudReqOpts = {}) { + const { url, type, headers, data, params } = reqOptions; + + return axios + .request({ + url, + baseURL: ReqPrefix, + method: type, + headers: { + ...headers, + Authorization: `Bearer ${getCookieByName('fine_auth_token')}`, + }, + params, + paramsSerializer, + data, + }) + .then((response: AxiosResponse) => { + const status = response.status; + + return status === 200 + ? typeof response.data === 'string' + ? BI.jsonDecode(response.data) + : response.data + : {}; + }) + .catch((error: AxiosError) => { + console.log(error); + }); +} + +export function requestGet(url: string, data?: any, params: CrudParams = {}) { + return request({ + url, + type: 'GET', + data, + params, + headers: { + 'Content-Type': 'application/json', + }, + }); +} + +export function requestPost(url: string, data = {}, params: CrudParams = {}) { + return request({ + url, + type: 'POST', + data, + params, + headers: { + 'Content-Type': 'application/json', + }, + }); +} + +export function requestDelete(url: string, data = {}) { + return request({ + url, + type: 'DELETE', + data, + headers: { + 'Content-Type': 'application/json', + }, + }); +} + +export function requestPut(url: string, data = {}, params: CrudParams = {}) { + return request({ + url, + type: 'PUT', + data, + params, + headers: { + 'Content-Type': 'application/json', + }, + }); +} diff --git a/src/modules/crud/crud.typings.d.ts b/src/modules/crud/crud.typings.d.ts new file mode 100644 index 0000000..b8e9640 --- /dev/null +++ b/src/modules/crud/crud.typings.d.ts @@ -0,0 +1,206 @@ + +export interface CrudReqOpts { + url?: string; + type?: 'GET' | 'POST' | 'DELETE' | 'PUT'; + data?: any; + headers?: { + [key: string]: string; + }; + noProgress?: boolean; + params?: CrudParams; +} + +export interface CrudParams { + [key: string]: string | number | { [key: string]: any }; +} + +export interface Connection { + connectionId: string; + connectionType: string; + connectionName: string; + connectionData: ConnectionJDBC | ConnectionJNDI | ConnectionPlugin | string; +} + +export interface ConnectionJDBC { + /** + * 数据库名称 + */ + database: string; + /** + * 连接名 + */ + connectionName: string; + + /** + * 驱动 + */ + driver: string; + /** + * 数据库连接url + */ + url: string; + /** + * 用户名 + */ + user?: string; + /** + * 密码 + */ + password?: string; + /** + * 请求类型 + */ + queryType?: string; + /** + * 新编码名称 + */ + newCharsetName?: any; + /** + * 原始编码名称 + */ + originalCharsetName?: any; + /** + * 模式 + */ + schema?: string; + /** + * 连接前校验(弃用) + */ + testOnBorrow?: boolean; + /** + * 最大活动数(弃用) + */ + maxActive?: number; + /** + * 选项 + */ + options?: string; + /** + * 端口号 + */ + port?: number|''; + /** + * 主机名 + */ + host?: string; + /** + * 认证类型 + */ + authType?: string; + /** + * 创建者 + */ + creator?: string; + /** + * 客户端principal + */ + principal?: string; + /** + * 秘钥路径 + */ + keyPath?: string; + + connectionPool: ConnectionPoolJDBC; +} + +export interface ConnectionPoolJDBC { + /** + * 初始化连接数量 + */ + initialSize?: number; + /** + * 最大连接数 + */ + maxActive?: number; + /** + * 最大空闲数 + */ + maxIdle?: number; + /** + * 最小空闲数 + */ + minIdle?: number; + /** + * 最大等待时间 + */ + maxWait?: number; + /** + * sql查询 + */ + validationQuery?: string; + + /** + * 连接前校验 + */ + testOnBorrow?: boolean; + + /** + * 归还前校验 + */ + testOnReturn?: boolean; + + /** + * 空闲校验 + */ + testWhileIdle?: boolean; + /** + * 在空闲连接回收器线程运行期间休眠的时间值,毫秒。 + */ + timeBetweenEvictionRunsMillis?: number; + /** + * 每次空闲连接回收器现成运行时检查的连接数量 + */ + numTestsPerEvictionRun?: number; + /** + * 连接在池中保持空闲而不被空闲连接回收器回收的最小时间,单位毫秒 + */ + minEvictableIdleTimeMillis?: number; +} + +export interface ConnectionJNDI { + jndiname: string; + /** + * 编码 + */ + originalCharsetName: string; + newCharsetName: string; + creator?: string; + contextHashtable: ContextHashtable; +} + +export interface ContextHashtable { + 'java.naming.factory.initial': string; + 'java.naming.provider.url': string; + 'java.naming.factory.object': string; + 'java.naming.factory.state': string; + 'java.naming.factory.url.pkgs': string; + 'java.naming.dns.url': string; + 'java.naming.authoritative': string; + 'java.naming.batchsize': string; + 'java.naming.referral': string; + 'java.naming.security.protocol': string; + 'java.naming.security.authentication': string; + 'java.naming.security.principal': string; + 'java.naming.security.credentials': string; + 'java.naming.language': string; + 'java.naming.applet': string; +} + +export interface ConnectionPlugin { + pluginType: 'json'; + creator: ''; + pluginData: any; +} + +export interface TestRequest { + data?: []; + errorCode?: string; + errorMsg?: string; +} + +export interface ConnectionPoolType { + maxActive: number; + maxIdle: number; + numActive: number; + numIdle: number; +} diff --git a/src/modules/crud/decision.api.ts b/src/modules/crud/decision.api.ts new file mode 100644 index 0000000..11b0b7c --- /dev/null +++ b/src/modules/crud/decision.api.ts @@ -0,0 +1,50 @@ +import { Api } from './api'; +import { Connection, TestRequest, ConnectionPoolType } from './crud.typings'; +import { requestGet, requestDelete, requestPost, requestPut } from './crud.service'; + +export class DecisionApi implements Api { + isDec = true; + + getConnectionlist(): Promise<{data: Connection[]}> { + return requestGet('list'); + } + + deleteConnection(connectionName: string): Promise<{data: string}> { + return requestDelete('', { + connectionName, + }); + } + + addConnection(data: Connection): Promise<{data: string}> { + const form = { + ...data, + connectionId: data.connectionName, + connectionData : JSON.stringify(data.connectionData), + }; + + return requestPost('', form); + } + + updateConnection(data: Connection): Promise<{data: string}> { + const form = { + ...data, + connectionData : JSON.stringify(data.connectionData), + }; + + return requestPut('', form); + } + + testConnection(data: Connection): Promise { + const form = { + ...data, + connectionId: data.connectionName, + connectionData : JSON.stringify(data.connectionData), + }; + + return requestPost('test', form); + } + + getConnectionPool(name: string): Promise<{data: ConnectionPoolType}> { + return requestGet(`pool/info?connectionName=${name}`); + } +} diff --git a/src/modules/crud/design.api.ts b/src/modules/crud/design.api.ts new file mode 100644 index 0000000..4b14027 --- /dev/null +++ b/src/modules/crud/design.api.ts @@ -0,0 +1,47 @@ +import { Api } from './api'; +import { Connection, TestRequest, ConnectionPoolType } from './crud.typings'; +// TODO: 此页面的接口等待设计器提供相应的方法 + +export class DesignApi implements Api { + isDec = false; + + getConnectionlist(): Promise<{data: Connection[]}> { + return new Promise(resolve => { + resolve({ data: [] }); + }); + } + + deleteConnection(connectionName: string): Promise<{data: string}> { + return new Promise(resolve => { + resolve({ data: 'success' }); + }); + } + + addConnection(data: Connection): Promise<{data: string}> { + return new Promise(resolve => { + resolve({ data: 'success' }); + }); + } + + updateConnection(data: Connection): Promise<{data: string}> { + return new Promise(resolve => { + resolve({ data: 'success' }); + }); + } + testConnection(data: Connection): Promise { + return new Promise(resolve => { + resolve({ data: [] }); + }); + } + + getConnectionPool(name: string): Promise<{data: ConnectionPoolType}> { + return new Promise(resolve => { + resolve({ data: { + maxActive: 1, + maxIdle: 1, + numActive: 1, + numIdle: 1, + } }); + }); + } +} diff --git a/src/modules/pages/connection/components/form_item/form_item.ts b/src/modules/pages/connection/components/form_item/form_item.ts new file mode 100644 index 0000000..f9ad880 --- /dev/null +++ b/src/modules/pages/connection/components/form_item/form_item.ts @@ -0,0 +1,30 @@ +import { shortcut } from '@core/core'; +import { Label, Left } from 'ui'; +export const FormItemXtype = 'dec.dcm.connection_form_item'; +@shortcut(FormItemXtype) +export class FormItem extends BI.Widget { + props = { + name: '', + value: '', + nameWidth: 140, + } + + render () { + return { + type: Left, + items: [ + { + type: Label, + cls: 'bi-font-bold', + width: this.options.nameWidth, + textAlign: 'left', + text: this.options.name, + }, + { + type: Label, + text: this.options.value, + }, + ], + }; + } +} diff --git a/src/modules/pages/connection/connection.model.ts b/src/modules/pages/connection/connection.model.ts new file mode 100644 index 0000000..a545f27 --- /dev/null +++ b/src/modules/pages/connection/connection.model.ts @@ -0,0 +1,28 @@ +import { model, Model } from '@core/core'; +import { AppModel } from '../../app.model'; + +export const ConnectionModelXtype = 'dec.dcm.model.connection'; +@model(ConnectionModelXtype) +export class ConnectionModel extends Model<{ + context : { + pageIndex: AppModel['$$childContext']['pageIndex']; + connections: AppModel['$$childContext']['connections']; + connectionSelected: AppModel['$$childContext']['connectionSelected']; + connectionSelectedOne: AppModel['$$childContext']['connectionSelectedOne']; + datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; + } +}> { + context = ['pageIndex', 'connectionSelected', 'connectionSelectedOne', 'datebaseTypeSelected']; + + actions = { + setPageIndex:(index: string) => { + this.model.pageIndex = index; + }, + setDatebaseTypeSelected(name: string) { + this.model.datebaseTypeSelected = name; + }, + setConnectionSelected(name: string) { + this.model.connectionSelected = name; + }, + } +} diff --git a/src/modules/pages/connection/connection.ts b/src/modules/pages/connection/connection.ts new file mode 100644 index 0000000..3a7a3ed --- /dev/null +++ b/src/modules/pages/connection/connection.ts @@ -0,0 +1,184 @@ +import { Button, Htape, Vtape, Label, VerticalAdapt, ListView, LeftRightVerticalAdapt, CenterAdapt, Layout } from 'ui'; +import { shortcut, store } from '@core/core'; +import { ConnectionModel, ConnectionModelXtype } from './connection.model'; +import { PAGE_INDEX } from '@constants/constant'; +import { ConnectionListXtype } from './list/list'; +import { ConnectionJdbcXtype } from './connection_jdbc/connection_jdbc'; +import { ConnectionJndiXtype } from './connection_jndi/connection_jndi'; +import { ConnectionPluginXtype } from './connection_plugin/connection_plugin'; +import { connectionType, editStatusEvent } from '@constants/env'; +import { getAllDatabaseTypes } from '../../app.service'; + +export const ConnectionXtype = 'dec.dcm.connection'; +@shortcut(ConnectionXtype) +@store(ConnectionModelXtype) +export class Connection extends BI.Widget { + store: ConnectionModel['store']; + model: ConnectionModel['model']; + + connectionTitleWidget: any; + connectionEditWidget: any; + listView: any; + title: any; + + watch = { + connectionSelected:(name: string) => { + this.connectionTitleWidget.setText(`${name}`); + this.connectionEditWidget.setVisible(!!name); + if (name) { + const hasRegistered = this.hasRegistered(); + this.title.setVisible(hasRegistered); + if (!hasRegistered) { + this.listView.populate(BI.createItems(this.renderNoRegistered())); + } else { + this.listView.populate(BI.createItems(this.renderItems())); + } + } + }, + } + + render() { + this.store.setConnectionSelected(''); + + return { + type: Htape, + items: [ + { + el: { + type: Vtape, + cls: 'bi-border-right', + items: [ + { + el: { + type: VerticalAdapt, + cls: 'bi-border-bottom', + lgap: 10, + items: [{ + type: Button, + text: BI.i18nText('Dec-Dcm_Connection_New'), + handler: () => { + this.store.setPageIndex(PAGE_INDEX.DATEBASE); + }, + }], + }, + height: 40, + }, + { + type: ConnectionListXtype, + tgap: 5, + }, + ], + }, + width: 275, + }, + { + type: Vtape, + items: [ + { + el: { + type: LeftRightVerticalAdapt, + ref: (_ref: any) => { + this.title = _ref; + }, + cls: 'bi-border-bottom', + items: { + left: [ + { + type: Label, + lgap: 5, + ref: (_ref: any) => { + this.connectionTitleWidget = _ref; + }, + }, + ], + right: [ + { + type: Button, + rgap: 5, + level: 'ignore', + invisible: true, + text: BI.i18nText('Dec-Dcm_Edit'), + ref: (_ref: any) => { + this.connectionEditWidget = _ref; + }, + handler: () => { + this.store.setPageIndex(PAGE_INDEX.MAINTAIN); + this.store.setDatebaseTypeSelected(''); + Dec ? Dec.socket.emit(editStatusEvent.OPEN, this.model.connectionSelected) : null; + }, + }, + ], + }, + }, + height: 40, + }, + { + type: ListView, + vgap: 15, + ref: (_ref: any) => { + this.listView = _ref; + }, + }, + ], + }, + ], + }; + } + + private renderItems() { + switch (this.model.connectionSelectedOne.connectionType) { + case connectionType.JDBC: + return [{ + type: ConnectionJdbcXtype, + }]; + case connectionType.JNDI: + return [{ + type: ConnectionJndiXtype, + }]; + default: + return [{ + type: ConnectionPluginXtype, + }]; + } + } + + private renderNoRegistered() { + return [{ + type: CenterAdapt, + height: 500, + items: [ + { + type: Vtape, + width: 300, + height: 150, + items: [ + { + el: { + type: Layout, + cls: 'error-page-background', + }, + height: 130, + }, + { + type: Label, + cls: 'bi-tips', + text: BI.i18nText('Dec-Dcm_Connection_Np_Registered'), + }, + ], + }, + ], + }]; + } + + private hasRegistered() { + const allDatabaseTypes = getAllDatabaseTypes(); + switch (this.model.connectionSelectedOne.connectionType) { + case connectionType.JDBC: + return true; + case connectionType.JNDI: + return true; + default: + return allDatabaseTypes.some(item => item.databaseType === this.model.connectionSelectedOne.connectionType); + } + } +} diff --git a/src/modules/pages/connection/connection_jdbc/connection_jdbc.model.ts b/src/modules/pages/connection/connection_jdbc/connection_jdbc.model.ts new file mode 100644 index 0000000..cb894c0 --- /dev/null +++ b/src/modules/pages/connection/connection_jdbc/connection_jdbc.model.ts @@ -0,0 +1,11 @@ +import { model, Model } from '@core/core'; +import { ConnectionModel } from '../connection.model'; +export const ConnectionJdbcModelXtype = 'dec.dcm.model.connection_jdbc'; +@model(ConnectionJdbcModelXtype) +export class ConnectionJdecModel extends Model<{ + context : { + connectionSelectedOne: ConnectionModel['$$childContext']['connectionSelectedOne']; + } +}> { + context = ['connectionSelectedOne']; +} diff --git a/src/modules/pages/connection/connection_jdbc/connection_jdbc.ts b/src/modules/pages/connection/connection_jdbc/connection_jdbc.ts new file mode 100644 index 0000000..919441f --- /dev/null +++ b/src/modules/pages/connection/connection_jdbc/connection_jdbc.ts @@ -0,0 +1,149 @@ +import { shortcut, store } from '@core/core'; +import { Vertical } from 'ui'; +import { FormItemXtype } from '../components/form_item/form_item'; +import { CollapseXtype, EVENT_CHANGE } from 'src/modules/components/collapse/collapse'; +import { ConnectionJdbcModelXtype, ConnectionJdecModel } from './connection_jdbc.model'; +import { ConnectionJDBC } from 'src/modules/crud/crud.typings'; +import { getAllDatabaseTypes } from '../../../app.service'; +export const ConnectionJdbcXtype = 'dec.dcm.connection_jdbc'; +@shortcut(ConnectionJdbcXtype) +@store(ConnectionJdbcModelXtype) +export class ConnectionJdbc extends BI.Widget { + advancedSet: any; + + model: ConnectionJdecModel['model']; + allDatabaseTypes = getAllDatabaseTypes(); + + render () { + const connectionData = this.model.connectionSelectedOne.connectionData as ConnectionJDBC; + const { driver, database, host, user, newCharsetName, schema, connectionPool, port, authType, principal, keyPath } = connectionData; + const databaseType = this.allDatabaseTypes.find(item => item.databaseType === database); + + return { + type: Vertical, + hgap: 15, + vgap: 10, + items: [ + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Driver'), + value: driver, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Name'), + value: database, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Host'), + value: host, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'), + value: port === 0 ? '' : port, + }, + { + type: FormItemXtype, + name: authType ? BI.i18nText('Dec-Dcm_Connection_Form_Principal') : BI.i18nText('Dec-Dcm_Connection_Form_UserName'), + value: authType ? user : principal, + }, + { + type: FormItemXtype, + name: authType ? BI.i18nText('Dec-Dcm_Connection_Form_KeyPath') : BI.i18nText('Dec-Dcm_Connection_Form_Password'), + value: authType ? keyPath : '******', + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), + value: newCharsetName ? newCharsetName : BI.i18nText('Dec-Dcm_Connection_Form_Auto'), + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Pattern'), + value: schema, + invisible: !databaseType.hasSchema, + }, + { + type: CollapseXtype, + width: 70, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Advanced_Setting'), + listeners: [ + { + eventName: EVENT_CHANGE, + action: (isCollapse: boolean) => { + this.advancedSet.setVisible(!isCollapse); + }, + }, + ], + }, + { + type: Vertical, + vgap: 10, + invisible: true, + ref: (_ref: any) => { + this.advancedSet = _ref; + }, + items: [ + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Initial_Size'), + value: connectionPool.initialSize, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Active'), + value: connectionPool.maxActive, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Idle'), + value: connectionPool.maxIdle, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Wait'), + value: connectionPool.maxWait, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Validation_Query'), + value: connectionPool.validationQuery, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Borrow'), + value: connectionPool.testOnBorrow, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Return'), + value: connectionPool.testOnReturn, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_While_Idle'), + value: connectionPool.testWhileIdle, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_Between_Eviction_Millis'), + value: connectionPool.timeBetweenEvictionRunsMillis, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Tests_PerEviction_Run_Num'), + value: connectionPool.numTestsPerEvictionRun, + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Min_Evictable_Idle_Time_Millis'), + value: connectionPool.minEvictableIdleTimeMillis, + }, + ], + }, + ], + }; + } +} diff --git a/src/modules/pages/connection/connection_jndi/connection_jndi.model.ts b/src/modules/pages/connection/connection_jndi/connection_jndi.model.ts new file mode 100644 index 0000000..c4346e8 --- /dev/null +++ b/src/modules/pages/connection/connection_jndi/connection_jndi.model.ts @@ -0,0 +1,11 @@ +import { model, Model } from '@core/core'; +import { ConnectionModel } from '../connection.model'; +export const ConnectionJndiModelXtype = 'dec.dcm.model.connection_jndi'; +@model(ConnectionJndiModelXtype) +export class ConnectionJndiModel extends Model<{ + context : { + connectionSelectedOne: ConnectionModel['$$childContext']['connectionSelectedOne']; + } +}> { + context = ['connectionSelectedOne']; +} diff --git a/src/modules/pages/connection/connection_jndi/connection_jndi.ts b/src/modules/pages/connection/connection_jndi/connection_jndi.ts new file mode 100644 index 0000000..7e97d23 --- /dev/null +++ b/src/modules/pages/connection/connection_jndi/connection_jndi.ts @@ -0,0 +1,179 @@ +import { shortcut, store } from '@core/core'; +import { Vertical, Htape, Label, Left } from 'ui'; +import { FormItemXtype } from '../components/form_item/form_item'; +import { ConnectionJndiModelXtype, ConnectionJndiModel } from './connection_jndi.model'; +import { ConnectionJNDI } from 'src/modules/crud/crud.typings'; +import { CollapseXtype, EVENT_CHANGE } from 'src/modules/components/collapse/collapse'; + +export const ConnectionJndiXtype = 'dec.dcm.connection_jndi'; +@shortcut(ConnectionJndiXtype) +@store(ConnectionJndiModelXtype) +export class ConnectionJdbc extends BI.Widget { + model: ConnectionJndiModel['model']; + + advancedSet: any; + + render() { + const connectionData = this.model.connectionSelectedOne.connectionData as ConnectionJNDI; + const { jndiname, contextHashtable, originalCharsetName } = connectionData; + + return { + type: Vertical, + hgap: 15, + vgap: 10, + items: [ + { + type: FormItemXtype, + nameWidth: 200, + name: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_ConnectionName'), + value: jndiname, + }, + { + type: Htape, + height: 110, + items: [ + { + el: { + type: Left, + items: [ + { + type: Label, + cls: 'bi-font-bold', + textAlign: 'left', + text: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_Connection'), + }, + ], + }, + width: 200, + }, + { + type: Vertical, + bgap: 10, + items: [ + { + type: FormItemXtype, + name: 'INTIAL_CONTEXT_FACTORY', + nameWidth: 200, + value: contextHashtable['java.naming.factory.initial'], + }, + { + type: FormItemXtype, + name: 'PROVIDER_URL', + nameWidth: 200, + value: contextHashtable['java.naming.provider.url'], + }, + { + type: FormItemXtype, + name: 'SECURITY_PRINCIPAL', + nameWidth: 200, + value: contextHashtable['java.naming.security.principal'], + }, + { + type: FormItemXtype, + name: 'SECURITY_CREDENTIALS', + nameWidth: 200, + value: contextHashtable['java.naming.security.credentials'], + }, + ], + }, + ], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), + value: originalCharsetName ? originalCharsetName : BI.i18nText('Dec-Dcm_Connection_Form_Auto'), + }, + { + type: CollapseXtype, + width: 70, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Advanced_Setting'), + listeners: [ + { + eventName: EVENT_CHANGE, + action: (isCollapse: boolean) => { + this.advancedSet.setVisible(!isCollapse); + }, + }, + ], + }, + { + type: Vertical, + vgap: 10, + invisible: true, + ref: (_ref: any) => { + this.advancedSet = _ref; + }, + items: [ + { + type: FormItemXtype, + nameWidth: 200, + name: 'OBJECT_FACTORIES', + value: contextHashtable['java.naming.factory.initial'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'STATE_FACTORIES', + value: contextHashtable['java.naming.factory.state'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'URL_PKG_PREFIXES', + value: contextHashtable['java.naming.factory.url.pkgs'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'DNS_URL', + value: contextHashtable['java.naming.dns.url'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'AUTHORITATIVE', + value: contextHashtable['java.naming.authoritative'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'BATCHSIZE', + value: contextHashtable['java.naming.batchsize'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'REFERRAL', + value: contextHashtable['java.naming.referral'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'SECURITY_PROTOCOL', + value: contextHashtable['java.naming.security.protocol'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'SECURITY_AUTHENTICATION', + value: contextHashtable['java.naming.security.authentication'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'LANGUAGE', + value: contextHashtable['java.naming.language'], + }, + { + type: FormItemXtype, + nameWidth: 200, + name: 'APPLET', + value: contextHashtable['java.naming.applet'], + }, + ], + }, + ], + }; + } +} diff --git a/src/modules/pages/connection/connection_plugin/connection_plugin.model.ts b/src/modules/pages/connection/connection_plugin/connection_plugin.model.ts new file mode 100644 index 0000000..b6fbc60 --- /dev/null +++ b/src/modules/pages/connection/connection_plugin/connection_plugin.model.ts @@ -0,0 +1,11 @@ +import { model, Model } from '@core/core'; +import { ConnectionModel } from '../connection.model'; +export const ConnectionPluginModelXtype = 'dec.dcm.model.connection_plugin'; +@model(ConnectionPluginModelXtype) +export class ConnectionPluginModel extends Model<{ + context : { + connectionSelectedOne: ConnectionModel['$$childContext']['connectionSelectedOne']; + } +}> { + context = ['connectionSelectedOne']; +} diff --git a/src/modules/pages/connection/connection_plugin/connection_plugin.ts b/src/modules/pages/connection/connection_plugin/connection_plugin.ts new file mode 100644 index 0000000..af6968a --- /dev/null +++ b/src/modules/pages/connection/connection_plugin/connection_plugin.ts @@ -0,0 +1,18 @@ +import { shortcut, store } from '@core/core'; +import { ConnectionPluginModelXtype, ConnectionPluginModel } from './connection_plugin.model'; +import { getPluginWidgetShow } from 'src/modules/app.service'; +export const ConnectionPluginXtype = 'dec.dcm.connection_plugin'; +@shortcut(ConnectionPluginXtype) +@store(ConnectionPluginModelXtype) +export class ConnectionPlugin extends BI.Widget { + model: ConnectionPluginModel['model']; + + render () { + const databaseType = this.model.connectionSelectedOne.connectionType; + + return { + type: getPluginWidgetShow(databaseType), + formData: this.model.connectionSelectedOne.connectionData, + }; + } +} diff --git a/src/modules/pages/connection/list/list.less b/src/modules/pages/connection/list/list.less new file mode 100644 index 0000000..971aeb4 --- /dev/null +++ b/src/modules/pages/connection/list/list.less @@ -0,0 +1 @@ +@import '../../../../less/index.less'; \ No newline at end of file diff --git a/src/modules/pages/connection/list/list.model.ts b/src/modules/pages/connection/list/list.model.ts new file mode 100644 index 0000000..b5f60cd --- /dev/null +++ b/src/modules/pages/connection/list/list.model.ts @@ -0,0 +1,28 @@ +import { model, Model } from '@core/core'; +import { ConnectionModel } from '../connection.model'; +import { ApiFactory } from 'src/modules/crud/apiFactory'; +const api = new ApiFactory().create(); +export const ConnectionListModelXtype = 'dec.dcm.model.connection.list'; +@model(ConnectionListModelXtype) +export class ConnectionListModel extends Model<{ + context : { + connections: ConnectionModel['$$childContext']['connections']; + connectionSelected: ConnectionModel['$$childContext']['connectionSelected']; + } +}> { + context = ['connections', 'connectionSelected']; + + actions = { + setConnections: ():Promise => api.getConnectionlist().then(data => { + this.model.connections = data.data; + this.model.connections.forEach(item => { + // 后端传过来的是字符串,转为对象 + item.connectionData = JSON.parse(item.connectionData); + }); + + return new Promise(resolve => { + resolve(); + }); + }), + } +} diff --git a/src/modules/pages/connection/list/list.service.ts b/src/modules/pages/connection/list/list.service.ts new file mode 100644 index 0000000..df5f87f --- /dev/null +++ b/src/modules/pages/connection/list/list.service.ts @@ -0,0 +1,37 @@ +import { Connection, ConnectionJDBC, ConnectionJNDI, ConnectionPlugin } from '../../../crud/crud.typings'; +import { connectionType } from '@constants/env'; +import { getAllDatabaseTypes } from 'src/modules/app.service'; + +export function getCreator(connection: Connection) { + switch (connection.connectionType) { + case connectionType.JDBC: + return (connection.connectionData as ConnectionJDBC).creator; + case connectionType.JNDI: + return (connection.connectionData as ConnectionJNDI).creator; + default: + return (connection.connectionData as ConnectionPlugin).creator; + } +} + +export function getDatabaseType(connection: Connection) { + switch (connection.connectionType) { + case connectionType.JDBC: + return (connection.connectionData as ConnectionJDBC).database; + case connectionType.JNDI: + return connectionType.JNDI; + default: + return connection.connectionType; + } +} + +export function hasRegistered(databaseType: string) { + const allDatabaseTypes = getAllDatabaseTypes(); + switch (databaseType) { + case connectionType.JDBC: + return true; + case connectionType.JNDI: + return true; + default: + return allDatabaseTypes.some(item => item.databaseType === databaseType); + } +} diff --git a/src/modules/pages/connection/list/list.ts b/src/modules/pages/connection/list/list.ts new file mode 100644 index 0000000..36a7785 --- /dev/null +++ b/src/modules/pages/connection/list/list.ts @@ -0,0 +1,79 @@ +import { shortcut, store } from '@core/core'; +import { ButtonGroup, Vertical, CenterAdapt, Label, Layout, Vtape } from 'ui'; +import { ListItemXtype } from './list_item/list_item'; +import { ConnectionListModel, ConnectionListModelXtype } from './list.model'; +import { Connection } from '../../../crud/crud.typings'; +import { getCreator, getDatabaseType } from './list.service'; +export const ConnectionListXtype = 'dec.dcm.connection.list'; +@shortcut(ConnectionListXtype) +@store(ConnectionListModelXtype) +export class ConnectionList extends BI.LoadingPane { + store: ConnectionListModel['store']; + model: ConnectionListModel['model']; + + groupWidget: any; + + beforeInit(cb: Function) { + this.store.setConnections().then(() => { + cb(); + }); + } + + watch = { + connections() { + this.groupWidget.populate(this.renderList()); + }, + } + + render() { + if (this.model.connections.length === 0) { + return { + type: CenterAdapt, + items: [ + { + type: Vtape, + width: 260, + height: 150, + items: [ + { + el: { + type: Layout, + cls: 'data-connection-background', + }, + height: 130, + }, + { + type: Label, + cls: 'bi-tips', + text: BI.i18nText('Dec-Dcm_Connection_None'), + }, + ], + }, + ], + }; + } + + return { + type: ButtonGroup, + layouts: [{ + type: Vertical, + }], + items: this.renderList(), + ref: (_ref: any) => { + this.groupWidget = _ref; + }, + }; + } + + private renderList() { + return this.model.connections.map((item: Connection) => { + return { + type: ListItemXtype, + name: item.connectionName, + value: item.connectionName, + creator: getCreator(item), + databaseType: getDatabaseType(item), + }; + }); + } +} diff --git a/src/modules/pages/connection/list/list_item/list_item.less b/src/modules/pages/connection/list/list_item/list_item.less new file mode 100644 index 0000000..5adcea6 --- /dev/null +++ b/src/modules/pages/connection/list/list_item/list_item.less @@ -0,0 +1,4 @@ +@import '../../../../../less/index.less'; +.dec-dcm-connection-list-item{ + .hover-visible(link-item-icon); +} \ No newline at end of file diff --git a/src/modules/pages/connection/list/list_item/list_item.model.ts b/src/modules/pages/connection/list/list_item/list_item.model.ts new file mode 100644 index 0000000..f96fec3 --- /dev/null +++ b/src/modules/pages/connection/list/list_item/list_item.model.ts @@ -0,0 +1,42 @@ +import { model, Model } from '@core/core'; +import { ConnectionModel } from '../../connection.model'; +import { ApiFactory } from 'src/modules/crud/apiFactory'; +const api = new ApiFactory().create(); + +export const ListItemModelXtype = 'dec.dcm.model.connection.list_item'; +@model(ListItemModelXtype) +export class ListItemModel extends Model<{ + context : { + connectionSelected: ConnectionModel['$$childContext']['connectionSelected']; + connectionSelectedOne: ConnectionModel['$$childContext']['connectionSelectedOne']; + datebaseTypeSelectedOne: ConnectionModel['$$childContext']['datebaseTypeSelectedOne']; + connections: ConnectionModel['$$childContext']['connections']; + pageIndex: ConnectionModel['$$childContext']['pageIndex']; + } +}> { + context = ['connectionSelected', 'connections', 'pageIndex', 'datebaseTypeSelectedOne', 'connectionSelectedOne']; + + actions = { + setConnectionSelected: (name: string) => { + this.model.connectionSelected = name; + }, + deleteConnection: (name: string) => { + api.deleteConnection(name).then(re => api.getConnectionlist()) + .then(connections => { + this.model.connections = connections.data; + this.model.connections.forEach(item => { + // 后端传过来的是字符串,转为对象 + item.connectionData = JSON.parse(item.connectionData); + }); + if (name === this.model.connectionSelected) { + this.model.connectionSelected = ''; + } + }); + }, + setPageIndex(pageIndex: string) { + this.model.pageIndex = pageIndex; + }, + + testConnection: () => api.testConnection(this.model.connectionSelectedOne), + } +} diff --git a/src/modules/pages/connection/list/list_item/list_item.ts b/src/modules/pages/connection/list/list_item/list_item.ts new file mode 100644 index 0000000..a0a0156 --- /dev/null +++ b/src/modules/pages/connection/list/list_item/list_item.ts @@ -0,0 +1,165 @@ +import { shortcut, store } from '@core/core'; +import { Label, LeftRightVerticalAdapt, IconLabel, Left, IconButton, BubbleCombo, TextBubblePopupBarView } from 'ui'; +import './list_item.less'; +import { ListItemModel, ListItemModelXtype } from './list_item.model'; +import { PAGE_INDEX } from '@constants/constant'; +import { TestStatusXtype, TestStatus, EVENT_CLOSE, EVENT_RELOAD } from 'src/modules/components/test_status/test_status'; +import { hasRegistered } from '../list.service'; +export const ListItemXtype = 'dec.dcm.connection.list_item'; +@shortcut(ListItemXtype) +@store(ListItemModelXtype) +export class ListItem extends BI.BasicButton { + props = { + name: '', + creator: '', + databaseType: '', + height: 25, + baseCls: 'dec-dcm-connection-list-item bi-list-item-active', + } + + store: ListItemModel['store']; + model: ListItemModel['model']; + + comboWidget: any; + testStatus: TestStatus; + + render() { + const { name, creator, databaseType } = this.options; + const isRegistered = hasRegistered(databaseType); + + return { + type: LeftRightVerticalAdapt, + items: { + left: [ + { + type: IconLabel, + cls: 'dcm-link-font icon-size-16', + width: 25, + title: name, + }, + { + type: Label, + text: name, + }, + ], + right: [ + { + type: Left, + cls: 'link-item-icon bi-background', + hgap: 8, + items: [ + { + type: IconButton, + cls: 'dcm-test-font icon-size-16', + title: BI.i18nText('Dec-Dcm_Test_Connection'), + stopPropagation: true, + invisible: !isRegistered, + handler: () => { + this.store.setConnectionSelected(name); + const id = BI.UUID(); + const testConnection = () => { + this.store.testConnection().then(re => { + if (re && re.errorCode) { + this.testStatus.setFail(re.errorMsg); + } else if (re.data) { + this.testStatus.setSuccess(); + setTimeout(() => { + BI.Maskers.remove(id); + }, 1000 * 2); + } else { + BI.Msg.toast(BI.i18nText('Dec-Dcm_Connection_Error'), { + level: 'error', + }); + BI.Maskers.remove(id); + } + }); + }; + BI.Maskers.create(id, null, { + render: { + type: TestStatusXtype, + loadingText: BI.i18nText('Dec-Dcm_Connection_Testing'), + loadingCls: 'upload-loading-icon', + successText: BI.i18nText('Dec-Dcm_Connection_Test_Success'), + successCls: 'upload-success-icon', + failText: BI.i18nText('Dec-Dcm_Connection_Test_Fail', name), + failCls: 'upload-fail-icon', + retryText: BI.i18nText('Dec-Dcm_Connection_ReConnect'), + ref: (_ref: any) => { + this.testStatus = _ref; + }, + listeners: [ + { + eventName: EVENT_RELOAD, + action: () => { + this.testStatus.setLoading(); + testConnection(); + }, + }, + { + eventName: EVENT_CLOSE, + action: () => { + BI.Maskers.remove(id); + }, + }, + ], + }, + }); + BI.Maskers.show(id); + testConnection(); + }, + }, + { + type: IconButton, + cls: 'copy-font icon-size-16', + title: BI.i18nText('Dec-Dcm_Copy'), + stopPropagation: true, + invisible: !isRegistered, + handler: () => { + this.store.setConnectionSelected(name); + this.store.setPageIndex(PAGE_INDEX.MAINTAIN); + }, + }, + { + type: IconButton, + cls: 'dcm-info-font icon-size-16', + title: `${BI.i18nText('Dec-Dcm_Type', databaseType)}\r\n${BI.i18nText('Dec-Dcm_Creator', creator)}`, + stopPropagation: true, + }, + { + type: BubbleCombo, + stopPropagation: true, + direction: 'bottom', + ref: _ref => { + this.comboWidget = _ref; + }, + el: { + type: IconLabel, + cls: 'dcm-delete-font icon-size-16', + title: BI.i18nText('Dec-Dcm_Delete'), + }, + popup: { + type: TextBubblePopupBarView, + text: BI.i18nText('Dec-Dcm_Connection_Make_Sure_Delete'), + listeners: [{ + eventName: BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON, + action: (ok: boolean) => { + this.comboWidget.hideView(); + if (ok) { + this.store.deleteConnection(name); + } + }, + }], + }, + }, + ], + }, + ], + }, + }; + } + + doClick() { + const { name } = this.options; + this.store.setConnectionSelected(name); + } +} diff --git a/src/modules/pages/connection_pool/connection_pool.model.ts b/src/modules/pages/connection_pool/connection_pool.model.ts new file mode 100644 index 0000000..befc9d5 --- /dev/null +++ b/src/modules/pages/connection_pool/connection_pool.model.ts @@ -0,0 +1,29 @@ +import { model, Model } from '@core/core'; +import { AppModel } from '../../app.model'; +import { connectionType } from '@constants/env'; +export const ConnectionPoolModelXtype = 'dec.dcm.model.connection_pool'; +@model(ConnectionPoolModelXtype) +export class ConnectionPoolModel extends Model<{ + context : { + connections: AppModel['$$childContext']['connections']; + } +}> { + childContext = ['selected']; + context = ['connections']; + + state() { + return { + selected: '', + }; + } + + computed = { + connectionJDBC: () => this.model.connections.filter(item => item.connectionType === connectionType.JDBC), + } + + actions = { + setSelected: (selected: string) => { + this.model.selected = selected; + }, + } +} diff --git a/src/modules/pages/connection_pool/connection_pool.ts b/src/modules/pages/connection_pool/connection_pool.ts new file mode 100644 index 0000000..d4a4138 --- /dev/null +++ b/src/modules/pages/connection_pool/connection_pool.ts @@ -0,0 +1,96 @@ +import { shortcut, store } from '@core/core'; +import { ButtonGroup, Htape, Vtape, Label, Vertical } from 'ui'; +import { ConnectionPoolModel, ConnectionPoolModelXtype } from './connection_pool.model'; +import { ListItemXtype } from './list_item/list_item'; +import { PoolXtype } from './pool/pool'; +export const ConnectionPoolXtype = 'dec.dcm.connection_pool'; +@shortcut(ConnectionPoolXtype) +@store(ConnectionPoolModelXtype) +export class ConnectionPool extends BI.Widget { + groupWidget: any; + title: any; + + model: ConnectionPoolModel['model']; + store: ConnectionPoolModel['store']; + + watch = { + selected: (selected: string) => { + this.title.setText(selected); + }, + } + + mounted() { + const defaultSelected = this.model.connectionJDBC.length > 0 ? this.model.connectionJDBC[0].connectionName : ''; + this.store.setSelected(defaultSelected); + } + + render() { + return { + type: Htape, + items: [ + { + el: { + type: Vtape, + cls: 'bi-border-right', + items: [ + { + el: { + type: Label, + cls: 'bi-border-bottom', + textAlign: 'left', + text: BI.i18nText('Dec-Dcm_Data_Connections'), + lgap: 10, + }, + height: 40, + }, + { + type: ButtonGroup, + layouts: [{ + type: Vertical, + }], + items: this.renderList(), + ref: (_ref: any) => { + this.groupWidget = _ref; + }, + }, + ], + }, + width: 275, + }, + { + type: Vtape, + items: [ + { + el: { + type: Label, + cls: 'bi-border-bottom', + textAlign: 'left', + lgap: 10, + ref: (_ref: any) => { + this.title = _ref; + }, + }, + height: 40, + }, + { + type: PoolXtype, + }, + ], + }, + ], + }; + } + + private renderList() { + const defaultSelected = this.model.connectionJDBC.length > 0 ? this.model.connectionJDBC[0].connectionName : ''; + + return this.model.connectionJDBC.map(item => { + return { + type: ListItemXtype, + name: item.connectionName, + value: item.connectionName, + selected: item.connectionName === defaultSelected, + }; + }); + } +} diff --git a/src/modules/pages/connection_pool/list_item/list_item.model.ts b/src/modules/pages/connection_pool/list_item/list_item.model.ts new file mode 100644 index 0000000..2cfe828 --- /dev/null +++ b/src/modules/pages/connection_pool/list_item/list_item.model.ts @@ -0,0 +1,16 @@ +import { model, Model } from '@core/core'; +import { ConnectionPoolModel } from '../connection_pool.model'; +export const ListItemModelXtype = 'dec.dcm.model.connection_pool.list_item'; +@model(ListItemModelXtype) +export class ListItemModel extends Model<{ + context : { + selected: ConnectionPoolModel['$$childContext']['selected']; + } +}> { + context = ['selected']; + actions = { + setSelected: (selected: string) => { + this.model.selected = selected; + }, + } +} diff --git a/src/modules/pages/connection_pool/list_item/list_item.ts b/src/modules/pages/connection_pool/list_item/list_item.ts new file mode 100644 index 0000000..cfbc083 --- /dev/null +++ b/src/modules/pages/connection_pool/list_item/list_item.ts @@ -0,0 +1,32 @@ +import { shortcut, store } from '@core/core'; +import { VerticalAdapt, Label } from 'ui'; +import { ListItemModel, ListItemModelXtype } from './list_item.model'; +export const ListItemXtype = 'dec.dcm.connection_pool.list_item'; +@shortcut(ListItemXtype) +@store(ListItemModelXtype) +export class ListItem extends BI.BasicButton { + props = { + name: '', + height: 25, + baseCls: 'dec-dcm-connection-pool-list-item bi-list-item-active', + } + + store: ListItemModel['store']; + + render() { + return { + type: VerticalAdapt, + lgap: 5, + items: [ + { + type: Label, + text: this.options.name, + }, + ], + }; + } + + doClick() { + this.store.setSelected(this.options.name); + } +} diff --git a/src/app/status/right/right_card.less b/src/modules/pages/connection_pool/pool/pool.less similarity index 61% rename from src/app/status/right/right_card.less rename to src/modules/pages/connection_pool/pool/pool.less index 6b121b9..cbe01fa 100644 --- a/src/app/status/right/right_card.less +++ b/src/modules/pages/connection_pool/pool/pool.less @@ -1,5 +1,6 @@ -@import '../../../less/index.less'; -.dec-webui-dcm-status-right-card{ +@import '../../../../less/index.less'; + +.dec-dcm-connection-pool{ .card-font-success{ font-size: @font-size-30; } diff --git a/src/modules/pages/connection_pool/pool/pool.model.ts b/src/modules/pages/connection_pool/pool/pool.model.ts new file mode 100644 index 0000000..36a7f38 --- /dev/null +++ b/src/modules/pages/connection_pool/pool/pool.model.ts @@ -0,0 +1,28 @@ +import { model, Model } from '@core/core'; +import { ConnectionPoolModel } from '../connection_pool.model'; +import { ConnectionPoolType } from '../../../crud/crud.typings'; +import { ApiFactory } from '../../../crud/apiFactory'; +const api = new ApiFactory().create(); +export const PoolModelXtype = 'dec.dcm.model.connection_pool.pool'; +@model(PoolModelXtype) +export class PoolModel extends Model<{ + context : { + selected: ConnectionPoolModel['$$childContext']['selected']; + } +}> { + context = ['selected']; + + state () { + return { + pool: {} as ConnectionPoolType, + }; + } + + watch = { + selected: (selected: string) => { + api.getConnectionPool(selected).then(re => { + this.model.pool = re.data; + }); + }, + } +} diff --git a/src/modules/pages/connection_pool/pool/pool.ts b/src/modules/pages/connection_pool/pool/pool.ts new file mode 100644 index 0000000..6259dd5 --- /dev/null +++ b/src/modules/pages/connection_pool/pool/pool.ts @@ -0,0 +1,133 @@ +import { shortcut, store } from '@core/core'; +import { PoolModel, PoolModelXtype } from './pool.model'; +import { FloatCenter, Vertical, CenterAdapt, Label, VerticalAdapt } from 'ui'; +import './pool.less'; +import { ConnectionPoolType } from '../../../crud/crud.typings'; + +export const PoolXtype = 'dec.dcm.connection_pool.pool'; +@shortcut(PoolXtype) +@store(PoolModelXtype) +export class Pool extends BI.Widget { + props = { + baseCls: 'dec-dcm-connection-pool', + } + model: PoolModel['model']; + + maxActive: any; + maxIdle: any; + numActive: any; + numIdle: any; + + watch = { + pool: (pool: ConnectionPoolType) => { + this.maxActive.setText(pool.maxActive); + this.maxIdle.setText(pool.maxIdle); + this.numActive.setText(pool.numActive); + this.numIdle.setText(pool.numIdle); + }, + } + + render() { + return { + type: Vertical, + items: [ + { + type: FloatCenter, + hgap: 20, + vgap: 10, + height: 200, + items: [ + { + el: { + type: CenterAdapt, + cls: 'bi-background', + items: [ + { + type: Vertical, + cls: 'right-status-board-item', + items: [ + { + type: CenterAdapt, + items: [ + { + type: VerticalAdapt, + items: [ + { + type: Label, + cls: 'bi-high-light card-font-heighlight', + ref: (_ref: any) => { + this.numActive = _ref; + }, + }, + { + type: Label, + text: '/', + }, + { + type: Label, + ref: (_ref: any) => { + this.maxActive = _ref; + }, + }, + ], + }, + ], + }, + { + type: Label, + text: BI.i18nText('Dec-Dcm_Active_Connections_Number'), + }, + ], + }, + ], + }, + }, + { + type: CenterAdapt, + cls: 'bi-background', + items: [ + { + type: Vertical, + cls: 'right-status-board-item', + items: [ + { + type: CenterAdapt, + items: [ + { + type: VerticalAdapt, + items: [ + { + type: Label, + cls: 'bi-high-light card-font-heighlight', + ref: (_ref: any) => { + this.numIdle = _ref; + }, + }, + { + type: Label, + text: '/', + }, + { + type: Label, + ref: (_ref: any) => { + this.maxIdle = _ref; + }, + }, + ], + }, + ], + }, + { + type: Label, + text: BI.i18nText('Dec-Dcm_Leisure_Connections_Number'), + }, + ], + }, + ], + }, + ], + }, + ], + }; + } +} diff --git a/src/modules/pages/database/database.model.ts b/src/modules/pages/database/database.model.ts new file mode 100644 index 0000000..2982874 --- /dev/null +++ b/src/modules/pages/database/database.model.ts @@ -0,0 +1,40 @@ +import { model, Model } from '@core/core'; +import { AppModel } from 'src/modules/app.model'; +import { getAllDatabaseTypes } from '../../app.service'; +import { DatabaseType } from '../../app.typings'; + +export const DatebaseModelXtype = 'dec.dcm.model.datebase'; +@model(DatebaseModelXtype) +export class DatebaseModel extends Model<{ + context : { + filter: AppModel['$$childContext']['filter']; + datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; + } +}> { + context = ['filter', 'datebaseTypeSelected']; + state() { + return { + search: '', + isInternal: true, + isPlugin: true, + datebaseTypes: getAllDatabaseTypes().filter(item => item.commonly), + }; + } + actions = { + setSearch:(search: string) => { + this.model.search = search; + }, + setFilter:(filter: string) => { + this.model.filter = filter; + }, + setDatebaseTypes: (datebaseTypes: DatabaseType[]) => { + this.model.datebaseTypes = datebaseTypes; + }, + setInternal:(isInternal: boolean) => { + this.model.isInternal = isInternal; + }, + setPlugin: (isPlugin: boolean) => { + this.model.isPlugin = isPlugin; + }, + } +} diff --git a/src/modules/pages/database/database.ts b/src/modules/pages/database/database.ts new file mode 100644 index 0000000..3b7b329 --- /dev/null +++ b/src/modules/pages/database/database.ts @@ -0,0 +1,248 @@ +import { SearchEditor, Vtape, Right, Htape, Vertical, ButtonGroup, Left, VerticalAdapt, Label, MultiSelectItem, CenterAdapt } from 'ui'; +import { shortcut, store } from '@core/core'; +import { FilterXtype } from './filter/filter'; +import { DatebaseModel, DatebaseModelXtype } from './database.model'; +import { DATEBASE_FILTER_TYPE } from '@constants/constant'; +import { connectionType } from '@constants/env'; +import { DatebaseTypeXtype } from './database_type/database_type'; +import { getAllDatabaseTypes } from '../../app.service'; +export const DatebaseXtype = 'dec.dcm.datebase'; +@shortcut(DatebaseXtype) +@store(DatebaseModelXtype) +export class Datebase extends BI.Widget { + filter: any; + search: any; + datebaseType: any; + typeFilterWidget: any; + internalWidget: any; + pluginWidget: any; + allDatabaseTypes = getAllDatabaseTypes(); + + + store: DatebaseModel['store']; + model: DatebaseModel['model']; + + watch = { + search: (search: string) => { + if (search) { + this.store.setFilter(''); + this.store.setDatebaseTypes(this.allDatabaseTypes.filter(item => item.text.toLowerCase().includes(search.toLowerCase()))); + } else { + this.store.setFilter(DATEBASE_FILTER_TYPE.COMMONLY); + this.search.setValue(search); + } + }, + filter: (filter: string) => { + this.filter.setValue(filter); + this.typeFilterWidget.setVisible(filter === DATEBASE_FILTER_TYPE.ALL); + if (filter) { + this.store.setSearch(''); + this.filterDatebaseByType(filter); + } + this.store.setInternal(true); + this.store.setPlugin(true); + }, + datebaseTypes: () => { + this.datebaseType.populate(this.renderDatebaseType()); + }, + 'isInternal || isPlugin' : () => { + this.internalWidget.setSelected(this.model.isInternal); + this.pluginWidget.setSelected(this.model.isPlugin); + if (this.model.filter === DATEBASE_FILTER_TYPE.ALL) { + let datebaseTypes = []; + if (this.model.isInternal) { + datebaseTypes = [...datebaseTypes, ...this.allDatabaseTypes.filter(item => item.internal)]; + } + if (this.model.isPlugin) { + datebaseTypes = [...datebaseTypes, ...this.allDatabaseTypes.filter(item => !item.internal)]; + } + this.store.setDatebaseTypes(datebaseTypes); + } + }, + } + + mounted() { + this.store.setFilter(DATEBASE_FILTER_TYPE.COMMONLY); + } + + render() { + return { + type: Vtape, + vgap: 10, + hgap: 10, + items: [ + { + el: { + type: Vertical, + items: [ + { + type: Right, + items: [ + { + type: SearchEditor, + width: 300, + watermark: BI.i18nText('BI-Basic_Search'), + ref: (_ref: any) => { + this.search = _ref; + }, + listeners: [ + { + eventName: BI.SearchEditor.EVENT_CHANGE, + action: () => { + this.store.setSearch(this.search.getValue()); + }, + }, + ], + }, + ], + }, + ], + }, + height: 25, + }, + { + type: Htape, + items: [ + { + el: { + type: ButtonGroup, + cls: 'bi-border-right', + layouts: [{ + type: Vertical, + }], + ref: (_ref: any) => { + this.filter = _ref; + }, + items: [ + { + type: FilterXtype, + text: BI.i18nText('Dec-Dcm_Connection_Commonly'), + value: DATEBASE_FILTER_TYPE.COMMONLY, + selected: true, + }, + { + type: FilterXtype, + text: BI.i18nText('Dec-Dcm_Connection_All'), + value: DATEBASE_FILTER_TYPE.ALL, + }, + { + type: FilterXtype, + text: BI.i18nText('Dec-Dcm_Connection_Other'), + value: DATEBASE_FILTER_TYPE.OTHER, + }, + ], + }, + width: 200, + }, + { + type: Vtape, + items: [ + { + el: { + type: VerticalAdapt, + hgap: 5, + invisible: true, + items: [ + { + type: Label, + text: BI.i18nText('Dec-Dcm_Connection_Type_Filter'), + }, + { + type: MultiSelectItem, + width: 80, + selected: this.model.isInternal, + text: BI.i18nText('Dec-Dcm_Connection_Support_Inner'), + ref: (_ref: any) => { + this.internalWidget = _ref; + }, + handler: () => { + this.store.setInternal(!this.model.isInternal); + }, + }, + { + type: MultiSelectItem, + width: 80, + selected: this.model.isPlugin, + text: BI.i18nText('Dec-Dcm_Connection_Support_Plugin'), + ref: (_ref: any) => { + this.pluginWidget = _ref; + }, + handler: () => { + this.store.setPlugin(!this.model.isPlugin); + }, + }, + { + type: Label, + cls: 'bi-tips', + text: BI.i18nText('Dec-Dcm_Connection_Filter_Tip'), + }, + ], + ref: (_ref: any) => { + this.typeFilterWidget = _ref; + }, + }, + height: 20, + }, + { + type: ButtonGroup, + hgap: 5, + layouts: [{ + type: Left, + scrolly: true, + }], + items: this.renderDatebaseType(), + ref: (_ref: any) => { + this.datebaseType = _ref; + }, + }, + ], + }, + ], + }, + ], + }; + } + + private renderDatebaseType() { + if (this.model.datebaseTypes.length === 0) { + return this.renderNoResult(); + } + + return this.model.datebaseTypes.map(item => { + return { + type: DatebaseTypeXtype, + text: item.text, + value: item.databaseType, + keyword: this.model.search, + databaseType: item.databaseType, + }; + }); + } + + private renderNoResult() { + return [{ + type: CenterAdapt, + height: '100%', + width: '100%', + items: [{ + type: Label, + cls: 'bi-tips', + text: BI.i18nText('Dec-Dcm_Connection_No_Search_Result'), + }], + }]; + } + + private filterDatebaseByType(filter: string) { + switch (filter) { + case DATEBASE_FILTER_TYPE.COMMONLY: + this.store.setDatebaseTypes(this.allDatabaseTypes.filter(item => item.commonly)); + break; + case DATEBASE_FILTER_TYPE.OTHER: + this.store.setDatebaseTypes(this.allDatabaseTypes.filter(item => item.type === connectionType.JNDI)); + break; + default: + this.store.setDatebaseTypes(this.allDatabaseTypes); + break; + } + } +} diff --git a/src/modules/pages/database/database.typings.d.ts b/src/modules/pages/database/database.typings.d.ts new file mode 100644 index 0000000..2e1513f --- /dev/null +++ b/src/modules/pages/database/database.typings.d.ts @@ -0,0 +1,12 @@ +export interface DatabaseType { + text: string; + databaseType: string; + driver?: string; + drivers?: string[]; + url?: string; + commonly: boolean; + internal: boolean; + type: string; + hasSchema?: boolean; + kerberos?: boolean; +} diff --git a/src/modules/pages/database/database_type/database_type.less b/src/modules/pages/database/database_type/database_type.less new file mode 100644 index 0000000..835a2c6 --- /dev/null +++ b/src/modules/pages/database/database_type/database_type.less @@ -0,0 +1,14 @@ +@import '../../../../less/index.less'; + +.dec-dcm-datebase-type{ + .bi-list-item-active{ + &:hover{ + border-color :@border-color-highlight; + } + } + &:active, &.active { + .bi-list-item-active{ + border-color :@border-color-highlight; + } + } +} \ No newline at end of file diff --git a/src/modules/pages/database/database_type/database_type.model.ts b/src/modules/pages/database/database_type/database_type.model.ts new file mode 100644 index 0000000..510b9b3 --- /dev/null +++ b/src/modules/pages/database/database_type/database_type.model.ts @@ -0,0 +1,18 @@ +import { model, Model } from '@core/core'; +import { AppModel } from 'src/modules/app.model'; +export const DatebaseTypeModelXtype = 'dec.dcm.model.datebase.type'; +@model(DatebaseTypeModelXtype) +export class DatebaseTypeModel extends Model< +{ + context: { + datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; + } +}> { + context = ['datebaseTypeSelected']; + + actions = { + setDatebaseTypeSelected: (datebaseTypeSelected: string) => { + this.model.datebaseTypeSelected = datebaseTypeSelected; + }, + } +} diff --git a/src/modules/pages/database/database_type/database_type.ts b/src/modules/pages/database/database_type/database_type.ts new file mode 100644 index 0000000..309cdd3 --- /dev/null +++ b/src/modules/pages/database/database_type/database_type.ts @@ -0,0 +1,64 @@ +import { shortcut, store } from '@core/core'; +import { Vtape, Label, Absolute, Img } from 'ui'; +import { DatebaseTypeModel, DatebaseTypeModelXtype } from './database_type.model'; +import { ImgPrefix } from '@constants/env'; +import './database_type.less'; + +export const DatebaseTypeXtype = 'dec.dcm.datebase.type'; +@shortcut(DatebaseTypeXtype) +@store(DatebaseTypeModelXtype) +export class DatebaseType extends BI.BasicButton { + props = { + text: '', + url: '', + value: '', + height: 130, + width: 130, + keyword: '', + databaseType: '', + baseCls: 'dec-dcm-datebase-type', + } + + store: DatebaseTypeModel['store']; + + render() { + const { text, keyword, databaseType } = this.options; + + return { + type: Absolute, + items: [ + { + el: { + type: Vtape, + cls: 'bi-list-item-active bi-border', + items: [ + { + el: { + type: Img, + src: `${ImgPrefix}${databaseType}.jpg`, + }, + height: 90, + }, + { + type: Label, + cls: 'bi-header-background', + text, + title: text, + keyword, + }, + ], + top: 5, + left: 5, + right: 5, + bottom: 5, + }, + }, + ], + }; + } + + doClick() { + const { value } = this.options; + this.store.setDatebaseTypeSelected(value); + } +} diff --git a/src/modules/pages/database/filter/filter.less b/src/modules/pages/database/filter/filter.less new file mode 100644 index 0000000..daeacb4 --- /dev/null +++ b/src/modules/pages/database/filter/filter.less @@ -0,0 +1,6 @@ +@import "../../../../less/index.less"; +.bi-list-item-active{ + &:active, &.active { + background-color: @color-bi-light-blue-60; + } +} \ No newline at end of file diff --git a/src/modules/pages/database/filter/filter.model.ts b/src/modules/pages/database/filter/filter.model.ts new file mode 100644 index 0000000..4ae5eb7 --- /dev/null +++ b/src/modules/pages/database/filter/filter.model.ts @@ -0,0 +1,18 @@ +import { Model, model } from '@core/core'; +import { AppModel } from 'src/modules/app.model'; + +export const FilterModelXtype = 'dec.dcm.model.datebase.filter'; +@model(FilterModelXtype) +export class FilterModel extends Model<{ + context : { + filter: AppModel['$$childContext']['filter']; + } +}> { + context = ['filter']; + + actions = { + setFilter:(filter: string) => { + this.model.filter = filter; + }, + }; +} diff --git a/src/modules/pages/database/filter/filter.ts b/src/modules/pages/database/filter/filter.ts new file mode 100644 index 0000000..741b4a4 --- /dev/null +++ b/src/modules/pages/database/filter/filter.ts @@ -0,0 +1,32 @@ +import { shortcut, store } from '@core/core'; +import { Label } from 'ui'; +import { FilterModel, FilterModelXtype } from './filter.model'; +import './filter.less'; + +export const FilterXtype = 'dec.dcm.datebase.filter'; +@shortcut(FilterXtype) +@store(FilterModelXtype) +export class Filter extends BI.BasicButton { + store: FilterModel['store'] + props = { + text: '', + baseCls: 'bi-list-item-active', + } + + render() { + const { text } = this.options; + + return { + type: Label, + textAlign: 'left', + height: 25, + lgap: 10, + text, + }; + } + + doClick() { + const { value } = this.options; + this.store.setFilter(value); + } +} diff --git a/src/modules/pages/index.ts b/src/modules/pages/index.ts new file mode 100644 index 0000000..5186c84 --- /dev/null +++ b/src/modules/pages/index.ts @@ -0,0 +1,10 @@ +import { ConnectionXtype } from './connection/connection'; +import { DatebaseXtype } from './database/database'; +import { MaintainXtype } from './maintain/maintain'; +import { ConnectionPoolXtype } from './connection_pool/connection_pool'; +export { + ConnectionXtype, + DatebaseXtype, + MaintainXtype, + ConnectionPoolXtype, +}; diff --git a/src/modules/pages/maintain/components/form_item/form_item.ts b/src/modules/pages/maintain/components/form_item/form_item.ts new file mode 100644 index 0000000..6635e56 --- /dev/null +++ b/src/modules/pages/maintain/components/form_item/form_item.ts @@ -0,0 +1,27 @@ +import { shortcut } from '@core/core'; +import { Label, Left } from 'ui'; +export const FormItemXtype = 'dec.dcm.Maintain_form_item'; +@shortcut(FormItemXtype) +export class FormItem extends BI.Widget { + props = { + name: '', + forms: '', + nameWidth: 140, + } + + render () { + return { + type: Left, + items: [ + { + type: Label, + cls: 'bi-font-bold', + width: this.options.nameWidth, + textAlign: 'left', + text: this.options.name, + }, + ...this.options.forms, + ], + }; + } +} diff --git a/src/modules/pages/maintain/forms/components/form.jdbc.ts b/src/modules/pages/maintain/forms/components/form.jdbc.ts new file mode 100644 index 0000000..60d1b21 --- /dev/null +++ b/src/modules/pages/maintain/forms/components/form.jdbc.ts @@ -0,0 +1,587 @@ +import { shortcut } from '@core/core'; +import { Vertical, TextEditor, TextValueCombo, Label, TextAreaEditor, Editor } from 'ui'; +import { CollapseXtype, EVENT_CHANGE } from 'src/modules/components/collapse/collapse'; +import { FormItemXtype } from '../../components/form_item/form_item'; +import { Connection, ConnectionJDBC, ConnectionPoolJDBC } from 'src/modules/crud/crud.typings'; +import { connectionType } from '@constants/env'; +import { CONNECT_CHARSET } from '@constants/constant'; +import { getAllDatabaseTypes } from '../../../../app.service'; + +export const FormJdbcXtype = 'dec.dcm.maintain.form.jdbc'; +@shortcut(FormJdbcXtype) +export class FormJdbc extends BI.Widget { + props = { + formData: {} as Connection, + } + + oldPassword = ''; + allDatabaseTypes = getAllDatabaseTypes(); + + testStatus: any; + advancedSet: any; + formUser: any; + formPassword: any; + formPrincipal: any; + formKeyPath: any; + + form = { + connectionName: null, + driver: null, + database: null, + host: null, + port: null, + user: null, + password: null, + authType: null, + principal: null, + keyPath: null, + newCharsetName: null, + schema: null, + url: null, + initialSize: null, + maxActive: null, + maxIdle: null, + maxWait: null, + validationQuery: null, + testOnBorrow: null, + testOnReturn: null, + testWhileIdle: null, + timeBetweenEvictionRunsMillis: null, + numTestsPerEvictionRun: null, + minEvictableIdleTimeMillis: null, + }; + + render() { + const { connectionName, connectionData } = this.options.formData; + const { driver, host, port, user, password, newCharsetName, schema, url, connectionPool, database, authType, principal, keyPath } = connectionData as ConnectionJDBC; + // minIdle 暂未使用 + const { initialSize, maxActive, maxIdle, maxWait, validationQuery, testOnBorrow, testOnReturn, testWhileIdle, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minEvictableIdleTimeMillis } = connectionPool as ConnectionPoolJDBC; + const databaseType = this.allDatabaseTypes.find(item => item.databaseType === database); + this.oldPassword = password; + + return { + type: Vertical, + hgap: 15, + vgap: 10, + items: [ + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Name'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: connectionName, + ref: (_ref: any) => { + this.form.connectionName = _ref; + }, + watermark: BI.i18nText('Dec-Dcm_Data_Connections'), + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Driver'), + forms: [{ + type: TextValueCombo, + width: 300, + value: driver, + ref: (_ref: any) => { + this.form.driver = _ref; + }, + items: this.getDrivers(), + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Name'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + disabled: true, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Name'), + value: database, + ref: (_ref: any) => { + this.form.database = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Host'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: host, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Host'), + ref: (_ref: any) => { + this.form.host = _ref; + }, + listeners: [{ + eventName: BI.Editor.EVENT_CHANGE, + action: () => { + this.onHostPortChange(databaseType); + }, + }], + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: port === 0 ? '' : port, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'), + ref: (_ref: any) => { + this.form.port = _ref; + }, + listeners: [{ + eventName: BI.Editor.EVENT_CHANGE, + action: () => { + this.onHostPortChange(databaseType); + }, + }], + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_AuthType'), + invisible: !databaseType.kerberos, + forms: [{ + type: TextValueCombo, + width: 300, + value: authType, + ref: (_ref: any) => { + this.form.authType = _ref; + }, + items: [ + { + text: BI.i18nText('Dec-Dcm_Connection_Form_UserName'), + value: '', + }, + { + text: 'Kerberos', + value: 'Kerberos', + }, + ], + listeners: [ + { + eventName: BI.Combo.EVENT_CHANGE, + action: () => { + const type = this.form.authType.getValue()[0]; + this.formPrincipal.setVisible(!!type); + this.formKeyPath.setVisible(!!type); + this.formUser.setVisible(!type); + this.formPassword.setVisible(!type); + }, + }, + ], + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_UserName'), + ref: (_ref: any) => { + this.formUser = _ref; + }, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: user, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_UserName'), + ref: (_ref: any) => { + this.form.user = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Password'), + ref: (_ref: any) => { + this.formPassword = _ref; + }, + forms: [{ + type: Editor, + cls: 'bi-border', + width: 300, + height: 20, + allowBlank: true, + value: password, + inputType: 'password', + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Password'), + ref: (_ref: any) => { + this.form.password = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Principal'), + invisible: true, + ref: (_ref: any) => { + this.formPrincipal = _ref; + }, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: principal, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Principal'), + ref: (_ref: any) => { + this.form.principal = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_KeyPath'), + invisible: true, + ref: (_ref: any) => { + this.formKeyPath = _ref; + }, + forms: [{ + type: Editor, + cls: 'bi-border', + width: 300, + height: 20, + allowBlank: true, + value: keyPath, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_KeyPath'), + ref: (_ref: any) => { + this.form.keyPath = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), + forms: [{ + type: TextValueCombo, + width: 300, + value: newCharsetName ? newCharsetName : '', + items: CONNECT_CHARSET, + ref: (_ref: any) => { + this.form.newCharsetName = _ref; + }, + }], + }, + { + type: FormItemXtype, + invisible: !databaseType.hasSchema, + name: BI.i18nText('Dec-Dcm_Connection_Form_Pattern'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: schema, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Pattern'), + ref: (_ref: any) => { + this.form.schema = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_URL'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: url, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_URL'), + ref: (_ref: any) => { + this.form.url = _ref; + }, + }], + }, + { + type: CollapseXtype, + width: 70, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Advanced_Setting'), + listeners: [ + { + eventName: EVENT_CHANGE, + action: (isCollapse: boolean) => { + this.advancedSet.setVisible(!isCollapse); + }, + }, + ], + }, + { + type: Vertical, + vgap: 10, + invisible: true, + ref: (_ref: any) => { + this.advancedSet = _ref; + }, + items: [ + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Initial_Size'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: initialSize, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Initial_Size'), + ref: (_ref: any) => { + this.form.initialSize = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Active'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: maxActive, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Active'), + ref: (_ref: any) => { + this.form.maxActive = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Idle'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: maxIdle, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Idle'), + ref: (_ref: any) => { + this.form.maxIdle = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Wait'), + forms: [ + { + type: TextEditor, + width: 300, + allowBlank: true, + value: maxWait, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Wait'), + ref: (_ref: any) => { + this.form.maxWait = _ref; + }, + }, + { + type: Label, + lgap: 5, + text: BI.i18nText('Dec-Dcm_Millisecond'), + }, + ], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_SQL_Validation_Query'), + forms: [{ + type: TextAreaEditor, + cls: 'bi-border', + allowBlank: true, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), + value: validationQuery, + width: 300, + height: 100, + ref: (_ref: any) => { + this.form.validationQuery = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'), + forms: [{ + type: TextValueCombo, + width: 300, + allowBlank: true, + value: testOnBorrow, + items: this.getBooleanItem(), + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'), + ref: (_ref: any) => { + this.form.testOnBorrow = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Return'), + forms: [{ + type: TextValueCombo, + width: 300, + allowBlank: true, + value: testOnReturn, + items: this.getBooleanItem(), + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Return'), + ref: (_ref: any) => { + this.form.testOnReturn = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_While_Idle'), + forms: [{ + type: TextValueCombo, + width: 300, + allowBlank: true, + value: testWhileIdle, + items: this.getBooleanItem(), + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_While_Idle'), + ref: (_ref: any) => { + this.form.testWhileIdle = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_Between_Eviction_Millis'), + forms: [ + { + type: TextEditor, + width: 300, + allowBlank: true, + value: timeBetweenEvictionRunsMillis, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_Between_Eviction_Millis'), + ref: (_ref: any) => { + this.form.timeBetweenEvictionRunsMillis = _ref; + }, + }, + { + type: Label, + lgap: 5, + text: BI.i18nText('Dec-Dcm_Millisecond'), + }, + ], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Tests_PerEviction_Run_Num'), + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: numTestsPerEvictionRun, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Tests_PerEviction_Run_Num'), + ref: (_ref: any) => { + this.form.numTestsPerEvictionRun = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Min_Evictable_Idle_Time_Millis'), + forms: [ + { + type: TextEditor, + width: 300, + allowBlank: true, + value: minEvictableIdleTimeMillis, + watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Min_Evictable_Idle_Time_Millis'), + ref: (_ref: any) => { + this.form.minEvictableIdleTimeMillis = _ref; + }, + }, + { + type: Label, + lgap: 5, + text: BI.i18nText('BI-Basic_Seconds'), + }, + ], + }, + ], + }, + ], + }; + } + + private getDrivers() { + const datebastType = (this.options.formData.connectionData as ConnectionJDBC).database; + const connectionType = this.allDatabaseTypes.find(item => item.databaseType === datebastType); + + return connectionType.drivers ? + connectionType.drivers.map(item => { + return { + text: item, + value: item, + }; + }) : + [{ + text: connectionType.driver, + value: connectionType.driver, + }]; + } + + private getBooleanItem() { + return [ + { + text: BI.i18nText('Dec-Dcm_Yes'), + value: true, + }, + { + text: BI.i18nText('Dec-Dcm_No'), + value: false, + }, + ]; + } + + private onHostPortChange(databaseType) { + const { url = '' } = databaseType; + const host = this.form.host.getValue(); + const port = this.form.port.getValue(); + this.form.url.setValue(url.replace('hostname', host).replace(':port', port ? `:${port}` : '')); + } + + + public getSubmitValue():Connection { + const connectionData = this.options.formData.connectionData as ConnectionJDBC; + const connectionPool = connectionData.connectionPool; + + return { + connectionType: connectionType.JDBC, + connectionId: this.form.connectionName.getValue(), + connectionName: this.form.connectionName.getValue(), + connectionData: { + database: this.form.database.getValue(), + connectionName: this.form.connectionName.getValue(), + driver: this.form.driver.getValue()[0], + url: this.form.url.getValue(), + user: this.form.user.getValue(), + password: this.oldPassword === this.form.password.getValue() ? this.oldPassword : BI.encode(this.form.password.getValue()), + queryType: '', + newCharsetName: this.form.newCharsetName.getValue()[0] || '', + originalCharsetName: this.form.newCharsetName.getValue()[0] || '', + schema: this.form.schema.getValue(), + port: this.form.port.getValue(), + host: this.form.host.getValue(), + authType: this.form.authType.getValue()[0] || '', + creator: Dec ? Dec.personal.username : '', + principal: this.form.principal.getValue(), + keyPath: this.form.principal.getValue(), + connectionPool: { + initialSize: this.form.initialSize.getValue(), + maxActive: this.form.maxActive.getValue(), + maxIdle: this.form.maxIdle.getValue(), + maxWait: this.form.maxWait.getValue(), + validationQuery: this.form.validationQuery.getValue(), + testOnBorrow: this.form.testOnBorrow.getValue()[0] || connectionPool.testOnBorrow, + testOnReturn: this.form.testOnReturn.getValue()[0] || connectionPool.testOnReturn, + testWhileIdle: this.form.testWhileIdle.getValue()[0] || connectionPool.testWhileIdle, + timeBetweenEvictionRunsMillis: this.form.timeBetweenEvictionRunsMillis.getValue(), + numTestsPerEvictionRun: this.form.numTestsPerEvictionRun.getValue(), + minEvictableIdleTimeMillis: this.form.minEvictableIdleTimeMillis.getValue(), + }, + }, + }; + } +} diff --git a/src/modules/pages/maintain/forms/components/form.jndi.ts b/src/modules/pages/maintain/forms/components/form.jndi.ts new file mode 100644 index 0000000..eb9d822 --- /dev/null +++ b/src/modules/pages/maintain/forms/components/form.jndi.ts @@ -0,0 +1,389 @@ +import { shortcut } from '@core/core'; +import { Vertical, TextEditor, Htape, Left, Label, TextValueCombo } from 'ui'; +import { FormItemXtype } from '../../components/form_item/form_item'; +import { ConnectionJNDI, Connection, ContextHashtable } from 'src/modules/crud/crud.typings'; +import { CONNECT_CHARSET } from '@constants/constant'; +import { CollapseXtype, EVENT_CHANGE } from 'src/modules/components/collapse/collapse'; +import { connectionType } from '@constants/env'; +export const FormJndiXtype = 'dec.dcm.maintain.form.jndi'; +@shortcut(FormJndiXtype) +export class FormJndi extends BI.Widget { + props = { + formData: {} as Connection, + } + advancedSet: any; + testStatus: any; + form = { + connectionName: null, + jndiname: null, + initial: null, + providerUrl: null, + securityPrincipal: null, + securityCredentials: null, + newCharsetName: null, + factoryObject: null, + factoryState: null, + factoryUrlPkgs: null, + dnsUrl: null, + authoritative: null, + batchsize: null, + referral: null, + securityProtocol: null, + authentication: null, + language: null, + applet: null, + } + + render() { + const { connectionName, connectionData } = this.options.formData; + const { jndiname, newCharsetName, contextHashtable } = connectionData as ConnectionJNDI; + + return { + type: Vertical, + hgap: 15, + vgap: 10, + items: [ + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Name'), + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: connectionName, + ref: (_ref: any) => { + this.form.connectionName = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_ConnectionName'), + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: jndiname, + ref: (_ref: any) => { + this.form.jndiname = _ref; + }, + }], + }, + { + type: Htape, + height: 180, + items: [ + { + el: { + type: Left, + items: [ + { + type: Label, + cls: 'bi-font-bold', + textAlign: 'left', + text: BI.i18nText('Dec-Dcm_Connection_JNDI_Form_Connection'), + }, + ], + }, + width: 200, + }, + { + type: Vertical, + bgap: 10, + items: [ + { + type: FormItemXtype, + name: 'INTIAL_CONTEXT_FACTORY', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.factory.initial'], + ref: (_ref: any) => { + this.form.initial = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'PROVIDER_URL', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.provider.url'], + ref: (_ref: any) => { + this.form.providerUrl = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'SECURITY_PRINCIPAL', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.security.principal'], + ref: (_ref: any) => { + this.form.securityPrincipal = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'SECURITY_CREDENTIALS', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.security.credentials'], + ref: (_ref: any) => { + this.form.securityCredentials = _ref; + }, + }], + }, + { + type: Label, + cls: 'bi-tips', + textAlign: 'left', + text: BI.i18nText('Dec-Dcm_Connection_JNDI_Warning'), + }, + ], + }, + ], + }, + { + type: FormItemXtype, + name: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), + nameWidth: 200, + forms: [{ + type: TextValueCombo, + width: 300, + value: newCharsetName ? newCharsetName : '', + items: CONNECT_CHARSET, + ref: (_ref: any) => { + this.form.newCharsetName = _ref; + }, + }], + }, + { + type: CollapseXtype, + width: 70, + name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Advanced_Setting'), + listeners: [ + { + eventName: EVENT_CHANGE, + action: (isCollapse: boolean) => { + this.advancedSet.setVisible(!isCollapse); + }, + }, + ], + }, + { + type: Vertical, + vgap: 10, + invisible: true, + ref: (_ref: any) => { + this.advancedSet = _ref; + }, + items: [ + { + type: FormItemXtype, + name: 'OBJECT_FACTORIES', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.factory.object'], + ref: (_ref: any) => { + this.form.factoryObject = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'STATE_FACTORIES', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.factory.state'], + ref: (_ref: any) => { + this.form.factoryState = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'URL_PKG_PREFIXES', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.factory.url.pkgs'], + ref: (_ref: any) => { + this.form.factoryUrlPkgs = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'DNS_URL', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.dns.url'], + ref: (_ref: any) => { + this.form.dnsUrl = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'AUTHORITATIVE', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.authoritative'], + ref: (_ref: any) => { + this.form.authoritative = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'BATCHSIZE', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.batchsize'], + ref: (_ref: any) => { + this.form.batchsize = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'REFERRAL', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.referral'], + ref: (_ref: any) => { + this.form.referral = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'SECURITY_PROTOCOL', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.security.protocol'], + ref: (_ref: any) => { + this.form.securityProtocol = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'SECURITY_AUTHENTICATION', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.security.authentication'], + ref: (_ref: any) => { + this.form.authentication = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'LANGUAGE', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.language'], + ref: (_ref: any) => { + this.form.language = _ref; + }, + }], + }, + { + type: FormItemXtype, + name: 'APPLET', + nameWidth: 200, + forms: [{ + type: TextEditor, + width: 300, + allowBlank: true, + value: contextHashtable['java.naming.applet'], + ref: (_ref: any) => { + this.form.applet = _ref; + }, + }], + }, + ], + }, + ], + }; + } + + public getSubmitValue():Connection { + const contextHashtable = { + 'java.naming.factory.initial': this.form.initial.getValue(), + 'java.naming.provider.url': this.form.providerUrl.getValue(), + 'java.naming.factory.object': this.form.factoryObject.getValue(), + 'java.naming.factory.state': this.form.factoryState.getValue(), + 'java.naming.factory.url.pkgs': this.form.factoryUrlPkgs.getValue(), + 'java.naming.dns.url': this.form.dnsUrl.getValue(), + 'java.naming.authoritative': this.form.authoritative.getValue(), + 'java.naming.batchsize': this.form.batchsize.getValue(), + 'java.naming.referral': this.form.referral.getValue(), + 'java.naming.security.protocol': this.form.securityProtocol.getValue(), + 'java.naming.security.authentication': this.form.authentication.getValue(), + 'java.naming.security.principal': this.form.securityPrincipal.getValue(), + 'java.naming.security.credentials': this.form.securityCredentials.getValue(), + 'java.naming.language': this.form.language.getValue(), + 'java.naming.applet': this.form.applet.getValue(), + }; + + return { + connectionId: this.form.connectionName.getValue(), + connectionName: this.form.connectionName.getValue(), + connectionType: connectionType.JNDI, + connectionData: { + jndiname: this.form.jndiname.getValue(), + originalCharsetName: this.form.newCharsetName.getValue(), + newCharsetName: this.form.newCharsetName.getValue(), + creator: Dec ? Dec.personal.username : '', + contextHashtable: BI.pick(contextHashtable) as ContextHashtable, + }, + }; + } +} diff --git a/src/modules/pages/maintain/forms/components/form.plugin.ts b/src/modules/pages/maintain/forms/components/form.plugin.ts new file mode 100644 index 0000000..a61a5a5 --- /dev/null +++ b/src/modules/pages/maintain/forms/components/form.plugin.ts @@ -0,0 +1,35 @@ +import { shortcut } from '@core/core'; +import { Connection } from 'src/modules/crud/crud.typings'; +import { getPluginWidgetEdit } from '../../../../app.service'; +export const FormPluginXtype = 'dec.dcm.maintain_plugin'; +@shortcut(FormPluginXtype) +export class FormPlugin extends BI.Widget { + props = { + formData: {} as Connection, + } + + plugin: any; + + render() { + const { connectionType } = this.options.formData; + + return { + type: getPluginWidgetEdit(connectionType), + ref: (_ref: any) => { + this.plugin = _ref; + }, + formData: this.options.formData.connectionData, + }; + } + + public getSubmitValue(): Connection { + const { connectionType } = this.options.formData; + + return { + connectionId: '1', + connectionType, + connectionName: '1', + connectionData: this.plugin.getSubmitValue(), + }; + } +} diff --git a/src/modules/pages/maintain/forms/form.model.ts b/src/modules/pages/maintain/forms/form.model.ts new file mode 100644 index 0000000..9db3704 --- /dev/null +++ b/src/modules/pages/maintain/forms/form.model.ts @@ -0,0 +1,36 @@ +import { model, Model } from '@core/core'; +import { AppModel } from 'src/modules/app.model'; +import { Connection } from 'src/modules/crud/crud.typings'; +import { ApiFactory } from 'src/modules/crud/apiFactory'; +import { PAGE_INDEX } from '@constants/constant'; +const api = new ApiFactory().create(); +export const MaintainFormModelXtype = 'dec.dcm.model.maintain_form'; +@model(MaintainFormModelXtype) +export class MaintainFormModel extends Model<{ + context : { + datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; + datebaseTypeSelectedOne: AppModel['$$childContext']['datebaseTypeSelectedOne']; + connectionSelectedOne: AppModel['$$childContext']['connectionSelectedOne']; + saveEvent: AppModel['$$childContext']['saveEvent']; + testEvent: AppModel['$$childContext']['testEvent']; + pageIndex: AppModel['$$childContext']['pageIndex']; + connections: AppModel['$$childContext']['connections']; + } +}> { + context = ['datebaseTypeSelected', 'datebaseTypeSelectedOne', 'connectionSelectedOne', 'saveEvent', 'pageIndex', 'testEvent', 'connections']; + + actions = { + addConnection: (data: Connection) => { + api.addConnection(data).then(() => { + this.model.pageIndex = PAGE_INDEX.CONNECTION; + }); + }, + updateConnection: (name: string, data: Connection) => { + data.connectionId = name; + api.updateConnection(data).then(() => { + this.model.pageIndex = PAGE_INDEX.CONNECTION; + }); + }, + testConnection: (connection: Connection) => api.testConnection(connection), + } +} diff --git a/src/modules/pages/maintain/forms/form.ts b/src/modules/pages/maintain/forms/form.ts new file mode 100644 index 0000000..1912f27 --- /dev/null +++ b/src/modules/pages/maintain/forms/form.ts @@ -0,0 +1,216 @@ +import { shortcut, store } from '@core/core'; +import { MaintainFormModelXtype, MaintainFormModel } from './form.model'; +import { FormJdbc, FormJdbcXtype } from './components/form.jdbc'; +import { FormJndiXtype } from './components/form.jndi'; +import { FormPluginXtype } from './components/form.plugin'; +import { connectionType } from '@constants/env'; +import { ConnectionJDBC, Connection } from 'src/modules/crud/crud.typings'; +import { TestStatusXtype, EVENT_RELOAD, EVENT_CLOSE } from 'src/modules/components/test_status/test_status'; +import { DEFAULT_JNDI_DATA, DEFAULT_JDBC_POOL } from '@constants/constant'; + +export const MaintainFormXtype = 'dec.dcm.maintain.form'; +@shortcut(MaintainFormXtype) +@store(MaintainFormModelXtype) +export class MaintainForm extends BI.Widget { + props = { + connectionType: '', + } + isEdit = false; + connectionName = ''; + + model: MaintainFormModel['model']; + store: MaintainFormModel['store']; + + form: FormJdbc; + testStatus: any; + + watch = { + saveEvent: () => { + if (!this.testValue()) { + return; + } + if (this.connectionName) { + this.store.updateConnection(this.connectionName, this.form.getSubmitValue()); + } else { + this.store.addConnection(this.form.getSubmitValue()); + } + }, + testEvent: () => { + if (!this.testValue()) { + return; + } + const id = BI.UUID(); + const testConnection = () => { + this.store.testConnection(this.form.getSubmitValue()).then(re => { + if (re && re.errorCode) { + this.testStatus.setFail(re.errorMsg); + } else if (re.data) { + this.testStatus.setSuccess(); + setTimeout(() => { + BI.Maskers.remove(id); + }, 1000 * 2); + } else { + BI.Msg.toast(BI.i18nText('Dec-Dcm_Connection_Error'), { + level: 'error', + }); + BI.Maskers.remove(id); + } + }); + }; + BI.Maskers.create(id, null, { + render: { + type: TestStatusXtype, + loadingText: BI.i18nText('Dec-Dcm_Connection_Testing'), + loadingCls: 'upload-loading-icon', + successText: BI.i18nText('Dec-Dcm_Connection_Test_Success'), + successCls: 'upload-success-icon', + failText: BI.i18nText('Dec-Dcm_Connection_Test_Fail', name), + failCls: 'upload-fail-icon', + retryText: BI.i18nText('Dec-Dcm_Connection_ReConnect'), + ref: (_ref: any) => { + this.testStatus = _ref; + }, + listeners: [ + { + eventName: EVENT_RELOAD, + action: () => { + this.testStatus.setLoading(); + testConnection(); + }, + }, + { + eventName: EVENT_CLOSE, + action: () => { + BI.Maskers.remove(id); + }, + }, + ], + }, + }); + BI.Maskers.show(id); + testConnection(); + }, + } + + render() { + return { + type: this.getFormType(), + formData: this.getFormData(), + ref: (_ref: any) => { + this.form = _ref; + }, + }; + } + + private getFormType() { + switch (this.options.connectionType) { + case connectionType.JDBC: + return FormJdbcXtype; + case connectionType.JNDI: + return FormJndiXtype; + default: + return FormPluginXtype; + } + } + + private getFormData():Connection { + switch (this.options.connectionType) { + case connectionType.JDBC: + return this.getJdbcConnection(); + case connectionType.JNDI: + return this.getJndiConnection(); + default: + return this.getPluginConnection(); + } + } + + private getJdbcConnection():Connection { + const connectionName = this.getConnectionName(); + let editConnection: Connection; + let connectionData: ConnectionJDBC; + if (this.model.datebaseTypeSelected) { + connectionData = { + driver: this.model.datebaseTypeSelectedOne.driver, + url: this.model.datebaseTypeSelectedOne.url, + database: this.model.datebaseTypeSelectedOne.databaseType, + connectionName, + connectionPool: DEFAULT_JDBC_POOL, + port:'', + host: 'localhost', + }; + editConnection = { + connectionId: '', + connectionData, + connectionType: connectionType.JDBC, + connectionName, + }; + + return editConnection; + } + this.isEdit = true; + this.connectionName = this.model.connectionSelectedOne.connectionName; + + return this.model.connectionSelectedOne; + } + + private getJndiConnection():Connection { + if (this.model.datebaseTypeSelected) { + return { + connectionId: '', + connectionType: connectionType.JNDI, + connectionName: this.getConnectionName(), + connectionData: DEFAULT_JNDI_DATA, + }; + } + this.connectionName = this.model.connectionSelectedOne.connectionName; + this.isEdit = true; + + return this.model.connectionSelectedOne; + } + + private getPluginConnection():Connection { + if (!this.model.datebaseTypeSelected) { + this.connectionName = this.model.connectionSelectedOne.connectionName; + this.isEdit = true; + + return this.model.connectionSelectedOne; + } + + return { + connectionId: '', + connectionType: this.model.datebaseTypeSelectedOne.databaseType, + connectionName: this.getConnectionName(), + connectionData: '', + }; + } + + private testValue():boolean { + const value = this.form.getSubmitValue(); + if (!value.connectionName) { + BI.Msg.toast(BI.i18nText('Dec-Dcm_Connection_ConnectionName_Cannt_Null'), { + level: 'error', + }); + + return false; + } + + return true; + } + + private getConnectionName() { + const name = BI.i18nText('Dec-Dcm_Data_Connections'); + const connections = this.model.connections.filter(item => item.connectionName.startsWith(name)); + if (connections.length === 0) { + return name; + } + let index = 1; + connections.forEach(item => { + const num = parseFloat(item.connectionName.replace(name, '')); + if (num > index) { + index = num; + } + }); + + return `${name}${index + 1}`; + } +} diff --git a/src/modules/pages/maintain/maintain.less b/src/modules/pages/maintain/maintain.less new file mode 100644 index 0000000..0ec5e7d --- /dev/null +++ b/src/modules/pages/maintain/maintain.less @@ -0,0 +1 @@ +@import '../../../less/index.less'; \ No newline at end of file diff --git a/src/modules/pages/maintain/maintain.model.ts b/src/modules/pages/maintain/maintain.model.ts new file mode 100644 index 0000000..6ed2554 --- /dev/null +++ b/src/modules/pages/maintain/maintain.model.ts @@ -0,0 +1,21 @@ +import { model, Model } from '@core/core'; +import { AppModel } from '../../app.model'; +export const MaintainModelXtype = 'dec.dcm.model.maintain'; +@model(MaintainModelXtype) +export class MaintainModel extends Model<{ + context : { + pageIndex: AppModel['$$childContext']['pageIndex']; + connections: AppModel['$$childContext']['connections']; + datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; + datebaseTypeSelectedOne: AppModel['$$childContext']['datebaseTypeSelectedOne']; + connectionSelectedOne: AppModel['$$childContext']['connectionSelectedOne']; + } +}> { + context = ['pageIndex', 'datebaseTypeSelected', 'datebaseTypeSelectedOne', 'connectionSelectedOne']; + + actions = { + setPageIndex:(index: string) => { + this.model.pageIndex = index; + }, + } +} diff --git a/src/modules/pages/maintain/maintain.ts b/src/modules/pages/maintain/maintain.ts new file mode 100644 index 0000000..713fd09 --- /dev/null +++ b/src/modules/pages/maintain/maintain.ts @@ -0,0 +1,80 @@ +import { Vtape, Label, VerticalAdapt, ListView, IconButton } from 'ui'; +import { shortcut, store } from '@core/core'; +import { MaintainModel, MaintainModelXtype } from './maintain.model'; +import { MaintainFormXtype } from './forms/form'; +import { PAGE_INDEX } from '@constants/constant'; +import './maintain.less'; + +export const MaintainXtype = 'dec.dcm.maintain'; +@shortcut(MaintainXtype) +@store(MaintainModelXtype) +export class Maintain extends BI.Widget { + model: MaintainModel['model']; + store: MaintainModel['store']; + + listView: any; + + render() { + const { text, isEdit } = this.getEditConnection(); + + return { + type: Vtape, + hgap: 10, + vgap: 10, + items: [ + { + type: VerticalAdapt, + cls: 'bi-border-bottom', + items: [ + { + type: IconButton, + height: 15, + cls: 'dcm-back-font', + invisible: isEdit, + handler: () => { + this.store.setPageIndex(PAGE_INDEX.DATEBASE); + }, + }, + { + type: Label, + text, + }, + ], + height: 40, + }, + { + type: ListView, + ref: (_ref: any) => { + this.listView = _ref; + }, + items: this.renderItems(), + }, + ], + }; + } + + private renderItems() { + const { type } = this.getEditConnection(); + + return [{ + type: MaintainFormXtype, + connectionType: type, + }]; + } + + private getEditConnection() { + if (this.model.datebaseTypeSelected) { + return { + type: this.model.datebaseTypeSelectedOne.type, + text: this.model.datebaseTypeSelectedOne.text, + isEdit: false, + }; + } + + return { + type: this.model.connectionSelectedOne.connectionType, + text: this.model.connectionSelectedOne.connectionName, + isEdit: true, + }; + } +} diff --git a/src/modules/title/title.model.ts b/src/modules/title/title.model.ts new file mode 100644 index 0000000..56012db --- /dev/null +++ b/src/modules/title/title.model.ts @@ -0,0 +1,19 @@ +import { model, Model } from '@core/core'; +import { AppModel } from '../app.model'; + +export const TitleModelXtype = 'dec.dcm.model.title'; +@model(TitleModelXtype) +export class TitleModel extends Model<{ + context : { + pageIndex: AppModel['$$childContext']['pageIndex']; + datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; + } +}> { + context = ['pageIndex', 'datebaseTypeSelected'] + + actions = { + setPageIndex: (index: string) => { + this.model.pageIndex = index; + }, + } +} diff --git a/src/modules/title/title.ts b/src/modules/title/title.ts new file mode 100644 index 0000000..10bfe2a --- /dev/null +++ b/src/modules/title/title.ts @@ -0,0 +1,85 @@ +import { LeftRightVerticalAdapt, LinearSegment, Tab } from 'ui'; +import { shortcut, store } from '@core/core'; +import { TitleModel, TitleModelXtype } from './title.model'; +import { PAGE_INDEX } from '@constants/constant'; +import { TitleDatabase } from './title_database/title_datebase'; +import { TitleMaintain } from './title_maintain/title_maintain'; +export const TitleXtype = 'dec.dcm.title'; + +@shortcut(TitleXtype) +@store(TitleModelXtype) +export class Title extends BI.Widget { + tab: any; + linearSegment: any; + + model: TitleModel['model']; + store: TitleModel['store']; + + watch = { + pageIndex: (index: string) => { + this.tab.setSelect(index); + }, + } + + render() { + return { + type: LeftRightVerticalAdapt, + items: { + left: [ + { + type: LinearSegment, + cls: 'bi-card', + height: 40, + hgap: 10, + width: 250, + ref: (_ref: any) => { + this.linearSegment = _ref; + }, + items: [ + { + text: BI.i18nText('Dec-Dcm_Connection_Management'), + selected: true, + value: PAGE_INDEX.CONNECTION, + }, + { + text: BI.i18nText('Dec-Dcm_Pool_Connection_Management'), + value: PAGE_INDEX.POOL, + }, + ], + listeners: [{ + eventName: BI.ButtonGroup.EVENT_CHANGE, + action: () => { + this.store.setPageIndex(this.linearSegment.getValue()[0]); + }, + }], + }, + ], + right: [ + { + type: Tab, + height: 40, + showIndex: this.model.pageIndex, + ref: (_ref: any) => { + this.tab = _ref; + }, + cardCreator: (index: string) => { + switch (index) { + case PAGE_INDEX.DATEBASE: + return { + type: TitleDatabase, + }; + case PAGE_INDEX.MAINTAIN: + return { + type: TitleMaintain, + }; + default: + return { + }; + } + }, + }, + ], + }, + }; + } +} diff --git a/src/modules/title/title_database/title_datebase.model.ts b/src/modules/title/title_database/title_datebase.model.ts new file mode 100644 index 0000000..1f45e5d --- /dev/null +++ b/src/modules/title/title_database/title_datebase.model.ts @@ -0,0 +1,19 @@ +import { model, Model } from '@core/core'; +import { AppModel } from 'src/modules/app.model'; + +export const TitleDatebaseModelXtype = 'dec.dcm.model.title_datebase'; +@model(TitleDatebaseModelXtype) +export class TitleDatebaseModel extends Model<{ + context: { + pageIndex: AppModel['$$childContext']['pageIndex']; + datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; + } +}> { + context = ['pageIndex', 'datebaseTypeSelected']; + + actions = { + setPageIndex: (index: string) => { + this.model.pageIndex = index; + }, + } +} diff --git a/src/modules/title/title_database/title_datebase.ts b/src/modules/title/title_database/title_datebase.ts new file mode 100644 index 0000000..96ec4d2 --- /dev/null +++ b/src/modules/title/title_database/title_datebase.ts @@ -0,0 +1,53 @@ +import { shortcut, store } from '@core/core'; +import { Right, Button, VerticalAdapt } from 'ui'; +import { TitleDatebaseModel, TitleDatebaseModelXtype } from './title_datebase.model'; +import { PAGE_INDEX } from '@constants/constant'; + +export const TitleDatabase = 'dec.dcm.title.datebase'; + +@shortcut(TitleDatabase) +@store(TitleDatebaseModelXtype) +export class TitleDatabaseWidget extends BI.Widget { + store: TitleDatebaseModel['store']; + model: TitleDatebaseModel['model']; + + submitButton: any; + + watch = { + datebaseTypeSelected: (datebaseTypeSelected: string) => { + this.submitButton.setEnable(!!datebaseTypeSelected); + }, + } + + render() { + return { + type: Right, + items: [{ + type: VerticalAdapt, + height: 40, + rgap: 5, + items: [ + { + type: Button, + text: BI.i18nText('BI-Basic_Cancel'), + level: 'ignore', + handler: () => { + this.store.setPageIndex(PAGE_INDEX.CONNECTION); + }, + }, + { + type: Button, + text: BI.i18nText('BI-Basic_Save'), + disabled: !this.model.datebaseTypeSelected, + ref: (_ref: any) => { + this.submitButton = _ref; + }, + handler: () => { + this.store.setPageIndex(PAGE_INDEX.MAINTAIN); + }, + }, + ], + }], + }; + } +} diff --git a/src/modules/title/title_maintain/title_maintain.model.ts b/src/modules/title/title_maintain/title_maintain.model.ts new file mode 100644 index 0000000..26a89a3 --- /dev/null +++ b/src/modules/title/title_maintain/title_maintain.model.ts @@ -0,0 +1,27 @@ +import { model, Model } from '@core/core'; +import { AppModel } from 'src/modules/app.model'; + +export const TitleMaintainModelXtype = 'dec.dcm.model.title_maintain'; +@model(TitleMaintainModelXtype) +export class TitleMaintainModel extends Model<{ + context : { + pageIndex: AppModel['$$childContext']['pageIndex']; + saveEvent: AppModel['$$childContext']['saveEvent']; + connectionSelected: AppModel['$$childContext']['connectionSelected']; + testEvent: AppModel['$$childContext']['testEvent']; + } +}> { + context = ['pageIndex', 'saveEvent', 'testEvent', 'connectionSelected']; + + actions = { + setPageIndex: (index: string) => { + this.model.pageIndex = index; + }, + setSaveEvent: () => { + this.model.saveEvent = BI.UUID(); + }, + setTestEvent: () => { + this.model.testEvent = BI.UUID(); + }, + } +} diff --git a/src/modules/title/title_maintain/title_maintain.ts b/src/modules/title/title_maintain/title_maintain.ts new file mode 100644 index 0000000..52697f5 --- /dev/null +++ b/src/modules/title/title_maintain/title_maintain.ts @@ -0,0 +1,56 @@ +import { shortcut, store } from '@core/core'; +import { Right, Button, VerticalAdapt } from 'ui'; +import { TitleMaintainModel, TitleMaintainModelXtype } from './title_maintain.model'; +import { PAGE_INDEX } from '@constants/constant'; +import { editStatusEvent } from '@constants/env'; + +export const TitleMaintain = 'dec.dcm.title.maintain'; +@shortcut(TitleMaintain) +@store(TitleMaintainModelXtype) +export class TitleMaintainWidget extends BI.Widget { + store: TitleMaintainModel['store']; + model: TitleMaintainModel['model']; + render() { + return { + type: Right, + items: [{ + type: VerticalAdapt, + height: 40, + rgap: 5, + items: [ + { + type: Button, + text: BI.i18nText('BI-Basic_Cancel'), + level: 'ignore', + handler: () => { + this.store.setPageIndex(PAGE_INDEX.CONNECTION); + Dec ? Dec.socket.emit(editStatusEvent.SHUTDOWN, this.model.connectionSelected) : null; + }, + }, + { + type: Button, + text: BI.i18nText('Dec-Dcm_Connection_Test'), + level: 'ignore', + handler: () => { + this.store.setTestEvent(); + }, + }, + { + type: Button, + text: BI.i18nText('BI-Basic_Save'), + handler: () => { + this.store.setSaveEvent(); + Dec ? Dec.socket.emit(editStatusEvent.SHUTDOWN, this.model.connectionSelected) : null; + }, + }, + ], + }], + }; + } + + mounted () { + window.onunload = () => { + Dec ? Dec.socket.emit(editStatusEvent.SHUTDOWN, this.model.connectionSelected) : null; + }; + } +} diff --git a/src/shared/components/both_side.ts b/src/shared/components/both_side.ts deleted file mode 100644 index ff05f20..0000000 --- a/src/shared/components/both_side.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {WidgetType, Htape, Label} from '@ui/index'; -const BothSide = 'dec.dcm.shared.component.both.side'; -const Widget: WidgetType = { - props: { - height: 24, - }, - render() { - const {leftText, rightText} = this.options; - - return { - type: Htape, - items: [{ - el: { - type: Label, - cls: 'bi-font-bold', - textAlign: 'left', - text: leftText, - }, - width: 115, - }, { - type: Label, - textAlign: 'left', - text: rightText, - }], - }; - }, -}; -BI.shortcut(BothSide, BI.inherit(BI.Widget, Widget)); -export default BothSide; diff --git a/src/shared/components/title.ts b/src/shared/components/title.ts deleted file mode 100644 index f1843e2..0000000 --- a/src/shared/components/title.ts +++ /dev/null @@ -1,20 +0,0 @@ -import {WidgetType, Label} from '@ui/index'; -const className = 'dec.dcm.shared.component.title'; -const Widget: WidgetType = { - props: { - baseCls: 'bi-tips bi-border-bottom', - }, - render() { - const {text} = this.options; - - return { - type: Label, - height: 24, - bgap: 10, - textAlign: 'left', - text, - }; - }, -}; -BI.shortcut(className, BI.inherit(BI.Widget, Widget)); -export default className; diff --git a/src/shared/crud/crud.request.ts b/src/shared/crud/crud.request.ts deleted file mode 100644 index 0eab64d..0000000 --- a/src/shared/crud/crud.request.ts +++ /dev/null @@ -1,130 +0,0 @@ -import {linkList} from './curd.mock'; -import {LinkType} from '@ui/type'; -const Dec: any = (window as any).parent.Dec; -const PluginHelper: any = (window as any).PluginHelper; - -/** - * 是否是设计器 - */ -export function isDesigner(): boolean { - if (PluginHelper) { - return PluginHelper.isDesigner(); - } - - return false; -} - -/** - * 关闭窗口 - */ -export function closeWindow(): void{ - if (PluginHelper) { - return PluginHelper.closeWindow(); - } - console.log('关闭窗口'); -} - -/** - * 获取数据连接列表 - * @param callback 回调函数 - */ -export function fetchLinkList(callback: Function): void { - if (Dec) { - Dec.reqGet('/v10/config/connection/list', 'getInstalledPlugins', (res: any) => { - callback(res.data); - }); - } else { - callback(linkList.data); - } -} - -/** - * 新增数据连接 - * @param data 数据连接参数 - * @param cb 回调函数 - */ -export function addConnection(data: LinkType, cb: Function): void{ - console.log('%cdata: ', 'color: MidnightBlue; background: Aquamarine;', data); - if (Dec) { - Dec.reqPost(`/v10/config/connection`, data, (res: any) => { - cb(res.data); - }); - } else { - cb('success'); - } -} - -/** - * 更新数据连接 - * @param data 数据连接参数 - * @param cb 回调函数 - */ -export function updateConnection(data: LinkType, cb: Function): void{ - console.log('%cdata: ', 'color: MidnightBlue; background: Aquamarine;', data); - if (Dec) { - Dec.reqPut(`/v10/config/connection`, data, (res: any) => { - cb(res.data); - }); - } else { - cb('success'); - } -} -/** - * 测试数据连接 - * @param data 数据连接参数 - * @param cb 回调函数 - */ -export function testConnection(data: LinkType, cb: Function): void{ - console.log('%cdata: ', 'color: MidnightBlue; background: Aquamarine;', data); - if (Dec) { - Dec.reqPost(`/v10/config/connection/test`, data, (res: any) => { - cb(res); - }); - } else { - setTimeout(() => { - cb({errorCode: '500', errorMsg: 'createConnectionThread not start!'}); - }, 2000); - } -} - -/** - * 删除数据连接 - * @param id 数据连接id - * @param cb 回调函数 - */ -export function deleteConnection(id: string, cb: Function): void{ - console.log('%cid: ', 'color: MidnightBlue; background: Aquamarine;', id); - if (Dec) { - Dec.reqDeleta(`/v10/config/connection/${id}`, (res: any) => { - cb(res.data); - }); - } else { - cb('success'); - } -} -/** - * 检查数据连接 - * @param id 数据连接id - * @param cb 回调函数 - */ -export function getConnectionStatus(id: string, cb: Function): void{ - console.log('%cid: ', 'color: MidnightBlue; background: Aquamarine;', id); - if (Dec) { - Dec.reqDeleta(`/v10/config/connection/${id}/status`, (res: any) => { - cb(res.data); - }); - } else { - cb('success'); - } -} - -export function info(name: string, cb: Function): void{ - console.log('%cname: ', 'color: MidnightBlue; background: Aquamarine;', name); - if (Dec) { - Dec.reqDeleta(`/v10/config/connection/pool/info?connectionName=${name}`, (res: any) => { - cb(res.data); - }); - } else { - cb({maxActive: 50, maxIdle: 10, numActive: 0, numIdle: 0}); - } -} diff --git a/src/shared/crud/curd.mock.ts b/src/shared/crud/curd.mock.ts deleted file mode 100644 index 0bc9e30..0000000 --- a/src/shared/crud/curd.mock.ts +++ /dev/null @@ -1 +0,0 @@ -export const linkList = {"data":[{"connectionId":"8c1c52f1-3d0a-429e-b35f-ee1e085a8b72","database":"","connectionName":"FRDemo","driver":"org.sqlite.JDBC","url":"jdbc:sqlite://${ENV_HOME}/../help/FRDemo.db","user":"","password":"","queryType":"","newCharsetName":'null',"originalCharsetName":'',"validationQuery":"","schema":"","testOnBorrow":true,"maxActive":50,"options":'null',"port":0,"authType":"","creator":"designer","principal":"","keyPath":"","databaseType":"designer","privilegeDetailBeanList":'null'}]} diff --git a/src/shared/service/dialog.service.ts b/src/shared/service/dialog.service.ts deleted file mode 100644 index c7ddb77..0000000 --- a/src/shared/service/dialog.service.ts +++ /dev/null @@ -1,271 +0,0 @@ -import {Label, Vertical, Button, Layout, CenterAdapt, VerticalAdapt} from '@ui/index'; -class Dialog { - /** - * 提示 - * @param message - * @param onConfirm - */ - public confirm(message: string, onConfirm: Function): string { - const id = BI.UUID(); - BI.Popovers.create(id, { - type: 'bi.bar_popover', - size: 'normal', - header: BI.i18nText('Dec-Dcm_Tips'), - width: 450, - height: 220, - body: { - type: 'bi.left', - cls: 'comfirm-content', - vgap: 40, - hgap: 20, - items: [ - { - type: 'bi.layout', - cls: 'dcm-comfirm-icon', - width: 50, - height: 50, - }, - { - type: 'bi.label', - textHeight: 50, - lgap: 10, - text: message, - }, - ], - }, - listeners: [ - { - eventName: 'EVENT_CONFIRM', - action () { - onConfirm ? onConfirm(true) : null; - }, - }, - { - eventName: 'EVENT_CANCEL', - action () { - onConfirm ? onConfirm(false) : null; - }, - }, - ], - }).open(id); - - return id; - } - public loading(message: string): string { - const body = { - type: 'bi.center_adapt', - cls: 'bi-card', - width: 450, - height: 220, - items: [ - { - type: Vertical, - items: [ - { - type: 'bi.layout', - cls: 'dcm-loading-icon', - width: 100, - height: 100, - }, - { - type: Label, - text: message, - }, - ], - }, - ], - }; - - return this.show(body); - } - - public success(message: string): string { - const body = { - type: 'bi.center_adapt', - cls: 'bi-card', - items: [ - { - type: Vertical, - items: [ - { - type: 'bi.layout', - cls: 'dcm-success-icon', - width: 100, - height: 100, - }, - { - type: Label, - text: message, - }, - ], - }, - ], - }; - - return this.show(body, 1000); - } - public error(message: string): string { - const body = { - type: 'bi.center_adapt', - cls: 'bi-card', - items: [ - { - type: Vertical, - items: [ - { - type: 'bi.layout', - cls: 'dcm-error-icon', - width: 100, - height: 100, - }, - { - type: Label, - text: message, - }, - ], - }, - ], - }; - - return this.show(body, 2000); - } - - public linkFail(text: string, more: string, cb?: Function): string { - let dialogPopover = null; - let dialogMore = null; - const id = BI.UUID(); - const that = this; - const body = { - type: Vertical, - items: [ - { - type: 'bi.center_adapt', - cls: 'bi-card', - tgap: 10, - items: [ - { - type: Vertical, - vgap: 10, - items: [ - { - type: Layout, - cls: 'dcm-error-icon', - width: 270, - height: 100, - textAlign: 'center', - }, - { - type: Label, - text, - }, - { - type: VerticalAdapt, - cls: 'buttons', - hgap: 5, - items: [ - { - type: Button, - text: BI.i18nText('Dec-Dcm_Connection_Detailed_Information'), - level: 'ignore', - handler() { - const isHide = !dialogMore.isVisible(); - dialogPopover.element.css({ - height: isHide ? '290' : '220', - }); - dialogMore.setVisible(isHide); - this.setText(isHide ? BI.i18nText('Dec-Dcm_Connection_Handup_Information') : BI.i18nText('Dec-Dcm_Connection_Detailed_Information')); - }, - }, - { - type: Button, - text: BI.i18nText('Dec-Dcm_Back'), - level: 'ignore', - handler() { - that.remove(id); - }, - }, - { - type: Button, - text: BI.i18nText('Dec-Dcm_Connection_ReConnect'), - handler() { - that.close(id); - cb ? cb() : null; - }, - }, - ], - }, - - ], - }, - ], - }, { - type: Label, - cls: 'bi-header-background', - text: more, - invisible: true, - height: 73, - width: 400, - value: false, - ref: _ref => { - dialogMore = _ref; - }, - }, - ], - }; - - BI.Maskers.create(id, null, { - render: { - type: CenterAdapt, - cls: 'bi-z-index-mask', - items: [{ - el: { - type: 'bi.center_adapt', - cls: 'bi-card', - width: 450, - height: 220, - items: [body], - ref: _ref => { - dialogPopover = _ref; - }, - }, - }], - }, - }); - BI.Maskers.show(id); - - return id; - } - - public close(id: string): void{ - BI.Popovers.close(id); - } - public remove(id: string): void{ - BI.Maskers.remove(id); - } - - - public show(body: any, autoClose = 0): string { - const name = BI.UUID(); - BI.Maskers.create(name, null, { - render: { - type: CenterAdapt, - cls: 'bi-z-index-mask', - items: [{ - el: { - ...body, - }, - }], - }, - }); - BI.Maskers.show(name); - if (autoClose > 0) { - setTimeout(() => { - BI.Maskers.remove(name); - }, autoClose); - } - - return name; - } -} - -export default new Dialog(); diff --git a/src/ui/fineui.ts b/src/ui/fineui.ts index f40ddad..2a356e2 100644 --- a/src/ui/fineui.ts +++ b/src/ui/fineui.ts @@ -1,5 +1,4 @@ -export const TextItem = 'bi.text_item'; -export const Icon = 'bi.icon_label'; +export const Icon = 'bi.icon'; export const IconTextItem = 'bi.icon_text_item'; export const IconTextIconItem = 'bi.icon_text_icon_item'; export const IconButton = 'bi.icon_button'; @@ -13,6 +12,7 @@ export const SignEditor = 'bi.sign_editor'; export const Button = 'bi.button'; export const TextEditor = 'bi.text_editor'; export const MultiSelectInsertCombo = 'bi.multi_select_insert_combo'; +export const MultiSelectCombo = 'bi.multi_select_combo'; export const ButtonGroup = 'bi.button_group'; export const AllValueChooserCombo = 'bi.all_value_chooser_combo'; export const TextAreaEditor = 'bi.textarea_editor'; @@ -27,14 +27,30 @@ export const Editor = 'bi.editor'; export const MultiTreePopupView = 'bi.multi_tree_popup_view'; export const SingleSelectRadioItem = 'bi.single_select_radio_item'; export const SingleSelectInsertCombo = 'bi.single_select_insert_combo'; +export const SingleSelectCombo = 'bi.single_select_combo'; export const Tab = 'bi.tab'; +export const DynamicYearMonthCombo = 'bi.dynamic_year_month_combo'; +export const Text = 'bi.text'; export const Combo = 'bi.combo'; -export const TextValueCombo = 'bi.text_value_combo'; -export const TextBubblePopupBarView = 'bi.text_bubble_bar_popup_view'; -export const BubbleCombo = 'bi.bubble_combo'; +export const TimeCombo = 'bi.time_combo'; +export const IFrame = 'bi.iframe'; +export const MultiTreeInsertCombo = 'bi.multi_tree_insert_combo'; +export const MultiTreeListCombo = 'bi.multi_tree_list_combo'; +export const MultilayerSingleTreeCombo = 'bi.multilayer_single_tree_combo'; +export const MultilayerSelectTreeCombo = 'bi.multilayer_select_tree_combo'; +export const AsyncTree = 'bi.async_tree'; +export const ListAsyncTree = 'bi.list_async_tree'; +export const MultilayerSingleTreePopup = 'bi.multilayer_single_tree_popup'; +export const MultilayerSelectTreePopup = 'bi.multilayer_select_tree_popup'; +export const IconLabel = 'bi.icon_label'; +export const Radio = 'bi.radio'; +export const LinearSegment = 'bi.linear_segment'; export const SearchEditor = 'bi.search_editor'; export const Img = 'bi.img'; -export const LinearSegment = 'bi.linear_segment'; +export const BubbleCombo = 'bi.bubble_combo'; +export const TextBubblePopupBarView = 'bi.text_bubble_bar_popup_view'; +export const TextValueCombo = 'bi.text_value_combo'; + // 布局 export const VerticalAdapt = 'bi.vertical_adapt'; @@ -46,8 +62,13 @@ export const Absolute = 'bi.absolute'; export const Vertical = 'bi.vertical'; export const Left = 'bi.left'; export const Right = 'bi.right'; +export const HorizontalAdapt = 'bi.horizontal_adapt'; +export const AbsoluteCenterAdapt = 'bi.absolute_center_adapt'; +export const TableAdapt = 'bi.table_adapt'; +export const RightVerticalAdapt = 'bi.right_vertical_adapt'; export const LeftRightVerticalAdapt = 'bi.left_right_vertical_adapt'; -export const VertualGroup = 'bi.virtual_group'; export const ListView = 'bi.list_view'; +export const VirtualGroup = 'bi.virtual_group'; +export const HorizotalAuto = 'bi.horizontal_auto'; +export const Horizotal = 'bi.horizontal'; export const FloatCenter = 'bi.float_center'; -export const HorizotalAdapt = 'bi.horizontal_adapt'; diff --git a/src/ui/index.ts b/src/ui/index.ts index 4b603a9..bf6e617 100644 --- a/src/ui/index.ts +++ b/src/ui/index.ts @@ -1,17 +1 @@ export * from './fineui'; -export interface WidgetType{ - [key: string]: any; - _store?: Function; - watch?: object; - props?: object; - render: Function; - mounted?: Function; -} - -export interface ModelType{ - context?: string[]; - childContext?: string[]; - state?: Function; - computed?: object; - actions?: object; -} diff --git a/src/ui/type.ts b/src/ui/type.ts deleted file mode 100644 index 6927621..0000000 --- a/src/ui/type.ts +++ /dev/null @@ -1,27 +0,0 @@ -export interface LinkType{ - connectionId?: string; - database?: string; - connectionName?: string; - driver?: string; - drivers?: string[]; - url?: string; - user?: string; - password?: string; - queryType?: string; - newCharsetName?: any; - originalCharsetName?: any; - validationQuery?: string; - schema?: string; - testOnBorrow?: boolean; - maxActive?: number; - options?: any; - port?: number; - authType?: string; - creator?: string; - principal?: string; - keyPath?: string; - databaseType?: string; - privilegeDetailBeanList?: any; - isSelected?: boolean; - text: string; -} diff --git a/tsconfig.json b/tsconfig.json index 22be292..7caa784 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,28 +1,37 @@ { - "compilerOptions": { - "baseUrl": ".", - "outDir": "./dist/", - "sourceMap": true, - "noImplicitAny": false, - "target": "es2017", - "module": "es2015", - "lib": [ - "es2017", - "dom" - ], - "paths":{ - "@ui/*": ["src/ui/*"], - "@ui": ["src/ui/index"], - "@types/*": ["types/*"], - "@types": ["src/ui/index"], - "@shared/*": ["src/shared/*"], - "@shared": ["src/shared"], - "@private/*": ["private/*"], - "@private": ["private"], - } - }, - "include": [ - "./src/**/*", - "types/globals.d.ts" - ] + "compilerOptions": { + "sourceMap": true, + "target": "es2017", + "module": "es2015", + "moduleResolution": "node", + "lib": [ + "es2017", + "dom" + ], + "declaration": true, + "experimentalDecorators": true, + "outDir": "./bin", + "baseUrl": ".", + // "strict": true, + // "strictNullChecks": true, + // "noImplicitAny": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + // "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "paths": { + "ui": ["./src/ui"], + "ReportCst": ["./private/constants"], + "types": ["./types/index.d.ts"], + "@core/*": ["./src/modules/core/*"], + "@constants/*": ["./src/modules/constants/*"] + } + }, + "include": [ + "src/*.ts", + "src/**/*.ts", + "private/*.ts", + "private/**/*.ts", + "types/globals.d.ts" + ] } \ No newline at end of file diff --git a/types/globals.d.ts b/types/globals.d.ts index 44cf726..ea354bf 100644 --- a/types/globals.d.ts +++ b/types/globals.d.ts @@ -1,9 +1,8 @@ interface Obj { - [key: string]: any; + [key: string]: any; } -declare let BI: Obj; +declare let BI: Obj & import('fineui')._BI; declare const Fix: Obj; -declare const Dec: Obj; -declare const PluginHelper: Obj; -declare const Store: Obj; +declare const DecCst: Obj; +declare const Dec: Obj; \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 128091d..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,88 +0,0 @@ -const path = require('path'); -const HtmlWebpackPlugin = require("html-webpack-plugin"); -const CopyPlugin = require('copy-webpack-plugin'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); - -module.exports = env => { - const htmlWebpackPlugin = new HtmlWebpackPlugin({ - template: path.join(__dirname, `src/index.html`), - filename: "./index.html" - }); - - return{ - mode: "development", - entry: path.join(__dirname, `src/index.ts`), - devtool: "source-map", - output: { - path: __dirname + '/dist', - filename: `index.js`, - publicPath: '' - }, - resolve: { - extensions: [ '.ts', '.js' ], - alias:{ - "@ui": path.resolve("src/ui"), - "@types": path.resolve("types"), - "@shared": path.resolve("src/shared"), - "@private": path.resolve("private"), - } - }, - plugins: [htmlWebpackPlugin, new MiniCssExtractPlugin({filename: `style.css`}), new CopyPlugin([ - { from: 'src/lib', to: 'lib' }, - { from: 'src/img', to: 'img' } - ])], - module: { - rules: [ - { - test:/\.css$/, - exclude: /node_modules/, - loader: ['style-loader','css-loader'], - }, - { - test:/\.scss$/, - exclude: /node_modules/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - publicPath: './', - hmr: process.env.NODE_ENV === 'development', - }, - }, - 'css-loader','sass-loader' - ] - },{ - test:/\.less$/, - exclude: /node_modules/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - publicPath: './', - hmr: process.env.NODE_ENV === 'development', - }, - }, - 'css-loader','less-loader' - ] - },{ - test:/(\.jpg|\.png|\.gif|\.svg)$/, - exclude: /node_modules/, - use:[{ - loader: 'file-loader', - options: { - name:'img/[name].[ext]' - }, - }] - }, - { - test: /\.ts$/, - exclude: /node_modules/, - loader: 'ts-loader' - } - ] - }, - devServer: { - port: 3003 - } - }; -} \ No newline at end of file diff --git a/webpack/dirs.js b/webpack/dirs.js new file mode 100644 index 0000000..de080db --- /dev/null +++ b/webpack/dirs.js @@ -0,0 +1,15 @@ +const path = require('path'); +module.exports = { + DEST: path.resolve(__dirname, '../dist'), + NODE_MODULES: path.resolve(__dirname, '../node_modules'), + UI: path.resolve(__dirname, '../src/ui'), + SRC: path.resolve(__dirname, '../src'), + CORE: path.resolve(__dirname, '../src/modules/core'), + CONST: path.resolve(__dirname, '../src/modules/constants'), + CONSTAINS: path.resolve(__dirname, '../private/constants.ts'), + FINESHEET: path.resolve(__dirname, '../node_modules/finesheet'), + AXIOS: path.resolve(__dirname, '../node_modules/axios'), + BABEL_CONFIG: path.resolve(__dirname, '../babel.config.js'), + RESIZER: path.resolve(__dirname, '../node_modules/js-resizable'), + LOCAL_FINESHEET: path.resolve(__dirname, '../finesheet'), +}; \ No newline at end of file diff --git a/webpack/webpack.common.js b/webpack/webpack.common.js new file mode 100644 index 0000000..5ba4673 --- /dev/null +++ b/webpack/webpack.common.js @@ -0,0 +1,73 @@ +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const vars = require('postcss-simple-vars'); +const autoprefixer = require('autoprefixer'); + +const dirs = require('./dirs'); + +module.exports = { + entry: { + show: ['@babel/polyfill', './src/i18n.ts', './src/index.ts'], + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.js', '.ts'], + alias: { + ui: dirs.UI, + src: dirs.SRC, + ReportCst: dirs.CONSTAINS, + '@core': dirs.CORE, + '@constants': dirs.CONST, + }, + }, + + module: { + rules: [ + { + test: /\.(js|ts)$/, + include: [dirs.SRC, dirs.FINESHEET, dirs.AXIOS, dirs.RESIZER, dirs.LOCAL_FINESHEET, dirs.NODE_MODULES], + use: [{ + loader: 'babel-loader', + options: { + configFile: dirs.BABEL_CONFIG + }, + }, { + loader: 'source-map-loader', + options: { + enforce: 'pre' + } + }] + }, + { + test: /\.(css|less)$/, + use: [ + MiniCssExtractPlugin.loader, + { + loader: 'css-loader', + options: { + url: false + } + }, + { + loader: 'postcss-loader', + options: { + plugins: [vars({ + variables: { + fontUrl: '../node_modules/fineui/dist/font/', + fontReportUrl: '../assets/font', + imageUrl: '/webroot/decision/resources?path=/com/fr/web/resources/dist/images/1x', + image2xUrl: '/webroot/decision/resources?path=/com/fr/web/resources/dist/images/2x', + } + }), autoprefixer] + }, + }, + { + loader: 'less-loader', + options: { + relativeUrls: false + } + } + ], + }, + ], + }, +}; diff --git a/webpack/webpack.dev.js b/webpack/webpack.dev.js new file mode 100644 index 0000000..49a64c1 --- /dev/null +++ b/webpack/webpack.dev.js @@ -0,0 +1,66 @@ +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const path = require('path'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); + +const chokidar = require('chokidar'); +const { execSync } = require('child_process'); + +const dirs = require('./dirs'); + +const common = require('./webpack.common.js'); + +// 监听java文件改变自动编译java +chokidar + .watch('../constants/*.java', { ignored: /(^|[/\\])\../ }) + .on('all', (event, path) => { + try { + execSync('npm run const'); + } catch (e) { + console.error(e); + } + }); + +// 监听国际化文件并编译 +chokidar + .watch('../i18n/*.properties', { ignored: /(^|[/\\])\../ }) + .on('all', (event, path) => { + try { + execSync('npm run i18n'); + } catch (e) { + console.error(e); + } + }); + +module.exports = merge(common, { + devtool: 'eval-source-map', + output: { + path: dirs.DEST, + filename: 'show.dev.js', + }, + devServer: { + contentBase: path.join(__dirname, '..'), + port: 10002, + liveReload: true, + proxy: { + '/webroot/decision/V10': { + target: 'http://api.fanruan.design/mock/135/', + secure: false, + }, + '/webroot/decision/resources': { + target: 'http://localhost:8075', + secure: false, + } + }, + }, + plugins: [ + new MiniCssExtractPlugin({ + path: dirs.DEST, + filename: 'show.dev.css', + }), + new HtmlWebpackPlugin({ + template: path.resolve(__dirname, '../index.html'), + }), + ], +}); diff --git a/webpack/webpack.prod.js b/webpack/webpack.prod.js new file mode 100644 index 0000000..844a6ed --- /dev/null +++ b/webpack/webpack.prod.js @@ -0,0 +1,51 @@ +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const vars = require('postcss-simple-vars'); + +const dirs = require('./dirs'); + +const common = require('./webpack.common.js'); + +module.exports = merge.smart(common, { + mode: 'production', + + devtool: 'hidden-source-map', + + output: { + path: dirs.DEST, + filename: 'connection.min.js' + }, + plugins: [ + new MiniCssExtractPlugin({ + path: dirs.DEST, + filename: "connection.min.css" + }), + new webpack.BannerPlugin({ + banner: `time: ${new Date().toLocaleString()}` + }) + ], + + module: { + rules: [ + { + test: /\.(css|less)$/, + use: [ + { + loader: 'postcss-loader', + options: { + plugins: [vars({ + variables: { + fontUrl: '../node_modules/fineui/dist/font/', + fontReportUrl: '../assets/font', + imageUrl: '/webroot/decision/resources?path=/com/fr/web/resources/dist/images/1x', + image2xUrl: '/webroot/decision/resources?path=/com/fr/web/resources/dist/images/2x', + } + })] + }, + }, + ], + }, + ], + }, +}); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..516e484 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,9908 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@7.4.5": + version "7.4.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a" + integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helpers" "^7.4.4" + "@babel/parser" "^7.4.5" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.5" + "@babel/types" "^7.4.4" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.11" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.1.0": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== + dependencies: + "@babel/types" "^7.5.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" + integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== + dependencies: + "@babel/types" "^7.5.5" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.4.4", "@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" + integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== + dependencies: + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-class-properties@^7.5.0": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" + integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-decorators@7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz#de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0" + integrity sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" + integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-decorators@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" + integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-typescript@^7.2.0": + version "7.3.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991" + integrity sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" + integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" + integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.4.4": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" + integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" + integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" + integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" + integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== + dependencies: + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" + integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": + version "7.4.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" + integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== + dependencies: + regexp-tree "^0.1.6" + +"@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.2.0": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + +"@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== + dependencies: + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-regenerator@^7.4.5": + version "7.4.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" + integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typescript@^7.3.2": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz#6d862766f09b2da1cb1f7d505fe2aedab6b7d4b8" + integrity sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.2.0" + +"@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/polyfill@7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz#78801cf3dbe657844eeabf31c1cae3828051e893" + integrity sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.2" + +"@babel/preset-env@7.4.5": + version "7.4.5" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58" + integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.4.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.4.4" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.4.4" + "@babel/plugin-transform-classes" "^7.4.4" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + "@babel/plugin-transform-modules-systemjs" "^7.4.4" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.4.4" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/preset-typescript@7.3.3": + version "7.3.3" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.3.3.tgz#88669911053fa16b2b276ea2ede2ca603b3f307a" + integrity sha512-mzMVuIP4lqtn4du2ynEfdO0+RYcslwrZiJHXu4MGaC1ctJiW2fyaeDrtjJGs7R/KebZ1sgowcIoWf4uRpEfKEg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.3.2" + +"@babel/runtime@^7.0.0": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" + integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@cnakazawa/watch@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" + integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@jest/console@^24.7.1": + version "24.7.1" + resolved "https://registry.npmjs.org/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" + integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg== + dependencies: + "@jest/source-map" "^24.3.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" + integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A== + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.8.0" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" + jest-regex-util "^24.3.0" + jest-resolve-dependencies "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" + jest-watcher "^24.8.0" + micromatch "^3.1.10" + p-each-series "^1.0.0" + pirates "^4.0.1" + realpath-native "^1.1.0" + rimraf "^2.5.4" + strip-ansi "^5.0.0" + +"@jest/environment@^24.7.1", "@jest/environment@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac" + integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw== + dependencies: + "@jest/fake-timers" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + +"@jest/fake-timers@^24.7.1", "@jest/fake-timers@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1" + integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw== + dependencies: + "@jest/types" "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" + +"@jest/reporters@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" + integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.1" + istanbul-reports "^2.1.1" + jest-haste-map "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" + jest-worker "^24.6.0" + node-notifier "^5.2.1" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/source-map@^24.3.0": + version "24.3.0" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" + integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" + integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng== + dependencies: + "@jest/console" "^24.7.1" + "@jest/types" "^24.8.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b" + integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg== + dependencies: + "@jest/test-result" "^24.8.0" + jest-haste-map "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" + +"@jest/transform@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5" + integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.8.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.8.0" + jest-regex-util "^24.3.0" + jest-util "^24.8.0" + micromatch "^3.1.10" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.7.0", "@jest/types@^24.8.0": + version "24.8.0" + resolved "https://registry.npmjs.org/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" + integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^12.0.9" + +"@types/babel__core@^7.1.0": + version "7.1.2" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" + integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.0.2" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" + integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.7" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f" + integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw== + dependencies: + "@babel/types" "^7.3.0" + +"@types/events@*": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "1.1.1" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" + integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jest-diff@*": + version "20.0.1" + resolved "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89" + integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA== + +"@types/jest@24.0.11": + version "24.0.11" + resolved "https://registry.npmjs.org/@types/jest/-/jest-24.0.11.tgz#1f099bea332c228ea6505a88159bfa86a5858340" + integrity sha512-2kLuPC5FDnWIDvaJBzsGTBQaBbnDweznicvK7UGYzlIJP4RJR2a4A/ByLUXEyEgag6jz8eHdlWExGDtH3EYUXQ== + dependencies: + "@types/jest-diff" "*" + +"@types/jss@9.5.8": + version "9.5.8" + resolved "https://registry.npmjs.org/@types/jss/-/jss-9.5.8.tgz#258391f42211c042fc965508d505cbdc579baa5b" + integrity sha512-bBbHvjhm42UKki+wZpR89j73ykSXg99/bhuKuYYePtpma3ZAnmeGnl0WxXiZhPGsIfzKwCUkpPC0jlrVMBfRxA== + dependencies: + csstype "^2.0.0" + indefinite-observable "^1.0.1" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "12.7.1" + resolved "https://registry.npmjs.org/@types/node/-/node-12.7.1.tgz#3b5c3a26393c19b400844ac422bd0f631a94d69d" + integrity sha512-aK9jxMypeSrhiYofWWBf/T7O+KwaiAHzM4sveCdWPn71lzUSMimRnKzhXDKfKwV1kWoBo2P1aGgaIYGLf9/ljw== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": + version "12.0.12" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" + integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== + +"@typescript-eslint/eslint-plugin@1.7.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.7.0.tgz#570e45dc84fb97852e363f1e00f47e604a0b8bcc" + integrity sha512-NUSz1aTlIzzTjFFVFyzrbo8oFjHg3K/M9MzYByqbMCxeFdErhLAcGITVfXzSz+Yvp5OOpMu3HkIttB0NyKl54Q== + dependencies: + "@typescript-eslint/parser" "1.7.0" + "@typescript-eslint/typescript-estree" "1.7.0" + eslint-utils "^1.3.1" + regexpp "^2.0.1" + requireindex "^1.2.0" + tsutils "^3.7.0" + +"@typescript-eslint/parser@1.7.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.7.0.tgz#c3ea0d158349ceefbb6da95b5b09924b75357851" + integrity sha512-1QFKxs2V940372srm12ovSE683afqc1jB6zF/f8iKhgLz1yoSjYeGHipasao33VXKI+0a/ob9okeogGdKGvvlg== + dependencies: + "@typescript-eslint/typescript-estree" "1.7.0" + eslint-scope "^4.0.0" + eslint-visitor-keys "^1.0.0" + +"@typescript-eslint/typescript-estree@1.7.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.7.0.tgz#59ec02f5371964da1cc679dba7b878a417bc8c60" + integrity sha512-K5uedUxVmlYrVkFbyV3htDipvLqTE3QMOUQEHYJaKtgzxj6r7c5Ca/DG1tGgFxX+fsbi9nDIrf4arq7Ib7H/Yw== + dependencies: + lodash.unescape "4.0.1" + semver "5.5.0" + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" + integrity sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4= + +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" + integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== + +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + +acorn-globals@^1.0.4: + version "1.0.9" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" + integrity sha1-VbtemGkVB7dFedBRNBMhfDgMVM8= + dependencies: + acorn "^2.1.0" + +acorn-globals@^4.1.0, acorn-globals@^4.3.0: + version "4.3.3" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" + integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^2.1.0, acorn@^2.4.0: + version "2.7.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" + integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc= + +acorn@^5.5.3: + version "5.7.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.5, acorn@^6.0.7: + version "6.2.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" + integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q== + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0: + version "3.4.1" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: + version "6.10.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escape-sequences@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz#2483c8773f50dd9174dd9557e92b1718f1816097" + integrity sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw== + dependencies: + array-back "^3.0.1" + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +any-promise@^1.0.0, any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-back@^1.0.2, array-back@^1.0.3, array-back@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + integrity sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs= + dependencies: + typical "^2.6.0" + +array-back@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== + dependencies: + typical "^2.6.1" + +array-back@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +async@^2.5.0: + version "2.6.3" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.6.1: + version "9.6.1" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47" + integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== + dependencies: + browserslist "^4.6.3" + caniuse-lite "^1.0.30000980" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.17" + postcss-value-parser "^4.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +axios@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" + integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI= + dependencies: + follow-redirects "^1.3.0" + is-buffer "^1.1.5" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + integrity sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA= + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589" + integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw== + dependencies: + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.6.0" + chalk "^2.4.2" + slash "^2.0.0" + +babel-loader@8.0.6: + version "8.0.6" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" + integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + dependencies: + find-cache-dir "^2.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + pify "^4.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + find-up "^3.0.0" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" + +babel-plugin-jest-hoist@^24.6.0: + version "24.6.0" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" + integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w== + dependencies: + "@types/babel__traverse" "^7.0.6" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= + +babel-plugin-syntax-flow@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988= + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + integrity sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + integrity sha1-322AqdomEqEh5t3XVYvL7PBuY24= + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + integrity sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY= + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + integrity sha1-hAoCjn30YN/DotKfDA2R9jduZqM= + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.6.1: + version "1.7.0" + resolved "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + integrity sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0= + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-jest@^24.6.0: + version "24.6.0" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" + integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw== + dependencies: + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.6.0" + +babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + integrity sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A= + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-standalone@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-standalone/-/babel-standalone-6.26.0.tgz#15fb3d35f2c456695815ebf1ed96fe7f015b6886" + integrity sha1-Ffs9NfLEVmlYFevx7Zb+fwFbaIY= + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@7.0.0-beta.19: + version "7.0.0-beta.19" + resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503" + integrity sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A== + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bash-color@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/bash-color/-/bash-color-0.0.4.tgz#e9be8ce33540cada4881768c59bd63865736e913" + integrity sha1-6b6M4zVAytpIgXaMWb1jhlc26RM= + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bluebird@^3.5.5, bluebird@~3.5.0: + version "3.5.5" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@1.18.3: + version "1.18.3" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= + dependencies: + 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" + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.6: + version "4.6.6" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" + integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== + dependencies: + caniuse-lite "^1.0.30000984" + electron-to-chromium "^1.3.191" + node-releases "^1.1.25" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" + integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== + dependencies: + node-int64 "^0.4.0" + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.2" + resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz#8db03205e36089a3df6954c66ce92541441ac46c" + integrity sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +cache-point@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/cache-point/-/cache-point-0.4.1.tgz#cc8c9cbd99d90d7b0c66910cd33d77a1aab8840e" + integrity sha512-4TgWfe9SF+bUy5cCql8gWHqKNrviufNwSYxLjf2utB0pY4+bdcuFwMmY1hDB+67Gz/L1vmhFNhePAjJTFBtV+Q== + dependencies: + array-back "^2.0.0" + fs-then-native "^2.0.0" + mkdirp2 "^1.0.3" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000984: + version "1.0.30000989" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" + integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +catharsis@~0.8.9: + version "0.8.11" + resolved "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz#d0eb3d2b82b7da7a3ce2efb1a7b00becc6643468" + integrity sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g== + dependencies: + lodash "^4.17.14" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +cheerio@^0.20.0: + version "0.20.0" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz#5c710f2bab95653272842ba01c6ea61b3545ec35" + integrity sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "~3.8.1" + lodash "^4.1.0" + optionalDependencies: + jsdom "^7.0.2" + +chokidar@2.1.5: + version "2.1.5" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d" + integrity sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.1.6: + version "2.1.6" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" + integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + +chrome-trace-event@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.2.x: + version "4.2.1" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== + dependencies: + source-map "~0.6.0" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^1.0.1: + version "1.3.1" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" + integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +clipboard@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" + integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collect-all@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/collect-all/-/collect-all-1.0.3.tgz#1abcc20448b58a1447487fcf34130e9512b0acf8" + integrity sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA== + dependencies: + stream-connect "^1.0.2" + stream-via "^1.0.4" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-line-args@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a" + integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== + dependencies: + array-back "^3.0.1" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-tool@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz#b00290ef1dfc11cc731dd1f43a92cfa5f21e715b" + integrity sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g== + dependencies: + ansi-escape-sequences "^4.0.0" + array-back "^2.0.0" + command-line-args "^5.0.0" + command-line-usage "^4.1.0" + typical "^2.6.1" + +command-line-usage@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz#a6b3b2e2703b4dcf8bd46ae19e118a9a52972882" + integrity sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g== + dependencies: + ansi-escape-sequences "^4.0.0" + array-back "^2.0.0" + table-layout "^0.4.2" + typical "^2.6.1" + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.20.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +common-sequence@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/common-sequence/-/common-sequence-1.0.2.tgz#30e07f3f8f6f7f9b3dee854f20b2d39eee086de8" + integrity sha1-MOB/P49vf5s97oVPILLTnu4Ibeg= + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-master@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz#667663590505a283bf26a484d68489d74c5485da" + integrity sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo= + dependencies: + walk-back "^2.0.1" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + +content-disposition@0.5.3, content-disposition@~0.5.2: + version "0.5.3" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@^1.0.4, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookies@~0.7.1: + version "0.7.3" + resolved "https://registry.npmjs.org/cookies/-/cookies-0.7.3.tgz#7912ce21fbf2e8c2da70cf1c3f351aecf59dadfa" + integrity sha512-+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A== + dependencies: + depd "~1.1.2" + keygrip "~1.0.3" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.1.1: + version "3.2.0" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.0.tgz#d7fcc4d695d66b069437bd9d9f411274ceb196d3" + integrity sha512-vQve8j3tGPPqIkrsK442hbVwDIGXcngLPnislJaCNJIG1aBWPD0IqRhpxEwjtUOYpzLap8xA7CoGlJBT1ZkcDA== + dependencies: + browserslist "^4.6.6" + semver "^6.3.0" + +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: + version "2.6.9" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0, cosmiconfig@^5.0.7: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-env@5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" + integrity sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg== + dependencies: + cross-spawn "^6.0.5" + is-windows "^1.0.0" + +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-loader@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.0.0.tgz#bdd48a4921eefedf1f0a55266585944d4e5efc63" + integrity sha512-WR6KZuCkFbnMhRrGPlkwAA7SSCtwqPwpyXJAPhotYkYsc0mKU9n/fu5wufy4jl2WhBw9Ia8gUQMIp/1w98DuPw== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.17" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.1.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.0.0" + schema-utils "^1.0.0" + +css-select@^1.1.0, css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0", "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: + version "0.3.8" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +"cssstyle@>= 0.2.29 < 0.3.0": + version "0.2.37" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + integrity sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ= + dependencies: + cssom "0.3.x" + +cssstyle@^1.0.0, cssstyle@^1.1.1: + version "1.4.0" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +csstype@^2.0.0: + version "2.6.6" + resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41" + integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg== + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0, data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +debug@*, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@~0.7.0: + version "0.7.4" + resolved "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk= + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +decamelize@^1.1.1, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-equal@^1.0.1, deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-extend@^0.6.0, deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@^1.1.2, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@^1.0.4, destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +diff-sequences@^24.3.0: + version "24.3.0" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" + integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dmd@^3.0.10: + version "3.0.13" + resolved "https://registry.npmjs.org/dmd/-/dmd-3.0.13.tgz#73294e8fae1a7a1a1c849d86b027adf04fbd5662" + integrity sha512-FV/417bH2c/CYpe8BjFEAHoaHaItcJnPlKELi/qyPZdmUom8joyuC78OhhfPUdyKD/WcouTQ2LxQT4M/RoiJ3w== + dependencies: + array-back "^2.0.0" + cache-point "^0.4.1" + common-sequence "^1.0.2" + file-set "^2.0.0" + handlebars "^4.0.11" + marked "^0.3.16" + object-get "^2.1.0" + reduce-flatten "^1.0.1" + reduce-unique "^1.0.0" + reduce-without "^1.0.1" + test-value "^3.0.0" + walk-back "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" + integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@2.3: + version "2.3.0" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg= + dependencies: + domelementtype "1" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5, domutils@1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.47: + version "1.3.221" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.221.tgz#421a58ac8d1931c8df400d55c7f6fd621710da10" + integrity sha512-YbNA7KgCvLq9ZaEa7wpYP7IP4LrJ4+b36oeF1lYBSJ0zVGVN7uo3Ct9qDUm/M3VDOWj03RVgsMFF8PdL8UjhzA== + +elliptic@^6.0.0: + version "6.5.0" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" + integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +entities@1.0: + version "1.0.0" + resolved "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY= + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-inject@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" + integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc= + +es-abstract@^1.4.3, es-abstract@^1.5.1: + version "1.13.0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-promise@4.2.6: + version "4.2.6" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.11.0, escodegen@^1.6.1, escodegen@^1.9.1: + version "1.11.1" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" + integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-plugin-jest@22.4.1: + version "22.4.1" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz#a5fd6f7a2a41388d16f527073b778013c5189a9c" + integrity sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg== + +eslint-scope@^4.0.0, eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1: + version "1.4.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" + integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ== + dependencies: + eslint-visitor-keys "^1.0.0" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== + +eslint@5.16.0: + version "5.16.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.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" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" + integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +expect@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" + integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== + dependencies: + "@jest/types" "^24.8.0" + ansi-styles "^3.2.0" + jest-get-type "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-regex-util "^24.3.0" + +express@4.16.4: + version "4.16.4" + resolved "https://registry.npmjs.org/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== + dependencies: + 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" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + 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.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-safe-stringify@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz#04b26106cc56681f51a044cfc0d76cf0008ac2c2" + integrity sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg== + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.4.3: + version "0.4.4" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz#c14c5b3bf14d7417ffbfd990c0a7495cd9f337bc" + integrity sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w= + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= + dependencies: + bser "^2.0.0" + +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-set@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/file-set/-/file-set-2.0.1.tgz#db9bc4b70a7e5ba81c9d279c20a37f13369c7850" + integrity sha512-XgOUUpgR6FbbfYcniLw0qm1Am7PnNYIAkd+eXxRt42LiYhjaso0WiuQ+VmrNdtwotyM+cLCfZ56AZrySP3QnKA== + dependencies: + array-back "^2.0.0" + glob "^7.1.3" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== + dependencies: + 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" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +findup-sync@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +"fineui-materials@git+ssh://git@cloud.finedevelop.com:7999/fui/fineui-materials.git#release/10.0": + version "1.0.0" + resolved "git+ssh://git@cloud.finedevelop.com:7999/fui/fineui-materials.git#8b2ece8209e84a9ed848fa8658e1b3b8dc05d867" + +"fineui@git+ssh://git@cloud.finedevelop.com:7999/visual/fineui.git": + version "1.1.2" + resolved "git+ssh://git@cloud.finedevelop.com:7999/visual/fineui.git#3e28b67ed0fb06e5754c3cba46b1c14d55df6436" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0, follow-redirects@^1.3.0: + version "1.7.0" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" + integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== + dependencies: + debug "^3.2.6" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2, fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.6" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" + integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + dependencies: + minipass "^2.2.1" + +fs-then-native@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz#19a124d94d90c22c8e045f2e8dd6ebea36d48c67" + integrity sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc= + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.2.1" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz#1c1f0c364882c868f5bff6512146328336a11b1d" + integrity sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw== + +gray-matter@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-3.1.1.tgz#101f80d9e69eeca6765cdce437705b18f40876ac" + integrity sha512-nZ1qjLmayEv0/wt3sHig7I0s3/sJO0dkAaKYQ5YAOApUtYEOonXSFdWvL1khvnZMTvov4UufkqlFsilPnejEXA== + dependencies: + extend-shallow "^2.0.1" + js-yaml "^3.10.0" + kind-of "^5.0.2" + strip-bom-string "^1.0.0" + +growl@~1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz#de2d66136d002e112ba70f3f10c31cf7c350b2da" + integrity sha1-3i1mE20ALhErpw8/EMMc98NQsto= + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +handle-thing@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + +handlebars@^4.0.11, handlebars@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x, he@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.2" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.2.tgz#a35c3f355ac1249f1093c0c2a542ace8818c171a" + integrity sha512-CyjlXII6LMsPMyUzxpTt8fzh5QwzGqPmQXgY/Jyf4Zfp27t/FvfhwoE/8laaMUcMy816CkWF20I7NeQhwwY88w== + dependencies: + lru-cache "^5.1.1" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-webpack-plugin@3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +htmlparser2@^3.3.0: + version "3.10.1" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@~3.8.1: + version "3.8.3" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg= + dependencies: + domelementtype "1" + domhandler "2.3" + domutils "1.5" + entities "1.0" + readable-stream "1.1" + +http-assert@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.7.2" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@^1.6.1, http-errors@^1.6.3, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@^0.19.1: + version "0.19.1" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@1.17.0, http-proxy@^1.17.0: + version "1.17.0" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +husky@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" + integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== + dependencies: + cosmiconfig "^5.0.7" + execa "^1.0.0" + find-up "^3.0.0" + get-stdin "^6.0.0" + is-ci "^2.0.0" + pkg-dir "^3.0.0" + please-upgrade-node "^3.1.1" + read-pkg "^4.0.1" + run-node "^1.0.0" + slash "^2.0.0" + +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@2.0.0, import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indefinite-observable@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-1.0.2.tgz#0a328793ab2385d4b9dca23eaab4afe6936a73f8" + integrity sha512-Mps0898zEduHyPhb7UCgNmfzlqNZknVmaFz5qzr0mm04YQ5FGLhAyK/dJ+NaRxGyR6juQXIxh5Ev0xx+qq0nYA== + dependencies: + symbol-observable "1.2.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inquirer@^6.2.2: + version "6.5.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" + integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +interpret@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-in-browser@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.1.1: + version "2.2.6" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" + integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== + dependencies: + handlebars "^4.1.2" + +jest-changed-files@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" + integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== + dependencies: + "@jest/types" "^24.8.0" + execa "^1.0.0" + throat "^4.0.0" + +jest-cli@^24.7.1: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" + integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== + dependencies: + "@jest/core" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" + chalk "^2.0.1" + exit "^0.1.2" + import-local "^2.0.0" + is-ci "^2.0.0" + jest-config "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^12.0.2" + +jest-config@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" + integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^24.8.0" + "@jest/types" "^24.8.0" + babel-jest "^24.8.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^24.8.0" + jest-environment-node "^24.8.0" + jest-get-type "^24.8.0" + jest-jasmine2 "^24.8.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" + micromatch "^3.1.10" + pretty-format "^24.8.0" + realpath-native "^1.1.0" + +jest-diff@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" + integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.3.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" + +jest-docblock@^24.3.0: + version "24.3.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" + integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== + dependencies: + detect-newline "^2.1.0" + +jest-each@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" + integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== + dependencies: + "@jest/types" "^24.8.0" + chalk "^2.0.1" + jest-get-type "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" + +jest-environment-jsdom@24.7.1: + version "24.7.1" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.7.1.tgz#a40e004b4458ebeb8a98082df135fd501b9fbbd6" + integrity sha512-Gnhb+RqE2JuQGb3kJsLF8vfqjt3PHKSstq4Xc8ic+ax7QKo4Z0RWGucU3YV+DwKR3T9SYc+3YCUQEJs8r7+Jxg== + dependencies: + "@jest/environment" "^24.7.1" + "@jest/fake-timers" "^24.7.1" + "@jest/types" "^24.7.0" + jest-mock "^24.7.0" + jest-util "^24.7.1" + jsdom "^11.5.1" + +jest-environment-jsdom@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" + integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" + jsdom "^11.5.1" + +jest-environment-node@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" + integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" + +jest-get-type@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" + integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== + +jest-haste-map@^24.8.0: + version "24.8.1" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.8.1.tgz#f39cc1d2b1d907e014165b4bd5a957afcb992982" + integrity sha512-SwaxMGVdAZk3ernAx2Uv2sorA7jm3Kx+lR0grp6rMmnY06Kn/urtKx1LPN2mGTea4fCT38impYT28FfcLUhX0g== + dependencies: + "@jest/types" "^24.8.0" + anymatch "^2.0.0" + fb-watchman "^2.0.0" + graceful-fs "^4.1.15" + invariant "^2.2.4" + jest-serializer "^24.4.0" + jest-util "^24.8.0" + jest-worker "^24.6.0" + micromatch "^3.1.10" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" + +jest-jasmine2@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" + integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^24.8.0" + is-generator-fn "^2.0.0" + jest-each "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" + throat "^4.0.0" + +jest-leak-detector@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" + integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== + dependencies: + pretty-format "^24.8.0" + +jest-matcher-utils@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" + integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== + dependencies: + chalk "^2.0.1" + jest-diff "^24.8.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" + +jest-message-util@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b" + integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" + "@types/stack-utils" "^1.0.1" + chalk "^2.0.1" + micromatch "^3.1.10" + slash "^2.0.0" + stack-utils "^1.0.1" + +jest-mock@^24.7.0, jest-mock@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" + integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A== + dependencies: + "@jest/types" "^24.8.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + +jest-regex-util@^24.3.0: + version "24.3.0" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" + integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== + +jest-resolve-dependencies@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" + integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== + dependencies: + "@jest/types" "^24.8.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.8.0" + +jest-resolve@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" + integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== + dependencies: + "@jest/types" "^24.8.0" + browser-resolve "^1.11.3" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" + integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" + chalk "^2.4.2" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-config "^24.8.0" + jest-docblock "^24.3.0" + jest-haste-map "^24.8.0" + jest-jasmine2 "^24.8.0" + jest-leak-detector "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" + jest-worker "^24.6.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" + integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.8.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + "@types/yargs" "^12.0.2" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" + realpath-native "^1.1.0" + slash "^2.0.0" + strip-bom "^3.0.0" + yargs "^12.0.2" + +jest-serializer@^24.4.0: + version "24.4.0" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" + integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== + +jest-snapshot@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" + integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^24.8.0" + chalk "^2.0.1" + expect "^24.8.0" + jest-diff "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^24.8.0" + semver "^5.5.0" + +jest-util@^24.7.1, jest-util@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1" + integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA== + dependencies: + "@jest/console" "^24.7.1" + "@jest/fake-timers" "^24.8.0" + "@jest/source-map" "^24.3.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" + callsites "^3.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + mkdirp "^0.5.1" + slash "^2.0.0" + source-map "^0.6.0" + +jest-validate@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" + integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== + dependencies: + "@jest/types" "^24.8.0" + camelcase "^5.0.0" + chalk "^2.0.1" + jest-get-type "^24.8.0" + leven "^2.1.0" + pretty-format "^24.8.0" + +jest-watcher@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" + integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== + dependencies: + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" + "@types/yargs" "^12.0.9" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + jest-util "^24.8.0" + string-length "^2.0.0" + +jest-worker@^24.6.0: + version "24.6.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" + integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== + dependencies: + merge-stream "^1.0.1" + supports-color "^6.1.0" + +jest@24.7.1: + version "24.7.1" + resolved "https://registry.npmjs.org/jest/-/jest-24.7.1.tgz#0d94331cf510c75893ee32f87d7321d5bf8f2501" + integrity sha512-AbvRar5r++izmqo5gdbAjTeA6uNRGoNRuj5vHB0OnDXo2DXWZJVuaObiGgtlvhKb+cWy2oYbQSfxv7Q7GjnAtA== + dependencies: + import-local "^2.0.0" + jest-cli "^24.7.1" + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js2xmlparser@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" + integrity sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM= + dependencies: + xmlcreate "^1.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdoc-api@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-4.0.3.tgz#f87357856349a0be40a03e64711c34c74754ba20" + integrity sha512-dfYq9JgB+XahY0XfSEw93PmXmocjwYcvJ5aMuQUJ/OdDRGWamf2SSOk3W06Bsj8qdjp/UdefzqpP/mpwsvHuvA== + dependencies: + array-back "^2.0.0" + cache-point "^0.4.1" + collect-all "^1.0.3" + file-set "^2.0.0" + fs-then-native "^2.0.0" + jsdoc "~3.5.5" + object-to-spawn-args "^1.1.1" + temp-path "^1.0.0" + walk-back "^3.0.0" + +jsdoc-parse@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-3.0.1.tgz#1194d6a16a2dfbe5fb8cccfeb5058ea808759893" + integrity sha512-btZLp4wYl90vcAfgk4hoGQbO17iBVrhh3LJRMKZNtZgniO3F8H2CjxXld0owBIB1XxN+j3bAcWZnZKMnSj3iMA== + dependencies: + array-back "^2.0.0" + lodash.omit "^4.5.0" + lodash.pick "^4.4.0" + reduce-extract "^1.0.0" + sort-array "^2.0.0" + test-value "^3.0.0" + +jsdoc-to-markdown@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-4.0.1.tgz#247f7d977ecc209428972ec92ca14bd4e610355d" + integrity sha512-LHJRoLoLyDdxNcColgkLoB/rFG5iRP+PNJjMILI0x+95IdEAtyjSt0wJ6ZlKxRpkhBYtQXTQQ119hMqPIUZzTQ== + dependencies: + array-back "^2.0.0" + command-line-tool "^0.8.0" + config-master "^3.1.0" + dmd "^3.0.10" + jsdoc-api "^4.0.1" + jsdoc-parse "^3.0.1" + walk-back "^3.0.0" + +jsdoc@~3.5.5: + version "3.5.5" + resolved "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d" + integrity sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg== + dependencies: + babylon "7.0.0-beta.19" + bluebird "~3.5.0" + catharsis "~0.8.9" + escape-string-regexp "~1.0.5" + js2xmlparser "~3.0.0" + klaw "~2.0.0" + marked "~0.3.6" + mkdirp "~0.5.1" + requizzle "~0.2.1" + strip-json-comments "~2.0.1" + taffydb "2.6.2" + underscore "~1.8.3" + +jsdom@15.0.0: + version "15.0.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-15.0.0.tgz#60cf177d79c7fa1a498453c9e2534f57e65d151f" + integrity sha512-rJnHm7CHyIj4tDyz9VaCt0f0P0nEh/wEmMfwp9mMixy+L/r8OW/BNcgmIlfZuBBnVQS3eRBpvd/qM3R7vr7e3A== + dependencies: + abab "^2.0.0" + acorn "^6.0.4" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.1.3" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^2.5.0" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^6.1.2" + xml-name-validator "^3.0.0" + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsdom@^7.0.2: + version "7.2.2" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz#40b402770c2bda23469096bee91ab675e3b1fc6e" + integrity sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4= + dependencies: + abab "^1.0.0" + acorn "^2.4.0" + acorn-globals "^1.0.4" + cssom ">= 0.3.0 < 0.4.0" + cssstyle ">= 0.2.29 < 0.3.0" + escodegen "^1.6.1" + nwmatcher ">= 1.3.7 < 2.0.0" + parse5 "^1.5.1" + request "^2.55.0" + sax "^1.1.4" + symbol-tree ">= 3.1.0 < 4.0.0" + tough-cookie "^2.2.0" + webidl-conversions "^2.0.0" + whatwg-url-compat "~0.6.5" + xml-name-validator ">= 2.0.1 < 3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@2.x, json5@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonc@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/jsonc/-/jsonc-1.1.0.tgz#e449605cfe88fc9caea7978d1ee9854975484f3b" + integrity sha512-FIX6wN79VBnhR22j56INtsL8ti3R9nKTIx0il/eNehR8WWOUebTLFcXa/7CJKJ0NjtZCyVpT3poU9imdJc5cnA== + dependencies: + fast-safe-stringify "^2.0.6" + graceful-fs "^4.1.15" + mkdirp "^0.5.1" + parse-json "^4.0.0" + strip-bom "^3.0.0" + strip-json-comments "^2.0.1" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jss-plugin-global@10.0.0-alpha.7: + version "10.0.0-alpha.7" + resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.0-alpha.7.tgz#38ca390802b62da490afbaafc581552a81977729" + integrity sha512-OWeoW4szLDgRUKviST+xfilqa8O5uXJCW+O3YonheCRTRJg6rRzlE/b5pfYPoU9UtwvY9n7JvwBX5r3c1lMsEQ== + dependencies: + "@babel/runtime" "^7.0.0" + +jss-plugin-nested@10.0.0-alpha.7: + version "10.0.0-alpha.7" + resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.0-alpha.7.tgz#03a89c8f7c1d570a3d5f16dae3e61f7f2edb0316" + integrity sha512-wsRzuIZXAc6WMjc61mREW9cUrDxgSI7dK/fx5c7a06IDUfSn+83NJ30J/RB4oBnbQW9SijV/muujz7IJqpn9Gw== + dependencies: + "@babel/runtime" "^7.0.0" + tiny-warning "^1.0.2" + +jss@9.8.7: + version "9.8.7" + resolved "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz#ed9763fc0f2f0260fc8260dac657af61e622ce05" + integrity sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ== + dependencies: + is-in-browser "^1.1.3" + symbol-observable "^1.1.0" + warning "^3.0.0" + +keygrip@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.0.3.tgz#399d709f0aed2bab0a059e0cdd3a5023a053e1dc" + integrity sha512-/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g== + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0, kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +klaw@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" + integrity sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY= + dependencies: + graceful-fs "^4.1.9" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +koa-compose@^3.0.0: + version "3.2.1" + resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= + dependencies: + any-promise "^1.1.0" + +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-convert@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= + dependencies: + co "^4.6.0" + koa-compose "^3.0.0" + +koa-is-json@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" + integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ= + +koa-send@^4.1.3: + version "4.1.3" + resolved "https://registry.npmjs.org/koa-send/-/koa-send-4.1.3.tgz#0822207bbf5253a414c8f1765ebc29fa41353cb6" + integrity sha512-3UetMBdaXSiw24qM2Mx5mKmxLKw5ZTPRjACjfhK6Haca55RKm9hr/uHDrkrxhSl5/S1CKI/RivZVIopiatZuTA== + dependencies: + debug "^2.6.3" + http-errors "^1.6.1" + mz "^2.6.0" + resolve-path "^1.4.0" + +koa-static@^4.0.2: + version "4.0.3" + resolved "https://registry.npmjs.org/koa-static/-/koa-static-4.0.3.tgz#5f93ad00fb1905db9ce46667c0e8bb7d22abfcd8" + integrity sha512-JGmxTuPWy4bH7bt6gD/OMWkhprawvRmzJSr8TWKmTL4N7+IMv3s0SedeQi5S4ilxM9Bo6ptkCyXj/7wf+VS5tg== + dependencies: + debug "^3.1.0" + koa-send "^4.1.3" + +koa@^2.4.1: + version "2.7.0" + resolved "https://registry.npmjs.org/koa/-/koa-2.7.0.tgz#7e00843506942b9d82c6cc33749f657c6e5e7adf" + integrity sha512-7ojD05s2Q+hFudF8tDLZ1CpCdVZw8JQELWSkcfG9bdtoTDzMmkRF6BQBU7JzIzCCOY3xd3tftiy/loHBUYaY2Q== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.7.1" + debug "~3.1.0" + delegates "^1.0.0" + depd "^1.1.2" + destroy "^1.0.4" + error-inject "^1.0.0" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^1.2.0" + koa-is-json "^1.0.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +less-loader@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^4.0.1" + +less@3.9.0: + version "3.9.0" + resolved "https://registry.npmjs.org/less/-/less-3.9.0.tgz#b7511c43f37cf57dc87dffd9883ec121289b1474" + integrity sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w== + dependencies: + clone "^2.1.2" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.4.1" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.83.0" + source-map "~0.6.0" + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= + +lodash.padend@^4.6.1: + version "4.6.1" + resolved "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + integrity sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4= + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= + +lodash@^4.1.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5: + version "4.17.15" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +log-symbols@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +loglevel@^1.6.3: + version "1.6.3" + resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" + integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-error@1.x: + version "1.3.5" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-it@^8.4.0: + version "8.4.2" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" + integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +marked@^0.3.16, marked@~0.3.6: + version "0.3.19" + resolved "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" + integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: + version "3.1.10" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": + version "1.40.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.2: + version "2.4.4" + resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-css-extract-plugin@0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz#5ba8290fbb4179a43dd27cca444ba150bee743a0" + integrity sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.1, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +minipass@^2.2.1, minipass@^2.3.5: + version "2.3.5" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp2@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz#56de1f8f5c93cf2199906362eba0f9f262ee4437" + integrity sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw== + +mkdirp@0.5.x, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mz@^2.6.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-forge@0.7.5: + version "0.7.5" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.0.0: + version "2.2.1" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^5.2.1: + version "5.4.1" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.1.tgz#7c0192cc63aedb25cd99619174daa27902b10903" + integrity sha512-p52B+onAEHKW1OF9MGO/S7k/ahGEHfhP5/tvwYzog/5XLYOd8ZuD6vdNZdUuWMONRnKPneXV43v3s6Snx1wsCQ== + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.25: + version "1.1.26" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.26.tgz#f30563edc5c7dc20cf524cc8652ffa7be0762937" + integrity sha512-fZPsuhhUHMTlfkhDLGtfY80DSJTjOcx+qD1j5pqPkuhUHVS7xHZIg9EE4DHK8O3f0zTxXHX5VIkDG8pu98/wfQ== + dependencies: + semver "^5.3.0" + +noox@^0.1.2: + version "0.1.3" + resolved "https://registry.npmjs.org/noox/-/noox-0.1.3.tgz#d7f1b8887e7e32783b4fe4c2a4cbbe45587200ca" + integrity sha512-4vrDvgdwLbBEsylUiOKzJAr2UvUqJS/rch9trG3glEt58pDDLRahfW9S7pF4tKv6pZ8jwEW68VGDZr3zn6vgmw== + dependencies: + babel-plugin-transform-react-jsx "^6.24.1" + babel-polyfill "^6.26.0" + babel-preset-env "^1.6.1" + babel-preset-react "^6.24.1" + babel-register "^6.26.0" + babel-standalone "^6.26.0" + bash-color "0.0.4" + gray-matter "^3.1.1" + prop-types "^15.6.0" + react "^16.2.0" + react-dom "^16.2.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz#ca7416f20a5e3f9c3b86180f96295fa3d0b52e0d" + integrity sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0= + dependencies: + abbrev "1" + +noptify@latest: + version "0.0.3" + resolved "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz#58f654a73d9753df0c51d9686dc92104a67f4bbb" + integrity sha1-WPZUpz2XU98MUdlobckhBKZ/S7s= + dependencies: + nopt "~2.0.0" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.4" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" + integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-all@4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nprogress@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +"nwmatcher@>= 1.3.7 < 2.0.0": + version "1.4.4" + resolved "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" + integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ== + +nwsapi@^2.0.7, nwsapi@^2.1.3: + version "2.1.4" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-get@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/object-get/-/object-get-2.1.0.tgz#722bbdb60039efa47cad3c6dc2ce51a85c02c5ae" + integrity sha1-ciu9tgA576R8rTxtws5RqFwCxa4= + +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-to-spawn-args@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz#77da8827f073d011c9e1b173f895781470246785" + integrity sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +only@~0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +ora@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" + integrity sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw== + dependencies: + chalk "^2.1.0" + cli-cursor "^2.1.0" + cli-spinners "^1.0.1" + log-symbols "^2.1.0" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-locale@^3.0.0, os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= + dependencies: + p-reduce "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0: + version "5.1.4" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parse5@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= + +parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@1.0.1, path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pidtree@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" + integrity sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +please-upgrade-node@^3.1.1: + version "3.2.0" + resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +portfinder@^1.0.20: + version "1.0.21" + resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.21.tgz#60e1397b95ac170749db70034ece306b9a27e324" + integrity sha512-ESabpDCzmBS3ekHbmpAIiESq3udRsCBGiBZLsC+HgBKv2ezb0R4oG+7RnYEVZ/ZCfhel5Tx3UzdNWA0Lox2QCA== + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" + integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.16" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.0" + +postcss-modules-scope@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" + integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-simple-vars@5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz#e2f81b3d0847ddd4169816b6d141b91d51e6e22e" + integrity sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg== + dependencies: + postcss "^7.0.14" + +postcss-value-parser@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.17" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" + integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^24.8.0: + version "24.8.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" + integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== + dependencies: + "@jest/types" "^24.8.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + +prismjs@^1.14.0: + version "1.17.1" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be" + integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q== + optionalDependencies: + clipboard "^2.0.0" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prompts@^2.0.1: + version "2.2.1" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz#f901dd2a2dfee080359c0e20059b24188d75ad35" + integrity sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.3" + +prop-types@^15.6.0, prop-types@^15.6.2: + version "15.7.2" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +properties-reader@0.0.16: + version "0.0.16" + resolved "https://registry.npmjs.org/properties-reader/-/properties-reader-0.0.16.tgz#a2cc0db9cdd7b81d977d0a59c1dc10c6d1d6ab98" + integrity sha1-oswNuc3XuB2XfQpZwdwQxtHWq5g= + dependencies: + mkdirp "~0.5.1" + +proxy-addr@~2.0.4, proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.3.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" + integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.5.2, qs@~6.5.2: + version "6.5.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~0.5.2: + version "0.5.6" + resolved "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz#31b1ad058567651c526921506b9a8793911a0384" + integrity sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q= + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@^16.2.0: + version "16.9.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" + integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.15.0" + +react-is@^16.8.1, react-is@^16.8.4: + version "16.9.0" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" + integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== + +react@^16.2.0: + version "16.9.0" + resolved "https://registry.npmjs.org/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" + integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@1.1: + version "1.1.13" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^3.0.6, readable-stream@^3.1.1: + version "3.4.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readline-sync@^1.4.9: + version "1.4.10" + resolved "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" + integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== + +realpath-native@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +reduce-extract@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz#67f2385beda65061b5f5f4312662e8b080ca1525" + integrity sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU= + dependencies: + test-value "^1.0.1" + +reduce-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz#258c78efd153ddf93cb561237f61184f3696e327" + integrity sha1-JYx479FT3fk8tWEjf2EYTzaW4yc= + +reduce-unique@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/reduce-unique/-/reduce-unique-1.0.0.tgz#7e586bcf87a4e32b6d7abd8277fad6cdec9f4803" + integrity sha1-flhrz4ek4ytter2Cd/rWzeyfSAM= + +reduce-without@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz#68ad0ead11855c9a37d4e8256c15bbf87972fc8c" + integrity sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw= + dependencies: + test-value "^2.0.0" + +regenerate-unicode-properties@^8.0.2: + version "8.1.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.2.1, regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + dependencies: + private "^0.1.6" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-tree@^0.1.6: + version "0.1.11" + resolved "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" + integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^4.5.4: + version "4.5.4" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.0.2" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== + dependencies: + lodash "^4.17.11" + +request-promise-native@^1.0.5: + version "1.0.7" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.55.0, request@^2.83.0, request@^2.87.0, request@^2.88.0: + version "2.88.0" + resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + 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" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requireindex@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +requizzle@~0.2.1: + version "0.2.3" + resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz#4675c90aacafb2c036bd39ba2daa4a1cb777fded" + integrity sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ== + dependencies: + lodash "^4.17.14" + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.x, resolve@^1.10.0, resolve@^1.3.2: + version "1.12.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@^1.1.4, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +scheduler@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" + integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +selfsigned@^1.10.4: + version "1.10.4" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" + integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== + dependencies: + node-forge "0.7.5" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.0" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + +semver@5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + +semver@^6.0.0, semver@^6.1.1, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.16.2: + version "0.16.2" + resolved "https://registry.npmjs.org/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + 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.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + 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.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" + integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +sisteransi@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz#98168d62b79e3a5e758e27ae63c4a053d748f4eb" + integrity sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-array@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz#38a9c6da27fd7d147b42e60554f281187b4df472" + integrity sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI= + dependencies: + array-back "^1.0.4" + object-get "^2.1.0" + typical "^2.6.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-loader@0.2.4: + version "0.2.4" + resolved "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" + integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== + dependencies: + async "^2.5.0" + loader-utils "^1.1.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.6, source-map-support@~0.5.12: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-connect@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz#18bc81f2edb35b8b5d9a8009200a985314428a97" + integrity sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc= + dependencies: + array-back "^1.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +stream-via@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz#8dccbb0ac909328eb8bc8e2a4bd3934afdaf606c" + integrity sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + integrity sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-loader@0.23.1: + version "0.23.1" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + +supports-color@6.1.0, supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +symbol-observable@1.2.0, symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +"symbol-tree@>= 3.1.0 < 4.0.0", symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table-layout@^0.4.2: + version "0.4.5" + resolved "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz#d906de6a25fa09c0c90d1d08ecd833ecedcb7378" + integrity sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw== + dependencies: + array-back "^2.0.0" + deep-extend "~0.6.0" + lodash.padend "^4.6.1" + typical "^2.6.1" + wordwrapjs "^3.0.0" + +table@^5.2.3: + version "5.4.5" + resolved "https://registry.npmjs.org/table/-/table-5.4.5.tgz#c8f4ea2d8fee08c0027fac27b0ec0a4fe01dfa42" + integrity sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +taffydb@2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" + integrity sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= + +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^4: + version "4.4.10" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" + integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.5" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +temp-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz#24b1543973ab442896d9ad367dd9cbdbfafe918b" + integrity sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs= + +terser-webpack-plugin@^1.1.0: + version "1.4.1" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" + integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^1.7.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.1.3" + resolved "https://registry.npmjs.org/terser/-/terser-4.1.3.tgz#6074fbcf3517561c3272ea885f422c7a8c32d689" + integrity sha512-on13d+cnpn5bMouZu+J8tPYQecsdRJCJuxFJ+FVoPBoLJgk5bCBkp+Uen2hWyi0KIUm6eDarnlAlH+KgIx/PuQ== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +test-value@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz#a09136f72ec043d27c893707c2b159bfad7de93f" + integrity sha1-oJE29y7AQ9J8iTcHwrFZv6196T8= + dependencies: + array-back "^1.0.2" + typical "^2.4.2" + +test-value@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + integrity sha1-Edpv9nDzRxpztiXKTz/c97t0gpE= + dependencies: + array-back "^1.0.3" + typical "^2.6.0" + +test-value@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz#9168c062fab11a86b8d444dd968bb4b73851ce92" + integrity sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ== + dependencies: + array-back "^2.0.0" + typical "^2.6.1" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + dependencies: + any-promise "^1.0.0" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" + integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== + dependencies: + setimmediate "^1.0.4" + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-lr@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.5.tgz#d36792261d3eadfc6aed492972b3e1372b7fc829" + integrity sha1-02eSJh0+rfxq7UkpcrPhNyt/yCk= + dependencies: + debug "~0.7.0" + faye-websocket "~0.4.3" + noptify latest + qs "~0.5.2" + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +tough-cookie@^2.2.0, tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tr46@~0.0.1: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +ts-jest@24.0.2: + version "24.0.2" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-24.0.2.tgz#8dde6cece97c31c03e80e474c749753ffd27194d" + integrity sha512-h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tsutils@^3.7.0: + version "3.17.1" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-is@^1.6.16, type-is@~1.6.16, type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.5.1.tgz#ba72a6a600b2158139c5dd8850f700e231464202" + integrity sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw== + +typical@^2.4.2, typical@^2.6.0, typical@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + integrity sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0= + +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^3.1.4: + version "3.6.0" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +underscore@^1.8.3: + version "1.9.1" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" + integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== + +underscore@~1.8.3: + version "1.8.3" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0, util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +v8-compile-cache@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" + integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1.1.2, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walk-back@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz#554e2a9d874fac47a8cb006bf44c2f0c4998a0a4" + integrity sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ= + +walk-back@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/walk-back/-/walk-back-3.0.1.tgz#0c0012694725604960d6c2f75aaf1a1e7d455d35" + integrity sha512-umiNB2qLO731Sxbp6cfZ9pwURJzTnftxE4Gc7hq8n/ehkuXC//s9F65IEIJA2ZytQZ1ZOsm/Fju4IWx0bivkUQ== + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= + dependencies: + loose-envify "^1.0.0" + +watch@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/watch/-/watch-0.9.0.tgz#7e7e5adcd95be44a2bd8bb38677711fa2e41b464" + integrity sha1-fn5a3Nlb5Eor2Ls4Z3cR+i5BtGQ= + +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz#3bf8258f7d318c7443c36f2e169402a1a6703506" + integrity sha1-O/glj30xjHRDw28uFpQCoaZwNQY= + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-cli@3.3.5: + version "3.3.5" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz#f4d1238a66a2843d9cebf189835ea22142e72767" + integrity sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ== + dependencies: + chalk "2.4.2" + cross-spawn "6.0.5" + enhanced-resolve "4.1.0" + findup-sync "3.0.0" + global-modules "2.0.0" + import-local "2.0.0" + interpret "1.2.0" + loader-utils "1.2.3" + supports-color "6.1.0" + v8-compile-cache "2.0.3" + yargs "13.2.4" + +webpack-dev-middleware@^3.7.0: + version "3.7.0" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" + integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.2" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.7.2.tgz#f79caa5974b7f8b63268ef5421222a8486d792f5" + integrity sha512-mjWtrKJW2T9SsjJ4/dxDC2fkFVUw8jlpemDERqV0ZJIkjjjamR2AbQlr3oz+j4JLhYCHImHnXZK5H06P2wvUew== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.6" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.1" + http-proxy-middleware "^0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + killable "^1.0.1" + loglevel "^1.6.3" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.20" + schema-utils "^1.0.0" + selfsigned "^1.10.4" + semver "^6.1.1" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.3.0" + spdy "^4.0.0" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.0" + webpack-log "^2.0.0" + yargs "12.0.5" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz#5e923cf802ea2ace4fd5af1d3247368a633489b4" + integrity sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw== + dependencies: + lodash "^4.17.5" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0: + version "1.4.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.35.2: + version "4.35.2" + resolved "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz#5c8b8a66602cbbd6ec65c6e6747914a61c1449b1" + integrity sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.0.5" + acorn-dynamic-import "^4.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + micromatch "^3.1.8" + mkdirp "~0.5.0" + neo-async "^2.5.0" + node-libs-browser "^2.0.0" + schema-utils "^1.0.0" + tapable "^1.1.0" + terser-webpack-plugin "^1.1.0" + watchpack "^1.5.0" + webpack-sources "^1.3.0" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url-compat@~0.6.5: + version "0.6.5" + resolved "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz#00898111af689bb097541cd5a45ca6c8798445bf" + integrity sha1-AImBEa9om7CXVBzVpFymyHmERb8= + dependencies: + tr46 "~0.0.1" + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wordwrapjs@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz#c94c372894cadc6feb1a66bff64e1d9af92c5d1e" + integrity sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw== + dependencies: + reduce-flatten "^1.0.1" + typical "^2.6.1" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.1.2: + version "6.2.1" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +"xml-name-validator@>= 2.0.1 < 3.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + integrity sha1-TYuPHszTQZqjYgYb7O9RXh5VljU= + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.1.1.tgz#ef1a81c05bff629c2280007f12daca21bd6f6c93" + integrity sha512-7hew1RPJ1iIuje/Y01bGD/mXokXxegAgVS+e+E0wSi2ILHQkYAH1+JXARwTjZSM4Z4Z+c73aKspEcqj+zPPL/w== + +xmlcreate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" + integrity sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8= + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yargs-parser@10.x: + version "10.1.0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.0: + version "13.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ== + dependencies: + camelcase "^4.1.0" + +yargs@12.0.5, yargs@^12.0.2: + version "12.0.5" + resolved "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@13.2.4: + version "13.2.4" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" + +yargs@^10.0.3: + version "10.1.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" + integrity sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig== + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^8.1.0" + +ydoc-plugin-copy@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/ydoc-plugin-copy/-/ydoc-plugin-copy-0.0.1.tgz#825be9c1106ecff0a0bcadd82ea7688b75a22d89" + integrity sha512-wmQMLkHmnAj0xL3v+QSO8tB5yfGIOFcrsdWarBASjY7xmwvVJiSGuGSxGvepFgNtgpLJeXSZ226LPzuDd5lVzw== + dependencies: + fs-extra "^5.0.0" + +ydoc-plugin-demo@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/ydoc-plugin-demo/-/ydoc-plugin-demo-1.0.0.tgz#843bbe06d36a1a22bd9c579140eeaedc47e9b5c0" + integrity sha512-5y+MpdhHHBsI4gzW/JceNJvA1rPjqMvzf3U7cwUnpYehBzHzupq8zKQS2EEs/amxCJdlq8KmIK8ztmuJbZV3mQ== + +ydoc-plugin-edit-page@0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/ydoc-plugin-edit-page/-/ydoc-plugin-edit-page-0.0.2.tgz#bb55c4ce77ad1964feb27cb53b9a1d5264dab5fe" + integrity sha512-KIq7g+rcUXm58ddfF1I02vVaMp0Ycy1OG5Pf+NvMb6/eNRiRvkMGOZJy/aksIGhA/jez5Qs/sFH9iEMK58qwSQ== + +ydoc-plugin-execution-time@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ydoc-plugin-execution-time/-/ydoc-plugin-execution-time-1.0.1.tgz#a211bdcfe47aaca300af6bad2195fe75facd12a7" + integrity sha512-qcJh6H2sm1X8INMHm3YZnr7TPJ35G1M40U8u5N2NlpNYsgH6Q1iquUrAhwC3hIfqR6G22ftjAm2lT51rAOLmOQ== + +ydoc-plugin-img-view@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/ydoc-plugin-img-view/-/ydoc-plugin-img-view-1.0.3.tgz#34d7b9a71777d43d9a5e9bc4ce93dc5b68d40def" + integrity sha512-f53tE8iPacq3GkMgv0vL56zuWAp6l3KC8jcUZGEm/tBZH/wuzXWpOeN6ncZSsaKLgiSovHVRGgfI3puNELD5xA== + +ydoc-plugin-import-asset@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/ydoc-plugin-import-asset/-/ydoc-plugin-import-asset-1.0.1.tgz#c9291b680dbfeefdbf856308c34546928626e651" + integrity sha512-vXNYI5B/avoL/qBtC+OWn826bAQI+iVY3iPoKYndMmax8z+aCyX29RCcThXTLqWv0YHnr53F/FHZc3qWbi5e+Q== + +ydoc-plugin-jsdoc@0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/ydoc-plugin-jsdoc/-/ydoc-plugin-jsdoc-0.0.3.tgz#5702120425ef1e8d630c54c1e2ae38fe248c43aa" + integrity sha512-MkaCXIFGQckrFkDqQOXlEw1E7yGkg+JQLZx2IKujfQ+zrgkwP/1crtPxN2vV/k8iWNZPTaOXtJ/cvFawq7ITbw== + dependencies: + jsdoc-to-markdown "^4.0.1" + +ydoc-plugin-search@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/ydoc-plugin-search/-/ydoc-plugin-search-1.1.6.tgz#a1ba058d24edbf7e6a4d453f9b5b42713ce30c51" + integrity sha512-kLkKLwBCwB9Iy+V1WOrTgZcEoZSINdYSUIht9kw8pJ8mFA9xanIP/Y71lJF2CK5zldA1IUMawu4nN2ntFjBeWQ== + dependencies: + cheerio "^0.20.0" + +ydoc@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ydoc/-/ydoc-4.1.0.tgz#18342d11e79be2ff47cef8ab60127df1ec7baa09" + integrity sha512-AbPjGN5jFooKF4rxTt5Q3uedKct3oliIfkSsuBITNh9eYrlfU4QQQqaYrKAzv7tio/nayaVbuKswJAwZsAaLPA== + dependencies: + bash-color "0.0.4" + cheerio "^0.20.0" + chokidar "^2.0.0" + debug "*" + fs-extra "^5.0.0" + growl "~1.7.0" + he "^1.1.1" + koa "^2.4.1" + koa-static "^4.0.2" + markdown-it "^8.4.0" + noox "^0.1.2" + ora "^1.3.0" + prismjs "^1.14.0" + readline-sync "^1.4.9" + tiny-lr "0.0.5" + underscore "^1.8.3" + watch "~0.9.0" + yargs "^10.0.3" + ydoc-plugin-copy "0.0.1" + ydoc-plugin-demo "^1.0.0" + ydoc-plugin-edit-page "0.0.2" + ydoc-plugin-execution-time "^1.0.0" + ydoc-plugin-img-view "^1.0.1" + ydoc-plugin-import-asset "^1.0.1" + ydoc-plugin-search "^1.1.6" + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== From 9df46cb46ccddff9ddbaee4aca27fa9fd7fd1d9c Mon Sep 17 00:00:00 2001 From: alan Date: Fri, 16 Aug 2019 14:27:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E8=BF=99=E4=B8=AA=E7=94=A8=E4=B8=8D?= =?UTF-8?q?=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/font/iconfont.eot | Bin 8908 -> 0 bytes assets/font/iconfont.svg | 119 -------------------------------------- assets/font/iconfont.ttf | Bin 8740 -> 0 bytes assets/font/iconfont.woff | Bin 4720 -> 0 bytes 4 files changed, 119 deletions(-) delete mode 100644 assets/font/iconfont.eot delete mode 100644 assets/font/iconfont.svg delete mode 100644 assets/font/iconfont.ttf delete mode 100644 assets/font/iconfont.woff diff --git a/assets/font/iconfont.eot b/assets/font/iconfont.eot deleted file mode 100644 index 96837902c0f8cf225593ea3c4a5c8de40f214aec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8908 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 FzW|{V;nDyA diff --git a/assets/font/iconfont.svg b/assets/font/iconfont.svg deleted file mode 100644 index 8aea2d0..0000000 --- a/assets/font/iconfont.svg +++ /dev/null @@ -1,119 +0,0 @@ - - - - - -Created by iconfont - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/font/iconfont.ttf b/assets/font/iconfont.ttf deleted file mode 100644 index 83bebd9581e2063a7fbb823c6b62c3869f31ee14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8740 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 diff --git a/assets/font/iconfont.woff b/assets/font/iconfont.woff deleted file mode 100644 index 57d8641a40891915a9d2a860c5f0ae8ee3ba425e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4720 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 bfZ7t5XxiUJGQ%8?(KQW~>7kaKL{6zU{3b